diff options
author | akshatzen <akshatzen@google.com> | 2021-01-09 13:38:43 +0100 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2021-01-13 06:02:01 +0100 |
commit | a961ea0afd632cc570b71e455fe4328ee2fd9348 (patch) | |
tree | 14077c39a92ee1747d71fc8918a36fa361b4bbc7 /drivers/scsi/pm8001/pm8001_sas.h | |
parent | scsi: pm80xx: Do not busy wait in MPI init check (diff) | |
download | linux-a961ea0afd632cc570b71e455fe4328ee2fd9348.tar.xz linux-a961ea0afd632cc570b71e455fe4328ee2fd9348.zip |
scsi: pm80xx: Check for fatal error
When the controller runs into a fatal error, commands get stuck due to no
response. If the controller is in fatal error state, abort requests issued
to the controller get stuck too.
Check the controller state for fatal error conditions.
Link: https://lore.kernel.org/r/20210109123849.17098-3-Viswas.G@microchip.com
Acked-by: Jack Wang <jinpu.wang@cloud.ionos.com>
Signed-off-by: akshatzen <akshatzen@google.com>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
Signed-off-by: Ruksar Devadi <Ruksar.devadi@microchip.com>
Signed-off-by: Radha Ramachandran <radha@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/pm8001/pm8001_sas.h')
-rw-r--r-- | drivers/scsi/pm8001/pm8001_sas.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/pm8001/pm8001_sas.h b/drivers/scsi/pm8001/pm8001_sas.h index f2c8cbad3853..039ed91e9841 100644 --- a/drivers/scsi/pm8001/pm8001_sas.h +++ b/drivers/scsi/pm8001/pm8001_sas.h @@ -215,6 +215,7 @@ struct pm8001_dispatch { int (*sas_diag_execute_req)(struct pm8001_hba_info *pm8001_ha, u32 state); int (*sas_re_init_req)(struct pm8001_hba_info *pm8001_ha); + int (*fatal_errors)(struct pm8001_hba_info *pm8001_ha); }; struct pm8001_chip_info { @@ -725,6 +726,7 @@ ssize_t pm80xx_get_fatal_dump(struct device *cdev, ssize_t pm80xx_get_non_fatal_dump(struct device *cdev, struct device_attribute *attr, char *buf); ssize_t pm8001_get_gsm_dump(struct device *cdev, u32, char *buf); +int pm80xx_fatal_errors(struct pm8001_hba_info *pm8001_ha); /* ctl shared API */ extern struct device_attribute *pm8001_host_attrs[]; |