Once mtu_set_by_user is set to true, br_mtu_auto_adjust will not run, and no chance to clear mtu_set_by_user.
and br_mtu_auto_adjust will run only if mtu_set_by_user is false, so not need to set it to false again Cc: Nikolay Aleksandrov <niko...@cumulusnetworks.com> Signed-off-by: Li RongQing <lirongq...@baidu.com> --- net/bridge/br_device.c | 1 - net/bridge/br_if.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index e682a668ce57..c636bc2749c2 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -227,7 +227,6 @@ static int br_change_mtu(struct net_device *dev, int new_mtu) 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 */ diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 05e42d86882d..47c65da4b1be 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -450,11 +450,7 @@ void br_mtu_auto_adjust(struct net_bridge *br) if (br->mtu_set_by_user) return; - /* change to the minimum MTU and clear the flag which was set by - * the bridge ndo_change_mtu callback - */ dev_set_mtu(br->dev, br_mtu_min(br)); - br->mtu_set_by_user = false; } static void br_set_gso_limits(struct net_bridge *br) -- 2.16.2