CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: John Ogness <[email protected]>
CC: Sebastian Andrzej Siewior <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git 
linux-5.16.y-rt-rebase
head:   1722f531f5244c70dcd9687c40729860bb254e8d
commit: e1fd5438186d729df636919574f08231f7ecdd1d [16/132] serial: 8250: 
implement write_atomic
:::::: branch date: 27 hours ago
:::::: commit date: 27 hours ago
config: x86_64-randconfig-c007 
(https://download.01.org/0day-ci/archive/20220123/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
7b3d30728816403d1fd73cc5082e9fb761262bce)
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
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?id=e1fd5438186d729df636919574f08231f7ecdd1d
        git remote add rt-devel 
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
        git fetch --no-tags rt-devel linux-5.16.y-rt-rebase
        git checkout e1fd5438186d729df636919574f08231f7ecdd1d
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 
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/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   fs/jbd2/transaction.c:2497:2: note: Loop condition is false.  Exiting loop
           J_ASSERT_JH(jh, jh->b_transaction == transaction ||
           ^
   include/linux/jbd2.h:364:31: note: expanded from macro 'J_ASSERT_JH'
   #define J_ASSERT_JH(jh, expr)   J_ASSERT(expr)
                                   ^
   include/linux/jbd2.h:361:26: note: expanded from macro 'J_ASSERT'
   #define J_ASSERT(assert)        BUG_ON(!(assert))
                                   ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   fs/jbd2/transaction.c:2500:10: note: Field 'b_transaction' is null
           if (jh->b_transaction && jh->b_jlist == jlist)
                   ^
   fs/jbd2/transaction.c:2500:24: note: Left side of '&&' is false
           if (jh->b_transaction && jh->b_jlist == jlist)
                                 ^
   fs/jbd2/transaction.c:2503:6: note: Assuming 'jlist' is not equal to 
BJ_Metadata
           if (jlist == BJ_Metadata || jlist == BJ_Reserved ||
               ^~~~~~~~~~~~~~~~~~~~
   fs/jbd2/transaction.c:2503:6: note: Left side of '||' is false
   fs/jbd2/transaction.c:2503:30: note: Assuming 'jlist' is not equal to 
BJ_Reserved
           if (jlist == BJ_Metadata || jlist == BJ_Reserved ||
                                       ^~~~~~~~~~~~~~~~~~~~
   fs/jbd2/transaction.c:2503:6: note: Left side of '||' is false
           if (jlist == BJ_Metadata || jlist == BJ_Reserved ||
               ^
   fs/jbd2/transaction.c:2504:6: note: Assuming 'jlist' is not equal to 
BJ_Shadow
               jlist == BJ_Shadow || jlist == BJ_Forget) {
               ^~~~~~~~~~~~~~~~~~
   fs/jbd2/transaction.c:2503:6: note: Left side of '||' is false
           if (jlist == BJ_Metadata || jlist == BJ_Reserved ||
               ^
   fs/jbd2/transaction.c:2504:28: note: Assuming 'jlist' is not equal to 
BJ_Forget
               jlist == BJ_Shadow || jlist == BJ_Forget) {
                                     ^~~~~~~~~~~~~~~~~~
   fs/jbd2/transaction.c:2503:2: note: Taking false branch
           if (jlist == BJ_Metadata || jlist == BJ_Reserved ||
           ^
   fs/jbd2/transaction.c:2519:10: note: Field 'b_transaction' is null
           if (jh->b_transaction)
                   ^
   fs/jbd2/transaction.c:2519:2: note: Taking false branch
           if (jh->b_transaction)
           ^
   fs/jbd2/transaction.c:2525:2: note: 'Default' branch taken. Execution 
continues on line 2545
           switch (jlist) {
           ^
   fs/jbd2/transaction.c:2545:21: note: Passing null pointer value via 1st 
parameter 'list'
           __blist_add_buffer(list, jh);
                              ^~~~
   fs/jbd2/transaction.c:2545:2: note: Calling '__blist_add_buffer'
           __blist_add_buffer(list, jh);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/jbd2/transaction.c:1960:7: note: Dereference of null pointer (loaded from 
variable 'list')
           if (!*list) {
                ^~~~~
   Suppressed 6 warnings (6 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.
   Suppressed 4 warnings (4 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.
   5 warnings generated.
   Suppressed 5 warnings (4 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   1 warning generated.
   Suppressed 1 warnings (1 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.
   kernel/printk/printk.c:157: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(devkmsg_log_str, "on");
                   ^~~~~~
   kernel/printk/printk.c:157: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(devkmsg_log_str, "on");
                   ^~~~~~
   kernel/printk/printk.c:159: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(devkmsg_log_str, "off");
                   ^~~~~~
   kernel/printk/printk.c:159: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(devkmsg_log_str, "off");
                   ^~~~~~
>> kernel/printk/printk.c:3003:4: warning: Value stored to 'any_usable' is 
>> never read [clang-analyzer-deadcode.DeadStores]
                           any_usable = true;
                           ^            ~~~~
   kernel/printk/printk.c:3003:4: note: Value stored to 'any_usable' is never 
read
                           any_usable = true;
                           ^            ~~~~
   Suppressed 6 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   7 warnings generated.
   fs/xfs/libxfs/xfs_refcount.c:114:19: warning: Value stored to 'agno' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           xfs_agnumber_t                  agno = cur->bc_ag.pag->pag_agno;
                                           ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_refcount.c:114:19: note: Value stored to 'agno' during its 
initialization is never read
           xfs_agnumber_t                  agno = cur->bc_ag.pag->pag_agno;
                                           ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   7 warnings generated.
   Suppressed 7 warnings (6 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.
   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.
   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.
   4 warnings generated.
   drivers/acpi/acpica/exnames.c:160:4: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                           strcat(name_string, char_buf);
                           ^~~~~~
   drivers/acpi/acpica/exnames.c:160:4: note: Call to function 'strcat' 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 'strlcat'. CWE-119
                           strcat(name_string, char_buf);
                           ^~~~~~
   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.
   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.
   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.
   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.
   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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   Suppressed 4 warnings (4 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.

vim +/any_usable +3003 kernel/printk/printk.c

02489ebe320634 John Ogness 2021-12-22  2992  
02489ebe320634 John Ogness 2021-12-22  2993     
printk_cpu_sync_get_irqsave(flags);
02489ebe320634 John Ogness 2021-12-22  2994  
02489ebe320634 John Ogness 2021-12-22  2995     do {
02489ebe320634 John Ogness 2021-12-22  2996             any_progress = false;
02489ebe320634 John Ogness 2021-12-22  2997  
02489ebe320634 John Ogness 2021-12-22  2998             for_each_console(con) {
02489ebe320634 John Ogness 2021-12-22  2999                     bool progress;
02489ebe320634 John Ogness 2021-12-22  3000  
02489ebe320634 John Ogness 2021-12-22  3001                     if 
(!console_is_usable(con, true))
02489ebe320634 John Ogness 2021-12-22  3002                             
continue;
02489ebe320634 John Ogness 2021-12-22 @3003                     any_usable = 
true;
02489ebe320634 John Ogness 2021-12-22  3004  
02489ebe320634 John Ogness 2021-12-22  3005                     if (con->flags 
& CON_EXTENDED) {
02489ebe320634 John Ogness 2021-12-22  3006                             /* 
Extended consoles do not print "dropped messages". */
02489ebe320634 John Ogness 2021-12-22  3007                             
progress = console_emit_next_record(con,
02489ebe320634 John Ogness 2021-12-22  3008                                     
                &con->atomic_data->text[index],
02489ebe320634 John Ogness 2021-12-22  3009                                     
                &con->atomic_data->ext_text[index],
02489ebe320634 John Ogness 2021-12-22  3010                                     
                NULL,
02489ebe320634 John Ogness 2021-12-22  3011                                     
                true, NULL);
02489ebe320634 John Ogness 2021-12-22  3012                     } else {
02489ebe320634 John Ogness 2021-12-22  3013                             
progress = console_emit_next_record(con,
02489ebe320634 John Ogness 2021-12-22  3014                                     
                &con->atomic_data->text[index],
02489ebe320634 John Ogness 2021-12-22  3015                                     
                NULL,
02489ebe320634 John Ogness 2021-12-22  3016                                     
                &con->atomic_data->dropped_text[index],
02489ebe320634 John Ogness 2021-12-22  3017                                     
                true, NULL);
02489ebe320634 John Ogness 2021-12-22  3018                     }
02489ebe320634 John Ogness 2021-12-22  3019  
02489ebe320634 John Ogness 2021-12-22  3020                     if (!progress)
02489ebe320634 John Ogness 2021-12-22  3021                             
continue;
02489ebe320634 John Ogness 2021-12-22  3022                     any_progress = 
true;
02489ebe320634 John Ogness 2021-12-22  3023  
02489ebe320634 John Ogness 2021-12-22  3024                     
touch_softlockup_watchdog_sync();
02489ebe320634 John Ogness 2021-12-22  3025                     
clocksource_touch_watchdog();
02489ebe320634 John Ogness 2021-12-22  3026                     
rcu_cpu_stall_reset();
02489ebe320634 John Ogness 2021-12-22  3027                     
touch_nmi_watchdog();
02489ebe320634 John Ogness 2021-12-22  3028             }
02489ebe320634 John Ogness 2021-12-22  3029     } while (any_progress);
02489ebe320634 John Ogness 2021-12-22  3030  
02489ebe320634 John Ogness 2021-12-22  3031     
printk_cpu_sync_put_irqrestore(flags);
02489ebe320634 John Ogness 2021-12-22  3032  }
02489ebe320634 John Ogness 2021-12-22  3033  #else /* 
CONFIG_HAVE_ATOMIC_CONSOLE */
02489ebe320634 John Ogness 2021-12-22  3034  #define atomic_console_flush_all()
02489ebe320634 John Ogness 2021-12-22  3035  #endif
02489ebe320634 John Ogness 2021-12-22  3036  

:::::: The code at line 3003 was first introduced by commit
:::::: 02489ebe320634155c5ddb3110d7d456fa68d304 printk: add infrastucture for 
atomic consoles

:::::: TO: John Ogness <[email protected]>
:::::: CC: Sebastian Andrzej Siewior <[email protected]>

---
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