diff options
author | Sukadev Bhattiprolu <sukadev@linux.ibm.com> | 2021-09-08 19:58:20 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-09-09 12:54:55 +0300 |
commit | 273c29e944bda9a20a30c26cfc34c9a3f363280b (patch) | |
tree | 278812fbcc86bc67ba08752ca05f23291d48a575 | |
parent | 3c4cea8fa7f71f00c5279547043a84bc2a4d8b8c (diff) | |
download | linux-273c29e944bda9a20a30c26cfc34c9a3f363280b.tar.xz |
ibmvnic: check failover_pending in login response
If a failover occurs before a login response is received, the login
response buffer maybe undefined. Check that there was no failover
before accessing the login response buffer.
Fixes: 032c5e82847a ("Driver for IBM System i/p VNIC protocol")
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/ibm/ibmvnic.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 6aa6ff89a765..a4579b340120 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -4708,6 +4708,14 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq, return 0; } + if (adapter->failover_pending) { + adapter->init_done_rc = -EAGAIN; + netdev_dbg(netdev, "Failover pending, ignoring login response\n"); + complete(&adapter->init_done); + /* login response buffer will be released on reset */ + return 0; + } + netdev->mtu = adapter->req_mtu - ETH_HLEN; netdev_dbg(adapter->netdev, "Login Response Buffer:\n"); |