• Govindarajulu Varadarajan's avatar
    enic: fix issues in enic_poll · 25c14ef8
    Govindarajulu Varadarajan authored
    In enic_poll, we clean tx and rx queues, when low latency busy socket polling
    is happening, enic_poll will only clean tx queue. After cleaning tx, it should
    return total budget for re-poll.
    
    There is a small window between vnic_intr_unmask() and enic_poll_unlock_napi().
    In this window if an irq occurs and napi is scheduled on different cpu, it tries
    to acquire enic_poll_lock_napi() and fails. Unlock napi_poll before unmasking
    the interrupt.
    
    v2:
    Do not change tx wonk done behaviour. Consider only rx work done for completing
    napi.
    Signed-off-by: default avatarGovindarajulu Varadarajan <_govind@gmx.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    25c14ef8
enic_main.c 67.7 KB