CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: John Ogness <john.ogn...@linutronix.de>
CC: Sebastian Andrzej Siewior <bige...@linutronix.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git 
linux-5.17.y-rt-rebase
head:   12b31505d173e33e63ab2dd198cb7d92433184fd
commit: fd6bde1ae126448aa36d5bf26ed2ae997009645b [15/117] printk: add 
infrastucture for atomic consoles
:::::: branch date: 7 days ago
:::::: commit date: 7 days ago
config: riscv-randconfig-c006-20220320 
(https://download.01.org/0day-ci/archive/20220321/202203211057.yget3h0w-...@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
85e9b2687a13d1908aa86d1b89c5ce398a06cd39)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?id=fd6bde1ae126448aa36d5bf26ed2ae997009645b
        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.17.y-rt-rebase
        git checkout fd6bde1ae126448aa36d5bf26ed2ae997009645b
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   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.
   7 warnings generated.
   mm/compaction.c:93:2: warning: Assigned value is garbage or undefined 
[clang-analyzer-core.uninitialized.Assign]
           list_for_each_entry_safe(page, next, list, lru) {
           ^
   include/linux/list.h:726:7: note: expanded from macro 
'list_for_each_entry_safe'
                   n = list_next_entry(pos, member);                       \
                       ^
   include/linux/list.h:564:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^
   include/linux/list.h:520:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/container_of.h:18:2: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
           ^
   mm/compaction.c:703:6: note: Assuming 'block_start_pfn' is >= field 
'zone_start_pfn'
           if (block_start_pfn < cc->zone->zone_start_pfn)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/compaction.c:703:2: note: Taking false branch
           if (block_start_pfn < cc->zone->zone_start_pfn)
           ^
   mm/compaction.c:707:9: note: Assuming 'pfn' is >= 'end_pfn'
           for (; pfn < end_pfn; pfn += isolated,
                  ^~~~~~~~~~~~~
   mm/compaction.c:707:2: note: Loop condition is false. Execution continues on 
line 749
           for (; pfn < end_pfn; pfn += isolated,
           ^
   mm/compaction.c:749:2: note: Calling 'split_map_pages'
           split_map_pages(&freelist);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/compaction.c:93:2: note: Assigned value is garbage or undefined
           list_for_each_entry_safe(page, next, list, lru) {
           ^
   include/linux/list.h:726:7: note: expanded from macro 
'list_for_each_entry_safe'
                   n = list_next_entry(pos, member);                       \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:564:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:520:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:18:2: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
           ^              ~~~~~~~~~~~~~
   Suppressed 6 warnings (2 in non-user code, 4 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.
   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.
   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.
   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 (2 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.
   5 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:2900:2: warning: Value stored to 'seq' is never read 
>> [clang-analyzer-deadcode.DeadStores]
           seq = read_console_seq(con);
           ^     ~~~~~~~~~~~~~~~~~~~~~
   kernel/printk/printk.c:2900:2: note: Value stored to 'seq' is never read
           seq = read_console_seq(con);
           ^     ~~~~~~~~~~~~~~~~~~~~~
   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.
   fs/btrfs/disk-io.c:3483:3: warning: Value stored to 'features' is never read 
[clang-analyzer-deadcode.DeadStores]
                   features |= BTRFS_FEATURE_INCOMPAT_BIG_METADATA;
                   ^
   fs/btrfs/disk-io.c:3483:3: note: Value stored to 'features' is never read
   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/btrfs/transaction.c:1962:6: warning: Use of memory after it is freed 
[clang-analyzer-unix.Malloc]
                      cur_trans->state >= TRANS_STATE_COMMIT_START ||
                      ^
   include/linux/wait.h:343:6: note: expanded from macro 'wait_event'
           if (condition)                                                       
   \
               ^~~~~~~~~
   fs/btrfs/transaction.c:1955:2: note: Calling 'btrfs_end_transaction'
           btrfs_end_transaction(trans);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/transaction.c:1046:9: note: Calling '__btrfs_end_transaction'
           return __btrfs_end_transaction(trans, 0);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/transaction.c:1002:6: note: Assuming the condition is false
           if (refcount_read(&trans->use_count) > 1) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/transaction.c:1002:2: note: Taking false branch
           if (refcount_read(&trans->use_count) > 1) {
           ^
   fs/btrfs/transaction.c:1015:6: note: Assuming the condition is false
           if (trans->type & __TRANS_FREEZABLE)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/transaction.c:1015:2: note: Taking false branch
           if (trans->type & __TRANS_FREEZABLE)
           ^
   fs/btrfs/transaction.c:1018:10: note: Assuming 'cur_trans' is equal to field 
'running_transaction'
           WARN_ON(cur_trans != info->running_transaction);
                   ^
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   fs/btrfs/transaction.c:1019:10: note: Assuming the condition is false
           WARN_ON(atomic_read(&cur_trans->num_writers) < 1);
                   ^
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   fs/btrfs/transaction.c:1024:2: note: Calling 'btrfs_put_transaction'
           btrfs_put_transaction(cur_trans);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/transaction.c:125:2: note: Assuming '__ret_warn_on' is not equal to 0
           WARN_ON(refcount_read(&transaction->use_count) == 0);
           ^
   include/asm-generic/bug.h:167:2: note: expanded from macro 'WARN_ON'
           unlikely(__ret_warn_on);                                        \
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   fs/btrfs/transaction.c:126:2: note: Taking true branch
           if (refcount_dec_and_test(&transaction->use_count)) {
           ^
   fs/btrfs/transaction.c:127:3: note: Assuming the condition is false
                   BUG_ON(!list_empty(&transaction->list));
                   ^
   include/asm-generic/bug.h:161:36: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                      ^~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:23:50: note: expanded from macro '__branch_check__'
   #define __branch_check__(x, expect, is_constant) ({                     \
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/transaction.c:127:3: note: Taking false branch
                   BUG_ON(!list_empty(&transaction->list));
                   ^
   include/asm-generic/bug.h:161:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   fs/btrfs/transaction.c:127:3: note: Loop condition is false.  Exiting loop
                   BUG_ON(!list_empty(&transaction->list));
                   ^
   include/asm-generic/bug.h:161:27: note: expanded from macro 'BUG_ON'

vim +/seq +2900 kernel/printk/printk.c

fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2858  
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2859  
/*
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2860  
 * Print one record for the given console. The record printed is whatever
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2861  
 * record is the next available record for the given console.
^1da177e4c3f41 kernel/printk.c        Linus Torvalds          2005-04-16  2862  
 *
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2863  
 * @text is a buffer of size CONSOLE_LOG_MAX.
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2864  
 *
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2865  
 * If extended messages should be printed, @ext_text is a buffer of size
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2866  
 * CONSOLE_EXT_LOG_MAX. Otherwise @ext_text must be NULL.
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2867  
 *
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2868  
 * If dropped messages should be printed, @dropped_text is a buffer of size
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2869  
 * DROPPED_TEXT_MAX. Otherwise @dropped_text must be NULL.
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2870  
 *
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2871  
 * @atomic_printing specifies if atomic printing should be used.
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2872  
 *
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2873  
 * Requires the console_lock.
^1da177e4c3f41 kernel/printk.c        Linus Torvalds          2005-04-16  2874  
 *
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2875  
 * Returns false if the given console has no next record to print, otherwise
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2876  
 * true.
^1da177e4c3f41 kernel/printk.c        Linus Torvalds          2005-04-16  2877  
 *
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2878  
 * @handover will be set to true if a printk waiter has taken over the
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2879  
 * console_lock, in which case the caller is no longer holding the
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2880  
 * console_lock. Otherwise it is set to false. A NULL pointer may be provided
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2881  
 * to disable allowing the console_lock to be taken over by a printk waiter.
^1da177e4c3f41 kernel/printk.c        Linus Torvalds          2005-04-16  2882  
 */
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2883  
static bool console_emit_next_record(struct console *con, char *text, char 
*ext_text,
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2884  
                                     char *dropped_text, bool atomic_printing,
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2885  
                                     bool *handover)
^1da177e4c3f41 kernel/printk.c        Linus Torvalds          2005-04-16  2886  
{
896fbe20b4e233 kernel/printk/printk.c John Ogness             2020-07-09  2887  
        struct printk_info info;
896fbe20b4e233 kernel/printk/printk.c John Ogness             2020-07-09  2888  
        struct printk_record r;
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2889  
        unsigned long flags;
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2890  
        bool allow_handover;
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2891  
        char *write_text;
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2892  
        size_t len;
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2893  
        u64 seq;
78944e549d3667 kernel/printk.c        Antonino A. Daplas      2006-08-05  2894  
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2895  
        prb_rec_init_rd(&r, &info, text, CONSOLE_LOG_MAX);
896fbe20b4e233 kernel/printk/printk.c John Ogness             2020-07-09  2896  
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2897  
        if (handover)
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2898  
                *handover = false;
7ff9554bb578ba kernel/printk.c        Kay Sievers             2012-05-03  2899  
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04 @2900  
        seq = read_console_seq(con);
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2901  
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2902  
        if (!prb_read_valid(prb, seq, &r))
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2903  
                return false;
7ff9554bb578ba kernel/printk.c        Kay Sievers             2012-05-03  2904  
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2905  
        if (seq != r.info->seq) {
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2906  
                atomic_long_add((unsigned long)(r.info->seq - seq), 
&con->dropped);
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2907  
                write_console_seq(con, r.info->seq, atomic_printing);
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2908  
                seq = r.info->seq;
896fbe20b4e233 kernel/printk/printk.c John Ogness             2020-07-09  2909  
        }
896fbe20b4e233 kernel/printk/printk.c John Ogness             2020-07-09  2910  
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2911  
        /* Skip record that has level above the console loglevel. */
896fbe20b4e233 kernel/printk/printk.c John Ogness             2020-07-09  2912  
        if (suppress_message_printing(r.info->level)) {
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2913  
                write_console_seq(con, seq + 1, atomic_printing);
084681d14e429c kernel/printk.c        Kay Sievers             2012-06-28  2914  
                goto skip;
084681d14e429c kernel/printk.c        Kay Sievers             2012-06-28  2915  
        }
649e6ee33f73ba kernel/printk.c        Kay Sievers             2012-05-10  2916  
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2917  
        if (ext_text) {
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2918  
                write_text = ext_text;
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2919  
                len = info_print_ext_header(ext_text, CONSOLE_EXT_LOG_MAX, 
r.info);
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2920  
                len += msg_print_ext_body(ext_text + len, CONSOLE_EXT_LOG_MAX - 
len,
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2921  
                                          &r.text_buf[0], r.info->text_len, 
&r.info->dev_info);
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2922  
        } else {
39faa1897af534 kernel/printk/printk.c John Ogness             2022-02-07  2923  
                write_text = text;
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2924  
                len = record_print_text(&r, console_msg_format & 
MSG_FORMAT_SYSLOG, printk_time);
6fe29354befe4c kernel/printk/printk.c Tejun Heo               2015-06-25  2925  
        }
7ff9554bb578ba kernel/printk.c        Kay Sievers             2012-05-03  2926  
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2927  
        /* Handovers may only happen between trylock contexts. */
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2928  
        allow_handover = (handover && atomic_read(&console_lock_count) == -1);
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2929  
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2930  
        if (allow_handover) {
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2931) 
                /*
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2932) 
                 * While actively printing out messages, if another printk()
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2933) 
                 * were to occur on another CPU, it may wait for this one to
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2934) 
                 * finish. This task can not be preempted if there is a
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2935) 
                 * waiter waiting to take over.
93d102f094be9b kernel/printk/printk.c John Ogness             2021-07-15  2936  
                 *
93d102f094be9b kernel/printk/printk.c John Ogness             2021-07-15  2937  
                 * Interrupts are disabled because the hand over to a waiter
93d102f094be9b kernel/printk/printk.c John Ogness             2021-07-15  2938  
                 * must not be interrupted until the hand over is completed
93d102f094be9b kernel/printk/printk.c John Ogness             2021-07-15  2939  
                 * (@console_waiter is cleared).
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2940) 
                 */
93d102f094be9b kernel/printk/printk.c John Ogness             2021-07-15  2941  
                printk_safe_enter_irqsave(flags);
c162d5b4338d72 kernel/printk/printk.c Petr Mladek             2018-01-12  2942  
                console_lock_spinning_enable();
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2943  
        }
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2944) 
81d68a96a39844 kernel/printk.c        Steven Rostedt          2008-05-12  2945  
        stop_critical_timings();        /* don't trace print latency */
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2946  
        call_console_driver(con, write_text, len, dropped_text, 
atomic_printing);
81d68a96a39844 kernel/printk.c        Steven Rostedt          2008-05-12  2947  
        start_critical_timings();
dbdda842fe96f8 kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2948) 
fd6bde1ae12644 kernel/printk/printk.c John Ogness             2022-02-04  2949  
        write_console_seq(con, seq + 1, atomic_printing);
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2950  
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2951  
        if (allow_handover) {
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2952  
                *handover = console_lock_spinning_disable_and_check();
c162d5b4338d72 kernel/printk/printk.c Petr Mladek             2018-01-12  2953  
                printk_safe_exit_irqrestore(flags);
635b43f09ca747 kernel/printk/printk.c John Ogness             2022-02-07  2954  
        }
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2955  
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2956  
        printk_delay(r.info->level);
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2957  
skip:
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2958  
        return true;
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2959  
}
4d8b5793c22f45 kernel/printk/printk.c John Ogness             2022-02-07  2960  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to