summaryrefslogtreecommitdiff
path: root/sys/scsi
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2014-07-01 02:31:17 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2014-07-01 02:31:17 +0000
commitdf4247f18ec34fcea680de51a03ddf2fa97655e0 (patch)
treeb9e5c22f81ff83c0eb5523015eb660433065ff4a /sys/scsi
parent1d127edfd3b349b02b524e58d0c9a9b67414d183 (diff)
take the biglock before calling the xs completion handler.
should be safe to call the midlayer io path without the biglock now.
Diffstat (limited to 'sys/scsi')
-rw-r--r--sys/scsi/scsi_base.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c
index 9a5b6dce0d2..9cf6b450dd3 100644
--- a/sys/scsi/scsi_base.c
+++ b/sys/scsi/scsi_base.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: scsi_base.c,v 1.213 2014/07/01 02:11:46 dlg Exp $ */
+/* $OpenBSD: scsi_base.c,v 1.214 2014/07/01 02:31:16 dlg Exp $ */
/* $NetBSD: scsi_base.c,v 1.43 1997/04/02 02:29:36 mycroft Exp $ */
/*
@@ -1303,7 +1303,9 @@ scsi_done(struct scsi_xfer *xs)
#endif /* SCSIDEBUG */
SET(xs->flags, ITSDONE);
+ KERNEL_LOCK();
xs->done(xs);
+ KERNEL_UNLOCK();
}
int