From: Doug Ledford <dledford@redhat.com>
To: Leon Romanovsky <leon@kernel.org>,
"Gustavo A. R. Silva" <gustavo@embeddedor.com>
Cc: Lijun Ou <oulijun@huawei.com>,
"Wei Hu(Xavier)" <xavier.huwei@huawei.com>,
Jason Gunthorpe <jgg@ziepe.ca>,
linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] RDMA/hns: Use 64-bit arithmetic instead of 32-bit
Date: Thu, 18 Oct 2018 20:17:10 -0400 [thread overview]
Message-ID: <4bf459e9feb559270983530d2e3720e78a167b05.camel@redhat.com> (raw)
In-Reply-To: <20181018110155.GH5007@mtr-leonro.mtl.com>
[-- Attachment #1: Type: text/plain, Size: 2245 bytes --]
On Thu, 2018-10-18 at 14:01 +0300, Leon Romanovsky wrote:
> On Thu, Oct 18, 2018 at 10:02:58AM +0200, Gustavo A. R. Silva wrote:
> > Cast *max_num_sg* to u64 in order to give the compiler complete
> > information about the proper arithmetic to use.
> >
> > Notice that such variable is used in a context that expects an
> > expression of type u64 (64 bits, unsigned) and the following
> > expression is currently being evaluated using 32-bit
> > arithmetic:
>
> And what is wrong with that?
> Please fix static analyzer tool instead of fixing proper C code.
Judging on the static analyzer tool's message, I don't see anything
wrong with it. The code contains a potential unintentional overflow
error. The author might have been well aware of the overflow and not
cared and in that case this is valid C, but the analyzer has no way of
knowing that, so it flags it for review. To silence the checker you
could either cast the arithmetic to u64, or cast length to u32. Either
would clear up the ambiguity. I guess I'm not seeing why you would
blame the static checker in this case, it did the best it is possible
for it to do.
> Thanks
>
> >
> > length = max_num_sg * page_size;
> >
> > Addresses-Coverity-ID: 1474517 ("Unintentional integer overflow")
> > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> > ---
> > drivers/infiniband/hw/hns/hns_roce_mr.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/infiniband/hw/hns/hns_roce_mr.c b/drivers/infiniband/hw/hns/hns_roce_mr.c
> > index 521ad2a..d479d5e 100644
> > --- a/drivers/infiniband/hw/hns/hns_roce_mr.c
> > +++ b/drivers/infiniband/hw/hns/hns_roce_mr.c
> > @@ -1219,7 +1219,7 @@ struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
> > int ret;
> >
> > page_size = 1 << (hr_dev->caps.pbl_buf_pg_sz + PAGE_SHIFT);
> > - length = max_num_sg * page_size;
> > + length = (u64)max_num_sg * page_size;
> >
> > if (mr_type != IB_MR_TYPE_MEM_REG)
> > return ERR_PTR(-EINVAL);
> > --
> > 2.7.4
> >
--
Doug Ledford <dledford@redhat.com>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2018-10-19 0:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-18 8:02 Gustavo A. R. Silva
2018-10-18 11:01 ` Leon Romanovsky
2018-10-19 0:17 ` Doug Ledford [this message]
2018-10-29 10:07 ` Leon Romanovsky
2018-10-22 18:15 ` Jason Gunthorpe
2018-10-22 18:22 ` Gustavo A. R. Silva
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=4bf459e9feb559270983530d2e3720e78a167b05.camel@redhat.com \
--to=dledford@redhat.com \
--cc=gustavo@embeddedor.com \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=oulijun@huawei.com \
--cc=xavier.huwei@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®