@@ -2206,6 +2206,22 @@ struct mlx5_flow_namespace *mlx5_get_fdb_sub_ns(struct mlx5_core_dev *dev,
22062206}
22072207EXPORT_SYMBOL (mlx5_get_fdb_sub_ns );
22082208
2209+ static bool is_nic_rx_ns (enum mlx5_flow_namespace_type type )
2210+ {
2211+ switch (type ) {
2212+ case MLX5_FLOW_NAMESPACE_BYPASS :
2213+ case MLX5_FLOW_NAMESPACE_LAG :
2214+ case MLX5_FLOW_NAMESPACE_OFFLOADS :
2215+ case MLX5_FLOW_NAMESPACE_ETHTOOL :
2216+ case MLX5_FLOW_NAMESPACE_KERNEL :
2217+ case MLX5_FLOW_NAMESPACE_LEFTOVERS :
2218+ case MLX5_FLOW_NAMESPACE_ANCHOR :
2219+ return true;
2220+ default :
2221+ return false;
2222+ }
2223+ }
2224+
22092225struct mlx5_flow_namespace * mlx5_get_flow_namespace (struct mlx5_core_dev * dev ,
22102226 enum mlx5_flow_namespace_type type )
22112227{
@@ -2236,31 +2252,35 @@ struct mlx5_flow_namespace *mlx5_get_flow_namespace(struct mlx5_core_dev *dev,
22362252 if (steering -> sniffer_tx_root_ns )
22372253 return & steering -> sniffer_tx_root_ns -> ns ;
22382254 return NULL ;
2239- default :
2240- break ;
2241- }
2242-
2243- if (type == MLX5_FLOW_NAMESPACE_EGRESS ||
2244- type == MLX5_FLOW_NAMESPACE_EGRESS_KERNEL ) {
2255+ case MLX5_FLOW_NAMESPACE_EGRESS :
2256+ case MLX5_FLOW_NAMESPACE_EGRESS_KERNEL :
22452257 root_ns = steering -> egress_root_ns ;
22462258 prio = type - MLX5_FLOW_NAMESPACE_EGRESS ;
2247- } else if (type == MLX5_FLOW_NAMESPACE_RDMA_RX ) {
2259+ break ;
2260+ case MLX5_FLOW_NAMESPACE_RDMA_RX :
22482261 root_ns = steering -> rdma_rx_root_ns ;
22492262 prio = RDMA_RX_BYPASS_PRIO ;
2250- } else if (type == MLX5_FLOW_NAMESPACE_RDMA_RX_KERNEL ) {
2263+ break ;
2264+ case MLX5_FLOW_NAMESPACE_RDMA_RX_KERNEL :
22512265 root_ns = steering -> rdma_rx_root_ns ;
22522266 prio = RDMA_RX_KERNEL_PRIO ;
2253- } else if (type == MLX5_FLOW_NAMESPACE_RDMA_TX ) {
2267+ break ;
2268+ case MLX5_FLOW_NAMESPACE_RDMA_TX :
22542269 root_ns = steering -> rdma_tx_root_ns ;
2255- } else if (type == MLX5_FLOW_NAMESPACE_RDMA_RX_COUNTERS ) {
2270+ break ;
2271+ case MLX5_FLOW_NAMESPACE_RDMA_RX_COUNTERS :
22562272 root_ns = steering -> rdma_rx_root_ns ;
22572273 prio = RDMA_RX_COUNTERS_PRIO ;
2258- } else if (type == MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS ) {
2274+ break ;
2275+ case MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS :
22592276 root_ns = steering -> rdma_tx_root_ns ;
22602277 prio = RDMA_TX_COUNTERS_PRIO ;
2261- } else { /* Must be NIC RX */
2278+ break ;
2279+ default : /* Must be NIC RX */
2280+ WARN_ON (!is_nic_rx_ns (type ));
22622281 root_ns = steering -> root_ns ;
22632282 prio = type ;
2283+ break ;
22642284 }
22652285
22662286 if (!root_ns )
0 commit comments