[dpdk-stable] patch 'net/iavf: fix command after PF reset' has been queued to stable release 19.11.6

luca.boccassi at gmail.com luca.boccassi at gmail.com
Wed Oct 28 11:43:06 CET 2020


Hi,

FYI, your patch has been queued to stable release 19.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 10/30/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From 28f7721700ef3a9dad30f8888d0823865fa7b5d8 Mon Sep 17 00:00:00 2001
From: Jeff Guo <jia.guo at intel.com>
Date: Fri, 11 Sep 2020 18:18:48 +0800
Subject: [PATCH] net/iavf: fix command after PF reset

[ upstream commit 1eab95fe2e36e191ad85a9aacf82a44e7c8011fc ]

If PF reset is finished but VF reset is pending, VF should no need to
send any invalid cmd to PF. That would avoid mass unexpected behaviors
affecting the robust.

Fixes: 22b123a36d07 ("net/avf: initialize PMD")
Fixes: 9e03acd726cf ("net/iavf: fix flow access")

Signed-off-by: Jeff Guo <jia.guo at intel.com>
Tested-by: Hailin Xu <hailinx.xu at intel.com>
Acked-by: Qi Zhang <qi.z.zhang at intel.com>
---
 drivers/net/iavf/iavf.h        | 2 +-
 drivers/net/iavf/iavf_ethdev.c | 3 +++
 drivers/net/iavf/iavf_vchnl.c  | 3 +++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h
index 84f8213542..04f7764456 100644
--- a/drivers/net/iavf/iavf.h
+++ b/drivers/net/iavf/iavf.h
@@ -104,7 +104,7 @@ struct iavf_info {
 	uint32_t link_speed;
 
 	struct iavf_vsi vsi;
-	bool vf_reset;
+	bool vf_reset;	/* true for VF reset pending, false for no VF reset */
 	uint64_t flags;
 
 	uint8_t *rss_lut;
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index a60b04ddd5..02e7006972 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1246,6 +1246,9 @@ iavf_init_vf(struct rte_eth_dev *dev)
 			goto err_rss;
 		}
 	}
+
+	vf->vf_reset = false;
+
 	return 0;
 err_rss:
 	rte_free(vf->rss_key);
diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c
index aba177caec..3e0454593a 100644
--- a/drivers/net/iavf/iavf_vchnl.c
+++ b/drivers/net/iavf/iavf_vchnl.c
@@ -76,6 +76,9 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
 	if (_atomic_set_cmd(vf, args->ops))
 		return -1;
 
+	if (vf->vf_reset)
+		return -EIO;
+
 	ret = iavf_aq_send_msg_to_pf(hw, args->ops, IAVF_SUCCESS,
 				    args->in_args, args->in_args_size, NULL);
 	if (ret) {
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-10-28 10:35:12.630749809 +0000
+++ 0027-net-iavf-fix-command-after-PF-reset.patch	2020-10-28 10:35:11.456829317 +0000
@@ -1,32 +1,32 @@
-From 1eab95fe2e36e191ad85a9aacf82a44e7c8011fc Mon Sep 17 00:00:00 2001
+From 28f7721700ef3a9dad30f8888d0823865fa7b5d8 Mon Sep 17 00:00:00 2001
 From: Jeff Guo <jia.guo at intel.com>
 Date: Fri, 11 Sep 2020 18:18:48 +0800
 Subject: [PATCH] net/iavf: fix command after PF reset
 
+[ upstream commit 1eab95fe2e36e191ad85a9aacf82a44e7c8011fc ]
+
 If PF reset is finished but VF reset is pending, VF should no need to
 send any invalid cmd to PF. That would avoid mass unexpected behaviors
 affecting the robust.
 
 Fixes: 22b123a36d07 ("net/avf: initialize PMD")
 Fixes: 9e03acd726cf ("net/iavf: fix flow access")
-Cc: stable at dpdk.org
 
 Signed-off-by: Jeff Guo <jia.guo at intel.com>
 Tested-by: Hailin Xu <hailinx.xu at intel.com>
 Acked-by: Qi Zhang <qi.z.zhang at intel.com>
 ---
  drivers/net/iavf/iavf.h        | 2 +-
- drivers/net/iavf/iavf_ethdev.c | 2 ++
- drivers/net/iavf/iavf_hash.c   | 8 ++++++++
+ drivers/net/iavf/iavf_ethdev.c | 3 +++
  drivers/net/iavf/iavf_vchnl.c  | 3 +++
- 4 files changed, 14 insertions(+), 1 deletion(-)
+ 3 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h
-index 9ad331ee92..3198d85b3a 100644
+index 84f8213542..04f7764456 100644
 --- a/drivers/net/iavf/iavf.h
 +++ b/drivers/net/iavf/iavf.h
-@@ -134,7 +134,7 @@ struct iavf_info {
- 	uint16_t mc_addrs_num;   /* Multicast mac addresses number */
+@@ -104,7 +104,7 @@ struct iavf_info {
+ 	uint32_t link_speed;
  
  	struct iavf_vsi vsi;
 -	bool vf_reset;
@@ -35,46 +35,21 @@
  
  	uint8_t *rss_lut;
 diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
-index e1ff38e8be..6bb915d816 100644
+index a60b04ddd5..02e7006972 100644
 --- a/drivers/net/iavf/iavf_ethdev.c
 +++ b/drivers/net/iavf/iavf_ethdev.c
-@@ -1285,6 +1285,8 @@ iavf_init_vf(struct rte_eth_dev *dev)
+@@ -1246,6 +1246,9 @@ iavf_init_vf(struct rte_eth_dev *dev)
+ 			goto err_rss;
  		}
  	}
- 
++
 +	vf->vf_reset = false;
 +
  	return 0;
  err_rss:
  	rte_free(vf->rss_key);
-diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
-index ff77d71356..ddc6df8495 100644
---- a/drivers/net/iavf/iavf_hash.c
-+++ b/drivers/net/iavf/iavf_hash.c
-@@ -457,6 +457,9 @@ iavf_hash_init(struct iavf_adapter *ad)
- 	struct iavf_flow_parser *parser;
- 	int ret;
- 
-+	if (vf->vf_reset)
-+		return -EIO;
-+
- 	if (!vf->vf_res)
- 		return -EINVAL;
- 
-@@ -967,6 +970,11 @@ iavf_hash_destroy(__rte_unused struct iavf_adapter *ad,
- static void
- iavf_hash_uninit(struct iavf_adapter *ad)
- {
-+	struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(ad);
-+
-+	if (vf->vf_reset)
-+		return;
-+
- 	if (iavf_hash_default_set(ad, false))
- 		PMD_DRV_LOG(ERR, "fail to delete default RSS");
- 
 diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c
-index 69e1dc72aa..76f8e38d1e 100644
+index aba177caec..3e0454593a 100644
 --- a/drivers/net/iavf/iavf_vchnl.c
 +++ b/drivers/net/iavf/iavf_vchnl.c
 @@ -76,6 +76,9 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)


More information about the stable mailing list