scsi: ufs: make sure all interrupts are processed
authorVenkat Gopalakrishnan <venkatg@codeaurora.org>
Tue, 21 Apr 2020 12:40:03 +0000 (13:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Apr 2020 05:59:08 +0000 (07:59 +0200)
commit5ebfa3b9b37c926b4625b106ce854a277d2a6cb7
treeffa094609a6b2d6fd09f853194e9668912a0a2b2
parent6457ade9bc42c3ab7eea29e5045c985b0dfc2302
scsi: ufs: make sure all interrupts are processed

[ Upstream commit 7f6ba4f12e6cbfdefbb95cfd8fc67ece6c15d799 ]

As multiple requests are submitted to the ufs host controller in
parallel there could be instances where the command completion interrupt
arrives later for a request that is already processed earlier as the
corresponding doorbell was cleared when handling the previous
interrupt. Read the interrupt status in a loop after processing the
received interrupt to catch such interrupts and handle it.

Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/ufs/ufshcd.c