Re: [PATCH] IB/rxe: fix GFP_KERNEL in spinlock context

From: Moni Shoua
Date: Sun Sep 04 2016 - 06:03:35 EST


On Fri, Sep 2, 2016 at 11:46 PM, Alexey Khoroshilov
<khoroshilov@xxxxxxxxx> wrote:
> There is skb_clone(skb, GFP_KERNEL) in spinlock context
> in rxe_rcv_mcast_pkt().
>
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
> ---
> drivers/infiniband/sw/rxe/rxe_recv.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/sw/rxe/rxe_recv.c b/drivers/infiniband/sw/rxe/rxe_recv.c
> index 3d464c23e08b..144d2f129fcd 100644
> --- a/drivers/infiniband/sw/rxe/rxe_recv.c
> +++ b/drivers/infiniband/sw/rxe/rxe_recv.c
> @@ -312,7 +312,7 @@ static void rxe_rcv_mcast_pkt(struct rxe_dev *rxe, struct sk_buff *skb)
> * make a copy of the skb to post to the next qp
> */
> skb_copy = (mce->qp_list.next != &mcg->qp_list) ?
> - skb_clone(skb, GFP_KERNEL) : NULL;
> + skb_clone(skb, GFP_ATOMIC) : NULL;
>
> pkt->qp = qp;
> rxe_add_ref(qp);
> --
> 2.7.4
>
Acked-by: Moni Shoua <monis@xxxxxxxxxxxx>