X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=net%2Fbridge%2Fbr_fdb.c;h=d9f04864d15d859d0ada8bbb57564999e55eb676;hb=0f9005a6f7a82f4aacbd72f7b92322a8ca1c3f97;hp=3a73b8c94271c94beaf3159a078a4fa46c2bb6b0;hpb=74293759002aa7db0179158c20676a034614577b;p=powerpc.git diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 3a73b8c942..d9f04864d1 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -128,7 +128,10 @@ void br_fdb_cleanup(unsigned long _data) mod_timer(&br->gc_timer, jiffies + HZ/10); } -void br_fdb_delete_by_port(struct net_bridge *br, struct net_bridge_port *p) + +void br_fdb_delete_by_port(struct net_bridge *br, + const struct net_bridge_port *p, + int do_all) { int i; @@ -142,6 +145,8 @@ void br_fdb_delete_by_port(struct net_bridge *br, struct net_bridge_port *p) if (f->dst != p) continue; + if (f->is_static && !do_all) + continue; /* * if multiple ports all have the same device address * then when one port is deleted, assign