diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-11-21 21:48:25 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-11-21 21:48:25 +0100 |
commit | 0f56fefd45ab50ddc28c062b492b64a17c26e08a (patch) | |
tree | aa2498c9bf2c5a0bde2efbb22da3c1c0c9e88041 /sys/src/9/pc/trap.c | |
parent | 2594b99629957d8ce380157e9af4a5feff86c5fe (diff) |
pc, pc64: implement disabling of msi interrupts
Diffstat (limited to 'sys/src/9/pc/trap.c')
-rw-r--r-- | sys/src/9/pc/trap.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/src/9/pc/trap.c b/sys/src/9/pc/trap.c index faaf90101..cca5a53c8 100644 --- a/sys/src/9/pc/trap.c +++ b/sys/src/9/pc/trap.c @@ -89,8 +89,7 @@ intrdisable(int irq, void (*f)(Ureg *, void *), void *a, int tbdf, char *name) irq = 9; if(arch->intrvecno == nil || (tbdf != BUSUNKNOWN && (irq == 0xff || irq == 0))){ /* - * on APIC machine, irq is pretty meaningless - * and disabling a the vector is not implemented. + * on APIC machine, irq is pretty meaningless. * however, we still want to remove the matching * Vctl entry to prevent calling Vctl.f() with a * stale Vctl.a pointer. @@ -109,6 +108,8 @@ intrdisable(int irq, void (*f)(Ureg *, void *), void *a, int tbdf, char *name) break; } if(v != nil){ + if(v->disable != nil) + (*v->disable)(v); *pv = v->next; xfree(v); |