|
Daniel Wagner |
75332e |
From: Gleb Chesnokov <Chesnokov.G@raidix.com>
|
|
Daniel Wagner |
75332e |
Date: Tue, 15 Feb 2022 17:13:59 +0000
|
|
Daniel Wagner |
75332e |
Subject: scsi: qla2xxx: Use named initializers for q_dev_state
|
|
Daniel Wagner |
75332e |
Patch-mainline: v5.18-rc1
|
|
Daniel Wagner |
75332e |
Git-commit: 1f652aa0e469ecd870f01f2ab7cf01b4ab71d9b1
|
|
Daniel Wagner |
75332e |
References: bsc#1197661
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
Make q_dev_state a little more readable and maintainable by using named
|
|
Daniel Wagner |
75332e |
initializers.
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
Also convert QLA8XXX_DEV_* macros into an enum and remove
|
|
Daniel Wagner |
75332e |
qla83xx_dev_state_to_string(), which is a duplicate of qdev_state().
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
Link: https://lore.kernel.org/r/AS8PR10MB495298515A7553C8D6D6E74D9D349@AS8PR10MB4952.EURPRD10.PROD.OUTLOOK.COM
|
|
Daniel Wagner |
75332e |
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
|
|
Daniel Wagner |
75332e |
Signed-off-by: Gleb Chesnokov <Chesnokov.G@raidix.com>
|
|
Daniel Wagner |
75332e |
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|
Daniel Wagner |
75332e |
Acked-by: Daniel Wagner <dwagner@suse.de>
|
|
Daniel Wagner |
75332e |
---
|
|
Daniel Wagner |
75332e |
drivers/scsi/qla2xxx/qla_gbl.h | 2 +-
|
|
Daniel Wagner |
75332e |
drivers/scsi/qla2xxx/qla_init.c | 28 ++--------------------------
|
|
Daniel Wagner |
75332e |
drivers/scsi/qla2xxx/qla_nx.c | 35 +++++++++++++++--------------------
|
|
Daniel Wagner |
75332e |
drivers/scsi/qla2xxx/qla_nx.h | 20 ++++++++++++--------
|
|
Daniel Wagner |
75332e |
drivers/scsi/qla2xxx/qla_nx2.c | 9 +++------
|
|
Daniel Wagner |
75332e |
5 files changed, 33 insertions(+), 61 deletions(-)
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
--- a/drivers/scsi/qla2xxx/qla_gbl.h
|
|
Daniel Wagner |
75332e |
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
|
|
Daniel Wagner |
75332e |
@@ -895,7 +895,7 @@ extern void qla82xx_chip_reset_cleanup(s
|
|
Daniel Wagner |
75332e |
extern int qla81xx_set_led_config(scsi_qla_host_t *, uint16_t *);
|
|
Daniel Wagner |
75332e |
extern int qla81xx_get_led_config(scsi_qla_host_t *, uint16_t *);
|
|
Daniel Wagner |
75332e |
extern int qla82xx_mbx_beacon_ctl(scsi_qla_host_t *, int);
|
|
Daniel Wagner |
75332e |
-extern char *qdev_state(uint32_t);
|
|
Daniel Wagner |
75332e |
+extern const char *qdev_state(uint32_t);
|
|
Daniel Wagner |
75332e |
extern void qla82xx_clear_pending_mbx(scsi_qla_host_t *);
|
|
Daniel Wagner |
75332e |
extern int qla82xx_read_temperature(scsi_qla_host_t *);
|
|
Daniel Wagner |
75332e |
extern int qla8044_read_temperature(scsi_qla_host_t *);
|
|
Daniel Wagner |
75332e |
--- a/drivers/scsi/qla2xxx/qla_init.c
|
|
Daniel Wagner |
75332e |
+++ b/drivers/scsi/qla2xxx/qla_init.c
|
|
Daniel Wagner |
75332e |
@@ -6797,29 +6797,6 @@ static int
|
|
Daniel Wagner |
75332e |
return rval;
|
|
Daniel Wagner |
75332e |
}
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
-static const char *
|
|
Daniel Wagner |
75332e |
-qla83xx_dev_state_to_string(uint32_t dev_state)
|
|
Daniel Wagner |
75332e |
-{
|
|
Daniel Wagner |
75332e |
- switch (dev_state) {
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_COLD:
|
|
Daniel Wagner |
75332e |
- return "COLD/RE-INIT";
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_INITIALIZING:
|
|
Daniel Wagner |
75332e |
- return "INITIALIZING";
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_READY:
|
|
Daniel Wagner |
75332e |
- return "READY";
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_NEED_RESET:
|
|
Daniel Wagner |
75332e |
- return "NEED RESET";
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_NEED_QUIESCENT:
|
|
Daniel Wagner |
75332e |
- return "NEED QUIESCENT";
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_FAILED:
|
|
Daniel Wagner |
75332e |
- return "FAILED";
|
|
Daniel Wagner |
75332e |
- case QLA8XXX_DEV_QUIESCENT:
|
|
Daniel Wagner |
75332e |
- return "QUIESCENT";
|
|
Daniel Wagner |
75332e |
- default:
|
|
Daniel Wagner |
75332e |
- return "Unknown";
|
|
Daniel Wagner |
75332e |
- }
|
|
Daniel Wagner |
75332e |
-}
|
|
Daniel Wagner |
75332e |
-
|
|
Daniel Wagner |
75332e |
/* Assumes idc-lock always held on entry */
|
|
Daniel Wagner |
75332e |
void
|
|
Daniel Wagner |
75332e |
qla83xx_idc_audit(scsi_qla_host_t *vha, int audit_type)
|
|
Daniel Wagner |
75332e |
@@ -6873,9 +6850,8 @@ qla83xx_initiating_reset(scsi_qla_host_t
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_info, vha, 0xb056, "HW State: NEED RESET.\n");
|
|
Daniel Wagner |
75332e |
qla83xx_idc_audit(vha, IDC_AUDIT_TIMESTAMP);
|
|
Daniel Wagner |
75332e |
} else {
|
|
Daniel Wagner |
75332e |
- const char *state = qla83xx_dev_state_to_string(dev_state);
|
|
Daniel Wagner |
75332e |
-
|
|
Daniel Wagner |
75332e |
- ql_log(ql_log_info, vha, 0xb057, "HW State: %s.\n", state);
|
|
Daniel Wagner |
75332e |
+ ql_log(ql_log_info, vha, 0xb057, "HW State: %s.\n",
|
|
Daniel Wagner |
75332e |
+ qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* SV: XXX: Is timeout required here? */
|
|
Daniel Wagner |
75332e |
/* Wait for IDC state change READY -> NEED_RESET */
|
|
Daniel Wagner |
75332e |
--- a/drivers/scsi/qla2xxx/qla_nx.c
|
|
Daniel Wagner |
75332e |
+++ b/drivers/scsi/qla2xxx/qla_nx.c
|
|
Daniel Wagner |
75332e |
@@ -336,20 +336,20 @@ static unsigned qla82xx_crb_hub_agt[64]
|
|
Daniel Wagner |
75332e |
};
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* Device states */
|
|
Daniel Wagner |
75332e |
-static char *q_dev_state[] = {
|
|
Daniel Wagner |
75332e |
- "Unknown",
|
|
Daniel Wagner |
75332e |
- "Cold",
|
|
Daniel Wagner |
75332e |
- "Initializing",
|
|
Daniel Wagner |
75332e |
- "Ready",
|
|
Daniel Wagner |
75332e |
- "Need Reset",
|
|
Daniel Wagner |
75332e |
- "Need Quiescent",
|
|
Daniel Wagner |
75332e |
- "Failed",
|
|
Daniel Wagner |
75332e |
- "Quiescent",
|
|
Daniel Wagner |
75332e |
+static const char *const q_dev_state[] = {
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_UNKNOWN] = "Unknown",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_COLD] = "Cold/Re-init",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_INITIALIZING] = "Initializing",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_READY] = "Ready",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_NEED_RESET] = "Need Reset",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_NEED_QUIESCENT] = "Need Quiescent",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_FAILED] = "Failed",
|
|
Daniel Wagner |
75332e |
+ [QLA8XXX_DEV_QUIESCENT] = "Quiescent",
|
|
Daniel Wagner |
75332e |
};
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
-char *qdev_state(uint32_t dev_state)
|
|
Daniel Wagner |
75332e |
+const char *qdev_state(uint32_t dev_state)
|
|
Daniel Wagner |
75332e |
{
|
|
Daniel Wagner |
75332e |
- return q_dev_state[dev_state];
|
|
Daniel Wagner |
75332e |
+ return (dev_state < MAX_STATES) ? q_dev_state[dev_state] : "Unknown";
|
|
Daniel Wagner |
75332e |
}
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/*
|
|
Daniel Wagner |
75332e |
@@ -3062,8 +3062,7 @@ qla82xx_need_reset_handler(scsi_qla_host
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_info, vha, 0x00b6,
|
|
Daniel Wagner |
75332e |
"Device state is 0x%x = %s.\n",
|
|
Daniel Wagner |
75332e |
- dev_state,
|
|
Daniel Wagner |
75332e |
- dev_state < MAX_STATES ? qdev_state(dev_state) : "Unknown");
|
|
Daniel Wagner |
75332e |
+ dev_state, qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* Force to DEV_COLD unless someone else is starting a reset */
|
|
Daniel Wagner |
75332e |
if (dev_state != QLA8XXX_DEV_INITIALIZING &&
|
|
Daniel Wagner |
75332e |
@@ -3186,8 +3185,7 @@ qla82xx_device_state_handler(scsi_qla_ho
|
|
Daniel Wagner |
75332e |
old_dev_state = dev_state;
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_info, vha, 0x009b,
|
|
Daniel Wagner |
75332e |
"Device state is 0x%x = %s.\n",
|
|
Daniel Wagner |
75332e |
- dev_state,
|
|
Daniel Wagner |
75332e |
- dev_state < MAX_STATES ? qdev_state(dev_state) : "Unknown");
|
|
Daniel Wagner |
75332e |
+ dev_state, qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* wait for 30 seconds for device to go ready */
|
|
Daniel Wagner |
75332e |
dev_init_timeout = jiffies + (ha->fcoe_dev_init_timeout * HZ);
|
|
Daniel Wagner |
75332e |
@@ -3208,9 +3206,7 @@ qla82xx_device_state_handler(scsi_qla_ho
|
|
Daniel Wagner |
75332e |
if (loopcount < 5) {
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_info, vha, 0x009d,
|
|
Daniel Wagner |
75332e |
"Device state is 0x%x = %s.\n",
|
|
Daniel Wagner |
75332e |
- dev_state,
|
|
Daniel Wagner |
75332e |
- dev_state < MAX_STATES ? qdev_state(dev_state) :
|
|
Daniel Wagner |
75332e |
- "Unknown");
|
|
Daniel Wagner |
75332e |
+ dev_state, qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
}
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
switch (dev_state) {
|
|
Daniel Wagner |
75332e |
@@ -3440,8 +3436,7 @@ qla82xx_set_reset_owner(scsi_qla_host_t
|
|
Daniel Wagner |
75332e |
} else
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_info, vha, 0xb031,
|
|
Daniel Wagner |
75332e |
"Device state is 0x%x = %s.\n",
|
|
Daniel Wagner |
75332e |
- dev_state,
|
|
Daniel Wagner |
75332e |
- dev_state < MAX_STATES ? qdev_state(dev_state) : "Unknown");
|
|
Daniel Wagner |
75332e |
+ dev_state, qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
}
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/*
|
|
Daniel Wagner |
75332e |
--- a/drivers/scsi/qla2xxx/qla_nx.h
|
|
Daniel Wagner |
75332e |
+++ b/drivers/scsi/qla2xxx/qla_nx.h
|
|
Daniel Wagner |
75332e |
@@ -541,14 +541,18 @@
|
|
Daniel Wagner |
75332e |
#define QLA82XX_CRB_DRV_IDC_VERSION (QLA82XX_CAM_RAM(0x174))
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* Every driver should use these Device State */
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_COLD 1
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_INITIALIZING 2
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_READY 3
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_NEED_RESET 4
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_NEED_QUIESCENT 5
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_FAILED 6
|
|
Daniel Wagner |
75332e |
-#define QLA8XXX_DEV_QUIESCENT 7
|
|
Daniel Wagner |
75332e |
-#define MAX_STATES 8 /* Increment if new state added */
|
|
Daniel Wagner |
75332e |
+enum {
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_UNKNOWN,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_COLD,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_INITIALIZING,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_READY,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_NEED_RESET,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_NEED_QUIESCENT,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_FAILED,
|
|
Daniel Wagner |
75332e |
+ QLA8XXX_DEV_QUIESCENT,
|
|
Daniel Wagner |
75332e |
+ MAX_STATES, /* Increment if new state added */
|
|
Daniel Wagner |
75332e |
+};
|
|
Daniel Wagner |
75332e |
+
|
|
Daniel Wagner |
75332e |
#define QLA8XXX_BAD_VALUE 0xbad0bad0
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
#define QLA82XX_IDC_VERSION 1
|
|
Daniel Wagner |
75332e |
--- a/drivers/scsi/qla2xxx/qla_nx2.c
|
|
Daniel Wagner |
75332e |
+++ b/drivers/scsi/qla2xxx/qla_nx2.c
|
|
Daniel Wagner |
75332e |
@@ -1939,8 +1939,7 @@ qla8044_device_state_handler(struct scsi
|
|
Daniel Wagner |
75332e |
dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX);
|
|
Daniel Wagner |
75332e |
ql_dbg(ql_dbg_p3p, vha, 0xb0ce,
|
|
Daniel Wagner |
75332e |
"Device state is 0x%x = %s\n",
|
|
Daniel Wagner |
75332e |
- dev_state, dev_state < MAX_STATES ?
|
|
Daniel Wagner |
75332e |
- qdev_state(dev_state) : "Unknown");
|
|
Daniel Wagner |
75332e |
+ dev_state, qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* wait for 30 seconds for device to go ready */
|
|
Daniel Wagner |
75332e |
dev_init_timeout = jiffies + (ha->fcoe_dev_init_timeout * HZ);
|
|
Daniel Wagner |
75332e |
@@ -1953,8 +1952,7 @@ qla8044_device_state_handler(struct scsi
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_warn, vha, 0xb0cf,
|
|
Daniel Wagner |
75332e |
"%s: Device Init Failed 0x%x = %s\n",
|
|
Daniel Wagner |
75332e |
QLA2XXX_DRIVER_NAME, dev_state,
|
|
Daniel Wagner |
75332e |
- dev_state < MAX_STATES ?
|
|
Daniel Wagner |
75332e |
- qdev_state(dev_state) : "Unknown");
|
|
Daniel Wagner |
75332e |
+ qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
qla8044_wr_direct(vha,
|
|
Daniel Wagner |
75332e |
QLA8044_CRB_DEV_STATE_INDEX,
|
|
Daniel Wagner |
75332e |
QLA8XXX_DEV_FAILED);
|
|
Daniel Wagner |
75332e |
@@ -1964,8 +1962,7 @@ qla8044_device_state_handler(struct scsi
|
|
Daniel Wagner |
75332e |
dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX);
|
|
Daniel Wagner |
75332e |
ql_log(ql_log_info, vha, 0xb0d0,
|
|
Daniel Wagner |
75332e |
"Device state is 0x%x = %s\n",
|
|
Daniel Wagner |
75332e |
- dev_state, dev_state < MAX_STATES ?
|
|
Daniel Wagner |
75332e |
- qdev_state(dev_state) : "Unknown");
|
|
Daniel Wagner |
75332e |
+ dev_state, qdev_state(dev_state));
|
|
Daniel Wagner |
75332e |
|
|
Daniel Wagner |
75332e |
/* NOTE: Make sure idc unlocked upon exit of switch statement */
|
|
Daniel Wagner |
75332e |
switch (dev_state) {
|