| From aaed465f761700dace9ab39521013cddaae4f5a3 Mon Sep 17 00:00:00 2001 |
| From: Jack Wang <jinpu.wang@cloud.ionos.com> |
| Date: Thu, 17 Dec 2020 15:19:12 +0100 |
| Subject: RDMA/rtrs-clt: Use bitmask to check sess->flags |
| |
| From: Jack Wang <jinpu.wang@cloud.ionos.com> |
| |
| commit aaed465f761700dace9ab39521013cddaae4f5a3 upstream. |
| |
| We may want to add new flags, so it's better to use bitmask to check flags. |
| |
| Fixes: 6a98d71daea1 ("RDMA/rtrs: client: main functionality") |
| Link: https://lore.kernel.org/r/20201217141915.56989-17-jinpu.wang@cloud.ionos.com |
| Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com> |
| Signed-off-by: Gioh Kim <gi-oh.kim@cloud.ionos.com> |
| Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/infiniband/ulp/rtrs/rtrs-clt.c | 14 +++++++------- |
| 1 file changed, 7 insertions(+), 7 deletions(-) |
| |
| --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c |
| +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c |
| @@ -496,7 +496,7 @@ static void rtrs_clt_recv_done(struct rt |
| int err; |
| struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess); |
| |
| - WARN_ON(sess->flags != RTRS_MSG_NEW_RKEY_F); |
| + WARN_ON((sess->flags & RTRS_MSG_NEW_RKEY_F) == 0); |
| iu = container_of(wc->wr_cqe, struct rtrs_iu, |
| cqe); |
| err = rtrs_iu_post_recv(&con->c, iu); |
| @@ -516,7 +516,7 @@ static void rtrs_clt_rkey_rsp_done(struc |
| u32 buf_id; |
| int err; |
| |
| - WARN_ON(sess->flags != RTRS_MSG_NEW_RKEY_F); |
| + WARN_ON((sess->flags & RTRS_MSG_NEW_RKEY_F) == 0); |
| |
| iu = container_of(wc->wr_cqe, struct rtrs_iu, cqe); |
| |
| @@ -623,12 +623,12 @@ static void rtrs_clt_rdma_done(struct ib |
| } else if (imm_type == RTRS_HB_MSG_IMM) { |
| WARN_ON(con->c.cid); |
| rtrs_send_hb_ack(&sess->s); |
| - if (sess->flags == RTRS_MSG_NEW_RKEY_F) |
| + if (sess->flags & RTRS_MSG_NEW_RKEY_F) |
| return rtrs_clt_recv_done(con, wc); |
| } else if (imm_type == RTRS_HB_ACK_IMM) { |
| WARN_ON(con->c.cid); |
| sess->s.hb_missed_cnt = 0; |
| - if (sess->flags == RTRS_MSG_NEW_RKEY_F) |
| + if (sess->flags & RTRS_MSG_NEW_RKEY_F) |
| return rtrs_clt_recv_done(con, wc); |
| } else { |
| rtrs_wrn(con->c.sess, "Unknown IMM type %u\n", |
| @@ -656,7 +656,7 @@ static void rtrs_clt_rdma_done(struct ib |
| WARN_ON(!(wc->wc_flags & IB_WC_WITH_INVALIDATE || |
| wc->wc_flags & IB_WC_WITH_IMM)); |
| WARN_ON(wc->wr_cqe->done != rtrs_clt_rdma_done); |
| - if (sess->flags == RTRS_MSG_NEW_RKEY_F) { |
| + if (sess->flags & RTRS_MSG_NEW_RKEY_F) { |
| if (wc->wc_flags & IB_WC_WITH_INVALIDATE) |
| return rtrs_clt_recv_done(con, wc); |
| |
| @@ -681,7 +681,7 @@ static int post_recv_io(struct rtrs_clt_ |
| struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess); |
| |
| for (i = 0; i < q_size; i++) { |
| - if (sess->flags == RTRS_MSG_NEW_RKEY_F) { |
| + if (sess->flags & RTRS_MSG_NEW_RKEY_F) { |
| struct rtrs_iu *iu = &con->rsp_ius[i]; |
| |
| err = rtrs_iu_post_recv(&con->c, iu); |
| @@ -1566,7 +1566,7 @@ static int create_con_cq_qp(struct rtrs_ |
| sess->queue_depth * 3 + 1); |
| } |
| /* alloc iu to recv new rkey reply when server reports flags set */ |
| - if (sess->flags == RTRS_MSG_NEW_RKEY_F || con->c.cid == 0) { |
| + if (sess->flags & RTRS_MSG_NEW_RKEY_F || con->c.cid == 0) { |
| con->rsp_ius = rtrs_iu_alloc(max_recv_wr, sizeof(*rsp), |
| GFP_KERNEL, sess->s.dev->ib_dev, |
| DMA_FROM_DEVICE, |