diff options
Diffstat (limited to 'drivers/net/usb/r8152.c')
| -rw-r--r-- | drivers/net/usb/r8152.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 25431965a625..7bad2d316637 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -1359,7 +1359,7 @@ static void r8152_csum_workaround(struct r8152 *tp, struct sk_buff *skb,  		struct sk_buff_head seg_list;  		struct sk_buff *segs, *nskb; -		features &= ~(NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO); +		features &= ~(NETIF_F_SG | NETIF_F_IPV6_CSUM | NETIF_F_TSO6);  		segs = skb_gso_segment(skb, features);  		if (IS_ERR(segs) || !segs)  			goto drop; @@ -3204,8 +3204,13 @@ static void rtl8152_get_ethtool_stats(struct net_device *dev,  	struct r8152 *tp = netdev_priv(dev);  	struct tally_counter tally; +	if (usb_autopm_get_interface(tp->intf) < 0) +		return; +  	generic_ocp_read(tp, PLA_TALLYCNT, sizeof(tally), &tally, MCU_TYPE_PLA); +	usb_autopm_put_interface(tp->intf); +  	data[0] = le64_to_cpu(tally.tx_packets);  	data[1] = le64_to_cpu(tally.rx_packets);  	data[2] = le64_to_cpu(tally.tx_errors); |