mirror of https://gitee.com/openkylin/linux.git
netvsc: enable GRO
Use GRO when receiving packets. Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
15a863bf74
commit
742fe54c7b
|
@ -642,11 +642,11 @@ int netvsc_recv_callback(struct net_device *net,
|
|||
{
|
||||
struct net_device_context *net_device_ctx = netdev_priv(net);
|
||||
struct netvsc_device *net_device = net_device_ctx->nvdev;
|
||||
u16 q_idx = channel->offermsg.offer.sub_channel_index;
|
||||
struct netvsc_channel *nvchan = &net_device->chan_table[q_idx];
|
||||
struct net_device *vf_netdev;
|
||||
struct sk_buff *skb;
|
||||
struct netvsc_stats *rx_stats;
|
||||
u16 q_idx = channel->offermsg.offer.sub_channel_index;
|
||||
|
||||
|
||||
if (net->reg_state != NETREG_REGISTERED)
|
||||
return NVSP_STAT_FAIL;
|
||||
|
@ -679,7 +679,7 @@ int netvsc_recv_callback(struct net_device *net,
|
|||
* on the synthetic device because modifying the VF device
|
||||
* statistics will not work correctly.
|
||||
*/
|
||||
rx_stats = &net_device->chan_table[q_idx].rx_stats;
|
||||
rx_stats = &nvchan->rx_stats;
|
||||
u64_stats_update_begin(&rx_stats->syncp);
|
||||
rx_stats->packets++;
|
||||
rx_stats->bytes += len;
|
||||
|
@ -690,7 +690,7 @@ int netvsc_recv_callback(struct net_device *net,
|
|||
++rx_stats->multicast;
|
||||
u64_stats_update_end(&rx_stats->syncp);
|
||||
|
||||
netif_receive_skb(skb);
|
||||
napi_gro_receive(&nvchan->napi, skb);
|
||||
rcu_read_unlock();
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue