According to the Airoha documentation, REG_GDM_LEN_CFG() register does not include FCS length. Fix MTU configuration removing ETH_FCS_LEN from maximum TX packet length configuration. Fixes: 54d989d58d2ac ("net: airoha: Move min/max packet len configuration in airoha_dev_open()") Fixes: 03b1b69f0662c ("net: airoha: Introduce airoha_dev_change_mtu callback") Signed-off-by: Lorenzo Bianconi --- drivers/net/ethernet/airoha/airoha_eth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c index c14cdce588a7..a81ffda72b39 100644 --- a/drivers/net/ethernet/airoha/airoha_eth.c +++ b/drivers/net/ethernet/airoha/airoha_eth.c @@ -1629,9 +1629,9 @@ static void airoha_update_hw_stats(struct airoha_gdm_port *port) static int airoha_dev_open(struct net_device *dev) { - int err, len = ETH_HLEN + dev->mtu + ETH_FCS_LEN; struct airoha_gdm_port *port = netdev_priv(dev); struct airoha_qdma *qdma = port->qdma; + int err, len = ETH_HLEN + dev->mtu; netif_tx_start_all_queues(dev); err = airoha_set_vip_for_gdm_port(port, true); @@ -1833,7 +1833,7 @@ static int airoha_dev_change_mtu(struct net_device *dev, int mtu) { struct airoha_gdm_port *port = netdev_priv(dev); struct airoha_eth *eth = port->qdma->eth; - u32 len = ETH_HLEN + mtu + ETH_FCS_LEN; + u32 len = ETH_HLEN + mtu; airoha_fe_rmw(eth, REG_GDM_LEN_CFG(port->id), GDM_LONG_LEN_MASK, --- base-commit: 02f72964395911e7a09bb2ea2fe6f79eda4ea2c2 change-id: 20260412-airoha-fix-max-mtu-f9c7823ce2a2 Best regards, -- Lorenzo Bianconi