]> www.infradead.org Git - users/jedix/linux-maple.git/commit
sif: XRC: XRC support and PSIF 2.1 limitation #3521
authorVinay Shaw <vinay.shaw@oracle.com>
Thu, 12 May 2016 05:52:01 +0000 (07:52 +0200)
committerKnut Omang <knut.omang@oracle.com>
Sun, 3 Jul 2016 14:01:38 +0000 (16:01 +0200)
commit4209834a949d68513d499e8bb4f95ae2c0bc299c
treeb8db96733766edd0999375b3b705e9d0481454d5
parent54cee3079b1b51b06e66eb9aac559e16eb9d7d29
sif: XRC: XRC support and PSIF 2.1 limitation #3521

This commit addresses the issue of XRC support (Orabug: 23044600).

Changes include
 XRCTGT QP not to allocate SQ
 Introduced get_sq/rq function to check XRC cases
    (XRC INI/TGT QP has no RQ, XRC TGT QP has no SQ & RQ).
 Overload "ib_qp_attr" attributes for modify XRC QP (RTS state)
    requirement of PSIF
 Rearranged/moved all QP helper functions to be in sif_qp.c/.h files

Note about user space support for XRC:
Since a XRCSRQ can be targeted by multiple XRCTGTQPs with same
XRC domain, simply getting a QP# in completion doesn't help.
MLX-hw overloads the "src_qp" with XRCSRQ# for completions.

For now, we limit the XRC association (not related to kernel context)
    one user-context <--> one XRCTGTQP/XSRQ

Signed-off-by: Vinay Shaw <vinay.shaw@oracle.com>
Reviewed-by: Knut Omang <knut.omang@oracle.com>
drivers/infiniband/hw/sif/sif_cq.c
drivers/infiniband/hw/sif/sif_eq.c
drivers/infiniband/hw/sif/sif_qp.c
drivers/infiniband/hw/sif/sif_qp.h
drivers/infiniband/hw/sif/sif_r3.c
drivers/infiniband/hw/sif/sif_sndrcv.c
drivers/infiniband/hw/sif/sif_sq.c
drivers/infiniband/hw/sif/sif_sq.h