diff options
author | David S. Miller <davem@davemloft.net> | 2018-02-02 19:19:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-02-02 19:19:00 -0500 |
commit | 0072f0c40b1fe9a8b2a530b84af0ce66f55cde98 (patch) | |
tree | b789c79767f374ba1a79e6afac81334bd7af2b3b | |
parent | 1d8ef0c07664dc48f2ff19a90b62dd3f6f425547 (diff) | |
parent | aece4770fba62102951891c2f349a255c83eacb9 (diff) |
Merge branch 'r8152-fix-rx-issues'
Hayes Wang says:
====================
r8152: fix rx issues
The two patched are used to fix rx issues.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/usb/r8152.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 0657203ffb91..958b2e8b90f6 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c | |||
@@ -1848,11 +1848,9 @@ static u8 r8152_rx_csum(struct r8152 *tp, struct rx_desc *rx_desc) | |||
1848 | if (opts2 & RD_IPV4_CS) { | 1848 | if (opts2 & RD_IPV4_CS) { |
1849 | if (opts3 & IPF) | 1849 | if (opts3 & IPF) |
1850 | checksum = CHECKSUM_NONE; | 1850 | checksum = CHECKSUM_NONE; |
1851 | else if ((opts2 & RD_UDP_CS) && (opts3 & UDPF)) | 1851 | else if ((opts2 & RD_UDP_CS) && !(opts3 & UDPF)) |
1852 | checksum = CHECKSUM_NONE; | 1852 | checksum = CHECKSUM_UNNECESSARY; |
1853 | else if ((opts2 & RD_TCP_CS) && (opts3 & TCPF)) | 1853 | else if ((opts2 & RD_TCP_CS) && !(opts3 & TCPF)) |
1854 | checksum = CHECKSUM_NONE; | ||
1855 | else | ||
1856 | checksum = CHECKSUM_UNNECESSARY; | 1854 | checksum = CHECKSUM_UNNECESSARY; |
1857 | } else if (opts2 & RD_IPV6_CS) { | 1855 | } else if (opts2 & RD_IPV6_CS) { |
1858 | if ((opts2 & RD_UDP_CS) && !(opts3 & UDPF)) | 1856 | if ((opts2 & RD_UDP_CS) && !(opts3 & UDPF)) |
@@ -3797,11 +3795,12 @@ static void set_carrier(struct r8152 *tp) | |||
3797 | if (speed & LINK_STATUS) { | 3795 | if (speed & LINK_STATUS) { |
3798 | if (!netif_carrier_ok(netdev)) { | 3796 | if (!netif_carrier_ok(netdev)) { |
3799 | tp->rtl_ops.enable(tp); | 3797 | tp->rtl_ops.enable(tp); |
3800 | set_bit(RTL8152_SET_RX_MODE, &tp->flags); | ||
3801 | netif_stop_queue(netdev); | 3798 | netif_stop_queue(netdev); |
3802 | napi_disable(napi); | 3799 | napi_disable(napi); |
3803 | netif_carrier_on(netdev); | 3800 | netif_carrier_on(netdev); |
3804 | rtl_start_rx(tp); | 3801 | rtl_start_rx(tp); |
3802 | clear_bit(RTL8152_SET_RX_MODE, &tp->flags); | ||
3803 | _rtl8152_set_rx_mode(netdev); | ||
3805 | napi_enable(&tp->napi); | 3804 | napi_enable(&tp->napi); |
3806 | netif_wake_queue(netdev); | 3805 | netif_wake_queue(netdev); |
3807 | netif_info(tp, link, netdev, "carrier on\n"); | 3806 | netif_info(tp, link, netdev, "carrier on\n"); |
@@ -4261,7 +4260,7 @@ static int rtl8152_post_reset(struct usb_interface *intf) | |||
4261 | mutex_lock(&tp->control); | 4260 | mutex_lock(&tp->control); |
4262 | tp->rtl_ops.enable(tp); | 4261 | tp->rtl_ops.enable(tp); |
4263 | rtl_start_rx(tp); | 4262 | rtl_start_rx(tp); |
4264 | rtl8152_set_rx_mode(netdev); | 4263 | _rtl8152_set_rx_mode(netdev); |
4265 | mutex_unlock(&tp->control); | 4264 | mutex_unlock(&tp->control); |
4266 | } | 4265 | } |
4267 | 4266 | ||