cnic: Improve NETDEV_UP event handling
[pandora-kernel.git] / drivers / net / cnic.c
index a529bde..6c544b3 100644 (file)
@@ -5342,7 +5342,7 @@ static int cnic_netdev_event(struct notifier_block *this, unsigned long event,
 
        dev = cnic_from_netdev(netdev);
 
-       if (!dev && (event == NETDEV_REGISTER || event == NETDEV_UP)) {
+       if (!dev && (event == NETDEV_REGISTER || netif_running(netdev))) {
                /* Check for the hot-plug device */
                dev = is_cnic_dev(netdev);
                if (dev) {
@@ -5358,7 +5358,7 @@ static int cnic_netdev_event(struct notifier_block *this, unsigned long event,
                else if (event == NETDEV_UNREGISTER)
                        cnic_ulp_exit(dev);
 
-               if (event == NETDEV_UP) {
+               if (event == NETDEV_UP || (new_dev && netif_running(netdev))) {
                        if (cnic_register_netdev(dev) != 0) {
                                cnic_put(dev);
                                goto done;