From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Syed Nayyar Waris <syednwaris@gmail.com>
Cc: kbuild test robot <lkp@intel.com>,
Linus Walleij <linus.walleij@linaro.org>,
Andrew Morton <akpm@linux-foundation.org>,
kbuild-all@lists.01.org,
William Breathitt Gray <vilhelm.gray@gmail.com>,
Arnd Bergmann <arnd@arndb.de>,
Linux-Arch <linux-arch@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v7 1/4] bitops: Introduce the the for_each_set_clump macro
Date: Fri, 29 May 2020 21:38:24 +0300 [thread overview]
Message-ID: <20200529183824.GW1634618@smile.fi.intel.com> (raw)
In-Reply-To: <CACG_h5oOsThkSfdN_adWHxHfAWfg=W72o5RM6JwHGVT=Zq9MiQ@mail.gmail.com>
On Fri, May 29, 2020 at 11:38:18PM +0530, Syed Nayyar Waris wrote:
> On Sun, May 24, 2020 at 8:15 PM kbuild test robot <lkp@intel.com> wrote:
...
> > 579 static inline unsigned long bitmap_get_value(const unsigned long *map,
> > 580 unsigned long start,
> > 581 unsigned long nbits)
> > 582 {
> > 583 const size_t index = BIT_WORD(start);
> > 584 const unsigned long offset = start % BITS_PER_LONG;
> > 585 const unsigned long ceiling = roundup(start + 1, BITS_PER_LONG);
> > 586 const unsigned long space = ceiling - start;
> > 587 unsigned long value_low, value_high;
> > 588
> > 589 if (space >= nbits)
> > > 590 return (map[index] >> offset) & GENMASK(nbits - 1, 0);
> > 591 else {
> > 592 value_low = map[index] & BITMAP_FIRST_WORD_MASK(start);
> > 593 value_high = map[index + 1] & BITMAP_LAST_WORD_MASK(start + nbits);
> > 594 return (value_low >> offset) | (value_high << space);
> > 595 }
> > 596 }
> Regarding the above compilation warnings. All the warnings are because
> of GENMASK usage in my patch.
> The warnings are coming because of sanity checks present for 'GENMASK'
> macro in include/linux/bits.h.
>
> Taking the example statement (in my patch) where compilation warning
> is getting reported:
> return (map[index] >> offset) & GENMASK(nbits - 1, 0);
>
> 'nbits' is of type 'unsigned long'.
> In above, the sanity check is comparing '0' with unsigned value. And
> unsigned value can't be less than '0' ever, hence the warning.
> But this warning will occur whenever there will be '0' as one of the
> 'argument' and an unsigned variable as another 'argument' for GENMASK.
>
> This warning is getting cleared if I cast the 'nbits' to 'long'.
>
> Let me know if I should submit a next patch with the casts applied.
> What do you guys think?
Proper fix is to fix GENMASK(), but allowed workaround is to use
(BIT(nbits) - 1)
instead.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2020-05-29 18:38 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-24 5:00 [PATCH v7 0/4] Introduce the for_each_set_clump macro Syed Nayyar Waris
2020-05-24 5:01 ` [PATCH v7 1/4] bitops: Introduce the " Syed Nayyar Waris
2020-05-24 14:44 ` kbuild test robot
2020-05-29 18:08 ` Syed Nayyar Waris
2020-05-29 18:38 ` Andy Shevchenko [this message]
2020-05-29 20:02 ` Syed Nayyar Waris
2020-05-29 21:31 ` William Breathitt Gray
2020-05-29 21:53 ` Syed Nayyar Waris
2020-05-29 21:42 ` Andy Shevchenko
2020-05-29 22:07 ` Andy Shevchenko
2020-05-29 22:11 ` Syed Nayyar Waris
2020-05-29 22:19 ` Andy Shevchenko
2020-05-30 8:45 ` Syed Nayyar Waris
2020-05-30 9:20 ` Andy Shevchenko
2020-05-31 1:11 ` Syed Nayyar Waris
2020-05-31 11:00 ` Andy Shevchenko
2020-05-31 22:37 ` Rikard Falkeborn
2020-06-01 0:31 ` Syed Nayyar Waris
2020-06-01 8:33 ` Andy Shevchenko
2020-06-02 19:01 ` Rikard Falkeborn
2020-06-03 8:49 ` Andy Shevchenko
2020-06-03 21:53 ` Rikard Falkeborn
2020-06-03 21:58 ` Andy Shevchenko
2020-06-03 21:59 ` Andy Shevchenko
2020-06-03 22:02 ` [PATCH] linux/bits.h: fix unsigned less than zero warnings Rikard Falkeborn
2020-06-04 6:41 ` Andy Shevchenko
2020-06-04 16:49 ` Joe Perches
2020-06-04 23:30 ` Rikard Falkeborn
2020-06-07 20:34 ` [PATCH v2 1/2] " Rikard Falkeborn
2020-06-07 20:34 ` [PATCH v2 2/2] bits: Add tests of GENMASK Rikard Falkeborn
2020-06-08 7:33 ` Geert Uytterhoeven
2020-06-08 18:42 ` Rikard Falkeborn
2020-06-08 22:18 ` [PATCH v3 1/2] linux/bits.h: fix unsigned less than zero warnings Rikard Falkeborn
2020-06-08 22:18 ` [PATCH v3 2/2] bits: Add tests of GENMASK Rikard Falkeborn
2020-06-09 14:11 ` Andy Shevchenko
2020-06-21 4:36 ` Andrew Morton
2020-06-21 5:42 ` [PATCH v4 1/2] linux/bits.h: fix unsigned less than zero warnings Rikard Falkeborn
2020-06-21 5:42 ` [PATCH v4 2/2] bits: Add tests of GENMASK Rikard Falkeborn
2021-04-22 19:40 ` Nico Pache
2021-04-22 21:30 ` Nico Pache
2020-07-09 12:30 ` [PATCH v4 1/2] linux/bits.h: fix unsigned less than zero warnings Herbert Xu
2020-07-09 18:13 ` Linus Torvalds
2020-07-10 6:38 ` Herbert Xu
2020-06-15 19:52 ` [PATCH v3 " Emil Velikov
2020-06-08 8:08 ` [PATCH v2 2/2] bits: Add tests of GENMASK Andy Shevchenko
2020-06-08 8:08 ` Andy Shevchenko
2020-06-08 18:44 ` Rikard Falkeborn
2020-06-08 11:09 ` [PATCH v2 1/2] linux/bits.h: fix unsigned less than zero warnings Andy Shevchenko
2020-05-24 5:04 ` [PATCH v7 2/4] lib/test_bitmap.c: Add for_each_set_clump test cases Syed Nayyar Waris
2020-05-30 19:20 ` kbuild test robot
2020-06-04 20:42 ` Syed Nayyar Waris
2020-06-05 12:24 ` Andy Shevchenko
2020-06-06 23:15 ` Syed Nayyar Waris
2020-06-08 13:18 ` Andy Shevchenko
2020-06-10 5:38 ` Rong Chen
2020-05-24 5:05 ` [PATCH v7 3/4] gpio: thunderx: Utilize for_each_set_clump macro Syed Nayyar Waris
2020-05-24 5:06 ` [PATCH v7 4/4] gpio: xilinx: " Syed Nayyar Waris
2020-05-25 9:36 ` [PATCH v7 0/4] Introduce the " Bartosz Golaszewski
2020-06-15 12:46 ` Syed Nayyar Waris
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=20200529183824.GW1634618@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=kbuild-all@lists.01.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=syednwaris@gmail.com \
--cc=vilhelm.gray@gmail.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;
as well as URLs for NNTP newsgroup(s).