aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/xen-netfront.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-18 19:41:13 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-18 19:41:13 -0500
commit00c845dbfe2e966a2efd3818e40f46e286ca1ae6 (patch)
tree67d0f5d066b963e596126155a4da513d7b0550da /drivers/net/xen-netfront.c
parent28ee5809ff7365d935d217c387ba959b8aa7182f (diff)
parent86c8fc4bbe14b8950e62d379bb57722427ad3d67 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Fix NBMA tunnel mac header handling in GRE, from Timo Teräs. 2) Fix a NAPI race in the fec driver, from Nimrod Andy. 3) The new IFF_VNET_LE bit is outside the size of the flags member it is stored in (which is 16-bits), store the state locally in the drivers. From Michael S Tsirkin. 4) We are kicking the tires with the new wireless maintainership situation. Bluetooth fixes via Johan Hedberg, and mac80211 fixes from Johannes Berg. 5) Fix locking and leaks in geneve driver, from Jesse Gross. 6) Make netlink TX mmap code always copy, so we don't have to be potentially exposed to the user changing the underlying contents from underneath us. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (63 commits) be2net: Fix incorrect setting of tunnel offload flag in netdev features bnx2x: fix typos in "configure" xen-netback: support frontends without feature-rx-notify again MAINTAINERS: changes for wireless cxgb4: Fix decoding QSA module for ethtool get settings geneve: Fix races between socket add and release. geneve: Remove socket and offload handlers at destruction. netlink: Don't reorder loads/stores before marking mmap netlink frame as available netlink: Always copy on mmap TX. Bluetooth: Fix bug with filter in service discovery optimization mac80211: free management frame keys when removing station net: Disallow providing non zero VLAN ID for NIC drivers FDB add flow net/mlx4: Cache line CQE/EQE stride fixes net: fec: Fix NAPI race xen-netfront: use napi_complete() correctly to prevent Rx stalling ip_tunnel: Add missing validation of encap type to ip_tunnel_encap_setup() ip_tunnel: Add sanity checks to ip_tunnel_encap_add_ops() net: Allow FIXED_PHY to be modular. if_tun: drop broken IFF_VNET_LE macvtap: drop broken IFF_VNET_LE ...
Diffstat (limited to 'drivers/net/xen-netfront.c')
-rw-r--r--drivers/net/xen-netfront.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 2f0a9ce9ff73..22bcb4e12e2a 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -977,7 +977,6 @@ static int xennet_poll(struct napi_struct *napi, int budget)
977 struct sk_buff_head rxq; 977 struct sk_buff_head rxq;
978 struct sk_buff_head errq; 978 struct sk_buff_head errq;
979 struct sk_buff_head tmpq; 979 struct sk_buff_head tmpq;
980 unsigned long flags;
981 int err; 980 int err;
982 981
983 spin_lock(&queue->rx_lock); 982 spin_lock(&queue->rx_lock);
@@ -1050,15 +1049,11 @@ err:
1050 if (work_done < budget) { 1049 if (work_done < budget) {
1051 int more_to_do = 0; 1050 int more_to_do = 0;
1052 1051
1053 napi_gro_flush(napi, false); 1052 napi_complete(napi);
1054
1055 local_irq_save(flags);
1056 1053
1057 RING_FINAL_CHECK_FOR_RESPONSES(&queue->rx, more_to_do); 1054 RING_FINAL_CHECK_FOR_RESPONSES(&queue->rx, more_to_do);
1058 if (!more_to_do) 1055 if (more_to_do)
1059 __napi_complete(napi); 1056 napi_schedule(napi);
1060
1061 local_irq_restore(flags);
1062 } 1057 }
1063 1058
1064 spin_unlock(&queue->rx_lock); 1059 spin_unlock(&queue->rx_lock);