• Jonas Gorski's avatar
    net: dsa: b53: fix jumbo frame mtu check · 42fb3acf
    Jonas Gorski authored
    JMS_MIN_SIZE is the full ethernet frame length, while mtu is just the
    data payload size. Comparing these two meant that mtus between 1500 and
    1518 did not trigger enabling jumbo frames.
    
    So instead compare the set mtu ETH_DATA_LEN, which is equal to
    JMS_MIN_SIZE - ETH_HLEN - ETH_FCS_LEN;
    
    Also do a check that the requested mtu is actually greater than the
    minimum length, else we do not need to enable jumbo frames.
    
    In practice this only introduced a very small range of mtus that did not
    work properly. Newer chips allow 2000 byte large frames by default, and
    older chips allow 1536 bytes long, which is equivalent to an mtu of
    1514. So effectivly only mtus of 1515~1517 were broken.
    
    Fixes: 6ae5834b ("net: dsa: b53: add MTU configuration support")
    Signed-off-by: default avatarJonas Gorski <jonas.gorski@gmail.com>
    Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    42fb3acf
b53_common.c 70.3 KB