mlxsw: Convert RIF-has-netdevice queries to a dedicated helper
authorPetr Machata <petrm@nvidia.com>
Fri, 9 Jun 2023 17:32:11 +0000 (19:32 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 Jun 2023 08:49:30 +0000 (09:49 +0100)
In a number of places, a netdevice underlying a RIF is obtained only to
check if it a NULL pointer. In order to clean up the interface between the
router and the other modules, add a new helper to specifically answer this
question, and convert the relevant uses to this new interface.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c
drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h

index 5416093..c8a356a 100644 (file)
@@ -221,7 +221,7 @@ start_again:
        for (; i < rif_count; i++) {
                struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i);
 
-               if (!rif || !mlxsw_sp_rif_dev(rif))
+               if (!rif || !mlxsw_sp_rif_has_dev(rif))
                        continue;
                err = mlxsw_sp_erif_entry_get(mlxsw_sp, &entry, rif,
                                              counters_enabled);
index 1f6bc0c..b0f0300 100644 (file)
@@ -720,7 +720,7 @@ int mlxsw_sp_mr_rif_add(struct mlxsw_sp_mr_table *mr_table,
        const struct net_device *rif_dev = mlxsw_sp_rif_dev(rif);
        struct mlxsw_sp_mr_vif *mr_vif;
 
-       if (!rif_dev)
+       if (!mlxsw_sp_rif_has_dev(rif))
                return 0;
 
        mr_vif = mlxsw_sp_mr_dev_vif_lookup(mr_table, rif_dev);
@@ -736,7 +736,7 @@ void mlxsw_sp_mr_rif_del(struct mlxsw_sp_mr_table *mr_table,
        const struct net_device *rif_dev = mlxsw_sp_rif_dev(rif);
        struct mlxsw_sp_mr_vif *mr_vif;
 
-       if (!rif_dev)
+       if (!mlxsw_sp_rif_has_dev(rif))
                return;
 
        mr_vif = mlxsw_sp_mr_dev_vif_lookup(mr_table, rif_dev);
@@ -754,7 +754,7 @@ void mlxsw_sp_mr_rif_mtu_update(struct mlxsw_sp_mr_table *mr_table,
        struct mlxsw_sp_mr *mr = mlxsw_sp->mr;
        struct mlxsw_sp_mr_vif *mr_vif;
 
-       if (!rif_dev)
+       if (!mlxsw_sp_rif_has_dev(rif))
                return;
 
        /* Search for a VIF that use that RIF */
index a0598aa..3259aed 100644 (file)
@@ -8080,6 +8080,11 @@ const struct net_device *mlxsw_sp_rif_dev(const struct mlxsw_sp_rif *rif)
        return rif->dev;
 }
 
+bool mlxsw_sp_rif_has_dev(const struct mlxsw_sp_rif *rif)
+{
+       return !!mlxsw_sp_rif_dev(rif);
+}
+
 static void mlxsw_sp_rif_push_l3_stats(struct mlxsw_sp_rif *rif)
 {
        struct rtnl_hw_stats64 stats = {};
index 229d38c..a6a8cf0 100644 (file)
@@ -94,6 +94,7 @@ u16 mlxsw_sp_ipip_lb_ul_rif_id(const struct mlxsw_sp_rif_ipip_lb *lb_rif);
 u32 mlxsw_sp_ipip_dev_ul_tb_id(const struct net_device *ol_dev);
 int mlxsw_sp_rif_dev_ifindex(const struct mlxsw_sp_rif *rif);
 const struct net_device *mlxsw_sp_rif_dev(const struct mlxsw_sp_rif *rif);
+bool mlxsw_sp_rif_has_dev(const struct mlxsw_sp_rif *rif);
 int mlxsw_sp_rif_counter_value_get(struct mlxsw_sp *mlxsw_sp,
                                   struct mlxsw_sp_rif *rif,
                                   enum mlxsw_sp_rif_counter_dir dir,