• Netanel Belgazal's avatar
    net: ena: fix theoretical Rx hang on low memory systems · a3af7c18
    Netanel Belgazal authored
    For the rare case where the device runs out of free rx buffer
    descriptors (in case of pressure on kernel  memory),
    and the napi handler continuously fail to refill new Rx descriptors
    until device rx queue totally runs out of all free rx buffers
    to post incoming packet, leading to a deadlock:
    * The device won't send interrupts since all the new
    Rx packets will be dropped.
    * The napi handler won't try to allocate new Rx descriptors
    since allocation is part of NAPI that's not being invoked any more
    
    The fix involves detecting this scenario and rescheduling NAPI
    (to refill buffers) by the keepalive/watchdog task.
    
    Fixes: 1738cd3e ("Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: default avatarNetanel Belgazal <netanel@amazon.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a3af7c18
ena_netdev.h 7.98 KB