add missing CISS_UNLOCK_SCRATCH/splx calls
authorjsg <jsg@openbsd.org>
Sun, 3 May 2015 02:10:13 +0000 (02:10 +0000)
committerjsg <jsg@openbsd.org>
Sun, 3 May 2015 02:10:13 +0000 (02:10 +0000)
ok krw@

sys/dev/ic/ciss.c

index ac44ea6..fc3bf1f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ciss.c,v 1.72 2015/03/14 03:38:47 jsg Exp $   */
+/*     $OpenBSD: ciss.c,v 1.73 2015/05/03 02:10:13 jsg Exp $   */
 
 /*
  * Copyright (c) 2005,2006 Michael Shalayeff
@@ -756,8 +756,10 @@ ciss_ldmap(struct ciss_softc *sc)
        total = sizeof(*lmap) + (sc->maxunits - 1) * sizeof(lmap->map);
 
        ccb = scsi_io_get(&sc->sc_iopool, SCSI_POLL|SCSI_NOSLEEP);
-       if (ccb == NULL)
+       if (ccb == NULL) {
+               CISS_UNLOCK_SCRATCH(sc, lock);
                return ENOMEM;
+       }
 
        ccb->ccb_len = total;
        ccb->ccb_data = lmap;
@@ -800,8 +802,10 @@ ciss_sync(struct ciss_softc *sc)
        flush->flush = sc->sc_flush;
 
        ccb = scsi_io_get(&sc->sc_iopool, SCSI_POLL|SCSI_NOSLEEP);
-       if (ccb == NULL)
+       if (ccb == NULL) {
+               CISS_UNLOCK_SCRATCH(sc, lock);
                return ENOMEM;
+       }
 
        ccb->ccb_len = sizeof(*flush);
        ccb->ccb_data = flush;