Browse Source

IB/rxe: fix GFP_KERNEL in spinlock context

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@ispras.ru>
Acked-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Alexey Khoroshilov 9 years ago
parent
commit
5e102b3b4f
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/infiniband/sw/rxe/rxe_recv.c

+ 1 - 1
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
 		 * make a copy of the skb to post to the next qp
 		 */
 		 */
 		skb_copy = (mce->qp_list.next != &mcg->qp_list) ?
 		skb_copy = (mce->qp_list.next != &mcg->qp_list) ?
-				skb_clone(skb, GFP_KERNEL) : NULL;
+				skb_clone(skb, GFP_ATOMIC) : NULL;
 
 
 		pkt->qp = qp;
 		pkt->qp = qp;
 		rxe_add_ref(qp);
 		rxe_add_ref(qp);