diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/xen-netfront.c | 11 |
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); |