CC: [email protected] CC: [email protected] CC: [email protected] TO: Nikita Shubin <[email protected]> CC: Arnd Bergmann <[email protected]> CC: Alexander Sverdlin <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 5472f14a37421d1bca3dddf33cabd3bd6dbefbbc commit: 9645ccc7bd7a16cd73c3be9dee70cd702b03be37 ep93xx: clock: convert in-place to COMMON_CLK date: 8 weeks ago :::::: branch date: 2 days ago :::::: commit date: 8 weeks ago config: arm-randconfig-c002-20211209 (https://download.01.org/0day-ci/archive/20211216/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a) 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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9645ccc7bd7a16cd73c3be9dee70cd702b03be37 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 9645ccc7bd7a16cd73c3be9dee70cd702b03be37 # save the config file 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 >>) ^~~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:55:30: note: expanded from macro '__WRITE_ONCE' *(volatile typeof(x) *)&(x) = (val); \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ init/initramfs.c:97:11: warning: Access to field 'major' results in a dereference of a null pointer (loaded from variable 'q') [clang-analyzer-core.NullDereference] q->major = major; ^ init/initramfs.c:341:6: note: Assuming the condition is false if (strcmp(collected, "TRAILER!!!") == 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ init/initramfs.c:341:2: note: Taking false branch if (strcmp(collected, "TRAILER!!!") == 0) { ^ init/initramfs.c:346:6: note: Assuming the condition is true if (S_ISREG(mode)) { ^ include/uapi/linux/stat.h:22:21: note: expanded from macro 'S_ISREG' #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) ^~~~~~~~~~~~~~~~~~~~~~~~~ init/initramfs.c:346:2: note: Taking true branch if (S_ISREG(mode)) { ^ init/initramfs.c:347:12: note: Calling 'maybe_link' int ml = maybe_link(); ^~~~~~~~~~~~ init/initramfs.c:324:6: note: Assuming 'nlink' is >= 2 if (nlink >= 2) { ^~~~~~~~~~ init/initramfs.c:324:2: note: Taking true branch if (nlink >= 2) { ^ init/initramfs.c:325:15: note: Calling 'find_link' char *old = find_link(major, minor, ino, mode, collected); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ init/initramfs.c:83:2: note: Loop condition is false. Execution continues on line 94 for (p = head + hash(major, minor, ino); *p; p = &(*p)->next) { ^ init/initramfs.c:94:6: note: Calling 'kmalloc' q = kmalloc(sizeof(struct hash), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:579:2: note: Taking false branch if (__builtin_constant_p(size)) { ^ include/linux/slab.h:596:2: note: Returning pointer return __kmalloc(size, flags); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ init/initramfs.c:94:6: note: Returning from 'kmalloc' q = kmalloc(sizeof(struct hash), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ init/initramfs.c:94:2: note: Value assigned to 'q' q = kmalloc(sizeof(struct hash), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ init/initramfs.c:95:6: note: Assuming 'q' is null if (!q) ^~ init/initramfs.c:95:2: note: Taking true branch if (!q) ^ init/initramfs.c:97:11: note: Access to field 'major' results in a dereference of a null pointer (loaded from variable 'q') q->major = major; ~ ^ init/initramfs.c:101:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(q->name, name); ^~~~~~ init/initramfs.c:101:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(q->name, name); ^~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 13 warnings generated. >> arch/arm/mach-ep93xx/clock.c:154:2: warning: Use of memory after it is freed >> [clang-analyzer-unix.Malloc] return &psc->hw; ^ arch/arm/mach-ep93xx/clock.c:553:6: note: Assuming the condition is true if (!(value & EP93XX_SYSCON_CLKSET1_NBYP1)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:553:2: note: Taking true branch if (!(value & EP93XX_SYSCON_CLKSET1_NBYP1)) ^ arch/arm/mach-ep93xx/clock.c:579:6: note: Assuming the condition is true if (!(value & EP93XX_SYSCON_CLKSET2_NBYP2)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:579:2: note: Taking true branch if (!(value & EP93XX_SYSCON_CLKSET2_NBYP2)) ^ arch/arm/mach-ep93xx/clock.c:627:6: note: Assuming the condition is false if (ep93xx_chip_revision() < EP93XX_CHIP_REV_E2) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:627:2: note: Taking false branch if (ep93xx_chip_revision() < EP93XX_CHIP_REV_E2) ^ arch/arm/mach-ep93xx/clock.c:636:2: note: Left side of '&&' is true pr_info("PLL1 running at %ld MHz, PLL2 at %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:370:7: note: expanded from macro '__printk_index_emit' if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \ ^ arch/arm/mach-ep93xx/clock.c:636:2: note: Taking true branch pr_info("PLL1 running at %ld MHz, PLL2 at %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:370:3: note: expanded from macro '__printk_index_emit' if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \ ^ arch/arm/mach-ep93xx/clock.c:636:2: note: '?' condition is true pr_info("PLL1 running at %ld MHz, PLL2 at %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:379:12: note: expanded from macro '__printk_index_emit' .fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \ ^ arch/arm/mach-ep93xx/clock.c:636:2: note: '?' condition is true pr_info("PLL1 running at %ld MHz, PLL2 at %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit' .level = __builtin_constant_p(_level) ? (_level) : NULL, \ ^ arch/arm/mach-ep93xx/clock.c:636:2: note: Loop condition is false. Exiting loop pr_info("PLL1 running at %ld MHz, PLL2 at %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit' do { \ ^ arch/arm/mach-ep93xx/clock.c:638:2: note: Left side of '&&' is true pr_info("FCLK %ld MHz, HCLK %ld MHz, PCLK %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) -- include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit' do { \ ^ arch/arm/mach-ep93xx/clock.c:638:2: note: Left side of '&&' is true pr_info("FCLK %ld MHz, HCLK %ld MHz, PCLK %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:370:7: note: expanded from macro '__printk_index_emit' if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \ ^ arch/arm/mach-ep93xx/clock.c:638:2: note: Taking true branch pr_info("FCLK %ld MHz, HCLK %ld MHz, PCLK %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:370:3: note: expanded from macro '__printk_index_emit' if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \ ^ arch/arm/mach-ep93xx/clock.c:638:2: note: '?' condition is true pr_info("FCLK %ld MHz, HCLK %ld MHz, PCLK %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:379:12: note: expanded from macro '__printk_index_emit' .fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \ ^ arch/arm/mach-ep93xx/clock.c:638:2: note: '?' condition is true pr_info("FCLK %ld MHz, HCLK %ld MHz, PCLK %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit' .level = __builtin_constant_p(_level) ? (_level) : NULL, \ ^ arch/arm/mach-ep93xx/clock.c:638:2: note: Loop condition is false. Exiting loop pr_info("FCLK %ld MHz, HCLK %ld MHz, PCLK %ld MHz\n", ^ include/linux/printk.h:519:2: note: expanded from macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit' do { \ ^ arch/arm/mach-ep93xx/clock.c:645:7: note: Calling 'clk_hw_register_div' hw = clk_hw_register_div("ep93xx-adc", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:434:6: note: Assuming 'psc' is non-null if (!psc) ^~~~ arch/arm/mach-ep93xx/clock.c:434:2: note: Taking false branch if (!psc) ^ arch/arm/mach-ep93xx/clock.c:440:23: note: 'parent_name' is non-null init.parent_names = (parent_name ? &parent_name : NULL); ^~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:440:23: note: '?' condition is true arch/arm/mach-ep93xx/clock.c:453:2: note: Taking true branch if (IS_ERR(clk)) ^ arch/arm/mach-ep93xx/clock.c:454:3: note: Memory is released kfree(psc); ^~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:456:2: note: Use of memory after it is freed return &psc->hw; ^ ~~~~~~~~ >> arch/arm/mach-ep93xx/clock.c:484:2: warning: Value stored to 'hw' is never >> read [clang-analyzer-deadcode.DeadStores] hw = clk_hw_register_fixed_factor(NULL, "uart", "xtali", 0, 1, clk_uart_div); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:484:2: note: Value stored to 'hw' is never read hw = clk_hw_register_fixed_factor(NULL, "uart", "xtali", 0, 1, clk_uart_div); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:612:2: warning: Value stored to 'hw' is never read [clang-analyzer-deadcode.DeadStores] hw = clk_hw_register_fixed_factor(NULL, "usb_clk", "pll2", 0, 1, clk_usb_div); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-ep93xx/clock.c:612:2: note: Value stored to 'hw' is never read hw = clk_hw_register_fixed_factor(NULL, "usb_clk", "pll2", 0, 1, clk_usb_div); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. drivers/clk/actions/owl-pll.c:28:9: warning: Although the value stored to 'mul' is used in the enclosing expression, the value is never actually read from 'mul' [clang-analyzer-deadcode.DeadStores] return mul &= mul_mask(pll_hw); ^ drivers/clk/actions/owl-pll.c:28:9: note: Although the value stored to 'mul' is used in the enclosing expression, the value is never actually read from 'mul' Suppressed 9 warnings (8 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. include/linux/math64.h:92:15: warning: Division by zero [clang-analyzer-core.DivideZero] *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:235:25: note: expanded from macro 'do_div' -- #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ drivers/leds/led-core.c:424:2: note: Loop condition is false. Exiting loop BUG_ON(props.color == LED_COLOR_ID_MULTI); ^ include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ drivers/leds/led-core.c:426:6: note: Assuming 'led_classdev_name' is non-null if (!led_classdev_name) ^~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:426:2: note: Taking false branch if (!led_classdev_name) ^ drivers/leds/led-core.c:429:2: note: Calling 'led_parse_fwnode_props' led_parse_fwnode_props(dev, fwnode, &props); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:370:6: note: Assuming 'fwnode' is non-null if (!fwnode) ^~~~~~~ drivers/leds/led-core.c:370:2: note: Taking false branch if (!fwnode) ^ drivers/leds/led-core.c:373:6: note: Assuming the condition is false if (fwnode_property_present(fwnode, "label")) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:373:2: note: Taking false branch if (fwnode_property_present(fwnode, "label")) { ^ drivers/leds/led-core.c:380:6: note: Assuming the condition is false if (fwnode_property_present(fwnode, "color")) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:380:2: note: Taking false branch if (fwnode_property_present(fwnode, "color")) { ^ drivers/leds/led-core.c:391:6: note: Assuming the condition is true if (!fwnode_property_present(fwnode, "function")) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:391:2: note: Taking true branch if (!fwnode_property_present(fwnode, "function")) ^ drivers/leds/led-core.c:392:3: note: Returning without writing to 'props->label', which participates in a condition later return; ^ drivers/leds/led-core.c:392:3: note: Returning without writing to 'props->function', which participates in a condition later drivers/leds/led-core.c:392:3: note: Returning without writing to 'props->color_present', which participates in a condition later drivers/leds/led-core.c:429:2: note: Returning from 'led_parse_fwnode_props' led_parse_fwnode_props(dev, fwnode, &props); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:431:12: note: Field 'label' is null if (props.label) { ^ drivers/leds/led-core.c:431:2: note: Taking false branch if (props.label) { ^ drivers/leds/led-core.c:445:19: note: Field 'function' is null } else if (props.function || props.color_present) { ^ drivers/leds/led-core.c:445:13: note: Left side of '||' is false } else if (props.function || props.color_present) { ^ drivers/leds/led-core.c:445:37: note: Field 'color_present' is false } else if (props.function || props.color_present) { ^ drivers/leds/led-core.c:445:9: note: Taking false branch } else if (props.function || props.color_present) { ^ drivers/leds/led-core.c:464:13: note: Assuming field 'default_label' is null } else if (init_data->default_label) { ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:464:9: note: Taking false branch } else if (init_data->default_label) { ^ drivers/leds/led-core.c:471:13: note: Assuming the condition is true } else if (is_of_node(fwnode)) { ^~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:471:9: note: Taking true branch } else if (is_of_node(fwnode)) { ^ drivers/leds/led-core.c:472:30: note: Assuming the condition is false strscpy(led_classdev_name, to_of_node(fwnode)->name, ^ include/linux/of.h:164:3: note: expanded from macro 'to_of_node' is_of_node(__to_of_node_fwnode) ? \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/led-core.c:472:30: note: '?' condition is false strscpy(led_classdev_name, to_of_node(fwnode)->name, ^ include/linux/of.h:164:3: note: expanded from macro 'to_of_node' is_of_node(__to_of_node_fwnode) ? \ ^ drivers/leds/led-core.c:472:30: note: Access to field 'name' results in a dereference of a null pointer strscpy(led_classdev_name, to_of_node(fwnode)->name, ^ include/linux/of.h:161:2: note: expanded from macro 'to_of_node' ({ \ ^ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. >> drivers/gpu/drm/tegra/fb.c:126:14: warning: Assigned value is garbage or >> undefined [clang-analyzer-core.uninitialized.Assign] fb->obj[i] = &planes[i]->gem; ^ drivers/gpu/drm/tegra/fb.c:150:14: note: Assuming 'i' is >= field 'num_planes' for (i = 0; i < info->num_planes; i++) { ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:150:2: note: Loop condition is false. Execution continues on line 174 for (i = 0; i < info->num_planes; i++) { ^ drivers/gpu/drm/tegra/fb.c:174:7: note: Calling 'tegra_fb_alloc' fb = tegra_fb_alloc(drm, cmd, planes, i); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:119:7: note: Calling 'kzalloc' fb = kzalloc(sizeof(*fb), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:721:9: note: Calling 'kmalloc' return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:579:2: note: Taking false branch if (__builtin_constant_p(size)) { ^ include/linux/slab.h:596:2: note: Returning pointer, which participates in a condition later return __kmalloc(size, flags); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:721:9: note: Returning from 'kmalloc' return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:119:7: note: Returning from 'kzalloc' fb = kzalloc(sizeof(*fb), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:120:6: note: Assuming 'fb' is non-null if (!fb) ^~~ drivers/gpu/drm/tegra/fb.c:120:2: note: Taking false branch if (!fb) ^ drivers/gpu/drm/tegra/fb.c:125:7: note: The value 0 is assigned to 'i' for (i = 0; i < fb->format->num_planes; i++) ^~~~~ drivers/gpu/drm/tegra/fb.c:125:14: note: Assuming 'i' is < field 'num_planes' for (i = 0; i < fb->format->num_planes; i++) ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:125:2: note: Loop condition is true. Entering loop body for (i = 0; i < fb->format->num_planes; i++) ^ drivers/gpu/drm/tegra/fb.c:126:14: note: Assigned value is garbage or undefined fb->obj[i] = &planes[i]->gem; ^ ~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. drivers/gpu/drm/etnaviv/etnaviv_gem.c:60:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct drm_device *dev = etnaviv_obj->base.dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/etnaviv/etnaviv_gem.c:60:21: note: Value stored to 'dev' during its initialization is never read struct drm_device *dev = etnaviv_obj->base.dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1400:3: warning: Array subscript is undefined [clang-analyzer-core.uninitialized.ArraySubscript] gpu->event[event[2]].sync_point = &sync_point_perfmon_sample_post; ^ ~~~~~~~~ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1344:6: note: Assuming field 'runtime_resumed' is true if (!submit->runtime_resumed) { ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1344:2: note: Taking false branch if (!submit->runtime_resumed) { ^ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1360:6: note: Assuming field 'nr_pmrs' is 0 if (submit->nr_pmrs) ^~~~~~~~~~~~~~~ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1360:2: note: Taking false branch if (submit->nr_pmrs) ^ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1363:8: note: Calling 'event_alloc' ret = event_alloc(gpu, nr_events, event); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1158:2: note: Loop condition is true. Entering loop body for (i = 0; i < nr_events; i++) { ^ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1163:7: note: Assuming 'ret' is not equal to 0 if (!ret) { ^~~~ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1163:3: note: Taking false branch if (!ret) { ^ drivers/gpu/drm/etnaviv/etnaviv_gpu.c:1158:2: note: Loop condition is false. Execution continues on line 1172 for (i = 0; i < nr_events; i++) { -- usbhs_lock(priv, flags); ^ drivers/usb/renesas_usbhs/common.h:294:26: note: expanded from macro 'usbhs_lock' #define usbhs_lock(p, f) spin_lock_irqsave(usbhs_priv_to_lock(p), f) ^ include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave' raw_spin_lock_irqsave(spinlock_check(lock), flags); \ ^ include/linux/spinlock.h:276:2: note: expanded from macro 'raw_spin_lock_irqsave' do { \ ^ drivers/usb/renesas_usbhs/mod.c:199:2: note: Loop condition is false. Exiting loop usbhs_lock(priv, flags); ^ drivers/usb/renesas_usbhs/common.h:294:26: note: expanded from macro 'usbhs_lock' #define usbhs_lock(p, f) spin_lock_irqsave(usbhs_priv_to_lock(p), f) ^ include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave' #define spin_lock_irqsave(lock, flags) \ ^ drivers/usb/renesas_usbhs/mod.c:203:2: note: Taking false branch if (usbhs_mod_is_host(priv)) { ^ drivers/usb/renesas_usbhs/mod.c:211:6: note: Assuming 'mod' is null if (mod) { ^~~ drivers/usb/renesas_usbhs/mod.c:211:2: note: Taking false branch if (mod) { ^ drivers/usb/renesas_usbhs/mod.c:226:6: note: Assuming the condition is true if (priv->irqflags & IRQF_SHARED) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:226:2: note: Taking true branch if (priv->irqflags & IRQF_SHARED) { ^ drivers/usb/renesas_usbhs/mod.c:227:7: note: Assuming the condition is true if (!(intenb0 & state->intsts0) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:227:7: note: Left side of '&&' is true drivers/usb/renesas_usbhs/mod.c:227:7: note: Left side of '&&' is true drivers/usb/renesas_usbhs/mod.c:229:7: note: Branch condition evaluates to a garbage value !(state->bempsts) && ^~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:271:3: warning: 3rd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] usbhs_write(priv, BRDYSTS, ~irq_state.brdysts); ^ ~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:247:2: note: Taking false branch if (usbhs_status_get_each_irq(priv, &irq_state) < 0) ^ drivers/usb/renesas_usbhs/mod.c:262:2: note: Taking false branch if (usbhs_mod_is_host(priv)) ^ drivers/usb/renesas_usbhs/mod.c:270:6: note: Assuming the condition is true if (irq_state.intsts0 & BRDY) ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:270:2: note: Taking true branch if (irq_state.intsts0 & BRDY) ^ drivers/usb/renesas_usbhs/mod.c:271:3: note: 3rd function call argument is an uninitialized value usbhs_write(priv, BRDYSTS, ~irq_state.brdysts); ^ ~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:272:2: warning: 3rd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] usbhs_write(priv, NRDYSTS, ~irq_state.nrdysts); ^ ~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:247:2: note: Taking false branch if (usbhs_status_get_each_irq(priv, &irq_state) < 0) ^ drivers/usb/renesas_usbhs/mod.c:262:2: note: Taking false branch if (usbhs_mod_is_host(priv)) ^ drivers/usb/renesas_usbhs/mod.c:270:6: note: Assuming the condition is false if (irq_state.intsts0 & BRDY) ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/renesas_usbhs/mod.c:270:2: note: Taking false branch if (irq_state.intsts0 & BRDY) ^ drivers/usb/renesas_usbhs/mod.c:272:2: note: 3rd function call argument is an uninitialized value usbhs_write(priv, NRDYSTS, ~irq_state.nrdysts); ^ ~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. >> drivers/gpu/drm/sun4i/sun4i_tcon.c:1426:2: warning: Value stored to 'id' is >> never read [clang-analyzer-deadcode.DeadStores] id = sun4i_tcon_of_get_id_from_port(port); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/sun4i/sun4i_tcon.c:1426:2: note: Value stored to 'id' is never read id = sun4i_tcon_of_get_id_from_port(port); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. drivers/gpu/drm/sun4i/sun4i_tv.c:491:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(mode->name, tv_mode->name); ^~~~~~ drivers/gpu/drm/sun4i/sun4i_tv.c:491:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(mode->name, tv_mode->name); ^~~~~~ Suppressed 9 warnings (8 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. drivers/regulator/mt6380-regulator.c:200:6: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] val <<= ffs(info->modeset_mask) - 1; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/regulator/mt6380-regulator.c:189:2: note: Control jumps to 'case 1:' at line 193 switch (mode) { ^ drivers/regulator/mt6380-regulator.c:195:3: note: Execution continues on line 200 break; ^ drivers/regulator/mt6380-regulator.c:200:6: note: Assigned value is garbage or undefined val <<= ffs(info->modeset_mask) - 1; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/regulator/mt6380-regulator.c:220:6: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] val >>= ffs(info->modeset_mask) - 1; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/regulator/mt6380-regulator.c:216:6: note: Assuming 'ret' is >= 0 if (ret < 0) ^~~~~~~ drivers/regulator/mt6380-regulator.c:216:2: note: Taking false branch if (ret < 0) ^ drivers/regulator/mt6380-regulator.c:220:6: note: Assigned value is garbage or undefined val >>= ffs(info->modeset_mask) - 1; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 12 warnings generated. drivers/usb/typec/tcpm/tcpm.c:297:8: warning: Excessive padding in 'struct tcpm_port' (44 padding bytes, where 4 is optimal). Optimal fields order: delayed_runtime, state_machine_timer, vdm_state_machine_timer, enable_frs_timer, send_discover_timer, dev, wq, typec_port, tcpc, role_sw, vconn_role, pwr_role, data_role, pwr_opmode, partner, cc_req, src_rp, cc1, cc2, polarity, port_type, -- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:1509:7: note: Taking false branch else if (e->reg == CDC_RX_RX1_RX_PATH_CFG1) ^ sound/soc/codecs/lpass-rx-macro.c:1513:6: note: Assuming 'val' is 0 if (val) ^~~ sound/soc/codecs/lpass-rx-macro.c:1513:2: note: Taking false branch if (val) ^ sound/soc/codecs/lpass-rx-macro.c:1518:3: note: 2nd function call argument is an uninitialized value snd_soc_component_update_bits(component, look_ahead_dly_reg, ^ ~~~~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2224:6: warning: Branch condition evaluates to a garbage value [clang-analyzer-core.uninitialized.Branch] if (hd2_enable_reg && SND_SOC_DAPM_EVENT_ON(event)) { ^ sound/soc/codecs/lpass-rx-macro.c:2617:2: note: Control jumps to 'case 1:' at line 2618 switch (event) { ^ sound/soc/codecs/lpass-rx-macro.c:2619:3: note: Calling 'rx_macro_enable_interp_clk' rx_macro_enable_interp_clk(component, event, w->shift); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2513:6: note: Assuming 'interp_idx' is not equal to INTERP_AUX if (interp_idx == INTERP_AUX) ^~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2513:2: note: Taking false branch if (interp_idx == INTERP_AUX) ^ sound/soc/codecs/lpass-rx-macro.c:2517:2: note: Taking true branch if (SND_SOC_DAPM_EVENT_ON(event)) { ^ sound/soc/codecs/lpass-rx-macro.c:2518:7: note: Assuming the condition is true if (rx->main_clk_users[interp_idx] == 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2518:3: note: Taking true branch if (rx->main_clk_users[interp_idx] == 0) { ^ sound/soc/codecs/lpass-rx-macro.c:2527:8: note: Assuming field 'hph_hd2_mode' is true if (rx->hph_hd2_mode) ^~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2527:4: note: Taking true branch if (rx->hph_hd2_mode) ^ sound/soc/codecs/lpass-rx-macro.c:2528:5: note: Calling 'rx_macro_hd2_control' rx_macro_hd2_control(component, interp_idx, event); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2211:21: note: 'hd2_enable_reg' declared without an initial value u16 hd2_scale_reg, hd2_enable_reg; ^~~~~~~~~~~~~~ sound/soc/codecs/lpass-rx-macro.c:2213:2: note: 'Default' branch taken. Execution continues on line 2224 switch (interp_idx) { ^ sound/soc/codecs/lpass-rx-macro.c:2224:6: note: Branch condition evaluates to a garbage value if (hd2_enable_reg && SND_SOC_DAPM_EVENT_ON(event)) { ^~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 12 warnings generated. drivers/media/platform/exynos4-is/fimc-capture.c:670:16: warning: Division by zero [clang-analyzer-core.DivideZero] align_sz = 64/ALIGN(depth, 8); ^ drivers/media/platform/exynos4-is/fimc-capture.c:1643:6: note: Assuming field 'pad' is not equal to FIMC_SD_PAD_SOURCE if (sel->pad == FIMC_SD_PAD_SOURCE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1643:2: note: Taking false branch if (sel->pad == FIMC_SD_PAD_SOURCE) ^ drivers/media/platform/exynos4-is/fimc-capture.c:1647:2: note: Calling 'fimc_capture_try_selection' fimc_capture_try_selection(ctx, r, V4L2_SEL_TGT_CROP); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:643:16: note: Assuming field 'rotation' is equal to 90 bool rotate = ctx->rotation == 90 || ctx->rotation == 270; ^~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:643:36: note: Left side of '||' is true bool rotate = ctx->rotation == 90 || ctx->rotation == 270; ^ drivers/media/platform/exynos4-is/fimc-capture.c:653:6: note: Assuming the condition is true if (fimc_fmt_is_user_defined(ctx->d_frame.fmt->color)) { ^ drivers/media/platform/exynos4-is/fimc-core.h:112:39: note: expanded from macro 'fimc_fmt_is_user_defined' #define fimc_fmt_is_user_defined(x) (!!((x) & 0x180)) ^~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:653:2: note: Taking false branch if (fimc_fmt_is_user_defined(ctx->d_frame.fmt->color)) { ^ drivers/media/platform/exynos4-is/fimc-capture.c:659:6: note: 'target' is not equal to V4L2_SEL_TGT_COMPOSE if (target == V4L2_SEL_TGT_COMPOSE) { ^~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:659:2: note: Taking false branch if (target == V4L2_SEL_TGT_COMPOSE) { ^ drivers/media/platform/exynos4-is/fimc-capture.c:670:16: note: Division by zero align_sz = 64/ALIGN(depth, 8); ~~^~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:825:3: warning: Value stored to 'ffmt' is never read [clang-analyzer-deadcode.DeadStores] ffmt = fimc_capture_try_format(ctx, &tfmt->width, &tfmt->height, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:825:3: note: Value stored to 'ffmt' is never read ffmt = fimc_capture_try_format(ctx, &tfmt->width, &tfmt->height, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/platform/exynos4-is/fimc-capture.c:862:22: warning: Assigned >> value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] fd.entry[i].length = plane_fmt[i].sizeimage; ^ drivers/media/platform/exynos4-is/fimc-capture.c:1184:2: note: Taking false branch if (fimc_capture_active(fimc)) ^ drivers/media/platform/exynos4-is/fimc-capture.c:1188:6: note: Assuming 'ret' is >= 0 if (ret < 0) ^~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1188:2: note: Taking false branch if (ret < 0) ^ drivers/media/platform/exynos4-is/fimc-capture.c:1192:6: note: Assuming 'sd' is non-null if (sd) ^~ drivers/media/platform/exynos4-is/fimc-capture.c:1192:2: note: Taking true branch if (sd) ^ drivers/media/platform/exynos4-is/fimc-capture.c:1195:6: note: Assuming 'si' is not equal to NULL if (si == NULL) { ^~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1195:2: note: Taking false branch if (si == NULL) { ^ drivers/media/platform/exynos4-is/fimc-capture.c:1205:6: note: Assuming the condition is false if (vc->input == GRP_ID_FIMC_IS) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1205:2: note: Taking false branch if (vc->input == GRP_ID_FIMC_IS) ^ drivers/media/platform/exynos4-is/fimc-capture.c:1208:6: note: Assuming field 'user_subdev_api' is true if (vc->user_subdev_api) { ^~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1208:2: note: Taking true branch if (vc->user_subdev_api) { ^ drivers/media/platform/exynos4-is/fimc-capture.c:1209:9: note: Calling 'fimc_pipeline_validate' ret = fimc_pipeline_validate(fimc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1101:28: note: Left side of '&&' is false struct fimc_pipeline *p = to_fimc_pipeline(vc->ve.pipe); ^ drivers/media/platform/exynos4-is/media-dev.h:62:31: note: expanded from macro 'to_fimc_pipeline' #define to_fimc_pipeline(_ep) container_of(_ep, struct fimc_pipeline, ep) ^ include/linux/kernel.h:495:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/media/platform/exynos4-is/fimc-capture.c:1101:28: note: Taking false branch struct fimc_pipeline *p = to_fimc_pipeline(vc->ve.pipe); ^ drivers/media/platform/exynos4-is/media-dev.h:62:31: note: expanded from macro 'to_fimc_pipeline' #define to_fimc_pipeline(_ep) container_of(_ep, struct fimc_pipeline, ep) ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ drivers/media/platform/exynos4-is/fimc-capture.c:1101:28: note: Loop condition is false. Exiting loop struct fimc_pipeline *p = to_fimc_pipeline(vc->ve.pipe); ^ drivers/media/platform/exynos4-is/media-dev.h:62:31: note: expanded from macro 'to_fimc_pipeline' #define to_fimc_pipeline(_ep) container_of(_ep, struct fimc_pipeline, ep) ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/media/platform/exynos4-is/fimc-capture.c:1105:2: note: Loop condition is true. Entering loop body while (1) { ^ drivers/media/platform/exynos4-is/fimc-capture.c:1113:15: note: Assuming 'i' is < field 'num_pads' for (i = 0; i < sd->entity.num_pads; i++) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/exynos4-is/fimc-capture.c:1113:3: note: Loop condition is true. Entering loop body for (i = 0; i < sd->entity.num_pads; i++) { ^ drivers/media/platform/exynos4-is/fimc-capture.c:1116:8: note: Assuming the condition is true if (p->flags & MEDIA_PAD_FL_SINK) { vim +154 arch/arm/mach-ep93xx/clock.c ff05c0330b9880f Hartley Sweeten 2009-05-07 125 9645ccc7bd7a16c Nikita Shubin 2021-10-18 126 static struct clk_hw *ep93xx_clk_register_gate(const char *name, 9645ccc7bd7a16c Nikita Shubin 2021-10-18 127 const char *parent_name, 9645ccc7bd7a16c Nikita Shubin 2021-10-18 128 void __iomem *reg, 9645ccc7bd7a16c Nikita Shubin 2021-10-18 129 u8 bit_idx) 9645ccc7bd7a16c Nikita Shubin 2021-10-18 130 { 9645ccc7bd7a16c Nikita Shubin 2021-10-18 131 struct clk_init_data init; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 132 struct clk_psc *psc; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 133 struct clk *clk; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 134 9645ccc7bd7a16c Nikita Shubin 2021-10-18 135 psc = kzalloc(sizeof(*psc), GFP_KERNEL); 9645ccc7bd7a16c Nikita Shubin 2021-10-18 136 if (!psc) 9645ccc7bd7a16c Nikita Shubin 2021-10-18 137 return ERR_PTR(-ENOMEM); 9645ccc7bd7a16c Nikita Shubin 2021-10-18 138 9645ccc7bd7a16c Nikita Shubin 2021-10-18 139 init.name = name; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 140 init.ops = &clk_ep93xx_gate_ops; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 141 init.flags = CLK_SET_RATE_PARENT; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 142 init.parent_names = (parent_name ? &parent_name : NULL); 9645ccc7bd7a16c Nikita Shubin 2021-10-18 143 init.num_parents = (parent_name ? 1 : 0); 9645ccc7bd7a16c Nikita Shubin 2021-10-18 144 9645ccc7bd7a16c Nikita Shubin 2021-10-18 145 psc->reg = reg; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 146 psc->bit_idx = bit_idx; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 147 psc->hw.init = &init; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 148 psc->lock = &clk_lock; 9645ccc7bd7a16c Nikita Shubin 2021-10-18 149 9645ccc7bd7a16c Nikita Shubin 2021-10-18 150 clk = clk_register(NULL, &psc->hw); 9645ccc7bd7a16c Nikita Shubin 2021-10-18 151 if (IS_ERR(clk)) 9645ccc7bd7a16c Nikita Shubin 2021-10-18 152 kfree(psc); 9645ccc7bd7a16c Nikita Shubin 2021-10-18 153 9645ccc7bd7a16c Nikita Shubin 2021-10-18 @154 return &psc->hw; ff05c0330b9880f Hartley Sweeten 2009-05-07 155 } ff05c0330b9880f Hartley Sweeten 2009-05-07 156 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
