[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211025222415.983883-10-vladimir.oltean@nxp.com>
Date: Tue, 26 Oct 2021 01:24:09 +0300
From: Vladimir Oltean <vladimir.oltean@....com>
To: netdev@...r.kernel.org, Roopa Prabhu <roopa@...dia.com>,
Nikolay Aleksandrov <nikolay@...dia.com>,
Ido Schimmel <idosch@...dia.com>
Cc: Jakub Kicinski <kuba@...nel.org>,
"David S. Miller" <davem@...emloft.net>,
Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>,
Vivien Didelot <vivien.didelot@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
Jiri Pirko <jiri@...dia.com>
Subject: [RFC PATCH net-next 09/15] net: bridge: rename fdb_notify to br_fdb_notify
This change creates a wrapper over fdb_notify() called br_fdb_notify(),
with the same behavior.
A future change will introduce another variant, br_fdb_notify_async(),
that actually cares about the deferred return code of
br_switchdev_fdb_notify().
Signed-off-by: Vladimir Oltean <vladimir.oltean@....com>
---
net/bridge/br_fdb.c | 32 +++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index 421b8960945a..2095bdf24e42 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -178,16 +178,12 @@ static inline size_t fdb_nlmsg_size(void)
}
static void fdb_notify(struct net_bridge *br,
- const struct net_bridge_fdb_entry *fdb, int type,
- bool swdev_notify)
+ const struct net_bridge_fdb_entry *fdb, int type)
{
struct net *net = dev_net(br->dev);
struct sk_buff *skb;
int err = -ENOBUFS;
- if (swdev_notify)
- br_switchdev_fdb_notify(br, fdb, type);
-
skb = nlmsg_new(fdb_nlmsg_size(), GFP_ATOMIC);
if (skb == NULL)
goto errout;
@@ -205,6 +201,16 @@ static void fdb_notify(struct net_bridge *br,
rtnl_set_sk_err(net, RTNLGRP_NEIGH, err);
}
+static void br_fdb_notify(struct net_bridge *br,
+ const struct net_bridge_fdb_entry *fdb, int type,
+ bool swdev_notify)
+{
+ if (swdev_notify)
+ br_switchdev_fdb_notify(br, fdb, type);
+
+ fdb_notify(br, fdb, type);
+}
+
static struct net_bridge_fdb_entry *fdb_find_rcu(struct rhashtable *tbl,
const unsigned char *addr,
__u16 vid)
@@ -322,7 +328,7 @@ static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f,
hlist_del_init_rcu(&f->fdb_node);
rhashtable_remove_fast(&br->fdb_hash_tbl, &f->rhnode,
br_fdb_rht_params);
- fdb_notify(br, f, RTM_DELNEIGH, swdev_notify);
+ br_fdb_notify(br, f, RTM_DELNEIGH, swdev_notify);
call_rcu(&f->rcu, fdb_rcu_free);
}
@@ -428,7 +434,7 @@ static int fdb_add_local(struct net_bridge *br, struct net_bridge_port *source,
return -ENOMEM;
fdb_add_hw_addr(br, addr);
- fdb_notify(br, fdb, RTM_NEWNEIGH, true);
+ br_fdb_notify(br, fdb, RTM_NEWNEIGH, true);
return 0;
}
@@ -534,7 +540,7 @@ void br_fdb_cleanup(struct work_struct *work)
this_timer - now);
else if (!test_and_set_bit(BR_FDB_NOTIFY_INACTIVE,
&f->flags))
- fdb_notify(br, f, RTM_NEWNEIGH, false);
+ br_fdb_notify(br, f, RTM_NEWNEIGH, false);
}
continue;
}
@@ -739,7 +745,7 @@ void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source,
set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
if (unlikely(fdb_modified)) {
trace_br_fdb_update(br, source, addr, vid, flags);
- fdb_notify(br, fdb, RTM_NEWNEIGH, true);
+ br_fdb_notify(br, fdb, RTM_NEWNEIGH, true);
}
}
} else {
@@ -747,7 +753,7 @@ void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source,
fdb = fdb_create(br, source, addr, vid, flags);
if (fdb) {
trace_br_fdb_update(br, source, addr, vid, flags);
- fdb_notify(br, fdb, RTM_NEWNEIGH, true);
+ br_fdb_notify(br, fdb, RTM_NEWNEIGH, true);
}
/* else we lose race and someone else inserts
* it first, don't bother updating
@@ -953,7 +959,7 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source,
if (modified) {
if (refresh)
fdb->updated = jiffies;
- fdb_notify(br, fdb, RTM_NEWNEIGH, true);
+ br_fdb_notify(br, fdb, RTM_NEWNEIGH, true);
}
spin_unlock_bh(&br->hash_lock);
@@ -1240,7 +1246,7 @@ int br_fdb_external_learn_add(struct net_bridge *br, struct net_bridge_port *p,
err = -ENOMEM;
goto err_unlock;
}
- fdb_notify(br, fdb, RTM_NEWNEIGH, swdev_notify);
+ br_fdb_notify(br, fdb, RTM_NEWNEIGH, swdev_notify);
} else {
fdb->updated = jiffies;
@@ -1265,7 +1271,7 @@ int br_fdb_external_learn_add(struct net_bridge *br, struct net_bridge_port *p,
set_bit(BR_FDB_LOCAL, &fdb->flags);
if (modified)
- fdb_notify(br, fdb, RTM_NEWNEIGH, swdev_notify);
+ br_fdb_notify(br, fdb, RTM_NEWNEIGH, swdev_notify);
}
err_unlock:
--
2.25.1
Powered by blists - more mailing lists