From: kernel test robot <lkp@intel.com>
To: Niklas Schnelle <schnelle@linux.ibm.com>
Cc: kbuild-all@lists.01.org,
Linux Memory Management List <linux-mm@kvack.org>,
Arnd Bergmann <arnd@arndb.de>
Subject: [linux-next:master 1527/2770] drivers/char/pcmcia/cm4000_cs.c:569:16: warning: iteration 4 invokes undefined behavior
Date: Thu, 13 May 2021 16:52:58 +0800 [thread overview]
Message-ID: <202105131640.fub0hg8s-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6078 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ec2618180c3450d06a6a4ba951d4c9a2c689b517
commit: 5ae6eadfdaf431f47adbdf1754f3b5a5fd638de2 [1527/2770] asm-generic/io.h: warn in inb() and friends with undefined PCI_IOBASE
config: m68k-randconfig-r035-20210513 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5ae6eadfdaf431f47adbdf1754f3b5a5fd638de2
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 5ae6eadfdaf431f47adbdf1754f3b5a5fd638de2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=m68k
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/char/pcmcia/cm4000_cs.c: In function 'cmm_write':
drivers/char/pcmcia/cm4000_cs.c:1053:16: warning: variable 'tmp' set but not used [-Wunused-but-set-variable]
1053 | unsigned char tmp;
| ^~~
drivers/char/pcmcia/cm4000_cs.c: In function 'set_protocol':
>> drivers/char/pcmcia/cm4000_cs.c:569:16: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
569 | pts_reply[i] = inb(REG_BUF_DATA(iobase));
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/char/pcmcia/cm4000_cs.c:567:2: note: within this loop
567 | for (i = 0; i < num_bytes_read; i++) {
| ^~~
vim +569 drivers/char/pcmcia/cm4000_cs.c
c1986ee9bea3d8 Harald Welte 2005-11-13 516
c1986ee9bea3d8 Harald Welte 2005-11-13 517 /* set number of bytes to write */
c1986ee9bea3d8 Harald Welte 2005-11-13 518 DEBUGP(5, dev, "Set number of bytes to write\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 519 xoutb(0x04, REG_NUM_SEND(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 520
c1986ee9bea3d8 Harald Welte 2005-11-13 521 /* Trigger CARDMAN CONTROLLER */
c1986ee9bea3d8 Harald Welte 2005-11-13 522 xoutb(0x50, REG_FLAGS0(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 523
c1986ee9bea3d8 Harald Welte 2005-11-13 524 /* Monitor progress */
c1986ee9bea3d8 Harald Welte 2005-11-13 525 /* wait for xmit done */
c1986ee9bea3d8 Harald Welte 2005-11-13 526 DEBUGP(5, dev, "Waiting for NumRecBytes getting valid\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 527
c1986ee9bea3d8 Harald Welte 2005-11-13 528 for (i = 0; i < 100; i++) {
c1986ee9bea3d8 Harald Welte 2005-11-13 529 if (inb(REG_FLAGS0(iobase)) & 0x08) {
c1986ee9bea3d8 Harald Welte 2005-11-13 530 DEBUGP(5, dev, "NumRecBytes is valid\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 531 break;
c1986ee9bea3d8 Harald Welte 2005-11-13 532 }
be826ada52f1fc Jia-Ju Bai 2018-03-18 533 usleep_range(10000, 11000);
c1986ee9bea3d8 Harald Welte 2005-11-13 534 }
c1986ee9bea3d8 Harald Welte 2005-11-13 535 if (i == 100) {
c1986ee9bea3d8 Harald Welte 2005-11-13 536 DEBUGP(5, dev, "Timeout waiting for NumRecBytes getting "
c1986ee9bea3d8 Harald Welte 2005-11-13 537 "valid\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 538 rc = -EIO;
c1986ee9bea3d8 Harald Welte 2005-11-13 539 goto exit_setprotocol;
c1986ee9bea3d8 Harald Welte 2005-11-13 540 }
c1986ee9bea3d8 Harald Welte 2005-11-13 541
c1986ee9bea3d8 Harald Welte 2005-11-13 542 DEBUGP(5, dev, "Reading NumRecBytes\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 543 for (i = 0; i < 100; i++) {
c1986ee9bea3d8 Harald Welte 2005-11-13 544 io_read_num_rec_bytes(iobase, &num_bytes_read);
c1986ee9bea3d8 Harald Welte 2005-11-13 545 if (num_bytes_read >= 4) {
c1986ee9bea3d8 Harald Welte 2005-11-13 546 DEBUGP(2, dev, "NumRecBytes = %i\n", num_bytes_read);
c1986ee9bea3d8 Harald Welte 2005-11-13 547 break;
c1986ee9bea3d8 Harald Welte 2005-11-13 548 }
be826ada52f1fc Jia-Ju Bai 2018-03-18 549 usleep_range(10000, 11000);
c1986ee9bea3d8 Harald Welte 2005-11-13 550 }
c1986ee9bea3d8 Harald Welte 2005-11-13 551
c1986ee9bea3d8 Harald Welte 2005-11-13 552 /* check whether it is a short PTS reply? */
c1986ee9bea3d8 Harald Welte 2005-11-13 553 if (num_bytes_read == 3)
c1986ee9bea3d8 Harald Welte 2005-11-13 554 i = 0;
c1986ee9bea3d8 Harald Welte 2005-11-13 555
c1986ee9bea3d8 Harald Welte 2005-11-13 556 if (i == 100) {
c1986ee9bea3d8 Harald Welte 2005-11-13 557 DEBUGP(5, dev, "Timeout reading num_bytes_read\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 558 rc = -EIO;
c1986ee9bea3d8 Harald Welte 2005-11-13 559 goto exit_setprotocol;
c1986ee9bea3d8 Harald Welte 2005-11-13 560 }
c1986ee9bea3d8 Harald Welte 2005-11-13 561
c1986ee9bea3d8 Harald Welte 2005-11-13 562 DEBUGP(5, dev, "Reset the CARDMAN CONTROLLER\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 563 xoutb(0x80, REG_FLAGS0(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 564
c1986ee9bea3d8 Harald Welte 2005-11-13 565 /* Read PPS reply */
c1986ee9bea3d8 Harald Welte 2005-11-13 566 DEBUGP(5, dev, "Read PPS reply\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 567 for (i = 0; i < num_bytes_read; i++) {
c1986ee9bea3d8 Harald Welte 2005-11-13 568 xoutb(i, REG_BUF_ADDR(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 @569 pts_reply[i] = inb(REG_BUF_DATA(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 570 }
c1986ee9bea3d8 Harald Welte 2005-11-13 571
:::::: The code at line 569 was first introduced by commit
:::::: c1986ee9bea3d880bcf0d3f1a31e055778f306c7 [PATCH] New Omnikey Cardman 4000 driver
:::::: TO: Harald Welte <laforge@gnumonks.org>
:::::: CC: Linus Torvalds <torvalds@g5.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28173 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [linux-next:master 1527/2770] drivers/char/pcmcia/cm4000_cs.c:569:16: warning: iteration 4 invokes undefined behavior
Date: Thu, 13 May 2021 16:52:58 +0800 [thread overview]
Message-ID: <202105131640.fub0hg8s-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6178 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ec2618180c3450d06a6a4ba951d4c9a2c689b517
commit: 5ae6eadfdaf431f47adbdf1754f3b5a5fd638de2 [1527/2770] asm-generic/io.h: warn in inb() and friends with undefined PCI_IOBASE
config: m68k-randconfig-r035-20210513 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5ae6eadfdaf431f47adbdf1754f3b5a5fd638de2
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 5ae6eadfdaf431f47adbdf1754f3b5a5fd638de2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=m68k
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/char/pcmcia/cm4000_cs.c: In function 'cmm_write':
drivers/char/pcmcia/cm4000_cs.c:1053:16: warning: variable 'tmp' set but not used [-Wunused-but-set-variable]
1053 | unsigned char tmp;
| ^~~
drivers/char/pcmcia/cm4000_cs.c: In function 'set_protocol':
>> drivers/char/pcmcia/cm4000_cs.c:569:16: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
569 | pts_reply[i] = inb(REG_BUF_DATA(iobase));
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/char/pcmcia/cm4000_cs.c:567:2: note: within this loop
567 | for (i = 0; i < num_bytes_read; i++) {
| ^~~
vim +569 drivers/char/pcmcia/cm4000_cs.c
c1986ee9bea3d8 Harald Welte 2005-11-13 516
c1986ee9bea3d8 Harald Welte 2005-11-13 517 /* set number of bytes to write */
c1986ee9bea3d8 Harald Welte 2005-11-13 518 DEBUGP(5, dev, "Set number of bytes to write\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 519 xoutb(0x04, REG_NUM_SEND(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 520
c1986ee9bea3d8 Harald Welte 2005-11-13 521 /* Trigger CARDMAN CONTROLLER */
c1986ee9bea3d8 Harald Welte 2005-11-13 522 xoutb(0x50, REG_FLAGS0(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 523
c1986ee9bea3d8 Harald Welte 2005-11-13 524 /* Monitor progress */
c1986ee9bea3d8 Harald Welte 2005-11-13 525 /* wait for xmit done */
c1986ee9bea3d8 Harald Welte 2005-11-13 526 DEBUGP(5, dev, "Waiting for NumRecBytes getting valid\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 527
c1986ee9bea3d8 Harald Welte 2005-11-13 528 for (i = 0; i < 100; i++) {
c1986ee9bea3d8 Harald Welte 2005-11-13 529 if (inb(REG_FLAGS0(iobase)) & 0x08) {
c1986ee9bea3d8 Harald Welte 2005-11-13 530 DEBUGP(5, dev, "NumRecBytes is valid\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 531 break;
c1986ee9bea3d8 Harald Welte 2005-11-13 532 }
be826ada52f1fc Jia-Ju Bai 2018-03-18 533 usleep_range(10000, 11000);
c1986ee9bea3d8 Harald Welte 2005-11-13 534 }
c1986ee9bea3d8 Harald Welte 2005-11-13 535 if (i == 100) {
c1986ee9bea3d8 Harald Welte 2005-11-13 536 DEBUGP(5, dev, "Timeout waiting for NumRecBytes getting "
c1986ee9bea3d8 Harald Welte 2005-11-13 537 "valid\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 538 rc = -EIO;
c1986ee9bea3d8 Harald Welte 2005-11-13 539 goto exit_setprotocol;
c1986ee9bea3d8 Harald Welte 2005-11-13 540 }
c1986ee9bea3d8 Harald Welte 2005-11-13 541
c1986ee9bea3d8 Harald Welte 2005-11-13 542 DEBUGP(5, dev, "Reading NumRecBytes\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 543 for (i = 0; i < 100; i++) {
c1986ee9bea3d8 Harald Welte 2005-11-13 544 io_read_num_rec_bytes(iobase, &num_bytes_read);
c1986ee9bea3d8 Harald Welte 2005-11-13 545 if (num_bytes_read >= 4) {
c1986ee9bea3d8 Harald Welte 2005-11-13 546 DEBUGP(2, dev, "NumRecBytes = %i\n", num_bytes_read);
c1986ee9bea3d8 Harald Welte 2005-11-13 547 break;
c1986ee9bea3d8 Harald Welte 2005-11-13 548 }
be826ada52f1fc Jia-Ju Bai 2018-03-18 549 usleep_range(10000, 11000);
c1986ee9bea3d8 Harald Welte 2005-11-13 550 }
c1986ee9bea3d8 Harald Welte 2005-11-13 551
c1986ee9bea3d8 Harald Welte 2005-11-13 552 /* check whether it is a short PTS reply? */
c1986ee9bea3d8 Harald Welte 2005-11-13 553 if (num_bytes_read == 3)
c1986ee9bea3d8 Harald Welte 2005-11-13 554 i = 0;
c1986ee9bea3d8 Harald Welte 2005-11-13 555
c1986ee9bea3d8 Harald Welte 2005-11-13 556 if (i == 100) {
c1986ee9bea3d8 Harald Welte 2005-11-13 557 DEBUGP(5, dev, "Timeout reading num_bytes_read\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 558 rc = -EIO;
c1986ee9bea3d8 Harald Welte 2005-11-13 559 goto exit_setprotocol;
c1986ee9bea3d8 Harald Welte 2005-11-13 560 }
c1986ee9bea3d8 Harald Welte 2005-11-13 561
c1986ee9bea3d8 Harald Welte 2005-11-13 562 DEBUGP(5, dev, "Reset the CARDMAN CONTROLLER\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 563 xoutb(0x80, REG_FLAGS0(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 564
c1986ee9bea3d8 Harald Welte 2005-11-13 565 /* Read PPS reply */
c1986ee9bea3d8 Harald Welte 2005-11-13 566 DEBUGP(5, dev, "Read PPS reply\n");
c1986ee9bea3d8 Harald Welte 2005-11-13 567 for (i = 0; i < num_bytes_read; i++) {
c1986ee9bea3d8 Harald Welte 2005-11-13 568 xoutb(i, REG_BUF_ADDR(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 @569 pts_reply[i] = inb(REG_BUF_DATA(iobase));
c1986ee9bea3d8 Harald Welte 2005-11-13 570 }
c1986ee9bea3d8 Harald Welte 2005-11-13 571
:::::: The code@line 569 was first introduced by commit
:::::: c1986ee9bea3d880bcf0d3f1a31e055778f306c7 [PATCH] New Omnikey Cardman 4000 driver
:::::: TO: Harald Welte <laforge@gnumonks.org>
:::::: CC: Linus Torvalds <torvalds@g5.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28173 bytes --]
next reply other threads:[~2021-05-13 8:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-13 8:52 kernel test robot [this message]
2021-05-13 8:52 ` [linux-next:master 1527/2770] drivers/char/pcmcia/cm4000_cs.c:569:16: warning: iteration 4 invokes undefined behavior 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=202105131640.fub0hg8s-lkp@intel.com \
--to=lkp@intel.com \
--cc=arnd@arndb.de \
--cc=kbuild-all@lists.01.org \
--cc=linux-mm@kvack.org \
--cc=schnelle@linux.ibm.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.