All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

             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.