mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 15:43:59 +08:00
vmxnet3: use correct flag to indicate LRO feature
'Commit45dac1d6ea
("vmxnet3: Changes for vmxnet3 adapter version 2 (fwd)")' introduced a flag "lro" in structure vmxnet3_adapter which is used to indicate whether LRO is enabled or not. However, the patch did not set the flag and hence it was never exercised. So, when LRO is enabled, it resulted in poor TCP performance due to delayed acks. This issue is seen with packets which are larger than the mss getting a delayed ack rather than an immediate ack, thus resulting in high latency. This patch removes the lro flag and directly uses device features against NETIF_F_LRO to check if lro is enabled. Fixes:45dac1d6ea
("vmxnet3: Changes for vmxnet3 adapter version 2 (fwd)") Reported-by: Rachel Lunnon <rachel_lunnon@stormagic.com> Signed-off-by: Ronak Doshi <doshir@vmware.com> Acked-by: Shrikrishna Khare <skhare@vmware.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7a4c003d69
commit
034f405793
@ -1473,7 +1473,8 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
|
|||||||
vmxnet3_rx_csum(adapter, skb,
|
vmxnet3_rx_csum(adapter, skb,
|
||||||
(union Vmxnet3_GenericDesc *)rcd);
|
(union Vmxnet3_GenericDesc *)rcd);
|
||||||
skb->protocol = eth_type_trans(skb, adapter->netdev);
|
skb->protocol = eth_type_trans(skb, adapter->netdev);
|
||||||
if (!rcd->tcp || !adapter->lro)
|
if (!rcd->tcp ||
|
||||||
|
!(adapter->netdev->features & NETIF_F_LRO))
|
||||||
goto not_lro;
|
goto not_lro;
|
||||||
|
|
||||||
if (segCnt != 0 && mss != 0) {
|
if (segCnt != 0 && mss != 0) {
|
||||||
|
@ -69,10 +69,10 @@
|
|||||||
/*
|
/*
|
||||||
* Version numbers
|
* Version numbers
|
||||||
*/
|
*/
|
||||||
#define VMXNET3_DRIVER_VERSION_STRING "1.4.12.0-k"
|
#define VMXNET3_DRIVER_VERSION_STRING "1.4.13.0-k"
|
||||||
|
|
||||||
/* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
|
/* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
|
||||||
#define VMXNET3_DRIVER_VERSION_NUM 0x01040c00
|
#define VMXNET3_DRIVER_VERSION_NUM 0x01040d00
|
||||||
|
|
||||||
#if defined(CONFIG_PCI_MSI)
|
#if defined(CONFIG_PCI_MSI)
|
||||||
/* RSS only makes sense if MSI-X is supported. */
|
/* RSS only makes sense if MSI-X is supported. */
|
||||||
@ -343,7 +343,6 @@ struct vmxnet3_adapter {
|
|||||||
u8 version;
|
u8 version;
|
||||||
|
|
||||||
bool rxcsum;
|
bool rxcsum;
|
||||||
bool lro;
|
|
||||||
|
|
||||||
#ifdef VMXNET3_RSS
|
#ifdef VMXNET3_RSS
|
||||||
struct UPT1_RSSConf *rss_conf;
|
struct UPT1_RSSConf *rss_conf;
|
||||||
|
Loading…
Reference in New Issue
Block a user