Subject: Re: [syzbot] [rdma?] INFO: trying to register non-static key in skb_dequeue (2)

From: Guoqing Jiang <[email-masked]>
Date: Tue, 23 May 2023 10:25:56 +0800

On 5/23/23 10:13, syzbot wrote:
> Hello,
>
> syzbot tried to test the proposed patch but the build/boot failed:
>
> failed to apply patch:
> checking file drivers/infiniband/sw/rxe/rxe_qp.c
> patch: **** unexpected end of file in patch
>
>
>
> Tested on:
>
> commit:         56518a60 RDMA/hns: Modify the value of long message lo..
> git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-rc
> dashboard link: https://syzkaller.appspot.com/bug?extid=eba589d8f49c73d356da
> compiler:
> patch:          https://syzkaller.appspot.com/x/patch.diff?x=132bea5a280000
>

Sorry, let me attach the temp patch.

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git 
for-rc

diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c b/drivers/infiniband/sw/rxe/rxe_qp.c
index 61a2eb77d999..17ed41309756 100644
--- a/drivers/infiniband/sw/rxe/rxe_qp.c
+++ b/drivers/infiniband/sw/rxe/rxe_qp.c
@@ -758,19 +758,21 @@ static void rxe_qp_do_cleanup(struct work_struct *work)
 		del_timer_sync(&qp->rnr_nak_timer);
 	}
 
-	if (qp->resp.task.func)
+	/* flush out any receive wr's or pending requests */
+	if (qp->resp.task.func) {
 		rxe_cleanup_task(&qp->resp.task);
+		rxe_responder(qp);
+	}
 
-	if (qp->req.task.func)
+	if (qp->req.task.func) {
 		rxe_cleanup_task(&qp->req.task);
+		rxe_requester(qp);
+	}
 
-	if (qp->comp.task.func)
+	if (qp->comp.task.func) {
 		rxe_cleanup_task(&qp->comp.task);
-
-	/* flush out any receive wr's or pending requests */
-	rxe_requester(qp);
-	rxe_completer(qp);
-	rxe_responder(qp);
+		rxe_completer(qp);
+	}
 
 	if (qp->sq.queue)
 		rxe_queue_cleanup(qp->sq.queue);