|
@@ -664,6 +664,7 @@ static int netconsole_netdev_event(struct notifier_block *this,
|
|
|
unsigned long flags;
|
|
|
struct netconsole_target *nt;
|
|
|
struct net_device *dev = ptr;
|
|
|
+ bool stopped = false;
|
|
|
|
|
|
if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER ||
|
|
|
event == NETDEV_BONDING_DESLAVE || event == NETDEV_GOING_DOWN))
|
|
@@ -690,13 +691,14 @@ static int netconsole_netdev_event(struct notifier_block *this,
|
|
|
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 (event == NETDEV_UNREGISTER || event == NETDEV_BONDING_DESLAVE)
|
|
|
+ if (stopped && (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");
|