Message ID | 20230315181902.4177819-6-joel@joelfernandes.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | None | expand |
On Wed, Mar 15, 2023 at 2:19 PM Joel Fernandes (Google) <joel@joelfernandes.org> wrote: > > From: "Uladzislau Rezki (Sony)" <urezki@gmail.com> > > 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@nvidia.com> > Cc: Saeed Mahameed <saeedm@nvidia.com> > Cc: Vlad Buslov <vladbu@nvidia.com> > Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> > --- > 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 >
On 26 Mar 08:34, Joel Fernandes wrote: >On Wed, Mar 15, 2023 at 2:19 PM Joel Fernandes (Google) ><joel@joelfernandes.org> wrote: >> >> From: "Uladzislau Rezki (Sony)" <urezki@gmail.com> >> >> 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? > For mlx5 usually me, but since this is a larger series that is not mlx5 centric and targeting multiple tree, I really don't know which subsystem you should be targeting.. for netdev submissions you need to specify the targeted branch e.g. [PATCH v2 net-next 06/14] ... FWIW: Reviewed-by: Saeed Mahameed <saeedm@nvidia.com> > - Joel > > >> >> Cc: Ariel Levkovich <lariel@nvidia.com> >> Cc: Saeed Mahameed <saeedm@nvidia.com> >> Cc: Vlad Buslov <vladbu@nvidia.com> >> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> >> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> >> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> >> --- >> 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 >>
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)