From: Jeff Mahoney <>

[ Upstream commit a09c0fc3f5d775231f1884e0e66c495065a461ee ]

We call pci_set_drvdata immediately after calling register_netdev,
which leaves a window where tasks writing to the sriov_numvfs sysfs
attribute can sneak in and crash the kernel.  register_netdev cleans
up after itself so placing pci_set_drvdata immediately before it
should preserve the intent of commit 0fb6a55cc31f ("ixgbe: fix crash
on rmmod after probe fail").

Fixes: 0fb6a55cc31f ("ixgbe: fix crash on rmmod after probe fail")
Signed-off-by: Jeff Mahoney <>
Tested-by: Andrew Bowers <>
Signed-off-by: Jeff Kirsher <>
Signed-off-by: Sasha Levin <>
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 
index 3283e8e1f409..72faaf4411b5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -8963,11 +8963,11 @@ skip_sriov:
        strcpy(netdev->name, "eth%d");
+       pci_set_drvdata(pdev, adapter);
        err = register_netdev(netdev);
        if (err)
                goto err_register;
-       pci_set_drvdata(pdev, adapter);
        /* power down the optics for 82599 SFP+ fiber */
        if (hw->mac.ops.disable_tx_laser)

Reply via email to