]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/mlx5: Refactor mlx5_get_flow_namespace
authorMaor Gottlieb <maorg@nvidia.com>
Wed, 1 Dec 2021 19:36:19 +0000 (11:36 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Feb 2025 17:22:27 +0000 (18:22 +0100)
[ Upstream commit 4588fed7beae6d54ef4c67c77fc39364f8fc42af ]

Have all the namespace type check in the same switch case.

Signed-off-by: Maor Gottlieb <maorg@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Stable-dep-of: c08d3e62b2e7 ("net/mlx5: Fix RDMA TX steering prio")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c

index 3f49eff271cf2f502fea8d50052d7da3096b54ba..3c5e9bf1cde337d6497ccf4d43a1773b8359b618 100644 (file)
@@ -2302,6 +2302,22 @@ struct mlx5_flow_namespace *mlx5_get_fdb_sub_ns(struct mlx5_core_dev *dev,
 }
 EXPORT_SYMBOL(mlx5_get_fdb_sub_ns);
 
+static bool is_nic_rx_ns(enum mlx5_flow_namespace_type type)
+{
+       switch (type) {
+       case MLX5_FLOW_NAMESPACE_BYPASS:
+       case MLX5_FLOW_NAMESPACE_LAG:
+       case MLX5_FLOW_NAMESPACE_OFFLOADS:
+       case MLX5_FLOW_NAMESPACE_ETHTOOL:
+       case MLX5_FLOW_NAMESPACE_KERNEL:
+       case MLX5_FLOW_NAMESPACE_LEFTOVERS:
+       case MLX5_FLOW_NAMESPACE_ANCHOR:
+               return true;
+       default:
+               return false;
+       }
+}
+
 struct mlx5_flow_namespace *mlx5_get_flow_namespace(struct mlx5_core_dev *dev,
                                                    enum mlx5_flow_namespace_type type)
 {
@@ -2327,31 +2343,35 @@ struct mlx5_flow_namespace *mlx5_get_flow_namespace(struct mlx5_core_dev *dev,
                if (steering->sniffer_tx_root_ns)
                        return &steering->sniffer_tx_root_ns->ns;
                return NULL;
-       default:
-               break;
-       }
-
-       if (type == MLX5_FLOW_NAMESPACE_EGRESS ||
-           type == MLX5_FLOW_NAMESPACE_EGRESS_KERNEL) {
+       case MLX5_FLOW_NAMESPACE_EGRESS:
+       case MLX5_FLOW_NAMESPACE_EGRESS_KERNEL:
                root_ns = steering->egress_root_ns;
                prio = type - MLX5_FLOW_NAMESPACE_EGRESS;
-       } else if (type == MLX5_FLOW_NAMESPACE_RDMA_RX) {
+               break;
+       case MLX5_FLOW_NAMESPACE_RDMA_RX:
                root_ns = steering->rdma_rx_root_ns;
                prio = RDMA_RX_BYPASS_PRIO;
-       } else if (type == MLX5_FLOW_NAMESPACE_RDMA_RX_KERNEL) {
+               break;
+       case MLX5_FLOW_NAMESPACE_RDMA_RX_KERNEL:
                root_ns = steering->rdma_rx_root_ns;
                prio = RDMA_RX_KERNEL_PRIO;
-       } else if (type == MLX5_FLOW_NAMESPACE_RDMA_TX) {
+               break;
+       case MLX5_FLOW_NAMESPACE_RDMA_TX:
                root_ns = steering->rdma_tx_root_ns;
-       } else if (type == MLX5_FLOW_NAMESPACE_RDMA_RX_COUNTERS) {
+               break;
+       case MLX5_FLOW_NAMESPACE_RDMA_RX_COUNTERS:
                root_ns = steering->rdma_rx_root_ns;
                prio = RDMA_RX_COUNTERS_PRIO;
-       } else if (type == MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS) {
+               break;
+       case MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS:
                root_ns = steering->rdma_tx_root_ns;
                prio = RDMA_TX_COUNTERS_PRIO;
-       } else { /* Must be NIC RX */
+               break;
+       default: /* Must be NIC RX */
+               WARN_ON(!is_nic_rx_ns(type));
                root_ns = steering->root_ns;
                prio = type;
+               break;
        }
 
        if (!root_ns)