]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: mellanox: fix open-coded for_each_set_bit()
authorYury Norov <yury.norov@gmail.com>
Sun, 23 Jan 2022 18:38:35 +0000 (10:38 -0800)
committerYury Norov <yury.norov@gmail.com>
Mon, 2 May 2022 13:30:39 +0000 (06:30 -0700)
Mellanox driver has an open-coded for_each_set_bit(). Fix it.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
drivers/net/ethernet/mellanox/mlx4/cmd.c

index e10b7b04b8941022e2103a93ed209e265d1da5ec..c56d2194cbfcd0bba24f4e87d673e8dbb205abb1 100644 (file)
@@ -1994,21 +1994,16 @@ static void mlx4_allocate_port_vpps(struct mlx4_dev *dev, int port)
 
 static int mlx4_master_activate_admin_state(struct mlx4_priv *priv, int slave)
 {
-       int port, err;
+       int p, port, err;
        struct mlx4_vport_state *vp_admin;
        struct mlx4_vport_oper_state *vp_oper;
        struct mlx4_slave_state *slave_state =
                &priv->mfunc.master.slave_state[slave];
        struct mlx4_active_ports actv_ports = mlx4_get_active_ports(
                        &priv->dev, slave);
-       int min_port = find_first_bit(actv_ports.ports,
-                                     priv->dev.caps.num_ports) + 1;
-       int max_port = min_port - 1 +
-               bitmap_weight(actv_ports.ports, priv->dev.caps.num_ports);
 
-       for (port = min_port; port <= max_port; port++) {
-               if (!test_bit(port - 1, actv_ports.ports))
-                       continue;
+       for_each_set_bit(p, actv_ports.ports, priv->dev.caps.num_ports) {
+               port = p + 1;
                priv->mfunc.master.vf_oper[slave].smi_enabled[port] =
                        priv->mfunc.master.vf_admin[slave].enable_smi[port];
                vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port];
@@ -2063,19 +2058,13 @@ static int mlx4_master_activate_admin_state(struct mlx4_priv *priv, int slave)
 
 static void mlx4_master_deactivate_admin_state(struct mlx4_priv *priv, int slave)
 {
-       int port;
+       int p, port;
        struct mlx4_vport_oper_state *vp_oper;
        struct mlx4_active_ports actv_ports = mlx4_get_active_ports(
                        &priv->dev, slave);
-       int min_port = find_first_bit(actv_ports.ports,
-                                     priv->dev.caps.num_ports) + 1;
-       int max_port = min_port - 1 +
-               bitmap_weight(actv_ports.ports, priv->dev.caps.num_ports);
 
-
-       for (port = min_port; port <= max_port; port++) {
-               if (!test_bit(port - 1, actv_ports.ports))
-                       continue;
+       for_each_set_bit(p, actv_ports.ports, priv->dev.caps.num_ports) {
+               port = p + 1;
                priv->mfunc.master.vf_oper[slave].smi_enabled[port] =
                        MLX4_VF_SMI_DISABLED;
                vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port];