In the Linux kernel, the following vulnerability has been resolved:
RDMA/irdma: Fix drain SQ hang with no completion
SW generated completions for outstanding WRs posted on SQ after QP is in error target the wrong CQ. This causes the ibdrainsq to hang with no completion.
Fix this to generate completions on the right CQ.
[ 863.969340] INFO: task kworker/u52:2:671 blocked for more than 122 seconds. [ 863.979224] Not tainted 5.14.0-130.el9.x8664 #1 [ 863.986588] "echo 0 > /proc/sys/kernel/hungtasktimeoutsecs" disables this message. [ 863.996997] task:kworker/u52:2 state:D stack: 0 pid: 671 ppid: 2 flags:0x00004000 [ 864.007272] Workqueue: xprtiod xprtautoclose [sunrpc] [ 864.014056] Call Trace: [ 864.017575] _schedule+0x206/0x580 [ 864.022296] schedule+0x43/0xa0 [ 864.026736] scheduletimeout+0x115/0x150 [ 864.032185] _waitforcommon+0x93/0x1d0 [ 864.037717] ? usleeprangestate+0x90/0x90 [ 864.043368] _ibdrainsq+0xf6/0x170 [ibcore] [ 864.049371] ? _rdmablockiternext+0x80/0x80 [ibcore] [ 864.056240] ibdrainsq+0x66/0x70 [ibcore] [ 864.062003] rpcrdmaxprtdisconnect+0x82/0x3b0 [rpcrdma] [ 864.069365] ? xprtpreparetransmit+0x5d/0xc0 [sunrpc] [ 864.076386] xprtrdmaclose+0xe/0x30 [rpcrdma] [ 864.082593] xprtautoclose+0x52/0x100 [sunrpc] [ 864.088718] processonework+0x1e8/0x3c0 [ 864.094170] workerthread+0x50/0x3b0 [ 864.099109] ? rescuerthread+0x370/0x370 [ 864.104473] kthread+0x149/0x170 [ 864.109022] ? setkthreadstruct+0x40/0x40 [ 864.114713] retfrom_fork+0x22/0x30