Index: sys/arm/mv/mpic.c =================================================================== --- sys/arm/mv/mpic.c +++ sys/arm/mv/mpic.c @@ -151,7 +151,7 @@ static int mpic_intr(void *arg); static void mpic_unmask_msi(void); static boolean_t mpic_irq_is_percpu(uintptr_t); -#ifndef ARM_INTRNG +#ifndef INTRNG static void arm_mask_irq_err(uintptr_t); static void arm_unmask_irq_err(uintptr_t); #endif @@ -274,11 +274,13 @@ bus_release_resources(dev, mv_mpic_spec, sc->mpic_res); return (ENXIO); } - if (intr_pic_register(dev, OF_xref_from_device(dev)) == NULL) { + if (intr_pic_register(dev, OF_xref_from_node( + ofw_bus_get_node(dev))) == NULL) { device_printf(dev, "could not register PIC\n"); bus_release_resources(dev, mv_mpic_spec, sc->mpic_res); return (ENXIO); } + OF_device_register_xref(OF_xref_from_node(ofw_bus_get_node(dev)), dev); #endif mpic_unmask_msi();