diff options
Diffstat (limited to 'drivers/net/usb')
| -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 be418563cb18..f3b48ad90865 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -1730,7 +1730,7 @@ static u8 r8152_rx_csum(struct r8152 *tp, struct rx_desc *rx_desc)  	u8 checksum = CHECKSUM_NONE;  	u32 opts2, opts3; -	if (tp->version == RTL_VER_01 || tp->version == RTL_VER_02) +	if (!(tp->netdev->features & NETIF_F_RXCSUM))  		goto return_result;  	opts2 = le32_to_cpu(rx_desc->opts2); @@ -4356,6 +4356,11 @@ static int rtl8152_probe(struct usb_interface *intf,  				NETIF_F_HIGHDMA | NETIF_F_FRAGLIST |  				NETIF_F_IPV6_CSUM | NETIF_F_TSO6; +	if (tp->version == RTL_VER_01) { +		netdev->features &= ~NETIF_F_RXCSUM; +		netdev->hw_features &= ~NETIF_F_RXCSUM; +	} +  	netdev->ethtool_ops = &ops;  	netif_set_gso_max_size(netdev, RTL_LIMITED_TSO_SIZE);  | 
