Subject: Re: [PATCH net] dsa: fix promiscuity leak on slave dev open error

From: Andrew Lunn <[email-masked]>
Date: Fri, 26 Jun 2015 17:04:01 +0200

On Thu, Jun 25, 2015 at 04:50:13PM +0300, [email-masked] wrote:
> From: Gilad Ben-Yossef <[email-masked]>
> 
> DSA master netdev promiscuity counter was not being properly
> decremented on slave device open error path.
> 
> Signed-off-by: Gilad Ben-Yossef <[email-masked]>
> CC: Gilad Ben-Yossef <[email-masked]>
> CC: David S. Miller <[email-masked]>
> CC: Florian Fainelli <[email-masked]>
> CC: Guenter Roeck <[email-masked]>
> CC: Andrew Lunn <[email-masked]>
> CC: Scott Feldman <[email-masked]>

Hi Gilad

Acked-by: Andrew Lunn <[email-masked]>

FYI: I grep'ed the whole kernel. This seems to be the only place 0 is
passed to dev_set_promiscuity(), i.e. the same bug is not present
anywhere else.

Thanks
	Andrew

> ---
>  net/dsa/slave.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/net/dsa/slave.c b/net/dsa/slave.c
> index 04ffad3..0917123 100644
> --- a/net/dsa/slave.c
> +++ b/net/dsa/slave.c
> @@ -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);
> -- 
> 1.7.1
>