diff options
Diffstat (limited to 'drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c')
| -rw-r--r-- | drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c index 9caa5e387450..346d310914df 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c @@ -121,7 +121,7 @@ static void rmnet_get_stats64(struct net_device *dev,  	memset(&total_stats, 0, sizeof(struct rmnet_vnd_stats));  	for_each_possible_cpu(cpu) { -		pcpu_ptr = this_cpu_ptr(priv->pcpu_stats); +		pcpu_ptr = per_cpu_ptr(priv->pcpu_stats, cpu);  		do {  			start = u64_stats_fetch_begin_irq(&pcpu_ptr->syncp); @@ -185,6 +185,13 @@ int rmnet_vnd_newlink(u8 id, struct net_device *rmnet_dev,  	if (ep->egress_dev)  		return -EINVAL; +	if (rmnet_get_endpoint(port, id)) +		return -EBUSY; + +	rmnet_dev->hw_features = NETIF_F_RXCSUM; +	rmnet_dev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; +	rmnet_dev->hw_features |= NETIF_F_SG; +  	rc = register_netdevice(rmnet_dev);  	if (!rc) {  		ep->egress_dev = rmnet_dev; |