RDMA/rxe: Change AH objects to indexed
authorBob Pearson <rpearsonhpe@gmail.com>
Thu, 7 Oct 2021 20:40:48 +0000 (15:40 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 12 Oct 2021 16:25:26 +0000 (13:25 -0300)
Make changes to rxe_param.h and rxe_pool.c to allow indexing of AH
objects. Valid indices are non-zero so older providers can be detected.

Link: https://lore.kernel.org/r/20211007204051.10086-3-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_param.h
drivers/infiniband/sw/rxe/rxe_pool.c

index aeffaef..918270e 100644 (file)
@@ -69,7 +69,9 @@ enum rxe_device_param {
        RXE_MAX_MCAST_GRP               = 8192,
        RXE_MAX_MCAST_QP_ATTACH         = 56,
        RXE_MAX_TOT_MCAST_QP_ATTACH     = 0x70000,
-       RXE_MAX_AH                      = DEFAULT_MAX_VALUE,
+       RXE_MAX_AH                      = (1<<15) - 1,  /* 32Ki - 1 */
+       RXE_MIN_AH_INDEX                = 1,
+       RXE_MAX_AH_INDEX                = RXE_MAX_AH,
        RXE_MAX_SRQ_WR                  = DEFAULT_MAX_VALUE,
        RXE_MIN_SRQ_WR                  = 1,
        RXE_MAX_SRQ_SGE                 = 27,
index ffa8420..7b4cb46 100644 (file)
@@ -26,7 +26,9 @@ struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
                .name           = "rxe-ah",
                .size           = sizeof(struct rxe_ah),
                .elem_offset    = offsetof(struct rxe_ah, pelem),
-               .flags          = RXE_POOL_NO_ALLOC,
+               .flags          = RXE_POOL_INDEX | RXE_POOL_NO_ALLOC,
+               .min_index      = RXE_MIN_AH_INDEX,
+               .max_index      = RXE_MAX_AH_INDEX,
        },
        [RXE_TYPE_SRQ] = {
                .name           = "rxe-srq",