* [pull request][net-next 00/15] mlx5 updates 2023-06-21
@ 2023-06-22 5:47 Saeed Mahameed
2023-06-22 5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
` (14 more replies)
0 siblings, 15 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan
From: Saeed Mahameed <saeedm@nvidia.com>
This series provides minor cleanups and bug fixes for net-next branch.
Please pull and let me know if there is any problem.
Thanks,
Saeed.
The following changes since commit 53bf91641ae19fe51fb24422de6d07565a3536d0:
inet: Cleanup on charging memory for newly accepted sockets (2023-06-21 17:37:42 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2023-06-21
for you to fetch changes up to e921b6931f93b34ede1dbf150042bfac6475db09:
net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() (2023-06-21 22:43:55 -0700)
----------------------------------------------------------------
mlx5-updates-2023-06-21
mlx5 driver minor cleanup and fixes to net-next
----------------------------------------------------------------
Dan Carpenter (1):
net/mlx5: Fix error code in mlx5_is_reset_now_capable()
Jiri Pirko (4):
net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported()
net/mlx5: Remove redundant is_mdev_switchdev_mode() check from is_ib_rep_supported()
net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id()
net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type()
Lama Kayal (1):
net/mlx5: Fix reserved at offset in hca_cap register
Roi Dayan (7):
net/mlx5: Lag, Remove duplicate code checking lag is supported
net/mlx5e: Use vhca_id for device index in vport rx rules
net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf
net/mlx5e: E-Switch, Use xarray for devcom paired device index
net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0
net/mlx5e: Remove redundant comment
net/mlx5e: E-Switch, Fix shared fdb error flow
Shay Drory (2):
net/mlx5: Fix UAF in mlx5_eswitch_cleanup()
net/mlx5: Fix SFs kernel documentation error
.../ethernet/mellanox/mlx5/switchdev.rst | 22 ++++----
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 6 ---
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 6 +--
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 24 +++------
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 2 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 61 ++++++++++++++++------
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 15 ++++--
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 10 +---
include/linux/mlx5/mlx5_ifc.h | 4 +-
10 files changed, 84 insertions(+), 68 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup()
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 02/15] net/mlx5: Fix SFs kernel documentation error Saeed Mahameed
` (13 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Shay Drory, Dan Carpenter,
Automatic Verification, Gal Pressman, Moshe Shemesh
From: Shay Drory <shayd@nvidia.com>
mlx5_eswitch_cleanup() is using esw right after freeing it for
releasing devlink_param.
Fix it by releasing the devlink_param before freeing the esw, and
adjust the create function accordingly.
Fixes: 3f90840305e2 ("net/mlx5: Move esw multiport devlink param to eswitch code")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Automatic Verification <verifier@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
.../net/ethernet/mellanox/mlx5/core/eswitch.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index 5aaedbf71783..b4e465856127 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -1751,16 +1751,14 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
if (!MLX5_VPORT_MANAGER(dev) && !MLX5_ESWITCH_MANAGER(dev))
return 0;
+ esw = kzalloc(sizeof(*esw), GFP_KERNEL);
+ if (!esw)
+ return -ENOMEM;
+
err = devl_params_register(priv_to_devlink(dev), mlx5_eswitch_params,
ARRAY_SIZE(mlx5_eswitch_params));
if (err)
- return err;
-
- esw = kzalloc(sizeof(*esw), GFP_KERNEL);
- if (!esw) {
- err = -ENOMEM;
- goto unregister_param;
- }
+ goto free_esw;
esw->dev = dev;
esw->manager_vport = mlx5_eswitch_manager_vport(dev);
@@ -1821,10 +1819,10 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
if (esw->work_queue)
destroy_workqueue(esw->work_queue);
debugfs_remove_recursive(esw->debugfs_root);
- kfree(esw);
-unregister_param:
devl_params_unregister(priv_to_devlink(dev), mlx5_eswitch_params,
ARRAY_SIZE(mlx5_eswitch_params));
+free_esw:
+ kfree(esw);
return err;
}
@@ -1848,9 +1846,9 @@ void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw)
esw_offloads_cleanup(esw);
mlx5_esw_vports_cleanup(esw);
debugfs_remove_recursive(esw->debugfs_root);
- kfree(esw);
devl_params_unregister(priv_to_devlink(esw->dev), mlx5_eswitch_params,
ARRAY_SIZE(mlx5_eswitch_params));
+ kfree(esw);
}
/* Vport Administration */
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 02/15] net/mlx5: Fix SFs kernel documentation error
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
2023-06-22 5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register Saeed Mahameed
` (12 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Shay Drory,
Rahul Rameshbabu, Moshe Shemesh, Automatic Verification,
Gal Pressman
From: Shay Drory <shayd@nvidia.com>
Indent SFs probe code example in order to fix the below error:
Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst:57: ERROR: Unexpected indentation.
Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst:61: ERROR: Unexpected indentation.
Fixes: e71383fb9cd1 ("net/mlx5: Light probe local SFs")
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Automatic Verification <verifier@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
---
.../ethernet/mellanox/mlx5/switchdev.rst | 22 ++++++++++---------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst b/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst
index db62187eebce..6e3f5ee8b0d0 100644
--- a/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst
+++ b/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst
@@ -51,19 +51,21 @@ This will allow user to configure the SF before the SF have been fully probed,
which will save time.
Usage example:
-Create SF:
-$ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11
-$ devlink port function set pci/0000:08:00.0/32768 \
- hw_addr 00:00:00:00:00:11 state active
-Enable ETH auxiliary device:
-$ devlink dev param set auxiliary/mlx5_core.sf.1 \
- name enable_eth value true cmode driverinit
+- Create SF::
-Now, in order to fully probe the SF, use devlink reload:
-$ devlink dev reload auxiliary/mlx5_core.sf.1
+ $ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11
+ $ devlink port function set pci/0000:08:00.0/32768 hw_addr 00:00:00:00:00:11 state active
-mlx5 supports ETH,rdma and vdpa (vnet) auxiliary devices devlink params (see :ref:`Documentation/networking/devlink/devlink-params.rst`)
+- Enable ETH auxiliary device::
+
+ $ devlink dev param set auxiliary/mlx5_core.sf.1 name enable_eth value true cmode driverinit
+
+- Now, in order to fully probe the SF, use devlink reload::
+
+ $ devlink dev reload auxiliary/mlx5_core.sf.1
+
+mlx5 supports ETH,rdma and vdpa (vnet) auxiliary devices devlink params (see :ref:`Documentation/networking/devlink/devlink-params.rst <devlink_params_generic>`).
mlx5 supports subfunction management using devlink port (see :ref:`Documentation/networking/devlink/devlink-port.rst <devlink_port>`) interface.
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
2023-06-22 5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
2023-06-22 5:47 ` [net-next 02/15] net/mlx5: Fix SFs kernel documentation error Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable() Saeed Mahameed
` (11 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Lama Kayal,
Rahul Rameshbabu
From: Lama Kayal <lkayal@nvidia.com>
A member of struct mlx5_ifc_cmd_hca_cap_bits has been mistakenly
assigned the wrong reserved_at offset value. Correct it to align to the
right value, thus avoid future miscalculation.
Signed-off-by: Lama Kayal <lkayal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
include/linux/mlx5/mlx5_ifc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 354c7e326eab..33344a71c3e3 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -1710,9 +1710,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
u8 regexp_params[0x1];
u8 uar_sz[0x6];
u8 port_selection_cap[0x1];
- u8 reserved_at_248[0x1];
+ u8 reserved_at_251[0x1];
u8 umem_uid_0[0x1];
- u8 reserved_at_250[0x5];
+ u8 reserved_at_253[0x5];
u8 log_pg_sz[0x8];
u8 bf[0x1];
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable()
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (2 preceding siblings ...)
2023-06-22 5:47 ` [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported Saeed Mahameed
` (10 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Dan Carpenter, Kalesh AP
From: Dan Carpenter <dan.carpenter@linaro.org>
The mlx5_is_reset_now_capable() function returns bool, not negative
error codes. So if fast teardown is not supported it should return
false instead of -EOPNOTSUPP.
Fixes: 92501fa6e421 ("net/mlx5: Ack on sync_reset_request only if PF can do reset_now")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
index 7af2b14ab5d8..fb7874da3caa 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
@@ -327,7 +327,7 @@ static bool mlx5_is_reset_now_capable(struct mlx5_core_dev *dev)
if (!MLX5_CAP_GEN(dev, fast_teardown)) {
mlx5_core_warn(dev, "fast teardown is not supported by firmware\n");
- return -EOPNOTSUPP;
+ return false;
}
err = pci_read_config_word(dev->pdev, PCI_DEVICE_ID, &dev_id);
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (3 preceding siblings ...)
2023-06-22 5:47 ` [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable() Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules Saeed Mahameed
` (9 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
Remove duplicate function for checking if device has lag support.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
.../mellanox/mlx5/core/eswitch_offloads.c | 4 ++--
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 15 +++++++++++----
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 10 +---------
3 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index fdf482f6fb34..9056b0b014f6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2868,7 +2868,7 @@ void mlx5_esw_offloads_devcom_init(struct mlx5_eswitch *esw)
if (!MLX5_CAP_ESW(esw->dev, merged_eswitch))
return;
- if (!mlx5_is_lag_supported(esw->dev))
+ if (!mlx5_lag_is_supported(esw->dev))
return;
mlx5_devcom_register_component(devcom,
@@ -2890,7 +2890,7 @@ void mlx5_esw_offloads_devcom_cleanup(struct mlx5_eswitch *esw)
if (!MLX5_CAP_ESW(esw->dev, merged_eswitch))
return;
- if (!mlx5_is_lag_supported(esw->dev))
+ if (!mlx5_lag_is_supported(esw->dev))
return;
mlx5_devcom_send_event(devcom, MLX5_DEVCOM_ESW_OFFLOADS,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
index ffd7e17b8ebe..f0a074b2fcdf 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
@@ -1268,14 +1268,21 @@ void mlx5_lag_remove_mdev(struct mlx5_core_dev *dev)
mlx5_ldev_put(ldev);
}
+bool mlx5_lag_is_supported(struct mlx5_core_dev *dev)
+{
+ if (!MLX5_CAP_GEN(dev, vport_group_manager) ||
+ !MLX5_CAP_GEN(dev, lag_master) ||
+ MLX5_CAP_GEN(dev, num_lag_ports) < 2 ||
+ MLX5_CAP_GEN(dev, num_lag_ports) > MLX5_MAX_PORTS)
+ return false;
+ return true;
+}
+
void mlx5_lag_add_mdev(struct mlx5_core_dev *dev)
{
int err;
- if (!MLX5_CAP_GEN(dev, vport_group_manager) ||
- !MLX5_CAP_GEN(dev, lag_master) ||
- (MLX5_CAP_GEN(dev, num_lag_ports) > MLX5_MAX_PORTS ||
- MLX5_CAP_GEN(dev, num_lag_ports) <= 1))
+ if (!mlx5_lag_is_supported(dev))
return;
recheck:
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
index d7e7fa2348a5..a061b1873e27 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
@@ -74,15 +74,7 @@ struct mlx5_lag {
struct lag_mpesw lag_mpesw;
};
-static inline bool mlx5_is_lag_supported(struct mlx5_core_dev *dev)
-{
- if (!MLX5_CAP_GEN(dev, vport_group_manager) ||
- !MLX5_CAP_GEN(dev, lag_master) ||
- MLX5_CAP_GEN(dev, num_lag_ports) < 2 ||
- MLX5_CAP_GEN(dev, num_lag_ports) > MLX5_MAX_PORTS)
- return false;
- return true;
-}
+bool mlx5_lag_is_supported(struct mlx5_core_dev *dev);
static inline struct mlx5_lag *
mlx5_lag_dev(struct mlx5_core_dev *dev)
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (4 preceding siblings ...)
2023-06-22 5:47 ` [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf Saeed Mahameed
` (8 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
Device index is like PF index and limited to max physical ports.
For example, SFs created under PF the device index is the PF device index.
Use vhca_id which gets the FW index per vport, for vport rx rules
and vport pair events.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
index 965a8261c99b..152b62138450 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -408,7 +408,7 @@ static int mlx5e_sqs2vport_add_peers_rules(struct mlx5_eswitch *esw, struct mlx5
mlx5_devcom_for_each_peer_entry(devcom, MLX5_DEVCOM_ESW_OFFLOADS,
peer_esw, tmp) {
- int peer_rule_idx = mlx5_get_dev_index(peer_esw->dev);
+ u16 peer_rule_idx = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
struct mlx5e_rep_sq_peer *sq_peer;
int err;
@@ -1581,7 +1581,7 @@ static void *mlx5e_vport_rep_get_proto_dev(struct mlx5_eswitch_rep *rep)
static void mlx5e_vport_rep_event_unpair(struct mlx5_eswitch_rep *rep,
struct mlx5_eswitch *peer_esw)
{
- int i = mlx5_get_dev_index(peer_esw->dev);
+ u16 i = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
struct mlx5e_rep_priv *rpriv;
struct mlx5e_rep_sq *rep_sq;
@@ -1603,7 +1603,7 @@ static int mlx5e_vport_rep_event_pair(struct mlx5_eswitch *esw,
struct mlx5_eswitch_rep *rep,
struct mlx5_eswitch *peer_esw)
{
- int i = mlx5_get_dev_index(peer_esw->dev);
+ u16 i = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
struct mlx5_flow_handle *flow_rule;
struct mlx5e_rep_sq_peer *sq_peer;
struct mlx5e_rep_priv *rpriv;
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (5 preceding siblings ...)
2023-06-22 5:47 ` [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index Saeed Mahameed
` (7 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
Add peer fdb rules for E-Switch that are vport managers or ecpf device.
It is not needed for other devices.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
.../net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 9056b0b014f6..ed986d1c9e90 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -1069,6 +1069,9 @@ static int esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
void *misc;
int err;
+ if (!MLX5_VPORT_MANAGER(esw->dev) && !mlx5_core_is_ecpf_esw_manager(esw->dev))
+ return 0;
+
spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1177,11 +1180,14 @@ static int esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
static void esw_del_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
struct mlx5_core_dev *peer_dev)
{
+ u16 peer_index = mlx5_get_dev_index(peer_dev);
struct mlx5_flow_handle **flows;
struct mlx5_vport *vport;
unsigned long i;
- flows = esw->fdb_table.offloads.peer_miss_rules[mlx5_get_dev_index(peer_dev)];
+ flows = esw->fdb_table.offloads.peer_miss_rules[peer_index];
+ if (!flows)
+ return;
if (mlx5_core_ec_sriov_enabled(esw->dev)) {
mlx5_esw_for_each_ec_vf_vport(esw, i, vport, mlx5_core_max_ec_vfs(esw->dev)) {
@@ -1206,7 +1212,9 @@ static void esw_del_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
vport = mlx5_eswitch_get_vport(esw, MLX5_VPORT_PF);
mlx5_del_flow_rules(flows[vport->index]);
}
+
kvfree(flows);
+ esw->fdb_table.offloads.peer_miss_rules[peer_index] = NULL;
}
static int esw_add_fdb_miss_rule(struct mlx5_eswitch *esw)
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (6 preceding siblings ...)
2023-06-22 5:47 ` [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0 Saeed Mahameed
` (6 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
To allow devcom events on E-Switch that is not a vport group manager,
use vhca id as an index instead of device index which might be shared
between several E-Switches. for example SF and its PF.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
.../net/ethernet/mellanox/mlx5/core/eswitch.h | 2 +-
.../mellanox/mlx5/core/eswitch_offloads.c | 30 +++++++++++++++----
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
index 7064609f4998..ae0dc8a3060d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
@@ -353,7 +353,7 @@ struct mlx5_eswitch {
u32 large_group_num;
} params;
struct blocking_notifier_head n_head;
- bool paired[MLX5_MAX_PORTS];
+ struct xarray paired;
};
void esw_offloads_disable(struct mlx5_eswitch *esw);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index ed986d1c9e90..6f3b7d5eb6a4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2807,15 +2807,21 @@ static int mlx5_esw_offloads_devcom_event(int event,
struct mlx5_eswitch *esw = my_data;
struct mlx5_devcom *devcom = esw->dev->priv.devcom;
struct mlx5_eswitch *peer_esw = event_data;
+ u16 esw_i, peer_esw_i;
+ bool esw_paired;
int err;
+ peer_esw_i = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
+ esw_i = MLX5_CAP_GEN(esw->dev, vhca_id);
+ esw_paired = !!xa_load(&esw->paired, peer_esw_i);
+
switch (event) {
case ESW_OFFLOADS_DEVCOM_PAIR:
if (mlx5_eswitch_vport_match_metadata_enabled(esw) !=
mlx5_eswitch_vport_match_metadata_enabled(peer_esw))
break;
- if (esw->paired[mlx5_get_dev_index(peer_esw->dev)])
+ if (esw_paired)
break;
err = mlx5_esw_offloads_set_ns_peer(esw, peer_esw, true);
@@ -2829,23 +2835,29 @@ static int mlx5_esw_offloads_devcom_event(int event,
if (err)
goto err_pair;
- esw->paired[mlx5_get_dev_index(peer_esw->dev)] = true;
- peer_esw->paired[mlx5_get_dev_index(esw->dev)] = true;
+ err = xa_insert(&esw->paired, peer_esw_i, peer_esw, GFP_KERNEL);
+ if (err)
+ goto err_xa;
+
+ err = xa_insert(&peer_esw->paired, esw_i, esw, GFP_KERNEL);
+ if (err)
+ goto err_peer_xa;
+
esw->num_peers++;
peer_esw->num_peers++;
mlx5_devcom_comp_set_ready(devcom, MLX5_DEVCOM_ESW_OFFLOADS, true);
break;
case ESW_OFFLOADS_DEVCOM_UNPAIR:
- if (!esw->paired[mlx5_get_dev_index(peer_esw->dev)])
+ if (!esw_paired)
break;
peer_esw->num_peers--;
esw->num_peers--;
if (!esw->num_peers && !peer_esw->num_peers)
mlx5_devcom_comp_set_ready(devcom, MLX5_DEVCOM_ESW_OFFLOADS, false);
- esw->paired[mlx5_get_dev_index(peer_esw->dev)] = false;
- peer_esw->paired[mlx5_get_dev_index(esw->dev)] = false;
+ xa_erase(&peer_esw->paired, esw_i);
+ xa_erase(&esw->paired, peer_esw_i);
mlx5_esw_offloads_unpair(peer_esw, esw);
mlx5_esw_offloads_unpair(esw, peer_esw);
mlx5_esw_offloads_set_ns_peer(esw, peer_esw, false);
@@ -2854,6 +2866,10 @@ static int mlx5_esw_offloads_devcom_event(int event,
return 0;
+err_peer_xa:
+ xa_erase(&esw->paired, peer_esw_i);
+err_xa:
+ mlx5_esw_offloads_unpair(peer_esw, esw);
err_pair:
mlx5_esw_offloads_unpair(esw, peer_esw);
err_peer:
@@ -2879,6 +2895,7 @@ void mlx5_esw_offloads_devcom_init(struct mlx5_eswitch *esw)
if (!mlx5_lag_is_supported(esw->dev))
return;
+ xa_init(&esw->paired);
mlx5_devcom_register_component(devcom,
MLX5_DEVCOM_ESW_OFFLOADS,
mlx5_esw_offloads_devcom_event,
@@ -2906,6 +2923,7 @@ void mlx5_esw_offloads_devcom_cleanup(struct mlx5_eswitch *esw)
ESW_OFFLOADS_DEVCOM_UNPAIR, esw);
mlx5_devcom_unregister_component(devcom, MLX5_DEVCOM_ESW_OFFLOADS);
+ xa_destroy(&esw->paired);
}
bool mlx5_esw_vport_match_metadata_supported(const struct mlx5_eswitch *esw)
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (7 preceding siblings ...)
2023-06-22 5:47 ` [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 10/15] net/mlx5e: Remove redundant comment Saeed Mahameed
` (5 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
When creating flow table for shared fdb resources, there is
only need to pass other_vport flag if vport is not 0 or
if the port is ECPF in BlueField.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
.../net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 6f3b7d5eb6a4..ee507b12e908 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2551,13 +2551,13 @@ static int __esw_set_master_egress_rule(struct mlx5_core_dev *master,
return err;
}
-static int esw_master_egress_create_resources(struct mlx5_flow_namespace *egress_ns,
+static int esw_master_egress_create_resources(struct mlx5_eswitch *esw,
+ struct mlx5_flow_namespace *egress_ns,
struct mlx5_vport *vport, size_t count)
{
int inlen = MLX5_ST_SZ_BYTES(create_flow_group_in);
struct mlx5_flow_table_attr ft_attr = {
.max_fte = count, .prio = 0, .level = 0,
- .flags = MLX5_FLOW_TABLE_OTHER_VPORT,
};
struct mlx5_flow_table *acl;
struct mlx5_flow_group *g;
@@ -2572,6 +2572,9 @@ static int esw_master_egress_create_resources(struct mlx5_flow_namespace *egress
if (!flow_group_in)
return -ENOMEM;
+ if (vport->vport || mlx5_core_is_ecpf(esw->dev))
+ ft_attr.flags = MLX5_FLOW_TABLE_OTHER_VPORT;
+
acl = mlx5_create_vport_flow_table(egress_ns, &ft_attr, vport->vport);
if (IS_ERR(acl)) {
err = PTR_ERR(acl);
@@ -2642,7 +2645,7 @@ static int esw_set_master_egress_rule(struct mlx5_core_dev *master,
if (vport->egress.acl && vport->egress.type != VPORT_EGRESS_ACL_TYPE_SHARED_FDB)
return 0;
- err = esw_master_egress_create_resources(egress_ns, vport, count);
+ err = esw_master_egress_create_resources(esw, egress_ns, vport, count);
if (err)
return err;
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 10/15] net/mlx5e: Remove redundant comment
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (8 preceding siblings ...)
2023-06-22 5:47 ` [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0 Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
` (4 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
The function comment says what it is and the comment
is redundant.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index ee507b12e908..612be82a8ad5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -1904,7 +1904,6 @@ static int esw_create_vport_rx_group(struct mlx5_eswitch *esw)
if (!flow_group_in)
return -ENOMEM;
- /* create vport rx group */
mlx5_esw_set_flow_group_source_port(esw, flow_group_in, 0);
MLX5_SET(create_flow_group_in, flow_group_in, start_flow_index, 0);
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (9 preceding siblings ...)
2023-06-22 5:47 ` [net-next 10/15] net/mlx5e: Remove redundant comment Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-23 3:17 ` Jakub Kicinski
2023-06-22 5:47 ` [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported() Saeed Mahameed
` (3 subsequent siblings)
14 siblings, 1 reply; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory
From: Roi Dayan <roid@nvidia.com>
On error flow resources being freed in esw_master_egress_destroy_resources()
but pointers not being set to null if error flow is from creating a
bounce rule. Then in esw_acl_egress_ofld_cleanup() we try to access already
freed pointers. Fix it by resetting the pointers to null.
Also if error is from creating a second or later bounce rule then the
flow group and table being used and cannot and should not be freed.
Add a check to destroy the flow group and table if there are no bounce
rules.
mlx5_core.sf mlx5_core.sf.2: mlx5_destroy_flow_group:2306:(pid 2235): Flow group 4 wasn't destroyed, refcount > 1
mlx5_core.sf mlx5_core.sf.2: mlx5_destroy_flow_table:2295:(pid 2235): Flow table 3 wasn't destroyed, refcount > 1
Fixes: 6704fef92002 ("net/mlx5: E-switch, Handle multiple master egress rules")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 612be82a8ad5..cf58295ad7e2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2618,8 +2618,12 @@ static int esw_master_egress_create_resources(struct mlx5_eswitch *esw,
static void esw_master_egress_destroy_resources(struct mlx5_vport *vport)
{
+ if (!xa_empty(&vport->egress.offloads.bounce_rules))
+ return;
mlx5_destroy_flow_group(vport->egress.offloads.bounce_grp);
+ vport->egress.offloads.bounce_grp = NULL;
mlx5_destroy_flow_table(vport->egress.acl);
+ vport->egress.acl = NULL;
}
static int esw_set_master_egress_rule(struct mlx5_core_dev *master,
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported()
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (10 preceding siblings ...)
2023-06-22 5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() " Saeed Mahameed
` (2 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory
From: Jiri Pirko <jiri@nvidia.com>
MLX5_ESWITCH_MANAGER() check is done in is_eth_rep_supported().
Function is_ib_rep_supported() calls is_eth_rep_supported().
Remove the redundant check from it.
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
index 617ac7e5d75c..3b1e925f16d2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
@@ -151,9 +151,6 @@ static bool is_ib_rep_supported(struct mlx5_core_dev *dev)
if (!is_eth_rep_supported(dev))
return false;
- if (!MLX5_ESWITCH_MANAGER(dev))
- return false;
-
if (!is_mdev_switchdev_mode(dev))
return false;
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() check from is_ib_rep_supported()
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (11 preceding siblings ...)
2023-06-22 5:47 ` [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported() Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id() Saeed Mahameed
2023-06-22 5:47 ` [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() Saeed Mahameed
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory
From: Jiri Pirko <jiri@nvidia.com>
is_mdev_switchdev_mode() check is done in is_eth_rep_supported().
Function is_ib_rep_supported() calls is_eth_rep_supported().
Remove the redundant check from it.
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
index 3b1e925f16d2..edb06fb9bbc5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
@@ -151,9 +151,6 @@ static bool is_ib_rep_supported(struct mlx5_core_dev *dev)
if (!is_eth_rep_supported(dev))
return false;
- if (!is_mdev_switchdev_mode(dev))
- return false;
-
if (mlx5_core_mp_enabled(dev))
return false;
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id()
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (12 preceding siblings ...)
2023-06-22 5:47 ` [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() " Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() Saeed Mahameed
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory
From: Jiri Pirko <jiri@nvidia.com>
Since mlx5_esw_query_vport_vhca_id() could be called either from
mlx5_esw_vport_enable() or mlx5_esw_vport_disable() where the
the check is done, this is always false here.
Remove the redundant check.
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index cf58295ad7e2..bdfe609cc9ec 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -3961,9 +3961,6 @@ static int mlx5_esw_query_vport_vhca_id(struct mlx5_eswitch *esw, u16 vport_num,
int err;
*vhca_id = 0;
- if (mlx5_esw_is_manager_vport(esw, vport_num) ||
- !MLX5_CAP_GEN(esw->dev, vhca_resource_manager))
- return -EPERM;
query_ctx = kzalloc(query_out_sz, GFP_KERNEL);
if (!query_ctx)
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type()
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
` (13 preceding siblings ...)
2023-06-22 5:47 ` [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id() Saeed Mahameed
@ 2023-06-22 5:47 ` Saeed Mahameed
14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22 5:47 UTC (permalink / raw)
To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory
From: Jiri Pirko <jiri@nvidia.com>
As xa_get_mark() returns false in case the entry is not present,
no need to redundantly check if vport is present. Remove the lookup.
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index b4e465856127..faec7d7a4400 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -1908,12 +1908,6 @@ int mlx5_eswitch_set_vport_mac(struct mlx5_eswitch *esw,
static bool mlx5_esw_check_port_type(struct mlx5_eswitch *esw, u16 vport_num, xa_mark_t mark)
{
- struct mlx5_vport *vport;
-
- vport = mlx5_eswitch_get_vport(esw, vport_num);
- if (IS_ERR(vport))
- return false;
-
return xa_get_mark(&esw->vports, vport_num, mark);
}
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow
2023-06-22 5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
@ 2023-06-23 3:17 ` Jakub Kicinski
2023-06-23 19:22 ` Saeed Mahameed
0 siblings, 1 reply; 18+ messages in thread
From: Jakub Kicinski @ 2023-06-23 3:17 UTC (permalink / raw)
To: Saeed Mahameed
Cc: David S. Miller, Paolo Abeni, Eric Dumazet, Saeed Mahameed,
netdev, Tariq Toukan, Roi Dayan, Shay Drory
On Wed, 21 Jun 2023 22:47:31 -0700 Saeed Mahameed wrote:
> Fixes: 6704fef92002 ("net/mlx5: E-switch, Handle multiple master egress rules")
hash should be 5e0202eb49ed on this one, could you fix that up?
patches themselves LG
--
pw-bot: cr
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow
2023-06-23 3:17 ` Jakub Kicinski
@ 2023-06-23 19:22 ` Saeed Mahameed
0 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-23 19:22 UTC (permalink / raw)
To: Jakub Kicinski
Cc: David S. Miller, Paolo Abeni, Eric Dumazet, Saeed Mahameed,
netdev, Tariq Toukan, Roi Dayan, Shay Drory
On 22 Jun 20:17, Jakub Kicinski wrote:
>On Wed, 21 Jun 2023 22:47:31 -0700 Saeed Mahameed wrote:
>> Fixes: 6704fef92002 ("net/mlx5: E-switch, Handle multiple master egress rules")
>
>hash should be 5e0202eb49ed on this one, could you fix that up?
>patches themselves LG
Ack, let me handle this..
Thanks!
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2023-06-23 19:22 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-22 5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
2023-06-22 5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
2023-06-22 5:47 ` [net-next 02/15] net/mlx5: Fix SFs kernel documentation error Saeed Mahameed
2023-06-22 5:47 ` [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register Saeed Mahameed
2023-06-22 5:47 ` [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable() Saeed Mahameed
2023-06-22 5:47 ` [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported Saeed Mahameed
2023-06-22 5:47 ` [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules Saeed Mahameed
2023-06-22 5:47 ` [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf Saeed Mahameed
2023-06-22 5:47 ` [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index Saeed Mahameed
2023-06-22 5:47 ` [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0 Saeed Mahameed
2023-06-22 5:47 ` [net-next 10/15] net/mlx5e: Remove redundant comment Saeed Mahameed
2023-06-22 5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
2023-06-23 3:17 ` Jakub Kicinski
2023-06-23 19:22 ` Saeed Mahameed
2023-06-22 5:47 ` [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported() Saeed Mahameed
2023-06-22 5:47 ` [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() " Saeed Mahameed
2023-06-22 5:47 ` [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id() Saeed Mahameed
2023-06-22 5:47 ` [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() Saeed Mahameed
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).