Re: [PATCH v2 06/14] net/mlx5: Rename kfree_rcu() to kfree_rcu_mightsleep()

From: Joel Fernandes
Date: Sun Mar 26 2023 - 08:34:30 EST


On Wed, Mar 15, 2023 at 2:19 PM Joel Fernandes (Google)
<joel@xxxxxxxxxxxxxxxxx> wrote:
>
> From: "Uladzislau Rezki (Sony)" <urezki@xxxxxxxxx>
>
> The kfree_rcu() and kvfree_rcu() macros' single-argument forms are
> deprecated. Therefore switch to the new kfree_rcu_mightsleep() and
> kvfree_rcu_mightsleep() variants. The goal is to avoid accidental use
> of the single-argument forms, which can introduce functionality bugs in
> atomic contexts and latency bugs in non-atomic contexts.

In a world where patches anxiously await their precious Ack, could
today be our lucky day on this one?

We need Acks to take this in for 6.4. David? Others?

- Joel


>
> Cc: Ariel Levkovich <lariel@xxxxxxxxxx>
> Cc: Saeed Mahameed <saeedm@xxxxxxxxxx>
> Cc: Vlad Buslov <vladbu@xxxxxxxxxx>
> Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
> Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c | 2 +-
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
> index ca834bbcb44f..8afcec0c5d3c 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
> @@ -242,7 +242,7 @@ mlx5e_int_port_remove(struct mlx5e_tc_int_port_priv *priv,
> mlx5_del_flow_rules(int_port->rx_rule);
> mapping_remove(ctx, int_port->mapping);
> mlx5e_int_port_metadata_free(priv, int_port->match_metadata);
> - kfree_rcu(int_port);
> + kfree_rcu_mightsleep(int_port);
> priv->num_ports--;
> }
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
> index 08d0929e8260..b811dad7370a 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
> @@ -670,7 +670,7 @@ static int mlx5e_macsec_del_txsa(struct macsec_context *ctx)
>
> mlx5e_macsec_cleanup_sa(macsec, tx_sa, true);
> mlx5_destroy_encryption_key(macsec->mdev, tx_sa->enc_key_id);
> - kfree_rcu(tx_sa);
> + kfree_rcu_mightsleep(tx_sa);
> macsec_device->tx_sa[assoc_num] = NULL;
>
> out:
> @@ -849,7 +849,7 @@ static void macsec_del_rxsc_ctx(struct mlx5e_macsec *macsec, struct mlx5e_macsec
> xa_erase(&macsec->sc_xarray, rx_sc->sc_xarray_element->fs_id);
> metadata_dst_free(rx_sc->md_dst);
> kfree(rx_sc->sc_xarray_element);
> - kfree_rcu(rx_sc);
> + kfree_rcu_mightsleep(rx_sc);
> }
>
> static int mlx5e_macsec_del_rxsc(struct macsec_context *ctx)
> --
> 2.40.0.rc1.284.g88254d51c5-goog
>