summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2006-07-11 13:15:31 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2006-07-11 13:15:31 +0000
commit9e3378b8ac6fec14bd80280bd58beef0d7385154 (patch)
tree5883373cb894f97266da4f5907767947ca23a722
parent26308e5c824d27e7d7aaf5544f33a605be06e9a5 (diff)
scsi_get_xs raises splbio, but didnt lower it on error. tsk tsk.
ok krw@
-rw-r--r--sys/scsi/scsi_base.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c
index 7f77286f8bd..520014c9821 100644
--- a/sys/scsi/scsi_base.c
+++ b/sys/scsi/scsi_base.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: scsi_base.c,v 1.105 2006/07/11 09:12:54 dlg Exp $ */
+/* $OpenBSD: scsi_base.c,v 1.106 2006/07/11 13:15:30 dlg Exp $ */
/* $NetBSD: scsi_base.c,v 1.43 1997/04/02 02:29:36 mycroft Exp $ */
/*
@@ -119,6 +119,7 @@ scsi_get_xs(struct scsi_link *sc_link, int flags)
if (tsleep(sc_link, PRIBIO|PCATCH, "getxs", 0)) {
/* Bail out on getting a signal. */
sc_link->flags &= ~SDEV_WAITING;
+ splx(s);
return (NULL);
}
}
@@ -904,9 +905,10 @@ scsi_delay(struct scsi_xfer *xs, int seconds)
}
while (seconds-- > 0) {
- if (tsleep(&lbolt, PRIBIO|PCATCH, "scbusy", 0))
+ if (tsleep(&lbolt, PRIBIO|PCATCH, "scbusy", 0)) {
/* Signal == abort xs. */
return (EIO);
+ }
}
return (ERESTART);