mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
accacb8f51
Peek at the CQ after arming it so that we can return a hint. This avoids missed completions due to a race between posting CQEs and arming the CQ. For example, CM teardown waits on MAD requests to complete with ib_cq_poll_work(). Without this fix, the last completion might be left on the CQ, hanging the kthread doing the teardown. The console backtraces look like this: [ 4199.911284] Call Trace: [ 4199.911401] [<ffffffff9657fe95>] schedule+0x35/0x80 [ 4199.911556] [<ffffffff965830df>] schedule_timeout+0x22f/0x2c0 [ 4199.911727] [<ffffffff9657f7a8>] ? __schedule+0x368/0xa20 [ 4199.911891] [<ffffffff96580903>] wait_for_completion+0xb3/0x130 [ 4199.912067] [<ffffffff960a17e0>] ? wake_up_q+0x70/0x70 [ 4199.912243] [<ffffffffc074a06d>] cm_destroy_id+0x13d/0x450 [ib_cm] [ 4199.912422] [<ffffffff961615d5>] ? printk+0x57/0x73 [ 4199.912578] [<ffffffffc074a390>] ib_destroy_cm_id+0x10/0x20 [ib_cm] [ 4199.912759] [<ffffffffc076098c>] rdma_destroy_id+0xac/0x340 [rdma_cm] [ 4199.912941] [<ffffffffc076f2cc>] 0xffffffffc076f2cc Signed-off-by: Andrew Boyer <andrew.boyer@dell.com> Signed-off-by: Doug Ledford <dledford@redhat.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
rxe_av.c | ||
rxe_comp.c | ||
rxe_cq.c | ||
rxe_dma.c | ||
rxe_hdr.h | ||
rxe_icrc.c | ||
rxe_loc.h | ||
rxe_mcast.c | ||
rxe_mmap.c | ||
rxe_mr.c | ||
rxe_net.c | ||
rxe_net.h | ||
rxe_opcode.c | ||
rxe_opcode.h | ||
rxe_param.h | ||
rxe_pool.c | ||
rxe_pool.h | ||
rxe_qp.c | ||
rxe_queue.c | ||
rxe_queue.h | ||
rxe_recv.c | ||
rxe_req.c | ||
rxe_resp.c | ||
rxe_srq.c | ||
rxe_sysfs.c | ||
rxe_task.c | ||
rxe_task.h | ||
rxe_verbs.c | ||
rxe_verbs.h | ||
rxe.c | ||
rxe.h |