fsi: scom: Don’t abort operations for minor errors [Linux 4.19.70]

This Linux kernel change "fsi: scom: Don’t abort operations for minor errors" is included in the Linux 4.19.70 release. This change is authored by Eddie James <eajames [at] linux.ibm.com> on Tue Aug 27 12:12:49 2019 +0800. The commit for this change in Linux stable tree is 79829fc (patch) which is from upstream commit 8919dfc. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream 8919dfc.

fsi: scom: Don't abort operations for minor errors

commit 8919dfcb31161fae7d607bbef5247e5e82fd6457 upstream.

The scom driver currently fails out of operations if certain system
errors are flagged in the status register; system checkstop, special
attention, or recoverable error. These errors won't impact the ability
of the scom engine to perform operations, so the driver should continue
under these conditions.
Also, don't do a PIB reset for these conditions, since it won't help.

Fixes: 6b293258cded ("fsi: scom: Major overhaul")
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Cc: stable <stable@vger.kernel.org>
Acked-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20190827041249.13381-1-jk@ozlabs.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

There are 8 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/fsi/fsi-scom.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/fsi/fsi-scom.c b/drivers/fsi/fsi-scom.c
index df94021..fdc0e45 100644
--- a/drivers/fsi/fsi-scom.c
+++ b/drivers/fsi/fsi-scom.c
@@ -47,8 +47,7 @@
 #define SCOM_STATUS_PIB_RESP_MASK  0x00007000
 #define SCOM_STATUS_PIB_RESP_SHIFT 12

-#define SCOM_STATUS_ANY_ERR        (SCOM_STATUS_ERR_SUMMARY | \
-                    SCOM_STATUS_PROTECTION | \
+#define SCOM_STATUS_ANY_ERR        (SCOM_STATUS_PROTECTION | \
                     SCOM_STATUS_PARITY |     \
                     SCOM_STATUS_PIB_ABORT | \
                     SCOM_STATUS_PIB_RESP_MASK)
@@ -260,11 +259,6 @@ static int handle_fsi2pib_status(struct scom_device *scom, uint32_t status)
    /* Return -EBUSY on PIB abort to force a retry */
    if (status & SCOM_STATUS_PIB_ABORT)
        return -EBUSY;
-   if (status & SCOM_STATUS_ERR_SUMMARY) {
-       fsi_device_write(scom->fsi_dev, SCOM_FSI2PIB_RESET_REG, &dummy,
-                sizeof(uint32_t));
-       return -EIO;
-   }
    return 0;
 }

Leave a Reply

Your email address will not be published. Required fields are marked *