ibmvnic: register netdev after init of adapter
authorSukadev Bhattiprolu <sukadev@linux.ibm.com>
Fri, 25 Feb 2022 06:23:55 +0000 (22:23 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Mar 2022 18:09:35 +0000 (19:09 +0100)
commit 570425f8c7c18b14fa8a2a58a0adb431968ad118 upstream.

Finish initializing the adapter before registering netdev so state
is consistent.

Fixes: c26eba03e407 ("ibmvnic: Update reset infrastructure to support tunable parameters")
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/ibm/ibmvnic.c

index c7be7ab131b197dc34eaf26562c34a643f0bc2be..766e44a8c32100ae7b8c07e30346b927f1d6d5f0 100644 (file)
@@ -5383,6 +5383,12 @@ static int ibmvnic_probe(struct vio_dev *dev, const struct vio_device_id *id)
                goto ibmvnic_dev_file_err;
 
        netif_carrier_off(netdev);
+
+       adapter->state = VNIC_PROBED;
+
+       adapter->wait_for_reset = false;
+       adapter->last_reset_time = jiffies;
+
        rc = register_netdev(netdev);
        if (rc) {
                dev_err(&dev->dev, "failed to register netdev rc=%d\n", rc);
@@ -5390,10 +5396,6 @@ static int ibmvnic_probe(struct vio_dev *dev, const struct vio_device_id *id)
        }
        dev_info(&dev->dev, "ibmvnic registered\n");
 
-       adapter->state = VNIC_PROBED;
-
-       adapter->wait_for_reset = false;
-       adapter->last_reset_time = jiffies;
        return 0;
 
 ibmvnic_register_fail: