aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/pm8001/pm8001_init.c
diff options
context:
space:
mode:
authorAjish Koshy <Ajish.Koshy@microchip.com>2021-09-06 22:34:02 +0530
committerMartin K. Petersen <martin.petersen@oracle.com>2021-09-14 22:29:11 -0400
commitb27a40534ef76a22628a5c12f98ea489823a8ba5 (patch)
tree346426a6850a533dc7ced04bd2915066db22a678 /drivers/scsi/pm8001/pm8001_init.c
parentscsi: pm80xx: Fix incorrect port value when registering a device (diff)
downloadlinux-dev-b27a40534ef76a22628a5c12f98ea489823a8ba5.tar.xz
linux-dev-b27a40534ef76a22628a5c12f98ea489823a8ba5.zip
scsi: pm80xx: Fix lockup in outbound queue management
Commit 1f02beff224e ("scsi: pm80xx: Remove global lock from outbound queue processing") introduced a lock per outbound queue. Prior to that change the driver was using a global lock for all outbound queues. While processing the I/O responses and events the driver takes the outbound queue spinlock and is supposed to release it in pm8001_ccb_task_free_done() before calling command done(). Since the older code was using a global lock, pm8001_ccb_task_free_done() was releasing the global spin lock. The change that split the lock per outbound queue did not consider this and pm8001_ccb_task_free_done() was still releasing the global lock. Link: https://lore.kernel.org/r/20210906170404.5682-3-Ajish.Koshy@microchip.com Fixes: 1f02beff224e ("scsi: pm80xx: Remove global lock from outbound queue processing") Acked-by: Jack Wang <jinpu.wang@ionos.com> Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com> Signed-off-by: Viswas G <Viswas.G@microchip.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/pm8001/pm8001_init.c')
0 files changed, 0 insertions, 0 deletions