diff options
author | Sukadev Bhattiprolu <sukadev@linux.ibm.com> | 2021-09-08 08:07:03 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-09-08 13:29:49 +0300 |
commit | d437f5aa23aa2b7bd07cd44b839d7546cc17166f (patch) | |
tree | fa5a7539cfe2fdf711d43054b532c71c8fb8c2c7 | |
parent | 581edcd0c8a076eba2ec9e20db50921ee80f5cbc (diff) | |
download | linux-d437f5aa23aa2b7bd07cd44b839d7546cc17166f.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.
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 a775c69e4fd7..6aa6ff89a765 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -4700,6 +4700,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"); |