Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[safe/jmp/linux-2.6] / drivers / net / netconsole.c
index a361dea..ca142c4 100644 (file)
@@ -665,7 +665,8 @@ static int netconsole_netdev_event(struct notifier_block *this,
        struct netconsole_target *nt;
        struct net_device *dev = ptr;
 
-       if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER))
+       if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER ||
+             event == NETDEV_BONDING_DESLAVE || event == NETDEV_GOING_DOWN))
                goto done;
 
        spin_lock_irqsave(&target_list_lock, flags);
@@ -677,19 +678,21 @@ static int netconsole_netdev_event(struct notifier_block *this,
                                strlcpy(nt->np.dev_name, dev->name, IFNAMSIZ);
                                break;
                        case NETDEV_UNREGISTER:
-                               if (!nt->enabled)
-                                       break;
                                netpoll_cleanup(&nt->np);
+                               /* Fall through */
+                       case NETDEV_GOING_DOWN:
+                       case NETDEV_BONDING_DESLAVE:
                                nt->enabled = 0;
-                               printk(KERN_INFO "netconsole: network logging stopped"
-                                       ", interface %s unregistered\n",
-                                       dev->name);
                                break;
                        }
                }
                netconsole_target_put(nt);
        }
        spin_unlock_irqrestore(&target_list_lock, flags);
+       if (event == NETDEV_UNREGISTER || event == NETDEV_BONDING_DESLAVE)
+               printk(KERN_INFO "netconsole: network logging stopped, "
+                       "interface %s %s\n",  dev->name,
+                       event == NETDEV_UNREGISTER ? "unregistered" : "released slaves");
 
 done:
        return NOTIFY_DONE;