All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 net  0/2] vmxnet3: couple of fixes
@ 2022-12-05 22:42 Ronak Doshi
  2022-12-05 22:42 ` [PATCH v2 net 1/2] vmxnet3: correctly report encapsulated LRO packet Ronak Doshi
  2022-12-05 22:42 ` [PATCH v2 net 2/2] vmxnet3: use correct intrConf reference when using extended queues Ronak Doshi
  0 siblings, 2 replies; 7+ messages in thread
From: Ronak Doshi @ 2022-12-05 22:42 UTC (permalink / raw)
  To: netdev
  Cc: stable, Ronak Doshi, VMware PV-Drivers Reviewers,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	open list

This series fixes following issues:

Patch 1:
  This patch provides a fix to correctly report encapsulated LRO'ed
  packet.

Patch 2:
  This patch provides a fix to use correct intrConf reference.

Changes in v2:
- declare generic descriptor to be used
- remove white spaces
- remove single quote around commit reference in patch 2
- remove if check for encap_lro

Ronak Doshi (2):
  vmxnet3: correctly report encapsulated LRO packet
  vmxnet3: use correct intrConf reference when using extended queues

 drivers/net/vmxnet3/vmxnet3_drv.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 net  1/2] vmxnet3: correctly report encapsulated LRO packet
  2022-12-05 22:42 [PATCH v2 net 0/2] vmxnet3: couple of fixes Ronak Doshi
@ 2022-12-05 22:42 ` Ronak Doshi
  2022-12-06 12:23   ` Greg KH
  2022-12-05 22:42 ` [PATCH v2 net 2/2] vmxnet3: use correct intrConf reference when using extended queues Ronak Doshi
  1 sibling, 1 reply; 7+ messages in thread
From: Ronak Doshi @ 2022-12-05 22:42 UTC (permalink / raw)
  To: netdev
  Cc: stable, Ronak Doshi, VMware PV-Drivers Reviewers,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	open list

Commit dacce2be3312 ("vmxnet3: add geneve and vxlan tunnel offload
support") added support for encapsulation offload. However, the
pathc did not report correctly the encapsulated packet which is
LRO'ed by the hypervisor.

This patch fixes this issue by using correct callback for the LRO'ed
encapsulated packet.

Fixes: dacce2be3312 ("vmxnet3: add geneve and vxlan tunnel offload support")
Signed-off-by: Ronak Doshi <doshir@vmware.com>
Acked-by: Guolin Yang <gyang@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_drv.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index d3e7b27eb933..3111a8a6b26a 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -1396,6 +1396,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
 	};
 	u32 num_pkts = 0;
 	bool skip_page_frags = false;
+	bool encap_lro = false;
 	struct Vmxnet3_RxCompDesc *rcd;
 	struct vmxnet3_rx_ctx *ctx = &rq->rx_ctx;
 	u16 segCnt = 0, mss = 0;
@@ -1556,13 +1557,18 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
 			if (VMXNET3_VERSION_GE_2(adapter) &&
 			    rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) {
 				struct Vmxnet3_RxCompDescExt *rcdlro;
+				union Vmxnet3_GenericDesc *gdesc;
+
 				rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd;
+				gdesc = (union Vmxnet3_GenericDesc *)rcd;
 
 				segCnt = rcdlro->segCnt;
 				WARN_ON_ONCE(segCnt == 0);
 				mss = rcdlro->mss;
 				if (unlikely(segCnt <= 1))
 					segCnt = 0;
+				encap_lro = (le32_to_cpu(gdesc->dword[0]) &
+					(1UL << VMXNET3_RCD_HDR_INNER_SHIFT));
 			} else {
 				segCnt = 0;
 			}
@@ -1630,7 +1636,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
 			vmxnet3_rx_csum(adapter, skb,
 					(union Vmxnet3_GenericDesc *)rcd);
 			skb->protocol = eth_type_trans(skb, adapter->netdev);
-			if (!rcd->tcp ||
+			if ((!rcd->tcp && !encap_lro) ||
 			    !(adapter->netdev->features & NETIF_F_LRO))
 				goto not_lro;
 
@@ -1639,7 +1645,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
 					SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
 				skb_shinfo(skb)->gso_size = mss;
 				skb_shinfo(skb)->gso_segs = segCnt;
-			} else if (segCnt != 0 || skb->len > mtu) {
+			} else if ((segCnt != 0 || skb->len > mtu) && !encap_lro) {
 				u32 hlen;
 
 				hlen = vmxnet3_get_hdr_len(adapter, skb,
@@ -1668,6 +1674,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
 				napi_gro_receive(&rq->napi, skb);
 
 			ctx->skb = NULL;
+			encap_lro = false;
 			num_pkts++;
 		}
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 net  2/2] vmxnet3: use correct intrConf reference when using extended queues
  2022-12-05 22:42 [PATCH v2 net 0/2] vmxnet3: couple of fixes Ronak Doshi
  2022-12-05 22:42 ` [PATCH v2 net 1/2] vmxnet3: correctly report encapsulated LRO packet Ronak Doshi
