2021-05-20 06:59:31

by Ching Huang

[permalink] [raw]
Subject: [PATCH 1/2] scsi: arcmsr: fix doorbell status may arrived late on ARC-1886

From: ching Huang <[email protected]>

This patch fix the doorbell status coming from IOP may late.
The doorbell status value should not be 0.

Signed-off-by: ching Huang <[email protected]>
---

diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
index 930972c..98e3d57 100644
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -2419,10 +2419,18 @@ static void arcmsr_hbaD_doorbell_isr(struct AdapterControlBlock *pACB)

static void arcmsr_hbaE_doorbell_isr(struct AdapterControlBlock *pACB)
{
- uint32_t outbound_doorbell, in_doorbell, tmp;
+ uint32_t outbound_doorbell, in_doorbell, tmp, i;
struct MessageUnit_E __iomem *reg = pACB->pmuE;

- in_doorbell = readl(&reg->iobound_doorbell);
+ if (pACB->adapter_type == ACB_ADAPTER_TYPE_F) {
+ for (i = 0; i < 5; i++) {
+ in_doorbell = readl(&reg->iobound_doorbell);
+ if (in_doorbell != 0)
+ break;
+ }
+ }
+ else
+ in_doorbell = readl(&reg->iobound_doorbell);
outbound_doorbell = in_doorbell ^ pACB->in_doorbell;
do {
writel(0, &reg->host_int_status); /* clear interrupt */


2021-05-26 04:32:23

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH 1/2] scsi: arcmsr: fix doorbell status may arrived late on ARC-1886

On Thu, 20 May 2021 14:55:15 +0800, ching Huang wrote:

> This patch fix the doorbell status coming from IOP may late.
> The doorbell status value should not be 0.

Applied to 5.14/scsi-queue, thanks!

[1/2] scsi: arcmsr: fix doorbell status may arrived late on ARC-1886
https://git.kernel.org/mkp/scsi/c/d9a231226f28

--
Martin K. Petersen Oracle Linux Engineering