aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/isa/npx.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64/isa/npx.c')
-rw-r--r--sys/amd64/isa/npx.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/amd64/isa/npx.c b/sys/amd64/isa/npx.c
index 43b012cecc80..22a0282a114c 100644
--- a/sys/amd64/isa/npx.c
+++ b/sys/amd64/isa/npx.c
@@ -429,9 +429,15 @@ no_irq13:
* XXX hack around brokenness of bus_teardown_intr(). If we left the
* irq active then we would get it instead of exception 16.
*/
- mtx_lock_spin(&icu_lock);
- INTRDIS(1 << irq_num);
- mtx_unlock_spin(&icu_lock);
+ {
+ register_t crit;
+
+ crit = intr_disable();
+ mtx_lock_spin(&icu_lock);
+ INTRDIS(1 << irq_num);
+ mtx_unlock_spin(&icu_lock);
+ intr_restore(crit);
+ }
bus_release_resource(dev, SYS_RES_IRQ, irq_rid, irq_res);
bus_release_resource(dev, SYS_RES_IOPORT, ioport_rid, ioport_res);