Skip to content

Commit 8043ede

Browse files
committed
Merge branch 'ibmvnic-errors'
Lijun Pan says: ==================== ibmvnic: improve error printing Patch 1 prints reset reason as a string. Patch 2 prints adapter state as a string. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents c82eaa4 + 0666ef7 commit 8043ede

File tree

1 file changed

+75
-23
lines changed

1 file changed

+75
-23
lines changed

drivers/net/ethernet/ibm/ibmvnic.c

Lines changed: 75 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -827,6 +827,30 @@ static void release_napi(struct ibmvnic_adapter *adapter)
827827
adapter->napi_enabled = false;
828828
}
829829

830+
static const char *adapter_state_to_string(enum vnic_state state)
831+
{
832+
switch (state) {
833+
case VNIC_PROBING:
834+
return "PROBING";
835+
case VNIC_PROBED:
836+
return "PROBED";
837+
case VNIC_OPENING:
838+
return "OPENING";
839+
case VNIC_OPEN:
840+
return "OPEN";
841+
case VNIC_CLOSING:
842+
return "CLOSING";
843+
case VNIC_CLOSED:
844+
return "CLOSED";
845+
case VNIC_REMOVING:
846+
return "REMOVING";
847+
case VNIC_REMOVED:
848+
return "REMOVED";
849+
default:
850+
return "UNKNOWN";
851+
}
852+
}
853+
830854
static int ibmvnic_login(struct net_device *netdev)
831855
{
832856
struct ibmvnic_adapter *adapter = netdev_priv(netdev);
@@ -905,7 +929,7 @@ static int ibmvnic_login(struct net_device *netdev)
905929

906930
__ibmvnic_set_mac(netdev, adapter->mac_addr);
907931

908-
netdev_dbg(netdev, "[S:%d] Login succeeded\n", adapter->state);
932+
netdev_dbg(netdev, "[S:%s] Login succeeded\n", adapter_state_to_string(adapter->state));
909933
return 0;
910934
}
911935

