On Tue, 2020-09-01 at 22:35 +0800, YueHaibing wrote:
> A spin lock is held before kzalloc, it may sleep with holding
> the spinlock, so we should use GFP_ATOMIC instead.
> 
> This is detected by coccinelle.
> 
> Fixes: 0419d8c9d8f8 ("net/mlx5e: kTLS, Add kTLS RX resync support")
> Signed-off-by: YueHaibing <yuehaib...@huawei.com>
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git
> a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
> b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
> index acf6d80a6bb7..1a32435acac3 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
> @@ -247,7 +247,7 @@ resync_post_get_progress_params(struct
> mlx5e_icosq *sq,
>       int err;
>       u16 pi;
>  
> -     buf = kzalloc(sizeof(*buf), GFP_KERNEL);
> +     buf = kzalloc(sizeof(*buf), GFP_ATOMIC);
>       if (unlikely(!buf)) {
>               err = -ENOMEM;
>               goto err_out;

Thanks for the patch, the kzalloc can move outside the spinlock.
This patch should also go to net.

I will provide a newer version of the patch to deal with this and with
a missing kfree on error handling i found while looking at the code.

Thanks, 
Saeed.

Reply via email to