• Sascha Hauer's avatar
    net/davinci: do not use all descriptors for tx packets · 86d8c07f
    Sascha Hauer authored
    The driver uses a shared pool for both rx and tx descriptors.
    During open it queues fixed number of 128 descriptors for receive
    packets. For each received packet it tries to queue another
    descriptor. If this fails the descriptor is lost for rx.
    The driver has no limitation on tx descriptors to use, so it
    can happen during a nmap / ping -f attack that the driver
    allocates all descriptors for tx and looses all rx descriptors.
    The driver stops working then.
    To fix this limit the number of tx descriptors used to half of
    the descriptors available, the rx path uses the other half.
    
    Tested on a custom board using nmap / ping -f to the board from
    two different hosts.
    Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    86d8c07f
davinci_emac.c 58.3 KB