Skip to content

Commit

Permalink
qla2xxx: Shutdown board on thermal shutdown aen.
Browse files Browse the repository at this point in the history
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  • Loading branch information
Joe Carnuccio authored and Martin K. Petersen committed Jul 15, 2016
1 parent ad1ef17 commit a29b3dd
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/scsi/qla2xxx/qla_dbg.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* | | | 0x303a |
* | DPC Thread | 0x4023 | 0x4002,0x4013 |
* | Async Events | 0x5089 | 0x502b-0x502f |
* | | | 0x505e |
* | | | 0x5047 |
* | | | 0x5084,0x5075 |
* | | | 0x503d,0x5044 |
* | | | 0x507b,0x505f |
Expand Down
1 change: 1 addition & 0 deletions drivers/scsi/qla2xxx/qla_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -829,6 +829,7 @@ struct mbx_cmd_32 {
#define MBA_FW_RESTART_CMPLT 0x8060 /* Firmware restart complete */
#define MBA_INIT_REQUIRED 0x8061 /* Initialization required */
#define MBA_SHUTDOWN_REQUESTED 0x8062 /* Shutdown Requested */
#define MBA_TEMPERATURE_ALERT 0x8070 /* Temperature Alert */
#define MBA_DPORT_DIAGNOSTICS 0x8080 /* D-port Diagnostics */
#define MBA_FW_INIT_FAILURE 0x8401 /* Firmware initialization failure */
#define MBA_MIRROR_LUN_CHANGE 0x8402 /* Mirror LUN State Change
Expand Down
7 changes: 7 additions & 0 deletions drivers/scsi/qla2xxx/qla_isr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1158,6 +1158,13 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
mb[1] == 2 ? "done (error)" : "other");
break;

case MBA_TEMPERATURE_ALERT:
ql_dbg(ql_dbg_async, vha, 0x505e,
"TEMPERATURE ALERT: %04x %04x %04x\n", mb[1], mb[2], mb[3]);
if (mb[1] == 0x12)
schedule_work(&ha->board_disable);
break;

default:
ql_dbg(ql_dbg_async, vha, 0x5057,
"Unknown AEN:%04x %04x %04x %04x\n",
Expand Down
10 changes: 10 additions & 0 deletions drivers/scsi/qla2xxx/qla_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -2901,6 +2901,10 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
qlt_add_target(ha, base_vha);

clear_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags);

if (test_bit(UNLOADING, &base_vha->dpc_flags))
return -ENODEV;

return 0;

probe_init_failed:
Expand Down Expand Up @@ -2947,7 +2951,10 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
ha = NULL;

probe_out:
pci_disable_pcie_error_reporting(pdev);
pci_disable_device(pdev);
if (test_bit(UNLOADING, &base_vha->dpc_flags))
return -ENODEV;
return ret;
}

Expand Down Expand Up @@ -5002,6 +5009,9 @@ qla2x00_do_dpc(void *data)
"DPC handler waking up, dpc_flags=0x%lx.\n",
base_vha->dpc_flags);

if (test_bit(UNLOADING, &base_vha->dpc_flags))
break;

qla2x00_do_work(base_vha);

if (IS_P3P_TYPE(ha)) {
Expand Down

0 comments on commit a29b3dd

Please sign in to comment.