aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/xen-netfront.c
diff options
context:
space:
mode:
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);