ixgbevf: Fix Oops
authorGreg Rose <gregory.v.rose@intel.com>
Wed, 17 Nov 2010 03:27:19 +0000 (19:27 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 17 Nov 2010 03:27:19 +0000 (19:27 -0800)
The driver is calling netif_carrier_off and netif_tx_stop_all_queues
before the netdevice is registered which causes an Oops.  Move call
to netif_carrier_off after the netdevice is registered and remove
call to netif_tx_stop_all_queues because there aren't any TX
queues yet.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ixgbevf/ixgbevf_main.c

index 1d7de555e6302ab3c8d341bd2d4b39eaa3345333..5b8063cb4e6c44c213faac2c59aa54ba639a777c 100644 (file)
@@ -3425,10 +3425,6 @@ static int __devinit ixgbevf_probe(struct pci_dev *pdev,
        if (hw->mac.ops.get_bus_info)
                hw->mac.ops.get_bus_info(hw);
 
-
-       netif_carrier_off(netdev);
-       netif_tx_stop_all_queues(netdev);
-
        strcpy(netdev->name, "eth%d");
 
        err = register_netdev(netdev);
@@ -3437,6 +3433,8 @@ static int __devinit ixgbevf_probe(struct pci_dev *pdev,
 
        adapter->netdev_registered = true;
 
+       netif_carrier_off(netdev);
+
        ixgbevf_init_last_counter_stats(adapter);
 
        /* print the MAC address */