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 38a3415acf7a..13896e9c1d33 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c @@ -75,6 +75,7 @@ struct mlx5e_macsec_rx_sc; struct mlx5e_macsec_rx_sc_xarray_element { u32 fs_id; struct mlx5e_macsec_rx_sc *rx_sc; + struct rcu_head rcu_head; }; struct mlx5e_macsec_rx_sc { @@ -839,7 +840,7 @@ static void macsec_del_rxsc_ctx(struct mlx5e_macsec *macsec, struct mlx5e_macsec list_del_rcu(&rx_sc->rx_sc_list_element); xa_erase(&macsec->sc_xarray, rx_sc->sc_xarray_element->fs_id); dst_release(&rx_sc->md_dst->dst); - kfree(rx_sc->sc_xarray_element); + kfree_rcu(rx_sc->sc_xarray_element, rcu_head); kfree_rcu_mightsleep(rx_sc); }