From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Bart Van Assche <Bart.VanAssche-Sjgp3cTcYWE@public.gmane.org>
Cc: "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org"
<dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [rdma-rc 13/14] RDMA/mthca: Make explicit conversion to 64bit value
Date: Mon, 31 Jul 2017 19:50:10 +0300 [thread overview]
Message-ID: <20170731165010.GC13672@mtr-leonro.local> (raw)
In-Reply-To: <1501518230.2466.14.camel-Sjgp3cTcYWE@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2984 bytes --]
On Mon, Jul 31, 2017 at 04:23:52PM +0000, Bart Van Assche wrote:
> On Mon, 2017-07-31 at 19:16 +0300, Leon Romanovsky wrote:
> > On Mon, Jul 31, 2017 at 03:17:24PM +0000, Bart Van Assche wrote:
> > > On Mon, 2017-07-31 at 10:09 +0300, Leon Romanovsky wrote:
> > > > From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> > > >
> > > > The "lg" variable is declared as int so in all places where
> > > > this variable is used as a shift operand, the output will be
> > > > int too.
> > > >
> > > > This produces the following smatch warning:
> > > > drivers/infiniband/hw/mthca/mthca_cmd.c:701 mthca_map_cmd() warn:
> > > > should '1 << lg' be a 64 bit type?
> > > >
> > > > Simple declaration of "1" to be "1ULL" will fix the issue.
> > > >
> > > > Signed-off-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> > > > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> > > > ---
> > > > drivers/infiniband/hw/mthca/mthca_cmd.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
> > > > index 9d83a53c0c67..1052c35f2e75 100644
> > > > --- a/drivers/infiniband/hw/mthca/mthca_cmd.c
> > > > +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
> > > > @@ -698,7 +698,7 @@ static int mthca_map_cmd(struct mthca_dev *dev, u16 op, struct mthca_icm *icm,
> > > > for (i = 0; i < mthca_icm_size(&iter) >> lg; ++i) {
> > > > if (virt != -1) {
> > > > pages[nent * 2] = cpu_to_be64(virt);
> > > > - virt += 1 << lg;
> > > > + virt += 1ULL << lg;
> > > > }
> > > >
> > > > pages[nent * 2 + 1] =
> > >
> > > Hello Leon,
> > >
> > > Is my analysis correct that lg can be equal to or larger than 32? If so,
> > > isn't this patch a bug fix that needs a "Fixes:" tag?
> >
> > This is the fix to commit introduced in pre-git era and I don't have
> > adequate Fixes tag. The fact that no one complained about the problem
> > suggests to me that no one is really important to have it in stable trees.
> >
> > Tariq and me did the analysis for the same code issue with mlx4 (he is
> > planning to forward the fix to Dave) and our conclusion that it is not
> > bug.
> >
> > The reason to it in line 689:drivers/infiniband/hw/mthca/mthca_cmd.c
> > 689 lg = ffs(mthca_icm_addr(&iter) | mthca_icm_size(&iter)) - 1;
> >
> > The "lg" for sure will be less than 31, because ffs returns values from 0 to 31 and minus 1.
> > The situation that ffs will return 0 is unlikely to happen.
>
> Hello Leon,
>
> mthca_icm_addr() returns a DMA address (dma_addr_t). Does that mean that
> that function can return a 64-bit value on 64-bit systems? Shouldn't ffs()
> be changed into a function that supports 64-bit values?
Don't dismiss the second part of that ffs: "| mthca_icm_size(&iter)", to
overflow ffs, the icm size should be more than 2^32. Is it real scenario?
>
> Thanks,
>
> Bart.
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-07-31 16:50 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-31 7:09 [pull request][rdma-rc 00/14] RDMA fixes for-4.13 Leon Romanovsky
[not found] ` <20170731070924.7193-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 7:09 ` [rdma-rc 01/14] RDMA/(core,ulp): Convert register/unregister event handler to be void Leon Romanovsky
[not found] ` <20170731070924.7193-2-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 13:03 ` Dennis Dalessandro
[not found] ` <67e53715-1346-c969-b59a-ca4494d3b7c4-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-07-31 13:07 ` Leon Romanovsky
2017-07-31 15:24 ` Doug Ledford
[not found] ` <1501514653.3009.6.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-07-31 15:50 ` Leon Romanovsky
2017-07-31 7:09 ` [rdma-rc 02/14] RDMA/core: Cleanup device capability enum Leon Romanovsky
[not found] ` <20170731070924.7193-3-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 13:25 ` Dennis Dalessandro
2017-07-31 7:09 ` [rdma-rc 03/14] RDMA/core: Remove unimplemented node_types and node transport Leon Romanovsky
[not found] ` <20170731070924.7193-4-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 12:01 ` Hal Rosenstock
[not found] ` <2e1b38f9-ae7a-4f5e-9cac-168f1f9b56af-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2017-07-31 12:18 ` Leon Romanovsky
[not found] ` <20170731121823.GV13672-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-07-31 13:32 ` Dennis Dalessandro
[not found] ` <63a8961c-7341-80c2-c417-67d4e6fd4702-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-07-31 15:35 ` Doug Ledford
2017-07-31 7:09 ` [rdma-rc 04/14] RDMA/core: Delete BUG() from unreachable flow Leon Romanovsky
[not found] ` <20170731070924.7193-5-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 13:34 ` Dennis Dalessandro
2017-07-31 7:09 ` [rdma-rc 05/14] RDMA/core: Refactor get link layer wrapper Leon Romanovsky
[not found] ` <20170731070924.7193-6-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 14:55 ` Dennis Dalessandro
2017-07-31 7:09 ` [rdma-rc 06/14] IB/core: Fix race condition in resolving IP to MAC Leon Romanovsky
2017-07-31 7:09 ` [rdma-rc 07/14] RDMA/uverbs: Prevent leak of reserved field Leon Romanovsky
[not found] ` <20170731070924.7193-8-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 13:43 ` Dennis Dalessandro
2017-07-31 7:09 ` [rdma-rc 08/14] RDMA/mlx4: Avoid potential derefence warning Leon Romanovsky
[not found] ` <20170731070924.7193-9-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 15:11 ` Bart Van Assche
2017-07-31 16:21 ` Leon Romanovsky
[not found] ` <20170731162133.GB13672-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-07-31 19:02 ` Dan Carpenter
2017-08-01 7:20 ` Leon Romanovsky
2017-07-31 7:09 ` [rdma-rc 09/14] RDMA/mlx4: Remove gfp_mask argument from acquire_group call Leon Romanovsky
[not found] ` <20170731070924.7193-10-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 13:46 ` Dennis Dalessandro
2017-07-31 7:09 ` [rdma-rc 10/14] RDMA/mlx5: Fix existence check for extended address vector Leon Romanovsky
2017-07-31 7:09 ` [rdma-rc 11/14] RDMA/bnxt_re: Delete unsupported modify_port function Leon Romanovsky
2017-07-31 7:09 ` [rdma-rc 12/14] RDMA/usnic: Fix remove address space warning Leon Romanovsky
2017-07-31 7:09 ` [rdma-rc 13/14] RDMA/mthca: Make explicit conversion to 64bit value Leon Romanovsky
[not found] ` <20170731070924.7193-14-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-07-31 15:17 ` Bart Van Assche
[not found] ` <1501514243.2466.5.camel-Sjgp3cTcYWE@public.gmane.org>
2017-07-31 16:16 ` Leon Romanovsky
[not found] ` <20170731161636.GA13672-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-07-31 16:23 ` Bart Van Assche
[not found] ` <1501518230.2466.14.camel-Sjgp3cTcYWE@public.gmane.org>
2017-07-31 16:50 ` Leon Romanovsky [this message]
[not found] ` <20170731165010.GC13672-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-07-31 16:57 ` Bart Van Assche
[not found] ` <1501520241.2466.16.camel-Sjgp3cTcYWE@public.gmane.org>
2017-07-31 17:07 ` Bart Van Assche
2017-07-31 17:11 ` Leon Romanovsky
2017-07-31 17:11 ` Bart Van Assche
2017-07-31 7:09 ` [rdma-rc 14/14] IB/uverbs: Fix device cleanup Leon Romanovsky
2017-07-31 17:15 ` [pull request][rdma-rc 00/14] RDMA fixes for-4.13 Leon Romanovsky
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=20170731165010.GC13672@mtr-leonro.local \
--to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=Bart.VanAssche-Sjgp3cTcYWE@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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.