Hello,

This is the last spl lock leak which i've found with static code analysis.
This is not in GENERIC. For testing I compiled it into my kernel and run
the kernel without any error.

bye,
Jan

Index: trm.c
===================================================================
RCS file: /mount/cvsdev/cvs/openbsd/src/sys/dev/ic/trm.c,v
retrieving revision 1.29
diff -u -w -p -r1.29 trm.c
--- trm.c       27 Apr 2011 03:39:32 -0000      1.29
+++ trm.c       2 Dec 2011 14:11:03 -0000
@@ -296,7 +296,7 @@ trm_StartWaitingSRB(struct trm_softc *sc
        if ((sc->pActiveDCB != NULL) ||
            (TAILQ_EMPTY(&sc->waitingSRB)) ||
            (sc->sc_Flag & (RESET_DETECT | RESET_DONE | RESET_DEV)) != 0)
-               return;
+               goto out;

        for (pSRB = TAILQ_FIRST(&sc->waitingSRB); pSRB != NULL; pSRB = next) {
                next = TAILQ_NEXT(pSRB, link);
@@ -309,6 +309,7 @@ trm_StartWaitingSRB(struct trm_softc *sc
                }
        }

+ out:
        splx(intflag);
 }

Reply via email to