summaryrefslogtreecommitdiffstats
path: root/sys/dev/ppbus
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2009-01-26 14:12:12 +0000
committerjhb <jhb@FreeBSD.org>2009-01-26 14:12:12 +0000
commit3b0fbe380002ff733e00cb220d235c309d47edae (patch)
treeae123cc6fa64951c12e5bb2d22e50499ba494538 /sys/dev/ppbus
parenta9074e77b8d04e6644c56537bd7e2dabad938e40 (diff)
downloadFreeBSD-src-3b0fbe380002ff733e00cb220d235c309d47edae.zip
FreeBSD-src-3b0fbe380002ff733e00cb220d235c309d47edae.tar.gz
Add missing locking around setting the ppc interrupt handler IVAR.
Reported by: many
Diffstat (limited to 'sys/dev/ppbus')
-rw-r--r--sys/dev/ppbus/ppbconf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/ppbus/ppbconf.c b/sys/dev/ppbus/ppbconf.c
index a3617be..a994355 100644
--- a/sys/dev/ppbus/ppbconf.c
+++ b/sys/dev/ppbus/ppbconf.c
@@ -393,8 +393,10 @@ ppbus_attach(device_t dev)
ppb->ppc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
RF_SHAREABLE);
if (ppb->ppc_irq_res != NULL) {
+ mtx_lock(ppb->ppc_lock);
error = BUS_WRITE_IVAR(device_get_parent(dev), dev,
PPC_IVAR_INTR_HANDLER, (uintptr_t)&ppbus_intr);
+ mtx_unlock(ppb->ppc_lock);
if (error) {
device_printf(dev, "Unable to set interrupt handler\n");
return (error);
OpenPOWER on IntegriCloud