summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2007-11-05 01:25:44 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2007-11-05 01:25:44 +0000
commitf754ea84cf2b01540d109fa80b2c776879a072b1 (patch)
treea30261c7bbda96732007c1955f4b103c078076e4
parent6fb9ab687a66ba93b32860922d5b3080aa630e8e (diff)
scsi_done() must be called at SPLBIO.
-rw-r--r--sys/dev/pci/qli_pci.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pci/qli_pci.c b/sys/dev/pci/qli_pci.c
index 32525ef09be..8d1cd934f46 100644
--- a/sys/dev/pci/qli_pci.c
+++ b/sys/dev/pci/qli_pci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: qli_pci.c,v 1.11 2007/10/08 04:15:15 krw Exp $ */
+/* $OpenBSD: qli_pci.c,v 1.12 2007/11/05 01:25:43 krw Exp $ */
/*
* Copyright (c) 2007 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2007 David Collins <dave@davec.name>
@@ -1001,6 +1001,7 @@ nofwcb:
int
qli_scsi_cmd(struct scsi_xfer *xs)
{
+ int s;
#ifdef QLI_DEBUG
struct scsi_link *link = xs->sc_link;
struct qli_softc *sc = link->adapter_softc;
@@ -1016,7 +1017,9 @@ qli_scsi_cmd(struct scsi_xfer *xs)
stuffup:
xs->error = XS_DRIVER_STUFFUP;
xs->flags |= ITSDONE;
+ s = splbio();
scsi_done(xs);
+ splx(s);
return (COMPLETE);
}