dsa: fix promiscuity leak on slave dev open error
authorGilad Ben-Yossef <gilad@benyossef.com>
Thu, 25 Jun 2015 13:50:13 +0000 (16:50 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Jun 2015 23:57:08 +0000 (16:57 -0700)
DSA master netdev promiscuity counter was not being properly
decremented on slave device open error path.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
CC: Gilad Ben-Yossef <giladb@ezchip.com>
CC: David S. Miller <davem@davemloft.net>
CC: Florian Fainelli <f.fainelli@gmail.com>
CC: Guenter Roeck <linux@roeck-us.net>
CC: Andrew Lunn <andrew@lunn.ch>
CC: Scott Feldman <sfeldma@gmail.com>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c

index 04ffad311704852a5d2c35c99eea2f1c4293f5e1..0917123790eaf09b001c97a733039185fdb0a800 100644 (file)
@@ -112,7 +112,7 @@ static int dsa_slave_open(struct net_device *dev)
 
 clear_promisc:
        if (dev->flags & IFF_PROMISC)
-               dev_set_promiscuity(master, 0);
+               dev_set_promiscuity(master, -1);
 clear_allmulti:
        if (dev->flags & IFF_ALLMULTI)
                dev_set_allmulti(master, -1);