|
@@ -8206,7 +8206,6 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
SET_NETDEV_DEV(netdev, &pdev->dev);
|
|
SET_NETDEV_DEV(netdev, &pdev->dev);
|
|
|
|
|
|
adapter = netdev_priv(netdev);
|
|
adapter = netdev_priv(netdev);
|
|
- pci_set_drvdata(pdev, adapter);
|
|
|
|
|
|
|
|
adapter->netdev = netdev;
|
|
adapter->netdev = netdev;
|
|
adapter->pdev = pdev;
|
|
adapter->pdev = pdev;
|
|
@@ -8486,6 +8485,8 @@ skip_sriov:
|
|
if (err)
|
|
if (err)
|
|
goto err_register;
|
|
goto err_register;
|
|
|
|
|
|
|
|
+ pci_set_drvdata(pdev, adapter);
|
|
|
|
+
|
|
/* power down the optics for 82599 SFP+ fiber */
|
|
/* power down the optics for 82599 SFP+ fiber */
|
|
if (hw->mac.ops.disable_tx_laser)
|
|
if (hw->mac.ops.disable_tx_laser)
|
|
hw->mac.ops.disable_tx_laser(hw);
|
|
hw->mac.ops.disable_tx_laser(hw);
|
|
@@ -8565,9 +8566,14 @@ err_dma:
|
|
static void ixgbe_remove(struct pci_dev *pdev)
|
|
static void ixgbe_remove(struct pci_dev *pdev)
|
|
{
|
|
{
|
|
struct ixgbe_adapter *adapter = pci_get_drvdata(pdev);
|
|
struct ixgbe_adapter *adapter = pci_get_drvdata(pdev);
|
|
- struct net_device *netdev = adapter->netdev;
|
|
|
|
|
|
+ struct net_device *netdev;
|
|
bool disable_dev;
|
|
bool disable_dev;
|
|
|
|
|
|
|
|
+ /* if !adapter then we already cleaned up in probe */
|
|
|
|
+ if (!adapter)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ netdev = adapter->netdev;
|
|
ixgbe_dbg_adapter_exit(adapter);
|
|
ixgbe_dbg_adapter_exit(adapter);
|
|
|
|
|
|
set_bit(__IXGBE_REMOVING, &adapter->state);
|
|
set_bit(__IXGBE_REMOVING, &adapter->state);
|