mpt3sas: Used "synchronize_irq()"API to synchronize timed-out IO & TMs
authorChaitra P B <chaitra.basappa@broadcom.com>
Fri, 6 May 2016 08:59:31 +0000 (14:29 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 11 May 2016 20:14:31 +0000 (16:14 -0400)
commit5f0dfb7a9bcc8139958f59ecb9bbd7e738ae702d
tree88ceb21699c892611b53b94ba21b395aff2885b1
parent6c197093847e8cdec844df39a373bfe1f9a1ac8a
mpt3sas: Used "synchronize_irq()"API to synchronize timed-out IO & TMs

Replaced mpt3sas_base_flush_reply_queues() with
mpt3sas_base_sync_reply_irqs(),as mpt3sas_base_flush_reply_queues()
skips over reply queues that are currently busy (i.e. being handled by
interrupt processing in another core). If a reply queue is busy, then
call to synchronize_irq()in mpt3sas_base_sync_reply_irqs()make sures the
other core has finished flushing the queue and completed any calls to
the mid-layer scsi_done() routine.

Signed-off-by: Chaitra P B <chaitra.basappa@broadcom.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/scsi/mpt3sas/mpt3sas_base.h
drivers/scsi/mpt3sas/mpt3sas_scsih.c