bool stopped = false;
 
        if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER ||
-             event == NETDEV_BONDING_DESLAVE || event == NETDEV_GOING_DOWN))
+             event == NETDEV_BONDING_DESLAVE || event == NETDEV_JOIN))
                goto done;
 
        spin_lock_irqsave(&target_list_lock, flags);
-restart:
        list_for_each_entry(nt, &target_list, list) {
                netconsole_target_get(nt);
                if (nt->np.dev == dev) {
                        case NETDEV_CHANGENAME:
                                strlcpy(nt->np.dev_name, dev->name, IFNAMSIZ);
                                break;
+                       case NETDEV_BONDING_DESLAVE:
+                       case NETDEV_JOIN:
                        case NETDEV_UNREGISTER:
                                /*
                                 * rtnl_lock already held
                                        dev_put(nt->np.dev);
                                        nt->np.dev = NULL;
                                        netconsole_target_put(nt);
-                                       goto restart;
                                }
-                               /* Fall through */
-                       case NETDEV_GOING_DOWN:
-                       case NETDEV_BONDING_DESLAVE:
                                nt->enabled = 0;
                                stopped = true;
                                break;
                netconsole_target_put(nt);
        }
        spin_unlock_irqrestore(&target_list_lock, flags);
-       if (stopped && (event == NETDEV_UNREGISTER || event == NETDEV_BONDING_DESLAVE))
+       if (stopped) {
                printk(KERN_INFO "netconsole: network logging stopped on "
-                       "interface %s as it %s\n",  dev->name,
-                       event == NETDEV_UNREGISTER ? "unregistered" : "released slaves");
+                      "interface %s as it ", dev->name);
+               switch (event) {
+               case NETDEV_UNREGISTER:
+                       printk(KERN_CONT "unregistered\n");
+                       break;
+               case NETDEV_BONDING_DESLAVE:
+                       printk(KERN_CONT "released slaves\n");
+                       break;
+               case NETDEV_JOIN:
+                       printk(KERN_CONT "is joining a master device\n");
+                       break;
+               }
+       }
 
 done:
        return NOTIFY_DONE;
 
 #define NETDEV_UNREGISTER_BATCH 0x0011
 #define NETDEV_BONDING_DESLAVE  0x0012
 #define NETDEV_NOTIFY_PEERS    0x0013
+#define NETDEV_JOIN            0x0014
 
 #define SYS_DOWN       0x0001  /* Notify of system down */
 #define SYS_RESTART    SYS_DOWN