OSDN Git Service

scsi: qla2xxx: remove irq save in qla2x00_poll()
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Mon, 11 Jun 2018 14:40:53 +0000 (16:40 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 20 Jun 2018 02:02:25 +0000 (22:02 -0400)
commitb3a8aa90c46095cbad454eb068bfb5a8eb56d4e3
tree63352fa0a2193c07052d0ac46962fdfa0d2c898b
parent91ebc1facd7797d799a4c9208cb7fdc8d86e0bb4
scsi: qla2xxx: remove irq save in qla2x00_poll()

In commit d2ba5675d899 ("[SCSI] qla2xxx: Disable local-interrupts while
polling for RISC status.") added a local_irq_disable() before invoking the
->intr_handler callback. The function, which was used in this callback, did
not disable interrupts while acquiring the spin_lock so a deadlock was
possible and this change was one possible solution.

The function in question was qla2300_intr_handler() and is using
spin_lock_irqsave() since commit 43fac4d97a1a ("[SCSI] qla2xxx: Resolve a
performance issue in interrupt").  I checked all other ->intr_handler
callbacks and all of them use the irqsave variant so it is safe to remove
the local_irq_save() block now.

Cc: qla2xxx-upstream@qlogic.com
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_inline.h