@@ -1185,8 +1209,9 @@ static int ibmvnic_open(struct net_device *netdev)
11851209
* honor our setting below.
11861210
*/
11871211
if (adapter->failover_pending || (test_bit(0, &adapter->resetting))) {
1188-
netdev_dbg(netdev, "[S:%d FOP:%d] Resetting, deferring open\n",
1189-
adapter->state, adapter->failover_pending);
1212+
netdev_dbg(netdev, "[S:%s FOP:%d] Resetting, deferring open\n",
1213+
adapter_state_to_string(adapter->state),
1214+
adapter->failover_pending);
11901215
adapter->state = VNIC_OPEN;
11911216
rc = 0;
11921217
goto out;
@@ -1350,8 +1375,9 @@ static int ibmvnic_close(struct net_device *netdev)
13501375
struct ibmvnic_adapter *adapter = netdev_priv(netdev);
13511376
int rc;
13521377

1353-
netdev_dbg(netdev, "[S:%d FOP:%d FRR:%d] Closing\n",
1354-
adapter->state, adapter->failover_pending,
1378+
netdev_dbg(netdev, "[S:%s FOP:%d FRR:%d] Closing\n",
1379+
adapter_state_to_string(adapter->state),
1380+
adapter->failover_pending,
13551381
adapter->force_reset_recovery);
13561382

13571383
/* If device failover is pending, just set device state and return.
@@ -1911,6 +1937,26 @@ static int ibmvnic_set_mac(struct net_device *netdev, void *p)
19111937
return rc;
19121938
}
19131939

1940+
static const char *reset_reason_to_string(enum ibmvnic_reset_reason reason)
1941+
{
1942+
switch (reason) {
1943+
case VNIC_RESET_FAILOVER:
1944+
return "FAILOVER";
1945+
case VNIC_RESET_MOBILITY:
1946+
return "MOBILITY";
1947+
case VNIC_RESET_FATAL:
1948+
return "FATAL";
1949+
case VNIC_RESET_NON_FATAL:
1950+
return "NON_FATAL";
1951+
case VNIC_RESET_TIMEOUT:
1952+
return "TIMEOUT";
1953+
case VNIC_RESET_CHANGE_PARAM:
1954+
return "CHANGE_PARAM";
1955+
default:
1956+
return "UNKNOWN";
1957+
}
1958+
}
1959+
19141960
/*
19151961
* do_reset returns zero if we are able to keep processing reset events, or
19161962
* non-zero if we hit a fatal error and must halt.
@@ -1924,9 +1970,11 @@ static int do_reset(struct ibmvnic_adapter *adapter,
19241970
int i, rc;
19251971

19261972
netdev_dbg(adapter->netdev,
1927-
"[S:%d FOP:%d] Reset reason %d, reset_state %d\n",
1928-
adapter->state, adapter->failover_pending,
1929-
rwi->reset_reason, reset_state);
1973+
"[S:%s FOP:%d] Reset reason: %s, reset_state: %s\n",
1974+
adapter_state_to_string(adapter->state),
1975+
adapter->failover_pending,
1976+
reset_reason_to_string(rwi->reset_reason),
1977+
adapter_state_to_string(reset_state));
19301978

19311979
adapter->reset_reason = rwi->reset_reason;
19321980
/* requestor of VNIC_RESET_CHANGE_PARAM already has the rtnl lock */
@@ -1986,8 +2034,8 @@ static int do_reset(struct ibmvnic_adapter *adapter,
19862034
* from VNIC_CLOSING state.
19872035
*/
19882036
netdev_dbg(netdev,
1989-
"Open changed state from %d, updating.\n",
1990-
reset_state);
2037+
"Open changed state from %s, updating.\n",
2038+
adapter_state_to_string(reset_state));
19912039
reset_state = VNIC_OPEN;
19922040
adapter->state = VNIC_CLOSING;
19932041
}
@@ -2128,8 +2176,9 @@ static int do_reset(struct ibmvnic_adapter *adapter,
21282176
if (!(adapter->reset_reason == VNIC_RESET_CHANGE_PARAM))
21292177
rtnl_unlock();
21302178

2131-
netdev_dbg(adapter->netdev, "[S:%d FOP:%d] Reset done, rc %d\n",
2132-
adapter->state, adapter->failover_pending, rc);
2179+
netdev_dbg(adapter->netdev, "[S:%s FOP:%d] Reset done, rc %d\n",
2180+
adapter_state_to_string(adapter->state),
2181+
adapter->failover_pending, rc);
21332182
return rc;
21342183
}
21352184

@@ -2139,8 +2188,8 @@ static int do_hard_reset(struct ibmvnic_adapter *adapter,
21392188
struct net_device *netdev = adapter->netdev;
21402189
int rc;
21412190

2142-
netdev_dbg(adapter->netdev, "Hard resetting driver (%d)\n",
2143-
rwi->reset_reason);
2191+
netdev_dbg(adapter->netdev, "Hard resetting driver (%s)\n",
2192+
reset_reason_to_string(rwi->reset_reason));
21442193

21452194
/* read the state and check (again) after getting rtnl */
21462195
reset_state = adapter->state;
@@ -2206,8 +2255,9 @@ static int do_hard_reset(struct ibmvnic_adapter *adapter,
22062255
/* restore adapter state if reset failed */
22072256
if (rc)
22082257
adapter->state = reset_state;
2209-
netdev_dbg(adapter->netdev, "[S:%d FOP:%d] Hard reset done, rc %d\n",
2210-
adapter->state, adapter->failover_pending, rc);
2258+
netdev_dbg(adapter->netdev, "[S:%s FOP:%d] Hard reset done, rc %d\n",
2259+
adapter_state_to_string(adapter->state),
2260+
adapter->failover_pending, rc);
22112261
return rc;
22122262
}
22132263

@@ -2286,8 +2336,8 @@ static void __ibmvnic_reset(struct work_struct *work)
22862336
if (rc) {
22872337
/* give backing device time to settle down */
22882338
netdev_dbg(adapter->netdev,
2289-
"[S:%d] Hard reset failed, waiting 60 secs\n",
2290-
adapter->state);
2339+
"[S:%s] Hard reset failed, waiting 60 secs\n",
2340+
adapter_state_to_string(adapter->state));
22912341
set_current_state(TASK_UNINTERRUPTIBLE);
22922342
schedule_timeout(60 * HZ);
22932343
}
@@ -2315,8 +2365,9 @@ static void __ibmvnic_reset(struct work_struct *work)
23152365
clear_bit_unlock(0, &adapter->resetting);
23162366

23172367
netdev_dbg(adapter->netdev,
2318-
"[S:%d FRR:%d WFR:%d] Done processing resets\n",
2319-
adapter->state, adapter->force_reset_recovery,
2368+
"[S:%s FRR:%d WFR:%d] Done processing resets\n",
2369+
adapter_state_to_string(adapter->state),
2370+
adapter->force_reset_recovery,
23202371
adapter->wait_for_reset);
23212372
}
23222373

@@ -2363,8 +2414,8 @@ static int ibmvnic_reset(struct ibmvnic_adapter *adapter,
23632414
list_for_each(entry, &adapter->rwi_list) {
23642415
tmp = list_entry(entry, struct ibmvnic_rwi, list);
23652416
if (tmp->reset_reason == reason) {
2366-
netdev_dbg(netdev, "Skipping matching reset, reason=%d\n",
2367-
reason);
2417+
netdev_dbg(netdev, "Skipping matching reset, reason=%s\n",
2418+
reset_reason_to_string(reason));
23682419
ret = EBUSY;
23692420
goto err;
23702421
}
@@ -2384,7 +2435,8 @@ static int ibmvnic_reset(struct ibmvnic_adapter *adapter,
23842435
}
23852436
rwi->reset_reason = reason;
23862437
list_add_tail(&rwi->list, &adapter->rwi_list);
2387-
netdev_dbg(adapter->netdev, "Scheduling reset (reason %d)\n", reason);
2438+
netdev_dbg(adapter->netdev, "Scheduling reset (reason %s)\n",
2439+
reset_reason_to_string(reason));
23882440
schedule_work(&adapter->ibmvnic_reset);
23892441

23902442
ret = 0;

0 commit comments

Comments
 (0)