]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
batman-adv: Trigger events for auto adjusted MTU
authorSven Eckelmann <sven@narfation.org>
Wed, 19 Jul 2023 07:29:29 +0000 (09:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Aug 2023 14:35:15 +0000 (16:35 +0200)
commit c6a953cce8d0438391e6da48c8d0793d3fbfcfa6 upstream.

If an interface changes the MTU, it is expected that an NETDEV_PRECHANGEMTU
and NETDEV_CHANGEMTU notification events is triggered. This worked fine for
.ndo_change_mtu based changes because core networking code took care of it.
But for auto-adjustments after hard-interfaces changes, these events were
simply missing.

Due to this problem, non-batman-adv components weren't aware of MTU changes
and thus couldn't perform their own tasks correctly.

Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
Cc: stable@vger.kernel.org
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/batman-adv/hard-interface.c

index 5fe2e63370ad763fc05457bcb8fc64f0feb6466b..f104002e1052632dcf2112631c43c32f921c0f04 100644 (file)
@@ -625,7 +625,7 @@ out:
 /* adjusts the MTU if a new interface with a smaller MTU appeared. */
 void batadv_update_min_mtu(struct net_device *soft_iface)
 {
-       soft_iface->mtu = batadv_hardif_min_mtu(soft_iface);
+       dev_set_mtu(soft_iface, batadv_hardif_min_mtu(soft_iface));
 
        /* Check if the local translate table should be cleaned up to match a
         * new (and smaller) MTU.