All of lore.kernel.org
 help / color / mirror / Atom feed
From: Weihang Li <liweihang@huawei.com>
To: <dledford@redhat.com>, <jgg@ziepe.ca>
Cc: <leon@kernel.org>, <linux-rdma@vger.kernel.org>, <linuxarm@huawei.com>
Subject: [PATCH v3 for-next 5/8] RDMA/hns: Solve the overflow of the calc_pg_sz()
Date: Sat, 19 Sep 2020 18:03:19 +0800	[thread overview]
Message-ID: <1600509802-44382-6-git-send-email-liweihang@huawei.com> (raw)
In-Reply-To: <1600509802-44382-1-git-send-email-liweihang@huawei.com>

From: Jiaran Zhang <zhangjiaran@huawei.com>

calc_pg_sz() may gets a data calculation overflow if the PAGE_SIZE is 64 KB
and hop_num is 2. It is because that all variables involved in calculation
are defined in type of int. So change the type of bt_chunk_size,
buf_chunk_size and obj_per_chunk_default to u64.

Fixes: ba6bb7e97421 ("RDMA/hns: Add interfaces to get pf capabilities from firmware")
Signed-off-by: Jiaran Zhang <zhangjiaran@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
---
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
index 761d8c6..1cc4abe 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -1793,9 +1793,9 @@ static void calc_pg_sz(int obj_num, int obj_size, int hop_num, int ctx_bt_num,
 		       int *buf_page_size, int *bt_page_size, u32 hem_type)
 {
 	u64 obj_per_chunk;
-	int bt_chunk_size = 1 << PAGE_SHIFT;
-	int buf_chunk_size = 1 << PAGE_SHIFT;
-	int obj_per_chunk_default = buf_chunk_size / obj_size;
+	u64 bt_chunk_size = PAGE_SIZE;
+	u64 buf_chunk_size = PAGE_SIZE;
+	u64 obj_per_chunk_default = buf_chunk_size / obj_size;
 
 	*buf_page_size = 0;
 	*bt_page_size = 0;
-- 
2.8.1


  parent reply	other threads:[~2020-09-19 10:04 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-19 10:03 [PATCH v3 for-next 0/8] RDMA/hns: Misc Updates Weihang Li
2020-09-19 10:03 ` [PATCH v3 for-next 1/8] RDMA/hns: Refactor process about opcode in post_send() Weihang Li
2020-09-24 18:59   ` Jason Gunthorpe
2020-09-25  1:31     ` liweihang
2020-09-19 10:03 ` [PATCH v3 for-next 2/8] RDMA/hns: Add interception for resizing SRQs Weihang Li
2020-09-19 10:03 ` [PATCH v3 for-next 3/8] RDMA/hns: Correct typo of hns_roce_create_cq() Weihang Li
2020-09-19 10:03 ` [PATCH v3 for-next 4/8] RDMA/hns: Add check for the validity of sl configuration Weihang Li
2020-09-19 10:03 ` Weihang Li [this message]
2020-09-19 10:03 ` [PATCH v3 for-next 6/8] RDMA/hns: Fix the wrong value of rnr_retry when querying qp Weihang Li
2020-09-19 10:03 ` [PATCH v3 for-next 7/8] RDMA/hns: Fix configuration of ack_req_freq in QPC Weihang Li
2020-09-19 10:03 ` [PATCH v3 for-next 8/8] RDMA/hns: Fix missing sq_sig_type when querying QP Weihang Li
2020-09-24 19:00 ` [PATCH v3 for-next 0/8] RDMA/hns: Misc Updates Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1600509802-44382-6-git-send-email-liweihang@huawei.com \
    --to=liweihang@huawei.com \
    --cc=dledford@redhat.com \
    --cc=jgg@ziepe.ca \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.