Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756229AbbEVDLg (ORCPT ); Thu, 21 May 2015 23:11:36 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:36964 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750727AbbEVDLd convert rfc822-to-8bit (ORCPT ); Thu, 21 May 2015 23:11:33 -0400 MIME-Version: 1.0 In-Reply-To: <1432256161-4425-1-git-send-email-linus.luessing@c0d3.blue> References: <1432256161-4425-1-git-send-email-linus.luessing@c0d3.blue> Date: Thu, 21 May 2015 20:11:32 -0700 Message-ID: Subject: Re: [PATCH net-next] bridge: allow setting hash_max + multicast_router if interface is down From: Cong Wang To: =?UTF-8?Q?Linus_L=C3=BCssing?= Cc: netdev , "bridge@lists.linux-foundation.org" , "linux-kernel@vger.kernel.org" , Stephen Hemminger , Herbert Xu , "David S. Miller" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2077 Lines: 68 On Thu, May 21, 2015 at 5:56 PM, Linus Lüssing wrote: > diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c > index 2d69d5c..066199e 100644 > --- a/net/bridge/br_multicast.c > +++ b/net/bridge/br_multicast.c > @@ -1775,8 +1775,6 @@ int br_multicast_set_router(struct net_bridge *br, unsigned long val) > int err = -ENOENT; > Nit: err can be initialized to -EINVAL now. > spin_lock_bh(&br->multicast_lock); > - if (!netif_running(br->dev)) > - goto unlock; > > switch (val) { > case 0: > @@ -1793,7 +1791,6 @@ int br_multicast_set_router(struct net_bridge *br, unsigned long val) > break; > } > > -unlock: > spin_unlock_bh(&br->multicast_lock); > > return err; > @@ -1802,18 +1799,15 @@ unlock: > int br_multicast_set_port_router(struct net_bridge_port *p, unsigned long val) > { > struct net_bridge *br = p->br; > - int err = -ENOENT; > + int err = 0; > > spin_lock(&br->multicast_lock); Not related with your patch, but why we don't need to disable bh here? For me it looks like we do use p->rlist in BH context, but I could easily miss something here. > - if (!netif_running(br->dev) || p->state == BR_STATE_DISABLED) > - goto unlock; > > switch (val) { > case 0: > case 1: > case 2: > p->multicast_router = val; > - err = 0; > > if (val < 2 && !hlist_unhashed(&p->rlist)) > hlist_del_init_rcu(&p->rlist); > @@ -1834,7 +1828,6 @@ int br_multicast_set_port_router(struct net_bridge_port *p, unsigned long val) > break; > } > > -unlock: > spin_unlock(&br->multicast_lock); > > return err; Thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/