summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/trap.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-11-21 21:48:25 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2020-11-21 21:48:25 +0100
commit0f56fefd45ab50ddc28c062b492b64a17c26e08a (patch)
treeaa2498c9bf2c5a0bde2efbb22da3c1c0c9e88041 /sys/src/9/pc/trap.c
parent2594b99629957d8ce380157e9af4a5feff86c5fe (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.c5
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);