CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: John Ogness <[email protected]> CC: Lukas Wunner <[email protected]> CC: Sebastian Andrzej Siewior <[email protected]>
tree: https://github.com/l1k/linux smsc95xx_5.17 head: 240f56c27361c195cd502d95aba51c6b8e5b808c commit: 3d78fbbbe0e517f040f53e18d3df78070682d3a6 [15/201] printk: add infrastucture for atomic consoles :::::: branch date: 33 hours ago :::::: commit date: 11 days ago config: riscv-randconfig-c006-20220408 (https://download.01.org/0day-ci/archive/20220410/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 893e1c18b98d8bbc7b8d7d22cc2c348f65c72ad9) 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://github.com/l1k/linux/commit/3d78fbbbe0e517f040f53e18d3df78070682d3a6 git remote add l1k https://github.com/l1k/linux git fetch --no-tags l1k smsc95xx_5.17 git checkout 3d78fbbbe0e517f040f53e18d3df78070682d3a6 # 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 <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ include/linux/thread_info.h:221:15: note: Left side of '&&' is true if (unlikely(sz >= 0 && sz < bytes)) { ^ include/linux/thread_info.h:221:26: note: Assuming 'sz' is < 'bytes', which participates in a condition later if (unlikely(sz >= 0 && sz < bytes)) { ^ include/linux/compiler.h:48:41: note: expanded from macro 'unlikely' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^ include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__' ______r = __builtin_expect(!!(x), expect); \ ^ include/linux/thread_info.h:221:15: note: 'sz' is >= 0 if (unlikely(sz >= 0 && sz < bytes)) { ^ include/linux/compiler.h:48:68: note: expanded from macro 'unlikely' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^ include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__' expect, is_constant); \ ^~~~~~~~~~~ include/linux/thread_info.h:221:15: note: Left side of '&&' is true if (unlikely(sz >= 0 && sz < bytes)) { ^ include/linux/thread_info.h:221:26: note: 'sz' is < 'bytes', which participates in a condition later if (unlikely(sz >= 0 && sz < bytes)) { ^ include/linux/compiler.h:48:68: note: expanded from macro 'unlikely' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^ include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__' expect, is_constant); \ ^~~~~~~~~~~ include/linux/thread_info.h:221:2: note: Taking true branch if (unlikely(sz >= 0 && sz < bytes)) { ^ include/linux/thread_info.h:222:3: note: Taking true branch if (!__builtin_constant_p(bytes)) ^ include/linux/uaccess.h:191:13: note: Returning from 'check_copy_size' if (likely(check_copy_size(to, n, false))) ^ include/linux/compiler.h:45:39: note: expanded from macro 'likely' # define likely(x) (__branch_check__(x, 1, __builtin_constant_p(x))) ^ include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__' ______r = __builtin_expect(!!(x), expect); \ ^ include/linux/uaccess.h:191:2: note: Taking false branch if (likely(check_copy_size(to, n, false))) ^ include/linux/uaccess.h:193:2: note: Returning value (loaded from 'n'), which participates in a condition later return n; ^~~~~~~~ drivers/remoteproc/remoteproc_debugfs.c:82:8: note: Returning from 'copy_from_user' ret = copy_from_user(buf, user_buf, count); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/remoteproc/remoteproc_debugfs.c:83:6: note: Assuming 'ret' is 0 if (ret) ^~~ drivers/remoteproc/remoteproc_debugfs.c:83:2: note: Taking false branch if (ret) ^ drivers/remoteproc/remoteproc_debugfs.c:87:21: note: The left operand of '==' is a garbage value due to array index out of bounds if (buf[count - 1] == '\n') ~~~~~~~~~~~~~~ ^ 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. 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. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. drivers/of/device.c:59:29: warning: Value stored to 'of_node' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device_node *node, *of_node = dev->of_node; ^~~~~~~ ~~~~~~~~~~~~ drivers/of/device.c:59:29: note: Value stored to 'of_node' during its initialization is never read struct device_node *node, *of_node = dev->of_node; ^~~~~~~ ~~~~~~~~~~~~ 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. 5 warnings generated. drivers/media/i2c/tvp7002.c:637:37: warning: The right operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] lpfr = lpf_lsb | ((TVP7002_CL_MASK & lpf_msb) << TVP7002_CL_SHIFT); ^ drivers/media/i2c/tvp7002.c:753:2: note: Calling 'tvp7002_query_dv' tvp7002_query_dv(sd, &detected); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/tvp7002.c:616:2: note: 'lpf_msb' declared without an initial value u8 lpf_msb; ^~~~~~~~~~ drivers/media/i2c/tvp7002.c:625:2: note: Calling 'tvp7002_read_err' tvp7002_read_err(sd, TVP7002_L_FRAME_STAT_MSBS, &lpf_msb, &error); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/tvp7002.c:475:6: note: Assuming the condition is false if (!*err) ^~~~~ drivers/media/i2c/tvp7002.c:475:2: note: Taking false branch if (!*err) ^ drivers/media/i2c/tvp7002.c:477:1: note: Returning without writing to '*dst' } ^ drivers/media/i2c/tvp7002.c:625:2: note: Returning from 'tvp7002_read_err' tvp7002_read_err(sd, TVP7002_L_FRAME_STAT_MSBS, &lpf_msb, &error); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/tvp7002.c:627:6: note: Assuming 'error' is >= 0 if (error < 0) ^~~~~~~~~ drivers/media/i2c/tvp7002.c:627:2: note: Taking false branch if (error < 0) vim +/seq +2900 kernel/printk/printk.c 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2858 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2859 /* 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2860 * Print one record for the given console. The record printed is whatever 6b43079079e51c 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 * 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2863 * @text is a buffer of size CONSOLE_LOG_MAX. 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2864 * 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2865 * If extended messages should be printed, @ext_text is a buffer of size 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2866 * CONSOLE_EXT_LOG_MAX. Otherwise @ext_text must be NULL. 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2867 * 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2868 * If dropped messages should be printed, @dropped_text is a buffer of size 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2869 * DROPPED_TEXT_MAX. Otherwise @dropped_text must be NULL. 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2870 * 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2871 * @atomic_printing specifies if atomic printing should be used. 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2872 * 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2873 * Requires the console_lock. ^1da177e4c3f41 kernel/printk.c Linus Torvalds 2005-04-16 2874 * 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2875 * Returns false if the given console has no next record to print, otherwise 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2876 * true. ^1da177e4c3f41 kernel/printk.c Linus Torvalds 2005-04-16 2877 * 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2878 * @handover will be set to true if a printk waiter has taken over the 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2879 * console_lock, in which case the caller is no longer holding the 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2880 * console_lock. Otherwise it is set to false. A NULL pointer may be provided 905897bc823b80 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 */ 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2883 static bool console_emit_next_record(struct console *con, char *text, char *ext_text, 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2884 char *dropped_text, bool atomic_printing, 3d78fbbbe0e517 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; 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2889 unsigned long flags; 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2890 bool allow_handover; 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2891 char *write_text; 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2892 size_t len; 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2893 u64 seq; 78944e549d3667 kernel/printk.c Antonino A. Daplas 2006-08-05 2894 00e59e6f86fa55 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 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2897 if (handover) 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2898 *handover = false; 7ff9554bb578ba kernel/printk.c Kay Sievers 2012-05-03 2899 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 @2900 seq = read_console_seq(con); 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2901 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2902 if (!prb_read_valid(prb, seq, &r)) 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2903 return false; 7ff9554bb578ba kernel/printk.c Kay Sievers 2012-05-03 2904 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2905 if (seq != r.info->seq) { 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2906 atomic_long_add((unsigned long)(r.info->seq - seq), &con->dropped); 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2907 write_console_seq(con, r.info->seq, atomic_printing); 3d78fbbbe0e517 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 6b43079079e51c 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)) { 3d78fbbbe0e517 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 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2917 if (ext_text) { 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2918 write_text = ext_text; 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2919 len = info_print_ext_header(ext_text, CONSOLE_EXT_LOG_MAX, r.info); 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2920 len += msg_print_ext_body(ext_text + len, CONSOLE_EXT_LOG_MAX - len, 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2921 &r.text_buf[0], r.info->text_len, &r.info->dev_info); 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2922 } else { 00e59e6f86fa55 kernel/printk/printk.c John Ogness 2022-02-07 2923 write_text = text; 6b43079079e51c 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 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2927 /* Handovers may only happen between trylock contexts. */ 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2928 allow_handover = (handover && atomic_read(&console_lock_count) == -1); 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2929 905897bc823b80 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(); 905897bc823b80 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 */ 3d78fbbbe0e517 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) 3d78fbbbe0e517 kernel/printk/printk.c John Ogness 2022-02-04 2949 write_console_seq(con, seq + 1, atomic_printing); 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2950 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2951 if (allow_handover) { 6b43079079e51c 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); 905897bc823b80 kernel/printk/printk.c John Ogness 2022-02-07 2954 } 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2955 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2956 printk_delay(r.info->level); 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2957 skip: 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2958 return true; 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2959 } 6b43079079e51c kernel/printk/printk.c John Ogness 2022-02-07 2960 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
