aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorGovindarajulu Varadarajan <_govind@gmx.com>2015-06-25 16:02:04 +0530
committerDavid S. Miller <davem@davemloft.net>2015-06-25 05:23:01 -0700
commitf586a3360197a63b5423001553ab23025242ac72 (patch)
treeed012c1c5ee31e5ca37ccbfe55678ae9bf055b64 /net
parentnet/phy: Add Vitesse 8641 phy ID (diff)
downloadlinux-dev-f586a3360197a63b5423001553ab23025242ac72.tar.xz
linux-dev-f586a3360197a63b5423001553ab23025242ac72.zip
enic: use atomic_t instead of spin_lock in busy poll
We use spinlock to access a single flag. We can avoid spin_locks by using atomic variable and atomic_cmpxchg(). Use atomic_cmpxchg to set the flag for idle to poll. And a simple atomic_set to unlock (set idle from poll). In napi poll, if gro is enabled, we call napi_gro_receive() to deliver the packets. Before we call napi_complete(), i.e while re-polling, if low latency busy poll is called, we use netif_receive_skb() to deliver the packets. At this point if there are some skb's held in GRO, busy poll could deliver the packets out of order. So we call napi_gro_flush() to flush skbs before we move the napi poll to idle. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions