diff options
author | marius <marius@FreeBSD.org> | 2007-01-15 22:37:59 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2007-01-15 22:37:59 +0000 |
commit | 6d5dd8a49ad88c78f0505a7db96a0484f8a72f2a (patch) | |
tree | 6581fe08bff7a3df1afe406509b08efb53deb9f7 /sys/sparc64 | |
parent | 613d1a9f5abbbdfdcacc93d7f98ed4397bb10df9 (diff) | |
download | FreeBSD-src-6d5dd8a49ad88c78f0505a7db96a0484f8a72f2a.zip FreeBSD-src-6d5dd8a49ad88c78f0505a7db96a0484f8a72f2a.tar.gz |
Check the return value of bus_setup_intr() when setting up the
over-temperature and power-fail interrupts.
Suggested by: Coverity Prevent (CID 683)
MFC after: 1 week
Diffstat (limited to 'sys/sparc64')
-rw-r--r-- | sys/sparc64/sbus/sbus.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/sys/sparc64/sbus/sbus.c b/sys/sparc64/sbus/sbus.c index 4fc45d9..a904fe9 100644 --- a/sys/sparc64/sbus/sbus.c +++ b/sys/sparc64/sbus/sbus.c @@ -430,20 +430,22 @@ sbus_attach(device_t dev) rid = 0; mr = SYSIO_READ8(sc, SBR_THERM_INT_MAP); vec = INTVEC(mr); - if ((sc->sc_ot_ires = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, vec, - vec, 1, RF_ACTIVE)) == NULL) - panic("%s: failed to get temperature interrupt", __func__); - bus_setup_intr(dev, sc->sc_ot_ires, INTR_TYPE_MISC | INTR_FAST, - sbus_overtemp, sc, &sc->sc_ot_ihand); + sc->sc_ot_ires = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, vec, + vec, 1, RF_ACTIVE); + if (sc->sc_ot_ires == NULL || + bus_setup_intr(dev, sc->sc_ot_ires, INTR_TYPE_MISC | INTR_FAST, + sbus_overtemp, sc, &sc->sc_ot_ihand) != 0) + panic("%s: failed to set up temperature interrupt", __func__); SYSIO_WRITE8(sc, SBR_THERM_INT_MAP, INTMAP_ENABLE(mr, PCPU_GET(mid))); rid = 0; mr = SYSIO_READ8(sc, SBR_POWER_INT_MAP); vec = INTVEC(mr); - if ((sc->sc_pf_ires = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, vec, - vec, 1, RF_ACTIVE)) == NULL) - panic("%s: failed to get power fail interrupt", __func__); - bus_setup_intr(dev, sc->sc_pf_ires, INTR_TYPE_MISC | INTR_FAST, - sbus_pwrfail, sc, &sc->sc_pf_ihand); + sc->sc_pf_ires = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, vec, + vec, 1, RF_ACTIVE); + if (sc->sc_pf_ires == NULL || + bus_setup_intr(dev, sc->sc_pf_ires, INTR_TYPE_MISC | INTR_FAST, + sbus_pwrfail, sc, &sc->sc_pf_ihand) != 0) + panic("%s: failed to set up power fail interrupt", __func__); SYSIO_WRITE8(sc, SBR_POWER_INT_MAP, INTMAP_ENABLE(mr, PCPU_GET(mid))); /* Initialize the counter-timer. */ |