diff options
author | Alexander Motin <mav@FreeBSD.org> | 2021-02-18 21:22:01 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2021-03-15 02:32:42 +0000 |
commit | 90ac5cb75e9fc89b431f304be35ab081e13825ad (patch) | |
tree | 318206a74c416c9021a9e2979b70167ecdb67028 /sys/cam | |
parent | 78619cc2ff1baa097251d826f339d7fa3e6301e2 (diff) | |
download | src-90ac5cb75e9fc89b431f304be35ab081e13825ad.tar.gz src-90ac5cb75e9fc89b431f304be35ab081e13825ad.zip |
Move XPT_IMMEDIATE_NOTIFY handling out of periph lock.
It is a rare, but still better to not have lock dependencies.
MFC after: 1 month
(cherry picked from commit c67a2909a629db138227993e1093e66bb6c00af5)
Diffstat (limited to 'sys/cam')
-rw-r--r-- | sys/cam/ctl/scsi_ctl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/cam/ctl/scsi_ctl.c b/sys/cam/ctl/scsi_ctl.c index 074ac4cd1894..34c3ce7ad923 100644 --- a/sys/cam/ctl/scsi_ctl.c +++ b/sys/cam/ctl/scsi_ctl.c @@ -1491,6 +1491,7 @@ ctlfedone(struct cam_periph *periph, union ccb *done_ccb) ctlfe_free_ccb(periph, done_ccb); goto out; } + mtx_unlock(mtx); if (send_ctl_io != 0) { ctl_queue(io); } else { @@ -1498,7 +1499,7 @@ ctlfedone(struct cam_periph *periph, union ccb *done_ccb) done_ccb->ccb_h.func_code = XPT_NOTIFY_ACKNOWLEDGE; xpt_action(done_ccb); } - break; + return; } case XPT_NOTIFY_ACKNOWLEDGE: /* Queue this back down to the SIM as an immediate notify. */ |