DF-1793 / fix.diff
diff --git a/sys/dev/misc/puc/puc.c b/sys/dev/misc/puc/puc.c --- a/sys/dev/misc/puc/puc.c +++ b/sys/dev/misc/puc/puc.c @@ -233,11 +233,13 @@ sc->irqres = res; sc->irqrid = rid; - irq_setup = BUS_SETUP_INTR(device_get_parent(dev), dev, res, - 0, puc_intr, sc, - &sc->intr_cookie, NULL, NULL); - if (irq_setup != 0) - return (ENXIO); + irq_setup = BUS_SETUP_INTR(device_get_parent(dev), dev, res, + 0, puc_intr, sc, + &sc->intr_cookie, NULL, NULL); + if (irq_setup != 0) { + bus_release_resource(dev, SYS_RES_IRQ, rid, res); + return (ENXIO); + } rid = 0; for (i = 0; PUC_PORT_VALID(sc->sc_desc, i); i++) { |