@ 2022-12-05 22:42 ` Ronak Doshi
  2022-12-05 22:43   ` kernel test robot
  1 sibling, 1 reply; 7+ messages in thread
From: Ronak Doshi @ 2022-12-05 22:42 UTC (permalink / raw)
  To: netdev
  Cc: stable, Ronak Doshi, VMware PV-Drivers Reviewers,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Guolin Yang, open list

Commit 39f9895a00f4 ("vmxnet3: add support for 32 Tx/Rx queues")
added support for 32Tx/Rx queues. As a part of this patch, intrConf
structure was extended to incorporate increased queues.

This patch fixes the issue where incorrect reference is being used.

Fixes: 39f9895a00f4 ("vmxnet3: add support for 32 Tx/Rx queues")
Signed-off-by: Ronak Doshi <doshir@vmware.com>
Acked-by: Guolin Yang <gyang@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_drv.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 3111a8a6b26a..6f1e560fb15c 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -75,8 +75,14 @@ vmxnet3_enable_all_intrs(struct vmxnet3_adapter *adapter)
 
 	for (i = 0; i < adapter->intr.num_intrs; i++)
 		vmxnet3_enable_intr(adapter, i);
-	adapter->shared->devRead.intrConf.intrCtrl &=
+	if (!VMXNET3_VERSION_GE_6(adapter) ||
+	    !adapter->queuesExtEnabled) {
+		adapter->shared->devRead.intrConf.intrCtrl &=
 					cpu_to_le32(~VMXNET3_IC_DISABLE_ALL);
+	} else {
+		adapter->shared->devReadExt.intrConfExt.intrCtrl &=
+					cpu_to_le32(~VMXNET3_IC_DISABLE_ALL);
+	}
 }
 
 
@@ -85,8 +91,14 @@ vmxnet3_disable_all_intrs(struct vmxnet3_adapter *adapter)
 {
 	int i;
 
-	adapter->shared->devRead.intrConf.intrCtrl |=
+	if (!VMXNET3_VERSION_GE_6(adapter) ||
+	    !adapter->queuesExtEnabled) {
+		adapter->shared->devRead.intrConf.intrCtrl |=
 					cpu_to_le32(VMXNET3_IC_DISABLE_ALL);
+	} else {
+		adapter->shared->devReadExt.intrConfExt.intrCtrl |=
+					cpu_to_le32(VMXNET3_IC_DISABLE_ALL);
+	}
 	for (i = 0; i < adapter->intr.num_intrs; i++)
 		vmxnet3_disable_intr(adapter, i);
 }
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 net  2/2] vmxnet3: use correct intrConf reference when using extended queues
  2022-12-05 22:42 ` [PATCH v2 net 2/2] vmxnet3: use correct intrConf reference when using extended queues Ronak Doshi
@ 2022-12-05 22:43   ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2022-12-05 22:43 UTC (permalink / raw)
  To: Ronak Doshi; +Cc: stable, oe-kbuild-all

Hi,

Thanks for your patch.

FYI: kernel test robot notices the stable kernel rule is not satisfied.

Rule: 'Cc: stable@vger.kernel.org' or 'commit <sha1> upstream.'
Subject: [PATCH v2 net  2/2] vmxnet3: use correct intrConf reference when using extended queues
Link: https://lore.kernel.org/stable/20221205224256.22830-3-doshir%40vmware.com

The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 net  1/2] vmxnet3: correctly report encapsulated LRO packet
  2022-12-05 22:42 ` [PATCH v2 net 1/2] vmxnet3: correctly report encapsulated LRO packet Ronak Doshi
