diff options
Diffstat (limited to 'net/bridge/br_multicast.c')
| -rw-r--r-- | net/bridge/br_multicast.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 27ae946363f..eb5b256ffc8 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -1435,7 +1435,7 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,  	struct icmp6hdr *icmp6h;  	u8 nexthdr;  	unsigned len; -	unsigned offset; +	int offset;  	int err;  	if (!pskb_may_pull(skb, sizeof(*ip6h))) @@ -1728,13 +1728,9 @@ unlock:  int br_multicast_toggle(struct net_bridge *br, unsigned long val)  {  	struct net_bridge_port *port; -	int err = -ENOENT; +	int err = 0;  	spin_lock(&br->multicast_lock); -	if (!netif_running(br->dev)) -		goto unlock; - -	err = 0;  	if (br->multicast_disabled == !val)  		goto unlock; @@ -1742,6 +1738,9 @@ int br_multicast_toggle(struct net_bridge *br, unsigned long val)  	if (br->multicast_disabled)  		goto unlock; +	if (!netif_running(br->dev)) +		goto unlock; +  	if (br->mdb) {  		if (br->mdb->old) {  			err = -EEXIST;  |