| From foo@baz Thu Dec 21 09:02:40 CET 2017 |
| From: hayeswang <hayeswang@realtek.com> |
| Date: Mon, 20 Mar 2017 16:13:45 +0800 |
| Subject: r8152: fix the rx early size of RTL8153 |
| |
| From: hayeswang <hayeswang@realtek.com> |
| |
| |
| [ Upstream commit b20cb60e2b865638459e6ec82ad3536d3734e555 ] |
| |
| revert commit a59e6d815226 ("r8152: correct the rx early size") and |
| fix the rx early size as |
| |
| (rx buffer size - rx packet size - rx desc size - alignment) / 4 |
| |
| Signed-off-by: Hayes Wang <hayeswang@realtek.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/usb/r8152.c | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/usb/r8152.c |
| +++ b/drivers/net/usb/r8152.c |
| @@ -32,7 +32,7 @@ |
| #define NETNEXT_VERSION "08" |
| |
| /* Information for net */ |
| -#define NET_VERSION "8" |
| +#define NET_VERSION "9" |
| |
| #define DRIVER_VERSION "v1." NETNEXT_VERSION "." NET_VERSION |
| #define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>" |
| @@ -501,6 +501,8 @@ enum rtl_register_content { |
| #define RTL8153_RMS RTL8153_MAX_PACKET |
| #define RTL8152_TX_TIMEOUT (5 * HZ) |
| #define RTL8152_NAPI_WEIGHT 64 |
| +#define rx_reserved_size(x) ((x) + VLAN_ETH_HLEN + CRC_SIZE + \ |
| + sizeof(struct rx_desc) + RX_ALIGN) |
| |
| /* rtl8152 flags */ |
| enum rtl8152_flags { |
| @@ -2253,8 +2255,7 @@ static void r8153_set_rx_early_timeout(s |
| |
| static void r8153_set_rx_early_size(struct r8152 *tp) |
| { |
| - u32 mtu = tp->netdev->mtu; |
| - u32 ocp_data = (agg_buf_sz - mtu - VLAN_ETH_HLEN - VLAN_HLEN) / 8; |
| + u32 ocp_data = (agg_buf_sz - rx_reserved_size(tp->netdev->mtu)) / 4; |
| |
| ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_SIZE, ocp_data); |
| } |