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:   5f53fa508db098c9d372423a6dac31c8a5679cdf
commit: 9645ccc7bd7a16cd73c3be9dee70cd702b03be37 ep93xx: clock: convert 
in-place to COMMON_CLK
date:   5 weeks ago
:::::: branch date: 5 hours ago
:::::: commit date: 5 weeks ago
config: arm-randconfig-c002-20211123 
(https://download.01.org/0day-ci/archive/20211125/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
49e3838145dff1ec91c2e67a2cb562775c8d2a08)
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 >>)
   7 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: 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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   arch/arm/mach-ep93xx/clock.c:642:2: note: Calling 'ep93xx_uart_clock_init'
           ep93xx_uart_clock_init();
           ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:479:6: note: Assuming the condition is false
           if (value & EP93XX_SYSCON_PWRCNT_UARTBAUD)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:479:2: note: Taking false branch
           if (value & EP93XX_SYSCON_PWRCNT_UARTBAUD)
           ^
   arch/arm/mach-ep93xx/clock.c:487:2: note: Loop condition is true.  Entering 
loop body
           for (i = 0; i < ARRAY_SIZE(ep93xx_uarts); i++) {
           ^
   arch/arm/mach-ep93xx/clock.c:488:8: note: Calling 'ep93xx_clk_register_gate'
                   hw = ep93xx_clk_register_gate(ep93xx_uarts[i].dev_id,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:136:6: note: Assuming 'psc' is non-null
           if (!psc)
               ^~~~
   arch/arm/mach-ep93xx/clock.c:136:2: note: Taking false branch
           if (!psc)
           ^
   arch/arm/mach-ep93xx/clock.c:142:23: note: 'parent_name' is non-null
           init.parent_names = (parent_name ? &parent_name : NULL);
                                ^~~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:142:23: note: '?' condition is true
   arch/arm/mach-ep93xx/clock.c:143:22: note: 'parent_name' is non-null
           init.num_parents = (parent_name ? 1 : 0);
                               ^~~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:143:22: note: '?' condition is true
   arch/arm/mach-ep93xx/clock.c:151:2: note: Taking true branch
           if (IS_ERR(clk))
           ^
   arch/arm/mach-ep93xx/clock.c:152:3: note: Memory is released
                   kfree(psc);
                   ^~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:154:2: note: Use of memory after it is freed
           return &psc->hw;
           ^      ~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:349: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))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
   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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   arch/arm/mach-ep93xx/clock.c:686:7: note: Calling 'clk_hw_register_ddiv'
           hw = clk_hw_register_ddiv("ep93xx-fb",
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:331:6: note: Assuming 'psc' is non-null
           if (!psc)
               ^~~~
   arch/arm/mach-ep93xx/clock.c:331:2: note: Taking false branch
           if (!psc)
           ^
   arch/arm/mach-ep93xx/clock.c:346:2: note: Taking true branch
           if (IS_ERR(clk))
           ^
   arch/arm/mach-ep93xx/clock.c:347:3: note: Memory is released
                   kfree(psc);
                   ^~~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:349:2: note: Use of memory after it is freed
           return &psc->hw;
           ^      ~~~~~~~~
   arch/arm/mach-ep93xx/clock.c:456: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: 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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   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 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.
   security/integrity/ima/ima_api.c:108:24: warning: Access to field 
'template_desc' results in a dereference of a null pointer (loaded from 
variable 'entry') [clang-analyzer-core.NullDereference]
           char *template_name = entry->template_desc->name;
                                 ^
   security/integrity/ima/ima_api.c:325:6: note: Assuming the condition is false
           if (iint->measured_pcrs & (0x1 << pcr) && !modsig)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/integrity/ima/ima_api.c:325:41: note: Left side of '&&' is false
           if (iint->measured_pcrs & (0x1 << pcr) && !modsig)
                                                  ^
   security/integrity/ima/ima_api.c:328:11: note: Calling 
'ima_alloc_init_template'
           result = ima_alloc_init_template(&event_data, &entry, template_desc);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/integrity/ima/ima_api.c:45:6: note: Assuming 'desc' is non-null
           if (desc)
               ^~~~
   security/integrity/ima/ima_api.c:45:2: note: Taking true branch
           if (desc)
           ^
   security/integrity/ima/ima_api.c:52:6: note: Assuming the condition is false
           if (!*entry)
               ^~~~~~~
   security/integrity/ima/ima_api.c:52:2: note: Taking false branch
           if (!*entry)
           ^
   security/integrity/ima/ima_api.c:55:29: note: Assuming 'ima_tpm_chip' is 
equal to null
           digests = kcalloc(NR_BANKS(ima_tpm_chip) + ima_extra_slots,
                                      ^
   security/integrity/ima/ima.h:44:26: note: expanded from macro 'NR_BANKS'
   #define NR_BANKS(chip) ((chip != NULL) ? chip->nr_allocated_banks : 0)
                            ^~~~~~~~~~~~
   security/integrity/ima/ima_api.c:55:20: note: '?' condition is false
           digests = kcalloc(NR_BANKS(ima_tpm_chip) + ima_extra_slots,
                             ^
   security/integrity/ima/ima.h:44:25: note: expanded from macro 'NR_BANKS'
   #define NR_BANKS(chip) ((chip != NULL) ? chip->nr_allocated_banks : 0)
                           ^
   security/integrity/ima/ima_api.c:57:6: note: Assuming 'digests' is non-null
           if (!digests) {
               ^~~~~~~~
   security/integrity/ima/ima_api.c:57:2: note: Taking false branch
           if (!digests) {
           ^
   security/integrity/ima/ima_api.c:65:14: note: Assuming 'i' is < field 
'num_fields'
           for (i = 0; i < template_desc->num_fields; i++) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/integrity/ima/ima_api.c:65:2: note: Loop condition is true.  
Entering loop body
           for (i = 0; i < template_desc->num_fields; i++) {
           ^
   security/integrity/ima/ima_api.c:72:7: note: Assuming 'result' is not equal 
to 0
                   if (result != 0)
                       ^~~~~~~~~~~
   security/integrity/ima/ima_api.c:72:3: note: Taking true branch
                   if (result != 0)
                   ^
   security/integrity/ima/ima_api.c:73:4: note: Control jumps to line 81
                           goto out;
                           ^
   security/integrity/ima/ima_api.c:82:2: note: Null pointer value stored to 
'entry'
           *entry = NULL;
           ^~~~~~~~~~~~~
   security/integrity/ima/ima_api.c:328:11: note: Returning from 
'ima_alloc_init_template'
           result = ima_alloc_init_template(&event_data, &entry, template_desc);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/integrity/ima/ima_api.c:329:6: note: Assuming 'result' is >= 0
           if (result < 0) {
               ^~~~~~~~~~
   security/integrity/ima/ima_api.c:329:2: note: Taking false branch
           if (result < 0) {
           ^
   security/integrity/ima/ima_api.c:335:30: note: Passing null pointer value 
via 1st parameter 'entry'
           result = ima_store_template(entry, violation, inode, filename, pcr);
                                       ^~~~~
   security/integrity/ima/ima_api.c:335:11: note: Calling 'ima_store_template'
           result = ima_store_template(entry, violation, inode, filename, pcr);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/integrity/ima/ima_api.c:108:24: note: Access to field 
'template_desc' results in a dereference of a null pointer (loaded from 
variable 'entry')
           char *template_name = entry->template_desc->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.
   22 warnings generated.
   fs/verity/open.c:78:31: warning: The result of the left shift is undefined 
due to shifting by '4294967277', which is greater or equal to the width of type 
'int' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           params->hashes_per_block = 1 << params->log_arity;
                                        ^
   fs/verity/open.c:347:6: note: Assuming the condition is false
           if (!IS_VERITY(inode))
--
               ^~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:483:2: note: Taking false branch
           if (ret < 0)
           ^
   security/keys/trusted-keys/trusted_tpm1.c:490:8: note: Calling 'TSS_sha1'
           ret = TSS_sha1(td->xorwork, SHA1_DIGEST_SIZE * 2, td->xorhash);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:57:10: note: Calling 'init_sdesc'
           sdesc = init_sdesc(hashalg);
                   ^~~~~~~~~~~~~~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:44:10: note: Memory is allocated
           sdesc = kmalloc(size, GFP_KERNEL);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:45:6: note: Assuming 'sdesc' is 
non-null
           if (!sdesc)
               ^~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:45:2: note: Taking false branch
           if (!sdesc)
           ^
   security/keys/trusted-keys/trusted_tpm1.c:57:10: note: Returned allocated 
memory
           sdesc = init_sdesc(hashalg);
                   ^~~~~~~~~~~~~~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:58:2: note: Taking true branch
           if (IS_ERR(sdesc)) {
           ^
   security/keys/trusted-keys/trusted_tpm1.c:59:3: note: Loop condition is 
false.  Exiting loop
                   pr_info("can't alloc %s\n", hash_alg);
                   ^
   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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   security/keys/trusted-keys/trusted_tpm1.c:490:8: note: Returned allocated 
memory
           ret = TSS_sha1(td->xorwork, SHA1_DIGEST_SIZE * 2, td->xorhash);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:491:6: note: 'ret' is >= 0
           if (ret < 0)
               ^~~
   security/keys/trusted-keys/trusted_tpm1.c:491:2: note: Taking false branch
           if (ret < 0)
           ^
   security/keys/trusted-keys/trusted_tpm1.c:495:6: note: Assuming 'ret' is >= 0
           if (ret < 0)
               ^~~~~~~
   security/keys/trusted-keys/trusted_tpm1.c:495:2: note: Taking false branch
           if (ret < 0)
           ^
   security/keys/trusted-keys/trusted_tpm1.c:498:6: note: Potential leak of 
memory pointed to by 'ret'
           if (ret != TPM_NONCE_SIZE) {
               ^
   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.
   4 warnings generated.
   drivers/clk/socfpga/clk-periph.c:69:41: warning: The right operand of '+' is 
a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           periph_clk->hw.reg = clk_mgr_base_addr + reg;
                                                  ^
   drivers/clk/socfpga/clk-periph.c:108:2: note: Calling '__socfpga_periph_init'
           __socfpga_periph_init(node, &periclk_ops);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/socfpga/clk-periph.c:53:2: note: 'reg' declared without an 
initial value
           u32 reg;
           ^~~~~~~
   drivers/clk/socfpga/clk-periph.c:63:2: note: Calling 'of_property_read_u32'
           of_property_read_u32(node, "reg", &reg);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/of.h:1256:9: note: Calling 'of_property_read_u32_array'
           return of_property_read_u32_array(np, propname, out_value, 1);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/of.h:752:2: note: Returning without writing to '*out_values'
           return -ENOSYS;
           ^
   include/linux/of.h:1256:9: note: Returning from 'of_property_read_u32_array'
           return of_property_read_u32_array(np, propname, out_value, 1);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/of.h:1256:2: note: Returning without writing to '*out_value'
           return of_property_read_u32_array(np, propname, out_value, 1);
           ^
   drivers/clk/socfpga/clk-periph.c:63:2: note: Returning from 
'of_property_read_u32'
           of_property_read_u32(node, "reg", &reg);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/socfpga/clk-periph.c:66:14: note: Assuming 'periph_clk' is 
non-null
           if (WARN_ON(!periph_clk))
                       ^
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/clk/socfpga/clk-periph.c:66:2: note: Taking false branch
           if (WARN_ON(!periph_clk))
           ^
   drivers/clk/socfpga/clk-periph.c:69:41: note: The right operand of '+' is a 
garbage value
           periph_clk->hw.reg = clk_mgr_base_addr + reg;
                                                  ^ ~~~
>> drivers/clk/socfpga/clk-periph.c:103:2: warning: Value stored to 'rc' is 
>> never read [clang-analyzer-deadcode.DeadStores]
           rc = of_clk_add_provider(node, of_clk_src_simple_get, hw_clk);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/socfpga/clk-periph.c:103:2: note: Value stored to 'rc' is never 
read
           rc = of_clk_add_provider(node, of_clk_src_simple_get, hw_clk);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   fs/autofs/dev-ioctl.c:519:34: warning: Although the value stored to 'devid' 
is used in the enclosing expression, the value is never actually read from 
'devid' [clang-analyzer-deadcode.DeadStores]
           param->ismountpoint.out.devid = devid = 0;
                                           ^       ~
   fs/autofs/dev-ioctl.c:519:34: note: Although the value stored to 'devid' is 
used in the enclosing expression, the value is never actually read from 'devid'
           param->ismountpoint.out.devid = devid = 0;
                                           ^       ~
   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.
   10 warnings generated.
   fs/debugfs/file.c:63:9: warning: Use of memory after it is freed 
[clang-analyzer-unix.Malloc]
           return fsd->real_fops;
                  ^
   fs/debugfs/file.c:252:6: note: Calling 'debugfs_file_get'
           if (debugfs_file_get(dentry))
               ^~~~~~~~~~~~~~~~~~~~~~~~
   fs/debugfs/file.c:87:10: note: Left side of '||' is false
           d_fsd = READ_ONCE(dentry->d_fsdata);
                   ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:21: note: expanded from macro 
'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long 
long),  \
                              ^
   include/linux/compiler_types.h:290:3: note: expanded from macro 
'__native_word'
           (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
            ^
   fs/debugfs/file.c:87:10: note: Left side of '||' is false
           d_fsd = READ_ONCE(dentry->d_fsdata);
                   ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:21: note: expanded from macro 
'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long 
long),  \
                              ^
   include/linux/compiler_types.h:290:3: note: expanded from macro 
'__native_word'
           (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
            ^
   fs/debugfs/file.c:87:10: note: Left side of '||' is true
           d_fsd = READ_ONCE(dentry->d_fsdata);
                   ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:21: note: expanded from macro 
'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long 
long),  \
                              ^
   include/linux/compiler_types.h:291:28: note: expanded from macro 
'__native_word'
            sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
                                     ^
   fs/debugfs/file.c:87:10: note: Taking false branch
           d_fsd = READ_ONCE(dentry->d_fsdata);
                   ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:2: note: expanded from macro 
'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long 
long),  \
           ^
   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))                                       \
                   ^
   fs/debugfs/file.c:87:10: note: Loop condition is false.  Exiting loop
           d_fsd = READ_ONCE(dentry->d_fsdata);
                   ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:2: note: expanded from macro 
'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long 
long),  \
           ^
   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 {                                                            \
--
                           ^
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/gpu/drm/vkms/vkms_crtc.c:199:8: note: Access to field 'visible' 
results in a dereference of a null pointer (loaded from variable 'plane_state')
                   if (!plane_state->visible)
                        ^~~~~~~~~~~
   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.
   10 warnings generated.
   drivers/clk/clk-max9485.c:199:9: warning: Access to field 'out' results in a 
dereference of a null pointer (loaded from variable 'prev') 
[clang-analyzer-core.NullDereference]
           return prev->out;
                  ^~~~
   drivers/clk/clk-max9485.c:165:36: note: 'prev' initialized to a null pointer 
value
           const struct max9485_rate *curr, *prev = NULL;
                                             ^~~~
   drivers/clk/clk-max9485.c:167:29: note: Assuming field 'out' is equal to 0
           for (curr = max9485_rates; curr->out != 0; curr++) {
                                      ^~~~~~~~~~~~~~
   drivers/clk/clk-max9485.c:167:2: note: Loop condition is false. Execution 
continues on line 199
           for (curr = max9485_rates; curr->out != 0; curr++) {
           ^
   drivers/clk/clk-max9485.c:199:9: note: Access to field 'out' results in a 
dereference of a null pointer (loaded from variable 'prev')
           return prev->out;
                  ^~~~
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   4 warnings generated.
>> drivers/clk/socfpga/clk-gate.c:37:10: warning: Although the value stored to 
>> 'l4_src' is used in the enclosing expression, the value is never actually 
>> read from 'l4_src' [clang-analyzer-deadcode.DeadStores]
                   return l4_src &= 0x1;
                          ^         ~~~
   drivers/clk/socfpga/clk-gate.c:37:10: note: Although the value stored to 
'l4_src' is used in the enclosing expression, the value is never actually read 
from 'l4_src'
                   return l4_src &= 0x1;
                          ^         ~~~
>> drivers/clk/socfpga/clk-gate.c:46:10: warning: Although the value stored to 
>> 'perpll_src' is used in the enclosing expression, the value is never 
>> actually read from 'perpll_src' [clang-analyzer-deadcode.DeadStores]
                   return perpll_src &= 0x3;
                          ^             ~~~
   drivers/clk/socfpga/clk-gate.c:46:10: note: Although the value stored to 
'perpll_src' is used in the enclosing expression, the value is never actually 
read from 'perpll_src'
                   return perpll_src &= 0x3;
                          ^             ~~~
   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.
   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.
   16 warnings generated.
   drivers/misc/lis3lv02d/lis3lv02d.c:160:3: warning: Undefined or garbage 
value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
                   return -hw_values[-axis - 1];
                   ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1132:2: note: Control jumps to 'case 
WAI_3DC:'  at line 1155
           switch (lis3->whoami) {
           ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1156:3: note: Loop condition is false.  
Exiting loop
                   pr_info("8 bits 3DC sensor found\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:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1163:3: note:  Execution continues on 
line 1179
                   break;
                   ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1179:28: note: '?' condition is true
           lis3->reg_cache = kzalloc(max(sizeof(lis3_wai8_regs),
                                     ^
   include/linux/minmax.h:52:19: note: expanded from macro 'max'
   #define max(x, y)       __careful_cmp(x, y, >)
                           ^
   include/linux/minmax.h:37:3: note: expanded from macro '__careful_cmp'
                   __cmp(x, y, op), \
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1182:6: note: Assuming field 'reg_cache' 
is not equal to NULL
           if (lis3->reg_cache == NULL)
               ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/lis3lv02d/lis3lv02d.c:1182:2: note: Taking false branch
           if (lis3->reg_cache == NULL)
           ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1185:2: note: Loop condition is false.  
Exiting loop
           mutex_init(&lis3->mutex);
           ^
   include/linux/mutex.h:101:32: note: expanded from macro 'mutex_init'
   #define mutex_init(mutex)                                               \
                                                                           ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1190:6: note: 'err' is 0
           if (err) {
               ^~~
   drivers/misc/lis3lv02d/lis3lv02d.c:1190:2: note: Taking false branch
           if (err) {
           ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1195:6: note: Assuming field 'pm_dev' is 
null
           if (lis3->pm_dev) {
               ^~~~~~~~~~~~
   drivers/misc/lis3lv02d/lis3lv02d.c:1195:2: note: Taking false branch
           if (lis3->pm_dev) {
           ^
   drivers/misc/lis3lv02d/lis3lv02d.c:1200:6: note: Calling 
'lis3lv02d_joystick_enable'
           if (lis3lv02d_joystick_enable(lis3))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/lis3lv02d/lis3lv02d.c:687:6: note: Assuming field 'idev' is null
           if (lis3->idev)
               ^~~~~~~~~~
   drivers/misc/lis3lv02d/lis3lv02d.c:687:2: note: Taking false branch
           if (lis3->idev)
           ^
   drivers/misc/lis3lv02d/lis3lv02d.c:691:6: note: Assuming 'input_dev' is 
non-null
           if (!input_dev)
               ^~~~~~~~~~
   drivers/misc/lis3lv02d/lis3lv02d.c:691:2: note: Taking false branch
           if (!input_dev)

vim +154 arch/arm/mach-ep93xx/clock.c

ff05c0330b9880 Hartley Sweeten 2009-05-07  125  
9645ccc7bd7a16 Nikita Shubin   2021-10-18  126  static struct clk_hw 
*ep93xx_clk_register_gate(const char *name,
9645ccc7bd7a16 Nikita Shubin   2021-10-18  127                                  
    const char *parent_name,
9645ccc7bd7a16 Nikita Shubin   2021-10-18  128                                  
    void __iomem *reg,
9645ccc7bd7a16 Nikita Shubin   2021-10-18  129                                  
    u8 bit_idx)
9645ccc7bd7a16 Nikita Shubin   2021-10-18  130  {
9645ccc7bd7a16 Nikita Shubin   2021-10-18  131          struct clk_init_data 
init;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  132          struct clk_psc *psc;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  133          struct clk *clk;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  134  
9645ccc7bd7a16 Nikita Shubin   2021-10-18  135          psc = 
kzalloc(sizeof(*psc), GFP_KERNEL);
9645ccc7bd7a16 Nikita Shubin   2021-10-18  136          if (!psc)
9645ccc7bd7a16 Nikita Shubin   2021-10-18  137                  return 
ERR_PTR(-ENOMEM);
9645ccc7bd7a16 Nikita Shubin   2021-10-18  138  
9645ccc7bd7a16 Nikita Shubin   2021-10-18  139          init.name = name;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  140          init.ops = 
&clk_ep93xx_gate_ops;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  141          init.flags = 
CLK_SET_RATE_PARENT;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  142          init.parent_names = 
(parent_name ? &parent_name : NULL);
9645ccc7bd7a16 Nikita Shubin   2021-10-18  143          init.num_parents = 
(parent_name ? 1 : 0);
9645ccc7bd7a16 Nikita Shubin   2021-10-18  144  
9645ccc7bd7a16 Nikita Shubin   2021-10-18  145          psc->reg = reg;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  146          psc->bit_idx = bit_idx;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  147          psc->hw.init = &init;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  148          psc->lock = &clk_lock;
9645ccc7bd7a16 Nikita Shubin   2021-10-18  149  
9645ccc7bd7a16 Nikita Shubin   2021-10-18  150          clk = 
clk_register(NULL, &psc->hw);
9645ccc7bd7a16 Nikita Shubin   2021-10-18  151          if (IS_ERR(clk))
9645ccc7bd7a16 Nikita Shubin   2021-10-18  152                  kfree(psc);
9645ccc7bd7a16 Nikita Shubin   2021-10-18  153  
9645ccc7bd7a16 Nikita Shubin   2021-10-18 @154          return &psc->hw;
ff05c0330b9880 Hartley Sweeten 2009-05-07  155  }
ff05c0330b9880 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]

Reply via email to