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 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 :::::: CC: Jean Delvare --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation