From: Luoyouming luoyouming@huawei.com
driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I6ZBLL
---------------------------------------------------------------
When the compatibility flag is interacted, the kernel space does not confirm whether the user space has issued the flag but responds directly, which will cause the flag to be received in any scenario in the user space, and the current patch adds this judgment.
Fixes: b3b7a525b076 ("RDMA/hns: Support cqe inline in user space") Fixes: d67087cc0876 ("RDMA/hns: Remove enable rq inline in kernel and add compatibility handling") Signed-off-by: Luoyouming luoyouming@huawei.com --- drivers/infiniband/hw/hns/hns_roce_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c index 101614aed9c7..d41387d0a411 100644 --- a/drivers/infiniband/hw/hns/hns_roce_main.c +++ b/drivers/infiniband/hw/hns/hns_roce_main.c @@ -527,12 +527,14 @@ static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx,
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) { context->config |= ucmd.config & HNS_ROCE_RQ_INLINE_FLAGS; - resp.config |= HNS_ROCE_RSP_RQ_INLINE_FLAGS; + if (context->config & HNS_ROCE_RQ_INLINE_FLAGS) + resp.config |= HNS_ROCE_RSP_RQ_INLINE_FLAGS; }
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_CQE_INLINE) { context->config |= ucmd.config & HNS_ROCE_CQE_INLINE_FLAGS; - resp.config |= HNS_ROCE_RSP_CQE_INLINE_FLAGS; + if (context->config & HNS_ROCE_CQE_INLINE_FLAGS) + resp.config |= HNS_ROCE_RSP_CQE_INLINE_FLAGS; }
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_DCA_MODE) {