linux_old1/drivers/infiniband/sw/rxe
Andrew Boyer 07bf9627d5 IB/rxe: Wait for tasklets to finish before tearing down QP
The system may crash when a malformed request is received and
the error is detected by the responder.

NodeA: $ ibv_rc_pingpong -g 0 -d rxe0 -i 1 -n 1 -s 50000
NodeB: $ ibv_rc_pingpong -g 0 -d rxe0 -i 1 -n 1 -s 1024 <NodeA_ip>

The responder generates a receive error on node B since the incoming
SEND is oversized. If the client tears down the QP before the responder
or the completer finish running, a page fault may occur.

The fix makes the destroy operation spin until the tasks complete, which
appears to be original intent of the design.

Signed-off-by: Andrew Boyer <andrew.boyer@dell.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-12-12 16:31:45 -05:00
..
Kconfig
Makefile
rxe.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe.h IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_av.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_comp.c IB/rxe: Advance the consumer pointer before posting the CQE 2016-12-12 16:31:45 -05:00
rxe_cq.c
rxe_dma.c IB/{rxe,core,rdmavt}: Fix kernel crash for reg MR 2016-10-06 13:50:04 -04:00
rxe_hdr.h
rxe_icrc.c
rxe_loc.h IB/rxe: Unblock loopback by moving skb_out increment 2016-12-12 16:31:45 -05:00
rxe_mcast.c
rxe_mmap.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_mr.c IB/rxe: Add support for zero-byte operations 2016-12-12 16:31:45 -05:00
rxe_net.c IB/rxe: Unblock loopback by moving skb_out increment 2016-12-12 16:31:45 -05:00
rxe_net.h IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_opcode.c
rxe_opcode.h
rxe_param.h
rxe_pool.c
rxe_pool.h
rxe_qp.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_queue.c
rxe_queue.h
rxe_recv.c IB/rxe: Remove buffer used for printing IP address 2016-12-12 16:31:45 -05:00
rxe_req.c IB/rxe: avoid putting a large struct rxe_qp on stack 2016-12-12 16:31:45 -05:00
rxe_resp.c IB/rxe: Fix ref leak in duplicate_request() 2016-12-12 16:31:45 -05:00
rxe_srq.c IB/rxe: Remove unneeded cast in rxe_srq_from_attr() 2016-12-12 16:31:45 -05:00
rxe_sysfs.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_task.c IB/rxe: Wait for tasklets to finish before tearing down QP 2016-12-12 16:31:45 -05:00
rxe_task.h IB/rxe: Wait for tasklets to finish before tearing down QP 2016-12-12 16:31:45 -05:00
rxe_verbs.c IB/rxe: Fix ref leak in rxe_create_qp() 2016-12-12 16:31:45 -05:00
rxe_verbs.h