diff options
Diffstat (limited to 'drivers/net/xen-netfront.c')
-rw-r--r-- | drivers/net/xen-netfront.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 36808bf25677..dd1011e55cb5 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c | |||
@@ -952,7 +952,7 @@ static int handle_incoming_queue(struct net_device *dev, | |||
952 | u64_stats_update_end(&stats->syncp); | 952 | u64_stats_update_end(&stats->syncp); |
953 | 953 | ||
954 | /* Pass it up. */ | 954 | /* Pass it up. */ |
955 | netif_receive_skb(skb); | 955 | napi_gro_receive(&np->napi, skb); |
956 | } | 956 | } |
957 | 957 | ||
958 | return packets_dropped; | 958 | return packets_dropped; |
@@ -1051,6 +1051,8 @@ err: | |||
1051 | if (work_done < budget) { | 1051 | if (work_done < budget) { |
1052 | int more_to_do = 0; | 1052 | int more_to_do = 0; |
1053 | 1053 | ||
1054 | napi_gro_flush(napi, false); | ||
1055 | |||
1054 | local_irq_save(flags); | 1056 | local_irq_save(flags); |
1055 | 1057 | ||
1056 | RING_FINAL_CHECK_FOR_RESPONSES(&np->rx, more_to_do); | 1058 | RING_FINAL_CHECK_FOR_RESPONSES(&np->rx, more_to_do); |