diff mbox

[net-next,v3,12/13] net: bridge: Remove FDB deletion through switchdev object

Message ID 1502025351-41261-13-git-send-email-arkadis@mellanox.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Arkadi Sharshevsky Aug. 6, 2017, 1:15 p.m. UTC
At this point no driver supports FDB add/del through switchdev object
but rather via notification chain, thus, it is removed.

Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
---
 net/bridge/br_fdb.c | 18 ------------------
 1 file changed, 18 deletions(-)

Comments

Ivan Vecera Aug. 7, 2017, 10:31 a.m. UTC | #1
On 6.8.2017 15:15, Arkadi Sharshevsky wrote:
> At this point no driver supports FDB add/del through switchdev object
> but rather via notification chain, thus, it is removed.
> 
> Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
> Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
> ---
>  net/bridge/br_fdb.c | 18 ------------------
>  1 file changed, 18 deletions(-)
> 
> diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
> index a5e4a73..a79b648 100644
> --- a/net/bridge/br_fdb.c
> +++ b/net/bridge/br_fdb.c
> @@ -169,29 +169,11 @@ static void fdb_del_hw_addr(struct net_bridge *br, const unsigned char *addr)
>  	}
>  }
>  
> -static void fdb_del_external_learn(struct net_bridge_fdb_entry *f)
> -{
> -	struct switchdev_obj_port_fdb fdb = {
> -		.obj = {
> -			.orig_dev = f->dst->dev,
> -			.id = SWITCHDEV_OBJ_ID_PORT_FDB,
> -			.flags = SWITCHDEV_F_DEFER,
> -		},
> -		.vid = f->vlan_id,
> -	};
> -
> -	ether_addr_copy(fdb.addr, f->addr.addr);
> -	switchdev_port_obj_del(f->dst->dev, &fdb.obj);
> -}
> -
>  static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f)
>  {
>  	if (f->is_static)
>  		fdb_del_hw_addr(br, f->addr.addr);
>  
> -	if (f->added_by_external_learn)
> -		fdb_del_external_learn(f);
> -
>  	hlist_del_init_rcu(&f->hlist);
>  	fdb_notify(br, f, RTM_DELNEIGH);
>  	call_rcu(&f->rcu, fdb_rcu_free);
> 
Reviewed-by: Ivan Vecera <ivecera@redhat.com>
Jiri Pirko Aug. 7, 2017, 10:36 a.m. UTC | #2
Sun, Aug 06, 2017 at 03:15:50PM CEST, arkadis@mellanox.com wrote:
>At this point no driver supports FDB add/del through switchdev object
>but rather via notification chain, thus, it is removed.
>
>Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
>Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>

Acked-by: Jiri Pirko <jiri@mellanox.com>
Florian Fainelli Aug. 7, 2017, 6:12 p.m. UTC | #3
On 08/06/2017 06:15 AM, Arkadi Sharshevsky wrote:
> At this point no driver supports FDB add/del through switchdev object
> but rather via notification chain, thus, it is removed.
> 
> Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
> Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
diff mbox

Patch

diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index a5e4a73..a79b648 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -169,29 +169,11 @@  static void fdb_del_hw_addr(struct net_bridge *br, const unsigned char *addr)
 	}
 }
 
-static void fdb_del_external_learn(struct net_bridge_fdb_entry *f)
-{
-	struct switchdev_obj_port_fdb fdb = {
-		.obj = {
-			.orig_dev = f->dst->dev,
-			.id = SWITCHDEV_OBJ_ID_PORT_FDB,
-			.flags = SWITCHDEV_F_DEFER,
-		},
-		.vid = f->vlan_id,
-	};
-
-	ether_addr_copy(fdb.addr, f->addr.addr);
-	switchdev_port_obj_del(f->dst->dev, &fdb.obj);
-}
-
 static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f)
 {
 	if (f->is_static)
 		fdb_del_hw_addr(br, f->addr.addr);
 
-	if (f->added_by_external_learn)
-		fdb_del_external_learn(f);
-
 	hlist_del_init_rcu(&f->hlist);
 	fdb_notify(br, f, RTM_DELNEIGH);
 	call_rcu(&f->rcu, fdb_rcu_free);