]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
netconsole: enable netconsole can make net_device refcnt incorrent
authorGao feng <gaofeng@cn.fujitsu.com>
Tue, 11 Oct 2011 16:08:11 +0000 (16:08 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Nov 2011 17:36:27 +0000 (09:36 -0800)
[ Upstream commit d5123480b1d6f7d1a5fe1a13520cef88fb5d4c84 ]

There is no check if netconsole is enabled current.
so when exec echo 1 > enabled;
the reference of net_device will increment always.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Acked-by: Flavio Leitner <fbl@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/netconsole.c

index dfc82720065ac0d68bb657dbf19150ff7dd4c89e..4840ab7e7f8a5870074ec1d36398c0fc406ff388 100644 (file)
@@ -307,6 +307,11 @@ static ssize_t store_enabled(struct netconsole_target *nt,
                return err;
        if (enabled < 0 || enabled > 1)
                return -EINVAL;
+       if (enabled == nt->enabled) {
+               printk(KERN_INFO "netconsole: network logging has already %s\n",
+                               nt->enabled ? "started" : "stopped");
+               return -EINVAL;
+       }
 
        if (enabled) {  /* 1 */