From: Nathan Chancellor <nathan@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: Jason Wang <wangborong@cdjrlc.com>,
llvm@lists.linux.dev, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: warning: variable 'group' is used uninitialized whenever 'for' loop exits because its condition is false
Date: Tue, 14 Dec 2021 11:41:27 -0700 [thread overview]
Message-ID: <YbjlV4HdWI8WUcAR@archlinux-ax161> (raw)
In-Reply-To: <202112142208.QW0tVv0m-lkp@intel.com>
On Tue, Dec 14, 2021 at 10:44:28PM +0800, kernel test robot wrote:
> Hi Jason,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 5472f14a37421d1bca3dddf33cabd3bd6dbefbbc
> commit: 29d45a642d4ea8de7e89b57f856046df7c3b219f pinctrl: bcm2835: Replace BUG with BUG_ON
> date: 5 months ago
> config: mips-randconfig-c004-20211214 (https://download.01.org/0day-ci/archive/20211214/202112142208.QW0tVv0m-lkp@intel.com/config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install mips cross compiling tool for clang build
> # apt-get install binutils-mips-linux-gnu
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=29d45a642d4ea8de7e89b57f856046df7c3b219f
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 29d45a642d4ea8de7e89b57f856046df7c3b219f
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/pinctrl/bcm/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
> >> drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: warning: variable 'group' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized]
> for (i = 0; i < BCM2835_NUM_IRQS; i++) {
> ^~~~~~~~~~~~~~~~~~~~
> drivers/pinctrl/bcm/pinctrl-bcm2835.c:423:10: note: uninitialized use occurs here
> switch (group) {
> ^~~~~
> drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: note: remove the condition if it is always true
> for (i = 0; i < BCM2835_NUM_IRQS; i++) {
> ^~~~~~~~~~~~~~~~~~~~
> drivers/pinctrl/bcm/pinctrl-bcm2835.c:409:11: note: initialize the variable 'group' to silence this warning
> int group;
> ^
> = 0
> 1 warning generated.
It seems like MIP's __BUG_ON() makes it harder for clang to figure out
that 'i == BCM2835_NUM_IRQS' will make the kernel panic, which is the
only way that the loop exits because the condition is false.
I am not really sure of a way to fix this other than just reverting that
change or changing the BUG_ON() to WARN_ON().
Cheers,
Nathan
WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: warning: variable 'group' is used uninitialized whenever 'for' loop exits because its condition is false
Date: Tue, 14 Dec 2021 11:41:27 -0700 [thread overview]
Message-ID: <YbjlV4HdWI8WUcAR@archlinux-ax161> (raw)
In-Reply-To: <202112142208.QW0tVv0m-lkp@intel.com>
[-- Attachment #1: Type: text/plain, Size: 2860 bytes --]
On Tue, Dec 14, 2021 at 10:44:28PM +0800, kernel test robot wrote:
> Hi Jason,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 5472f14a37421d1bca3dddf33cabd3bd6dbefbbc
> commit: 29d45a642d4ea8de7e89b57f856046df7c3b219f pinctrl: bcm2835: Replace BUG with BUG_ON
> date: 5 months ago
> config: mips-randconfig-c004-20211214 (https://download.01.org/0day-ci/archive/20211214/202112142208.QW0tVv0m-lkp(a)intel.com/config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install mips cross compiling tool for clang build
> # apt-get install binutils-mips-linux-gnu
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=29d45a642d4ea8de7e89b57f856046df7c3b219f
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 29d45a642d4ea8de7e89b57f856046df7c3b219f
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/pinctrl/bcm/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
> >> drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: warning: variable 'group' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized]
> for (i = 0; i < BCM2835_NUM_IRQS; i++) {
> ^~~~~~~~~~~~~~~~~~~~
> drivers/pinctrl/bcm/pinctrl-bcm2835.c:423:10: note: uninitialized use occurs here
> switch (group) {
> ^~~~~
> drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: note: remove the condition if it is always true
> for (i = 0; i < BCM2835_NUM_IRQS; i++) {
> ^~~~~~~~~~~~~~~~~~~~
> drivers/pinctrl/bcm/pinctrl-bcm2835.c:409:11: note: initialize the variable 'group' to silence this warning
> int group;
> ^
> = 0
> 1 warning generated.
It seems like MIP's __BUG_ON() makes it harder for clang to figure out
that 'i == BCM2835_NUM_IRQS' will make the kernel panic, which is the
only way that the loop exits because the condition is false.
I am not really sure of a way to fix this other than just reverting that
change or changing the BUG_ON() to WARN_ON().
Cheers,
Nathan
next prev parent reply other threads:[~2021-12-14 18:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-14 14:44 drivers/pinctrl/bcm/pinctrl-bcm2835.c:412:14: warning: variable 'group' is used uninitialized whenever 'for' loop exits because its condition is false kernel test robot
2021-12-14 14:44 ` kernel test robot
2021-12-14 18:41 ` Nathan Chancellor [this message]
2021-12-14 18:41 ` Nathan Chancellor
2021-12-16 3:12 ` Linus Walleij
2021-12-16 3:12 ` Linus Walleij
-- strict thread matches above, loose matches on Subject: below --
2021-11-06 12:11 kernel test robot
2021-11-06 12:11 ` kernel test robot
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=YbjlV4HdWI8WUcAR@archlinux-ax161 \
--to=nathan@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=wangborong@cdjrlc.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.