--- zzzz-none-000/linux-4.9.276/net/bridge/br_if.c 2021-07-20 14:21:16.000000000 +0000 +++ falcon-5530-750/linux-4.9.276/net/bridge/br_if.c 2023-04-05 08:19:02.000000000 +0000 @@ -262,6 +262,10 @@ struct net_bridge *br = p->br; struct net_device *dev = p->dev; +#ifdef CONFIG_MCAST_SNOOPING + br_mcast_port_cleanup(p); +#endif + sysfs_remove_link(br->ifobj, p->dev->name); nbp_delete_promisc(p); @@ -360,10 +364,17 @@ dev_hold(dev); p->dev = dev; p->path_cost = port_cost(dev); + p->learning_limit = BRPORT_LEARNING_LIMIT_UNLIMITED; p->priority = 0x8000 >> BR_PORT_BITS; p->port_no = index; - p->flags = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD; + p->flags = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | BR_BCAST_FLOOD; br_init_port(p); + +#ifdef CONFIG_MCAST_SNOOPING + br_mcast_port_init(p); + spin_lock_init(&p->mghash_lock); +#endif + br_set_state(p, BR_STATE_DISABLED); br_stp_port_timer_init(p); err = br_multicast_add_port(p); @@ -551,6 +562,10 @@ if (err) goto err6; + err = nbp_switchdev_avm_flood_ratelimit_set(br, br->avm_flood_credits_max); + if (err) + goto err6; + dev_disable_lro(dev); list_add_rcu(&p->list, &br->port_list);