[PATCH net] net: stmmac: leave the datapath running for normal-size MTU changes
Nicolai Buchwitz
nb at tipi-net.de
Mon Oct 5 23:11:11 PDT 2026
Hi James
On 1.10.2026 06:39, James Hilliard wrote:
> When both MTUs are at most ETH_DATA_LEN, the receive buffer size and
> MAC
> receive limit do not change. Update the MTU without restarting the
> datapath.
>
> This also avoids rebinding a live AF_XDP pool to a temporary RXQ. XDP
> rejects jumbo MTUs, so all supported XDP MTU changes take this path.
> Jumbo transitions remain on the reopen path until the rollback change.
>
> Fixes: 3470079687448 ("net: ethernet: stmicro: stmmac: permit MTU
> change with interface up")
> Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index 3f34d491c959..03cd14d10356 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -6161,7 +6161,12 @@ static int stmmac_change_mtu(struct net_device
> *dev, int new_mtu)
> if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
> return -EINVAL;
>
> - if (netif_running(dev)) {
> + /* Normal-size frames use the same buffers and MAC receive limits.
> + * In particular, do not disturb a live AF_XDP pool: XDP does not
> + * support jumbo frames, so it never needs the ring replacement
> below.
> + */
> + if (netif_running(dev) &&
> + (dev->mtu > ETH_DATA_LEN || mtu > ETH_DATA_LEN)) {
> netdev_dbg(priv->dev, "restarting interface to change its MTU\n");
> /* Try to allocate the new DMA conf with the new mtu */
> dma_conf = stmmac_setup_dma_desc(priv, mtu);
>
> ---
> base-commit: a7bfaba4823e3c165bb2004c74eff7c096672bc7
> change-id: 20260930-stmmac-mtu-fastpath-68813ead3b90
>
> Best regards,
> --
> James Hilliard <james.hilliard1 at gmail.com>
Reviewed-by: Nicolai Buchwitz <nb at tipi-net.de>
Thanks,
Nicolai
More information about the linux-arm-kernel
mailing list