[PATCH 3.16.y-ckt 058/118] bridge: mdb: start delete timer for temp static entries

From: Luis Henriques
Date: Wed Aug 12 2015 - 05:28:37 EST

3.16.7-ckt16 -stable review patch. If anyone has any objections, please let me know.


From: Satish Ashok <sashok@xxxxxxxxxxxxxxxxxxx>

commit f7e2965db17dd3b60f05fad88e7afc79ea75b48f upstream.

Start the delete timer when adding temp static entries so they can expire.

Signed-off-by: Satish Ashok <sashok@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Fixes: ccb1c31a7a87 ("bridge: add flags to distinguish permanent mdb entires")
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Luis Henriques <luis.henriques@xxxxxxxxxxxxx>
net/bridge/br_mdb.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
index d8b1833a363e..21927405cf4e 100644
--- a/net/bridge/br_mdb.c
+++ b/net/bridge/br_mdb.c
@@ -322,6 +322,7 @@ static int br_mdb_add_group(struct net_bridge *br, struct net_bridge_port *port,
struct net_bridge_port_group *p;
struct net_bridge_port_group __rcu **pp;
struct net_bridge_mdb_htable *mdb;
+ unsigned long now = jiffies;
int err;

mdb = mlock_dereference(br->mdb, br);
@@ -346,6 +347,8 @@ static int br_mdb_add_group(struct net_bridge *br, struct net_bridge_port *port,
if (unlikely(!p))
return -ENOMEM;
rcu_assign_pointer(*pp, p);
+ if (state == MDB_TEMPORARY)
+ mod_timer(&p->timer, now + br->multicast_membership_interval);

br_mdb_notify(br->dev, port, group, RTM_NEWMDB);
return 0;
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/