scsi: mpt3sas: Revert "scsi: mpt3sas: Fix ioc->base_readl() use"
authorDamien Le Moal <damien.lemoal@opensource.wdc.com>
Fri, 16 Sep 2022 13:01:11 +0000 (22:01 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 25 Sep 2022 17:34:54 +0000 (13:34 -0400)
This reverts commit 7ab4d2441b952977556672c2fe3f4c2a698cbb37 as it is
breaking the mpt3sas driver on big-endian machines.

Link: https://lore.kernel.org/r/20220916130111.168195-3-damien.lemoal@opensource.wdc.com
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.c

index 38e0c0fddbd84cbfae3e56a1abc6aac26e476903..8b22df8c1792dbca52b37bf5399ccc6e151aeafc 100644 (file)
@@ -7082,16 +7082,16 @@ _base_handshake_req_reply_wait(struct MPT3SAS_ADAPTER *ioc, int request_bytes,
        }
 
        /* read the first two 16-bits, it gives the total length of the reply */
-       reply[0] = ioc->base_readl(&ioc->chip->Doorbell)
-               & MPI2_DOORBELL_DATA_MASK;
+       reply[0] = le16_to_cpu(ioc->base_readl(&ioc->chip->Doorbell)
+           & MPI2_DOORBELL_DATA_MASK);
        writel(0, &ioc->chip->HostInterruptStatus);
        if ((_base_wait_for_doorbell_int(ioc, 5))) {
                ioc_err(ioc, "doorbell handshake int failed (line=%d)\n",
                        __LINE__);
                return -EFAULT;
        }
-       reply[1] = ioc->base_readl(&ioc->chip->Doorbell)
-               & MPI2_DOORBELL_DATA_MASK;
+       reply[1] = le16_to_cpu(ioc->base_readl(&ioc->chip->Doorbell)
+           & MPI2_DOORBELL_DATA_MASK);
        writel(0, &ioc->chip->HostInterruptStatus);
 
        for (i = 2; i < default_reply->MsgLength * 2; i++)  {
@@ -7103,8 +7103,9 @@ _base_handshake_req_reply_wait(struct MPT3SAS_ADAPTER *ioc, int request_bytes,
                if (i >=  reply_bytes/2) /* overflow case */
                        ioc->base_readl(&ioc->chip->Doorbell);
                else
-                       reply[i] = ioc->base_readl(&ioc->chip->Doorbell)
-                               & MPI2_DOORBELL_DATA_MASK;
+                       reply[i] = le16_to_cpu(
+                           ioc->base_readl(&ioc->chip->Doorbell)
+                           & MPI2_DOORBELL_DATA_MASK);
                writel(0, &ioc->chip->HostInterruptStatus);
        }