CC: [email protected] CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Lad Prabhakar <[email protected]> TO: Geert Uytterhoeven <[email protected]> TO: "Greg Kroah-Hartman" <[email protected]> TO: Rob Herring <[email protected]> TO: Jiri Slaby <[email protected]> TO: Philipp Zabel <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: Prabhakar <[email protected]>
Hi Lad, I love your patch! Perhaps something to improve: [auto build test WARNING on robh/for-next] [also build test WARNING on tty/tty-testing usb/usb-testing v5.15 next-20211105] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Lad-Prabhakar/RZ-G2L-SCI-support-and-sh-sci-driver-update/20211104-013332 base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next :::::: branch date: 2 days ago :::::: commit date: 2 days ago config: arm-randconfig-c002-20211104 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 847a6807332b13f43704327c2d30103ec0347c77) 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 arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/0day-ci/linux/commit/2e72564a41cb943ebc9d60ea46a187591ff2a576 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Lad-Prabhakar/RZ-G2L-SCI-support-and-sh-sci-driver-update/20211104-013332 git checkout 2e72564a41cb943ebc9d60ea46a187591ff2a576 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/tty/serial/sh-sci.c:100:2: note: expanded from macro 'for_each_sr' for ((_sr) = max_sr(_port); (_sr) >= min_sr(_port); (_sr)--) \ ^ drivers/tty/serial/sh-sci.c:2230:2: note: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'unsigned long' for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:101:37: note: expanded from macro 'for_each_sr' if ((_port)->sampling_rate_mask & SCI_SR((_sr))) ^~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:88:20: note: expanded from macro 'SCI_SR' #define SCI_SR(x) BIT((x) - 1) ^~~~~~~~~~~~ include/vdso/bits.h:7:26: note: expanded from macro 'BIT' #define BIT(nr) (UL(1) << (nr)) ^ ~~~~ drivers/tty/serial/sh-sci.c:2257:2: warning: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult] for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:101:37: note: expanded from macro 'for_each_sr' if ((_port)->sampling_rate_mask & SCI_SR((_sr))) ^~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:88:20: note: expanded from macro 'SCI_SR' #define SCI_SR(x) BIT((x) - 1) ^~~~~~~~~~~~ include/vdso/bits.h:7:26: note: expanded from macro 'BIT' #define BIT(nr) (UL(1) << (nr)) ^ ~~~~ drivers/tty/serial/sh-sci.c:2254:6: note: Assuming field 'type' is equal to PORT_HSCIF if (s->port.type != PORT_HSCIF) ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:2254:2: note: Taking false branch if (s->port.type != PORT_HSCIF) ^ drivers/tty/serial/sh-sci.c:2257:2: note: Assuming the condition is true for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:100:30: note: expanded from macro 'for_each_sr' for ((_sr) = max_sr(_port); (_sr) >= min_sr(_port); (_sr)--) \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:2257:2: note: Loop condition is true. Entering loop body for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:100:2: note: expanded from macro 'for_each_sr' for ((_sr) = max_sr(_port); (_sr) >= min_sr(_port); (_sr)--) \ ^ drivers/tty/serial/sh-sci.c:2257:2: note: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'unsigned long' for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:101:37: note: expanded from macro 'for_each_sr' if ((_port)->sampling_rate_mask & SCI_SR((_sr))) ^~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:88:20: note: expanded from macro 'SCI_SR' #define SCI_SR(x) BIT((x) - 1) ^~~~~~~~~~~~ include/vdso/bits.h:7:26: note: expanded from macro 'BIT' #define BIT(nr) (UL(1) << (nr)) ^ ~~~~ drivers/tty/serial/sh-sci.c:2305:2: warning: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult] for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:101:37: note: expanded from macro 'for_each_sr' if ((_port)->sampling_rate_mask & SCI_SR((_sr))) ^~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:88:20: note: expanded from macro 'SCI_SR' #define SCI_SR(x) BIT((x) - 1) ^~~~~~~~~~~~ include/vdso/bits.h:7:26: note: expanded from macro 'BIT' #define BIT(nr) (UL(1) << (nr)) ^ ~~~~ drivers/tty/serial/sh-sci.c:2287:6: note: Assuming field 'type' is equal to PORT_HSCIF if (s->port.type != PORT_HSCIF) ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:2287:2: note: Taking false branch if (s->port.type != PORT_HSCIF) ^ drivers/tty/serial/sh-sci.c:2305:2: note: Assuming the condition is true for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:100:30: note: expanded from macro 'for_each_sr' for ((_sr) = max_sr(_port); (_sr) >= min_sr(_port); (_sr)--) \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:2305:2: note: Loop condition is true. Entering loop body for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:100:2: note: expanded from macro 'for_each_sr' for ((_sr) = max_sr(_port); (_sr) >= min_sr(_port); (_sr)--) \ ^ drivers/tty/serial/sh-sci.c:2305:2: note: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'unsigned long' for_each_sr(sr, s) { ^ drivers/tty/serial/sh-sci.c:101:37: note: expanded from macro 'for_each_sr' if ((_port)->sampling_rate_mask & SCI_SR((_sr))) ^~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:88:20: note: expanded from macro 'SCI_SR' #define SCI_SR(x) BIT((x) - 1) ^~~~~~~~~~~~ include/vdso/bits.h:7:26: note: expanded from macro 'BIT' #define BIT(nr) (UL(1) << (nr)) ^ ~~~~ >> drivers/tty/serial/sh-sci.c:3369:8: warning: Array subscript is undefined >> [clang-analyzer-core.uninitialized.ArraySubscript] sp = &sci_ports[dev_id]; ^ ~~~~~~ drivers/tty/serial/sh-sci.c:3342:2: note: 'dev_id' declared without an initial value unsigned int dev_id; ^~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:3355:6: note: Assuming field 'of_node' is non-null if (dev->dev.of_node) { ^~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:3355:2: note: Taking true branch if (dev->dev.of_node) { ^ drivers/tty/serial/sh-sci.c:3356:7: note: Calling 'sci_parse_dt' p = sci_parse_dt(dev, &dev_id); ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:3222:6: note: Left side of '||' is false if (!IS_ENABLED(CONFIG_OF) || !np) ^ drivers/tty/serial/sh-sci.c:3222:33: note: 'np' is non-null if (!IS_ENABLED(CONFIG_OF) || !np) ^~ drivers/tty/serial/sh-sci.c:3222:2: note: Taking false branch if (!IS_ENABLED(CONFIG_OF) || !np) ^ drivers/tty/serial/sh-sci.c:3226:6: note: Assuming 'of_id' is non-null if (!of_id) ^~~~~~ drivers/tty/serial/sh-sci.c:3226:2: note: Taking false branch if (!of_id) ^ drivers/tty/serial/sh-sci.c:3229:59: note: Left side of '||' is true if (!strcmp(of_id->compatible, "renesas,scif-r9a07g044") || ^ drivers/tty/serial/sh-sci.c:3235:3: note: Taking false branch if (IS_ERR(rstc)) { ^ drivers/tty/serial/sh-sci.c:3241:7: note: Assuming 'ret' is not equal to 0 if (ret) { ^~~ drivers/tty/serial/sh-sci.c:3241:3: note: Taking true branch if (ret) { ^ drivers/tty/serial/sh-sci.c:3242:4: note: Loop condition is false. Exiting loop dev_err(&pdev->dev, "failed to deassert %d\n", ret); ^ include/linux/dev_printk.h:144:2: note: expanded from macro 'dev_err' dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) ^ include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap' dev_printk_index_emit(level, fmt); \ ^ include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit' printk_index_subsys_emit("%s %s: ", level, fmt) ^ include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit' __printk_index_emit(fmt, level, subsys_fmt_prefix) ^ include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit' #define __printk_index_emit(...) do {} while (0) ^ drivers/tty/serial/sh-sci.c:3243:4: note: Returning without writing to '*dev_id' return ERR_PTR(ret); ^ drivers/tty/serial/sh-sci.c:3356:7: note: Returning from 'sci_parse_dt' p = sci_parse_dt(dev, &dev_id); ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:3357:7: note: Calling 'IS_ERR' if (IS_ERR(p)) ^~~~~~~~~ include/linux/err.h:36:9: note: Assuming the condition is false return IS_ERR_VALUE((unsigned long)ptr); ^ include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE' #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ include/linux/err.h:36:2: note: Returning zero, which participates in a condition later return IS_ERR_VALUE((unsigned long)ptr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/sh-sci.c:3357:7: note: Returning from 'IS_ERR' if (IS_ERR(p)) ^~~~~~~~~ drivers/tty/serial/sh-sci.c:3357:3: note: Taking false branch if (IS_ERR(p)) ^ drivers/tty/serial/sh-sci.c:3369:8: note: Array subscript is undefined sp = &sci_ports[dev_id]; ^ ~~~~~~ 1 warning generated. include/linux/list.h:73:2: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] WRITE_ONCE(prev->next, new); ^ include/asm-generic/rwonce.h:61:2: note: expanded from macro 'WRITE_ONCE' __WRITE_ONCE(x, val); \ ^ include/asm-generic/rwonce.h:55:30: note: expanded from macro '__WRITE_ONCE' *(volatile typeof(x) *)&(x) = (val); \ ^ drivers/gpu/drm/arm/display/komeda/komeda_kms.c:205:6: note: Assuming 'err' is 0 vim +3369 drivers/tty/serial/sh-sci.c 7b6fd3bf82c490 drivers/serial/sh-sci.c Magnus Damm 2009-12-14 3354 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3355 if (dev->dev.of_node) { 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3356 p = sci_parse_dt(dev, &dev_id); 2e72564a41cb94 drivers/tty/serial/sh-sci.c Lad Prabhakar 2021-11-03 3357 if (IS_ERR(p)) 2e72564a41cb94 drivers/tty/serial/sh-sci.c Lad Prabhakar 2021-11-03 3358 return PTR_ERR(p); 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3359 } else { 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3360 p = dev->dev.platform_data; 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3361 if (p == NULL) { 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3362 dev_err(&dev->dev, "no platform data supplied\n"); 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3363 return -EINVAL; 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3364 } 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3365 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3366 dev_id = dev->id; 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3367 } 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3368 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 @3369 sp = &sci_ports[dev_id]; d535a2305facf9 drivers/serial/sh-sci.c Paul Mundt 2011-01-19 3370 platform_set_drvdata(dev, sp); 0ee70712922c15 drivers/serial/sh-sci.c Magnus Damm 2009-01-21 3371 20bdcab8268cb0 drivers/tty/serial/sh-sci.c Bastian Hecht 2013-12-06 3372 ret = sci_probe_single(dev, dev_id, p, sp); 0ee70712922c15 drivers/serial/sh-sci.c Magnus Damm 2009-01-21 3373 if (ret) 6dae14216c85ee drivers/tty/serial/sh-sci.c Laurent Pinchart 2012-06-13 3374 return ret; d535a2305facf9 drivers/serial/sh-sci.c Paul Mundt 2011-01-19 3375 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3376 if (sp->port.fifosize > 1) { 6aa57f16185cfd drivers/tty/serial/sh-sci.c Greg Kroah-Hartman 2019-07-04 3377 ret = device_create_file(&dev->dev, &dev_attr_rx_fifo_trigger); 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3378 if (ret) 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3379 return ret; 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3380 } fa2abb03637a55 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-09-29 3381 if (sp->port.type == PORT_SCIFA || sp->port.type == PORT_SCIFB || fa2abb03637a55 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-09-29 3382 sp->port.type == PORT_HSCIF) { 6aa57f16185cfd drivers/tty/serial/sh-sci.c Greg Kroah-Hartman 2019-07-04 3383 ret = device_create_file(&dev->dev, &dev_attr_rx_fifo_timeout); 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3384 if (ret) { 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3385 if (sp->port.fifosize > 1) { 6aa57f16185cfd drivers/tty/serial/sh-sci.c Greg Kroah-Hartman 2019-07-04 3386 device_remove_file(&dev->dev, 6aa57f16185cfd drivers/tty/serial/sh-sci.c Greg Kroah-Hartman 2019-07-04 3387 &dev_attr_rx_fifo_trigger); 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3388 } 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3389 return ret; 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3390 } 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3391 } 5d23188a473da0 drivers/tty/serial/sh-sci.c Ulrich Hecht 2017-02-03 3392 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