@ 2022-12-06 12:23   ` Greg KH
  0 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2022-12-06 12:23 UTC (permalink / raw)
  To: Ronak Doshi
  Cc: netdev, stable, VMware PV-Drivers Reviewers, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, open list

On Mon, Dec 05, 2022 at 02:42:54PM -0800, Ronak Doshi wrote:
> Commit dacce2be3312 ("vmxnet3: add geneve and vxlan tunnel offload
> support") added support for encapsulation offload. However, the
> pathc did not report correctly the encapsulated packet which is
> LRO'ed by the hypervisor.
> 
> This patch fixes this issue by using correct callback for the LRO'ed
> encapsulated packet.
> 
> Fixes: dacce2be3312 ("vmxnet3: add geneve and vxlan tunnel offload support")
> Signed-off-by: Ronak Doshi <doshir@vmware.com>
> Acked-by: Guolin Yang <gyang@vmware.com>
> ---
>  drivers/net/vmxnet3/vmxnet3_drv.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 net  0/2] vmxnet3: couple of fixes
  2022-11-30  8:21 [PATCH v2 net 0/2] vmxnet3: couple of fixes Ronak Doshi
@ 2022-12-02 10:40 ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-12-02 10:40 UTC (permalink / raw)
  To: Ronak Doshi
  Cc: netdev, stable, pv-drivers, davem, edumazet, kuba, pabeni, linux-kernel

Hello:

This series was applied to netdev/net.git (master)
by David S. Miller <davem@davemloft.net>:

On Wed, 30 Nov 2022 00:21:45 -0800 you wrote:
> This series fixes following issues:
> 
> Patch 1:
>   This patch provides a fix to correctly report encapsulated LRO'ed
>   packet.
> 
> Patch 2:
>   This patch provides a fix to use correct intrConf reference.
> 
> [...]

Here is the summary with links:
  - [v2,net,1/2] vmxnet3: correctly report encapsulated LRO packet
    https://git.kernel.org/netdev/net/c/40b8c2a1af03
  - [v2,net,2/2] vmxnet3: use correct intrConf reference when using extended queues
    https://git.kernel.org/netdev/net/c/409e8ec8c582

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 net  0/2] vmxnet3: couple of fixes
@ 2022-11-30  8:21 Ronak Doshi
  2022-12-02 10:40 ` patchwork-bot+netdevbpf
  0 siblings, 1 reply; 7+ messages in thread
From: Ronak Doshi @ 2022-11-30  8:21 UTC (permalink / raw)
  To: netdev
  Cc: stable, Ronak Doshi, VMware PV-Drivers Reviewers,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	open list

This series fixes following issues:

Patch 1:
  This patch provides a fix to correctly report encapsulated LRO'ed
  packet.

Patch 2:
  This patch provides a fix to use correct intrConf reference.

Changes in v2:
- declare generic descriptor to be used
- remove white spaces
- remove single quote around commit reference in patch 2
- remove if check for encap_lro

Ronak Doshi (2):
  vmxnet3: correctly report encapsulated LRO packet
  vmxnet3: use correct intrConf reference when using extended queues

 drivers/net/vmxnet3/vmxnet3_drv.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-12-06 12:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-05 22:42 [PATCH v2 net 0/2] vmxnet3: couple of fixes Ronak Doshi
2022-12-05 22:42 ` [PATCH v2 net 1/2] vmxnet3: correctly report encapsulated LRO packet Ronak Doshi
2022-12-06 12:23   ` Greg KH
2022-12-05 22:42 ` [PATCH v2 net 2/2] vmxnet3: use correct intrConf reference when using extended queues Ronak Doshi
2022-12-05 22:43   ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-11-30  8:21 [PATCH v2 net 0/2] vmxnet3: couple of fixes Ronak Doshi
2022-12-02 10:40 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.