From: Andy Shevchenko <andy.shevchenko@gmail.com> To: kernel test robot <lkp@intel.com> Cc: Syed Nayyar Waris <syednwaris@gmail.com>, kbuild-all@lists.01.org, "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>, Linus Walleij <linus.walleij@linaro.org> Subject: Re: [gpio:ib-for-each-clump 4/4] include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long Date: Fri, 17 Jul 2020 00:25:07 +0300 [thread overview] Message-ID: <CAHp75VezG1ZnC-1UWea2Q-q-=c_32HOcBTXrd7cy4HzB-uW8JA@mail.gmail.com> (raw) In-Reply-To: <202007170339.nHjeGJBw%lkp@intel.com> On Thu, Jul 16, 2020 at 11:13 PM kernel test robot <lkp@intel.com> wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git ib-for-each-clump > head: 3358c938236d6a1be51124fbbb2698e50689d382 > commit: 3358c938236d6a1be51124fbbb2698e50689d382 [4/4] gpio: xilinx: Utilize generic bitmap_get_value and _set_value. > config: alpha-randconfig-s031-20200716 (attached as .config) > compiler: alpha-linux-gcc (GCC) 9.3.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # apt-get install sparse > # sparse version: v0.6.2-49-g707c5017-dirty > git checkout 3358c938236d6a1be51124fbbb2698e50689d382 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > > sparse warnings: (new ones prefixed by >>) > > >> include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long > >> include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long > include/linux/bitmap.h:594:63: sparse: sparse: shift too big (64) for type unsigned long > >> include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long > >> include/linux/bitmap.h:638:17: sparse: sparse: invalid access past the end of 'old' (8 8) > > vim +639 include/linux/bitmap.h > > 169c474fb22d8a5 William Breathitt Gray 2019-12-04 613 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 614 /** > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 615 * bitmap_set_value - set n-bit value within a memory region > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 616 * @map: address to the bitmap memory region > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 617 * @value: value of nbits > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 618 * @start: bit offset of the n-bit value > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 619 * @nbits: size of value in bits > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 620 */ > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 621 static inline void bitmap_set_value(unsigned long *map, > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 622 unsigned long value, > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 623 unsigned long start, unsigned long nbits) > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 624 { > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 625 const size_t index = BIT_WORD(start); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 626 const unsigned long offset = start % BITS_PER_LONG; > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 627 const unsigned long ceiling = roundup(start + 1, BITS_PER_LONG); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 628 const unsigned long space = ceiling - start; If start == 0: index = 0, offset = 0, ceiling = 64, space = 64 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 629 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 630 value &= GENMASK(nbits - 1, 0); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 631 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 632 if (space >= nbits) { > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 633 map[index] &= ~(GENMASK(nbits + offset - 1, offset)); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 634 map[index] |= value << offset; if nbits > space... > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 635 } else { > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 636 map[index] &= ~BITMAP_FIRST_WORD_MASK(start); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 637 map[index] |= value << offset; > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 @638 map[index + 1] &= ~BITMAP_LAST_WORD_MASK(start + nbits); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 @639 map[index + 1] |= (value >> space); space = 64... > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 640 } > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 641 } I don't see the test case for this. Can you provide one? -- With Best Regards, Andy Shevchenko
WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andy.shevchenko@gmail.com> To: kbuild-all@lists.01.org Subject: Re: [gpio:ib-for-each-clump 4/4] include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long Date: Fri, 17 Jul 2020 00:25:07 +0300 [thread overview] Message-ID: <CAHp75VezG1ZnC-1UWea2Q-q-=c_32HOcBTXrd7cy4HzB-uW8JA@mail.gmail.com> (raw) In-Reply-To: <202007170339.nHjeGJBw%lkp@intel.com> [-- Attachment #1: Type: text/plain, Size: 4671 bytes --] On Thu, Jul 16, 2020 at 11:13 PM kernel test robot <lkp@intel.com> wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git ib-for-each-clump > head: 3358c938236d6a1be51124fbbb2698e50689d382 > commit: 3358c938236d6a1be51124fbbb2698e50689d382 [4/4] gpio: xilinx: Utilize generic bitmap_get_value and _set_value. > config: alpha-randconfig-s031-20200716 (attached as .config) > compiler: alpha-linux-gcc (GCC) 9.3.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # apt-get install sparse > # sparse version: v0.6.2-49-g707c5017-dirty > git checkout 3358c938236d6a1be51124fbbb2698e50689d382 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > > sparse warnings: (new ones prefixed by >>) > > >> include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long > >> include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long > include/linux/bitmap.h:594:63: sparse: sparse: shift too big (64) for type unsigned long > >> include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long > >> include/linux/bitmap.h:638:17: sparse: sparse: invalid access past the end of 'old' (8 8) > > vim +639 include/linux/bitmap.h > > 169c474fb22d8a5 William Breathitt Gray 2019-12-04 613 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 614 /** > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 615 * bitmap_set_value - set n-bit value within a memory region > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 616 * @map: address to the bitmap memory region > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 617 * @value: value of nbits > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 618 * @start: bit offset of the n-bit value > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 619 * @nbits: size of value in bits > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 620 */ > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 621 static inline void bitmap_set_value(unsigned long *map, > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 622 unsigned long value, > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 623 unsigned long start, unsigned long nbits) > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 624 { > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 625 const size_t index = BIT_WORD(start); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 626 const unsigned long offset = start % BITS_PER_LONG; > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 627 const unsigned long ceiling = roundup(start + 1, BITS_PER_LONG); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 628 const unsigned long space = ceiling - start; If start == 0: index = 0, offset = 0, ceiling = 64, space = 64 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 629 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 630 value &= GENMASK(nbits - 1, 0); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 631 > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 632 if (space >= nbits) { > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 633 map[index] &= ~(GENMASK(nbits + offset - 1, offset)); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 634 map[index] |= value << offset; if nbits > space... > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 635 } else { > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 636 map[index] &= ~BITMAP_FIRST_WORD_MASK(start); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 637 map[index] |= value << offset; > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 @638 map[index + 1] &= ~BITMAP_LAST_WORD_MASK(start + nbits); > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 @639 map[index + 1] |= (value >> space); space = 64... > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 640 } > e77c9b6f35c4bdf Syed Nayyar Waris 2020-06-27 641 } I don't see the test case for this. Can you provide one? -- With Best Regards, Andy Shevchenko
next prev parent reply other threads:[~2020-07-16 21:25 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-16 19:48 [gpio:ib-for-each-clump 4/4] include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long kernel test robot 2020-07-16 19:48 ` kernel test robot 2020-07-16 21:25 ` Andy Shevchenko [this message] 2020-07-16 21:25 ` Andy Shevchenko 2020-07-17 4:49 ` Syed Nayyar Waris 2020-07-17 7:14 ` [kbuild-all] " Rong Chen 2020-07-17 7:14 ` Rong Chen
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='CAHp75VezG1ZnC-1UWea2Q-q-=c_32HOcBTXrd7cy4HzB-uW8JA@mail.gmail.com' \ --to=andy.shevchenko@gmail.com \ --cc=kbuild-all@lists.01.org \ --cc=linus.walleij@linaro.org \ --cc=linux-gpio@vger.kernel.org \ --cc=lkp@intel.com \ --cc=syednwaris@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: linkBe 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.