]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs
authorChandrakanth Patil <chandrakanth.patil@broadcom.com>
Fri, 28 May 2021 13:13:06 +0000 (18:43 +0530)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 20 Sep 2021 16:48:48 +0000 (18:48 +0200)
commitf60eac900a854193012929fda039da3344800450
tree2772814a409bc23389353c30e305cb155126bdc9
parente203f916c8efe60f69f121b112fb96eeb40d7961
scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs

BugLink: https://bugs.launchpad.net/bugs/1939440
[ Upstream commit 9bedd36e9146b34dda4d6994e3aa1d72bc6442c1 ]

While reenabling the IRQ after IRQ poll there may be a small window for the
firmware to post the replies with interrupts raised. In that case the
driver will not see the interrupts which leads to I/O timeout.

This issue only happens when there are many I/O completions on a single
reply queue. This forces the driver to switch between the interrupt and IRQ
context.

Make the driver process the reply queue one more time after enabling the
IRQ.

Link: https://lore.kernel.org/linux-scsi/20201102072746.27410-1-sreekanth.reddy@broadcom.com/
Link: https://lore.kernel.org/r/20210528131307.25683-5-chandrakanth.patil@broadcom.com
Cc: Tomas Henzl <thenzl@redhat.com>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
drivers/scsi/megaraid/megaraid_sas_fusion.c