diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c index 7df269092103c3e00dc79ecc7904c4f859f62cce..5f3950f00f73b1395f68c3a66c7ca73dde376b3d 100644 --- a/net/bridge/br_vlan.c +++ b/net/bridge/br_vlan.c @@ -677,6 +677,11 @@ void br_vlan_flush(struct net_bridge *br) ASSERT_RTNL(); + /* delete auto-added default pvid local fdb before flushing vlans + * otherwise it will be leaked on bridge device init failure + */ + br_fdb_delete_by_port(br, NULL, 0, 1); + vg = br_vlan_group(br); __vlan_flush(vg); RCU_INIT_POINTER(br->vlgrp, NULL);