All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>
Subject: drivers/hwmon/smsc47m1.c:373:53: warning: array subscript [0, 2] is outside array bounds of 'const u8[3]' {aka 'const unsigned char[3]'}
Date: Mon, 20 May 2019 19:12:45 +0800	[thread overview]
Message-ID: <201905201938.LFZqzfPy%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 8780 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   a188339ca5a396acc588e5851ed7e19f66b0ebd9
commit: 9012d011660ea5cf2a623e1de207a2bc0ca6936d compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING
date:   5 days ago
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 8.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 9012d011660ea5cf2a623e1de207a2bc0ca6936d
        # save the attached .config to linux build tree
        GCC_VERSION=8.1.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/hwmon/smsc47m1.c: In function 'fan_div_store':
   drivers/hwmon/smsc47m1.c:370:49: warning: array subscript [0, 2] is outside array bounds of 'u8[3]' {aka 'unsigned char[3]'} [-Warray-bounds]
     tmp = 192 - (old_div * (192 - data->fan_preload[nr])
                                   ~~~~~~~~~~~~~~~~~^~~~
   drivers/hwmon/smsc47m1.c:372:19: warning: array subscript [0, 2] is outside array bounds of 'u8[3]' {aka 'unsigned char[3]'} [-Warray-bounds]
     data->fan_preload[nr] = clamp_val(tmp, 0, 191);
     ~~~~~~~~~~~~~~~~~^~~~
>> drivers/hwmon/smsc47m1.c:373:53: warning: array subscript [0, 2] is outside array bounds of 'const u8[3]' {aka 'const unsigned char[3]'} [-Warray-bounds]
     smsc47m1_write_value(data, SMSC47M1_REG_FAN_PRELOAD[nr],
                                ~~~~~~~~~~~~~~~~~~~~~~~~^~~~

vim +373 drivers/hwmon/smsc47m1.c

^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  309  
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  310  /*
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  311   * Note: we save and restore the fan minimum here, because its value is
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  312   * determined in part by the fan clock divider.  This follows the principle
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  313   * of least surprise; the user doesn't expect the fan minimum to change just
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  314   * because the divider changed.
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  315   */
96c6f81a drivers/hwmon/smsc47m1.c     Guenter Roeck  2019-01-22  316  static ssize_t fan_div_store(struct device *dev,
96c6f81a drivers/hwmon/smsc47m1.c     Guenter Roeck  2019-01-22  317  			     struct device_attribute *devattr,
96c6f81a drivers/hwmon/smsc47m1.c     Guenter Roeck  2019-01-22  318  			     const char *buf, size_t count)
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  319  {
e84cfbcb drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  320  	struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
51f2cca1 drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  321  	struct smsc47m1_data *data = dev_get_drvdata(dev);
e84cfbcb drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  322  	int nr = attr->index;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  323  	long new_div;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  324  	int err;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  325  	long tmp;
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  326  	u8 old_div = DIV_FROM_REG(data->fan_div[nr]);
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  327  
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  328  	err = kstrtol(buf, 10, &new_div);
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  329  	if (err)
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  330  		return err;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  331  
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  332  	if (new_div == old_div) /* No change */
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  333  		return count;
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  334  
9a61bf63 drivers/hwmon/smsc47m1.c     Ingo Molnar    2006-01-18  335  	mutex_lock(&data->update_lock);
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  336  	switch (new_div) {
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  337  	case 1:
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  338  		data->fan_div[nr] = 0;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  339  		break;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  340  	case 2:
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  341  		data->fan_div[nr] = 1;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  342  		break;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  343  	case 4:
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  344  		data->fan_div[nr] = 2;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  345  		break;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  346  	case 8:
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  347  		data->fan_div[nr] = 3;
85a0c0d1 drivers/hwmon/smsc47m1.c     Guenter Roeck  2012-01-14  348  		break;
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  349  	default:
9a61bf63 drivers/hwmon/smsc47m1.c     Ingo Molnar    2006-01-18  350  		mutex_unlock(&data->update_lock);
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  351  		return -EINVAL;
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  352  	}
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  353  
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  354  	switch (nr) {
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  355  	case 0:
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  356  	case 1:
51f2cca1 drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  357  		tmp = smsc47m1_read_value(data, SMSC47M1_REG_FANDIV)
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  358  		      & ~(0x03 << (4 + 2 * nr));
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  359  		tmp |= data->fan_div[nr] << (4 + 2 * nr);
51f2cca1 drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  360  		smsc47m1_write_value(data, SMSC47M1_REG_FANDIV, tmp);
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  361  		break;
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  362  	case 2:
51f2cca1 drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  363  		tmp = smsc47m1_read_value(data, SMSC47M2_REG_FANDIV3) & 0xCF;
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  364  		tmp |= data->fan_div[2] << 4;
51f2cca1 drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  365  		smsc47m1_write_value(data, SMSC47M2_REG_FANDIV3, tmp);
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  366  		break;
8eccbb6f drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08  367  	}
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  368  
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  369  	/* Preserve fan min */
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16 @370  	tmp = 192 - (old_div * (192 - data->fan_preload[nr])
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  371  		     + new_div / 2) / new_div;
2a844c14 drivers/hwmon/smsc47m1.c     Guenter Roeck  2013-01-09  372  	data->fan_preload[nr] = clamp_val(tmp, 0, 191);
51f2cca1 drivers/hwmon/smsc47m1.c     Jean Delvare   2007-05-08 @373  	smsc47m1_write_value(data, SMSC47M1_REG_FAN_PRELOAD[nr],
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  374  			     data->fan_preload[nr]);
9a61bf63 drivers/hwmon/smsc47m1.c     Ingo Molnar    2006-01-18  375  	mutex_unlock(&data->update_lock);
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  376  
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  377  	return count;
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  378  }
^1da177e drivers/i2c/chips/smsc47m1.c Linus Torvalds 2005-04-16  379  

:::::: The code at line 373 was first introduced by commit
:::::: 51f2cca1f72db5e272ed79b678b62fb9472e916e hwmon/smsc47m1: Convert to a platform driver

:::::: TO: Jean Delvare <khali@linux-fr.org>
:::::: CC: Jean Delvare <khali@hyperion.delvare>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51947 bytes --]

                 reply	other threads:[~2019-05-20 11:13 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=201905201938.LFZqzfPy%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=kbuild-all@01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=yamada.masahiro@socionext.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.