Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH net v1] ice: Ignore RDMA message on setup tc qdisc
@ 2023-01-11 14:20 Kamil Maziarz
  2023-01-12  7:11 ` Michal Swiatkowski
  2023-01-18 18:01 ` Tony Nguyen
  0 siblings, 2 replies; 6+ messages in thread
From: Kamil Maziarz @ 2023-01-11 14:20 UTC (permalink / raw)
  To: intel-wired-lan; +Cc: Kamil Maziarz, Rafal Rogalski

From: Rafal Rogalski <rafalx.rogalski@intel.com>

Commit f70b9d5f4426 ("ice: check for a leaf node presence") prevents
removal of VSI with leaf nodes. This is an expectation of driver action
induced by FW requirements. However, this caused RDMA scheduler config
removal to fail every time a qdisc was added or deleted.

Fix this by ignoring errors from RDMA configuration removal when qdisc are
being reconfigured.

Fixes: ff7e93219442 ("ice: Fix failure to re-add LAN/RDMA Tx queues")
Signed-off-by: Rafal Rogalski <rafalx.rogalski@intel.com>
Signed-off-by: Kamil Maziarz <kamil.maziarz@intel.com>
---
 drivers/net/ethernet/intel/ice/ice.h      | 1 +
 drivers/net/ethernet/intel/ice/ice_lib.c  | 2 +-
 drivers/net/ethernet/intel/ice/ice_main.c | 3 +++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
index 2f0b604abc5e..b572d07bc126 100644
--- a/drivers/net/ethernet/intel/ice/ice.h
+++ b/drivers/net/ethernet/intel/ice/ice.h
@@ -306,6 +306,7 @@ enum ice_pf_state {
 	ICE_PHY_INIT_COMPLETE,
 	ICE_FD_VF_FLUSH_CTX,		/* set at FD Rx IRQ or timeout */
 	ICE_AUX_ERR_PENDING,
+	ICE_SETUP_TC_QDISC,
 	ICE_STATE_NBITS		/* must be last */
 };
 
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
index 22bcb414546a..0ee3acbea108 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -3448,7 +3448,7 @@ int ice_vsi_rebuild(struct ice_vsi *vsi, bool init_vsi)
 
 	ice_rm_vsi_lan_cfg(vsi->port_info, vsi->idx);
 	ret = ice_rm_vsi_rdma_cfg(vsi->port_info, vsi->idx);
-	if (ret)
+	if (ret && !(test_bit(ICE_SETUP_TC_QDISC, pf->state) && ret == -EBUSY))
 		dev_err(ice_pf_to_dev(vsi->back), "Failed to remove RDMA scheduler config for VSI %u, err %d\n",
 			vsi->vsi_num, ret);
 	ice_vsi_free_q_vectors(vsi);
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index a9a7f8b52140..5ff137645f08 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -8706,6 +8706,7 @@ static int ice_setup_tc_mqprio_qdisc(struct net_device *netdev, void *type_data)
 	cur_txq = vsi->num_txq;
 	cur_rxq = vsi->num_rxq;
 
+	set_bit(ICE_SETUP_TC_QDISC, pf->state);
 	/* proceed with rebuild main VSI using correct number of queues */
 	ret = ice_vsi_rebuild(vsi, false);
 	if (ret) {
@@ -8716,9 +8717,11 @@ static int ice_setup_tc_mqprio_qdisc(struct net_device *netdev, void *type_data)
 		clear_bit(ICE_RESET_FAILED, pf->state);
 		if (ice_vsi_rebuild(vsi, false)) {
 			dev_err(dev, "Rebuild of main VSI failed again\n");
+			clear_bit(ICE_SETUP_TC_QDISC, pf->state);
 			return ret;
 		}
 	}
+	clear_bit(ICE_SETUP_TC_QDISC, pf->state);
 
 	vsi->all_numtc = num_tcf;
 	vsi->all_enatc = ena_tc_qdisc;
-- 
2.31.1

_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

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

end of thread, other threads:[~2023-01-23 15:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-11 14:20 [Intel-wired-lan] [PATCH net v1] ice: Ignore RDMA message on setup tc qdisc Kamil Maziarz
2023-01-12  7:11 ` Michal Swiatkowski
2023-01-12 13:54   ` Rogalski, RafalX
2023-01-13  6:30     ` Michal Swiatkowski
2023-01-18 18:01 ` Tony Nguyen
2023-01-23 11:43   ` Rogalski, RafalX

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox