forked from Minki/linux
IB/mlx5: Add XRC initiator ODP support
Skip XRC segment in the beginning of a send WQE and fetch ODP XRC capabilities when QP type is IB_QPT_XRC_INI. The rest of the handling is the same as in RC QP. Signed-off-by: Moni Shoua <monis@mellanox.com> Reviewed-by: Majd Dibbiny <majd@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
6ff7414a17
commit
29917f4750
@ -1020,6 +1020,10 @@ static int mlx5_ib_mr_initiator_pfault_handler(
|
||||
MLX5_WQE_CTRL_OPCODE_MASK;
|
||||
|
||||
switch (qp->ibqp.qp_type) {
|
||||
case IB_QPT_XRC_INI:
|
||||
*wqe += sizeof(struct mlx5_wqe_xrc_seg);
|
||||
transport_caps = dev->odp_caps.per_transport_caps.xrc_odp_caps;
|
||||
break;
|
||||
case IB_QPT_RC:
|
||||
transport_caps = dev->odp_caps.per_transport_caps.rc_odp_caps;
|
||||
break;
|
||||
@ -1039,7 +1043,7 @@ static int mlx5_ib_mr_initiator_pfault_handler(
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
if (qp->ibqp.qp_type != IB_QPT_RC) {
|
||||
if (qp->ibqp.qp_type == IB_QPT_UD) {
|
||||
av = *wqe;
|
||||
if (av->dqp_dct & cpu_to_be32(MLX5_EXTENDED_UD_AV))
|
||||
*wqe += sizeof(struct mlx5_av);
|
||||
|
Loading…
Reference in New Issue
Block a user