RDMA/bnxt_re: Add resize_cq support
authorSelvin Xavier <selvin.xavier@broadcom.com>
Wed, 15 Mar 2023 08:16:55 +0000 (01:16 -0700)
committerLeon Romanovsky <leon@kernel.org>
Wed, 29 Mar 2023 07:03:43 +0000 (10:03 +0300)
commitd54bd5abf4d26e1b6722238f75e36069ea91def9
treea2166fda275e411b90ebcffca9229973a2e97fb2
parentd649c638dc26f3501da510cf7fceb5c15ca54258
RDMA/bnxt_re: Add resize_cq support

Add resize_cq verb support for user space CQs. Resize operation for
kernel CQs are not supported now.

Driver should free the current CQ only after user library polls
for all the completions and switch to new CQ. So after the resize_cq
is returned from the driver, user library polls for existing completions
and store it as temporary data. Once library reaps all completions in the
current CQ, it invokes the ibv_cmd_poll_cq to inform the driver about
the resize_cq completion. Adding a check for user CQs in driver's
poll_cq and complete the resize operation for user CQs.
Updating uverbs_cmd_mask with poll_cq to support this.

Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://lore.kernel.org/r/1678868215-23626-1-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/bnxt_re/ib_verbs.c
drivers/infiniband/hw/bnxt_re/ib_verbs.h
drivers/infiniband/hw/bnxt_re/main.c
drivers/infiniband/hw/bnxt_re/qplib_fp.c
drivers/infiniband/hw/bnxt_re/qplib_fp.h
include/uapi/rdma/bnxt_re-abi.h