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 <yuehaibing@xxxxxxxxxx> > --- > 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.