• Dean Jenkins's avatar
    asix: Simplify asix_rx_fixup_internal() netdev alloc · 9a5ccd8e
    Dean Jenkins authored
    The code is checking that the Ethernet frame will fit into a
    netdev allocated socket buffer within the constraints of MTU size,
    Ethernet header length plus VLAN header length.
    
    The original code was checking rx->remaining each loop of the while
    loop that processes multiple Ethernet frames per URB and/or Ethernet
    frames that span across URBs. rx->remaining decreases per while loop
    so there is no point in potentially checking multiple times that the
    Ethernet frame (remaining part) will fit into the netdev socket buffer.
    
    The modification checks that the size of the Ethernet frame will fit
    the netdev socket buffer before allocating the netdev socket buffer.
    This avoids grabbing memory and then deciding that the Ethernet frame
    is too big and then freeing the memory.
    Signed-off-by: default avatarDean Jenkins <Dean_Jenkins@mentor.com>
    Signed-off-by: default avatarMark Craske <Mark_Craske@mentor.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9a5ccd8e
asix_common.c 14.7 KB