OSDN Git Service

IB/mlx5: Add page fault handler for DC initiator WQE
authorMichael Guralnik <michaelgur@mellanox.com>
Mon, 19 Aug 2019 12:08:15 +0000 (15:08 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 28 Aug 2019 14:18:40 +0000 (11:18 -0300)
Parsing DC initiator WQEs upon page fault requires skipping an address
vector segment, as in UD WQEs.

Link: https://lore.kernel.org/r/20190819120815.21225-4-leon@kernel.org
Signed-off-by: Michael Guralnik <michaelgur@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/odp.c

index 8c8e5f4..429c724 100644 (file)
@@ -1050,7 +1050,8 @@ static int mlx5_ib_mr_initiator_pfault_handler(
        if (qp->ibqp.qp_type == IB_QPT_XRC_INI)
                *wqe += sizeof(struct mlx5_wqe_xrc_seg);
 
-       if (qp->ibqp.qp_type == IB_QPT_UD) {
+       if (qp->ibqp.qp_type == IB_QPT_UD ||
+           qp->qp_sub_type == MLX5_IB_QPT_DCI) {
                av = *wqe;
                if (av->dqp_dct & cpu_to_be32(MLX5_EXTENDED_UD_AV))
                        *wqe += sizeof(struct mlx5_av);