Skip to content

Commit f9b0365

Browse files
committed
Merge branch 'ibmvnic-fixes-in-reset-path'
Lijun Pan says: ==================== ibmvnic: fixes in reset path Patch 1/3 and 2/3 notify peers in failover and migration reset. Patch 3/3 skips timeout reset if it is already resetting. ==================== Link: https://lore.kernel.org/r/20201120224013.46891-1-ljp@linux.ibm.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents 5aac039 + 855a631 commit f9b0365

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

drivers/net/ethernet/ibm/ibmvnic.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2074,8 +2074,11 @@ static int do_reset(struct ibmvnic_adapter *adapter,
20742074
for (i = 0; i < adapter->req_rx_queues; i++)
20752075
napi_schedule(&adapter->napi[i]);
20762076

2077-
if (adapter->reset_reason != VNIC_RESET_FAILOVER)
2077+
if (adapter->reset_reason == VNIC_RESET_FAILOVER ||
2078+
adapter->reset_reason == VNIC_RESET_MOBILITY) {
20782079
call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev);
2080+
call_netdevice_notifiers(NETDEV_RESEND_IGMP, netdev);
2081+
}
20792082

20802083
rc = 0;
20812084

@@ -2145,6 +2148,9 @@ static int do_hard_reset(struct ibmvnic_adapter *adapter,
21452148
if (rc)
21462149
return IBMVNIC_OPEN_FAILED;
21472150

2151+
call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev);
2152+
call_netdevice_notifiers(NETDEV_RESEND_IGMP, netdev);
2153+
21482154
return 0;
21492155
}
21502156

@@ -2350,6 +2356,12 @@ static void ibmvnic_tx_timeout(struct net_device *dev, unsigned int txqueue)
23502356
{
23512357
struct ibmvnic_adapter *adapter = netdev_priv(dev);
23522358

2359+
if (test_bit(0, &adapter->resetting)) {
2360+
netdev_err(adapter->netdev,
2361+
"Adapter is resetting, skip timeout reset\n");
2362+
return;
2363+
}
2364+
23532365
ibmvnic_reset(adapter, VNIC_RESET_TIMEOUT);
23542366
}
23552367

0 commit comments

Comments
 (0)