]> www.infradead.org Git - users/jedix/linux-maple.git/commit
enic: fix issues in enic_poll
authorSujith Sankar <ssujith@cisco.com>
Tue, 13 Oct 2015 09:32:18 +0000 (15:02 +0530)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Mon, 19 Oct 2015 20:38:59 +0000 (13:38 -0700)
commitb5e7cda27df988c43d45882bd4b2274e3a0ad025
treefffa348dd02c6f18931e1c3c7ce4d907f64e37cf
parent20156c62a4a7d4f497a647d4cea7d611d3bee764
enic: fix issues in enic_poll

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: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cisco/enic/enic_main.c