--- zzzz-none-000/linux-4.9.279/net/bridge/br_device.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-atom-6591-750/linux-4.9.279/net/bridge/br_device.c 2023-02-08 11:43:43.000000000 +0000 @@ -189,11 +189,11 @@ static int br_change_mtu(struct net_device *dev, int new_mtu) { struct net_bridge *br = netdev_priv(dev); - if (new_mtu < 68 || new_mtu > br_min_mtu(br)) - return -EINVAL; dev->mtu = new_mtu; + /* this flag will be cleared if the MTU was automatically adjusted */ + br->mtu_set_by_user = true; #if IS_ENABLED(CONFIG_BRIDGE_NETFILTER) /* remember the MTU in the rtable for PMTU */ dst_metric_set(&br->fake_rtable.dst, RTAX_MTU, new_mtu); @@ -420,8 +420,16 @@ br->bridge_hello_time = br->hello_time = 2 * HZ; br->bridge_forward_delay = br->forward_delay = 15 * HZ; br->ageing_time = BR_DEFAULT_AGEING_TIME; + dev->max_mtu = ETH_MAX_MTU; br_netfilter_rtable_init(br); br_stp_timer_init(br); br_multicast_init(br); + br_flood_rl_setup(br); +#ifdef CONFIG_TI_L2_SELECTIVE_PACKET_HANDLING + br->selective_packet_handler = NULL; +#endif /* CONFIG_TI_L2_SELECTIVE_PACKET_HANDLING */ +#ifdef CONFIG_LTQ_MCAST_SNOOPING + br->this_br_snooping_enabled = false; +#endif /* CONFIG_LTQ_MCAST_SNOOPING */ }