• stephen hemminger's avatar
    sky2: fix receive length error in mixed non-VLAN/VLAN traffic · 2599c594
    stephen hemminger authored
    [ Upstream commit e072b3fa ]
    
    Bug: The VLAN bit of the MAC RX Status Word is unreliable in several older
    supported chips. Sometimes the VLAN bit is not set for valid VLAN packets
    and also sometimes the VLAN bit is set for non-VLAN packets that came after
    a VLAN packet. This results in a receive length error when VLAN hardware
    tagging is enabled.
    
    Fix: Variation on original fix proposed by Mirko.
    The VLAN information is decoded in the status loop, and can be
    applied to the received SKB there. This eliminates the need for the
    separate tag field in the interface data structure. The tag has to
    be copied and cleared if packet is copied. This version checked out
    with vlan and normal traffic.
    
    Note: vlan_tx_tag_present should be renamed vlan_tag_present, but that
    is outside scope of this.
    Reported-by: default avatarMirko Lindner <mlindner@marvell.com>
    Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    2599c594
sky2.c 135 KB