diff options
| author | Petr Mladek <pmladek@suse.com> | 2018-06-27 10:08:16 -0400 |
|---|---|---|
| committer | Petr Mladek <pmladek@suse.com> | 2018-07-09 08:08:13 -0400 |
| commit | a338f84dc196f44b63ba0863d2f34fd9b1613572 (patch) | |
| tree | 054a458fe019c4c5fc66cdcf4917b762fb4a6663 | |
| parent | ba552399954dde1b388f7749fecad5c349216981 (diff) | |
printk: Create helper function to queue deferred console handling
It is just a preparation step. The patch does not change
the existing behavior.
Link: http://lkml.kernel.org/r/20180627140817.27764-3-pmladek@suse.com
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
| -rw-r--r-- | kernel/printk/printk.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index a844c611b17c..1d1513215c22 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c | |||
| @@ -2887,16 +2887,20 @@ void wake_up_klogd(void) | |||
| 2887 | preempt_enable(); | 2887 | preempt_enable(); |
| 2888 | } | 2888 | } |
| 2889 | 2889 | ||
| 2890 | int vprintk_deferred(const char *fmt, va_list args) | 2890 | void defer_console_output(void) |
| 2891 | { | 2891 | { |
| 2892 | int r; | ||
| 2893 | |||
| 2894 | r = vprintk_emit(0, LOGLEVEL_SCHED, NULL, 0, fmt, args); | ||
| 2895 | |||
| 2896 | preempt_disable(); | 2892 | preempt_disable(); |
| 2897 | __this_cpu_or(printk_pending, PRINTK_PENDING_OUTPUT); | 2893 | __this_cpu_or(printk_pending, PRINTK_PENDING_OUTPUT); |
| 2898 | irq_work_queue(this_cpu_ptr(&wake_up_klogd_work)); | 2894 | irq_work_queue(this_cpu_ptr(&wake_up_klogd_work)); |
| 2899 | preempt_enable(); | 2895 | preempt_enable(); |
| 2896 | } | ||
| 2897 | |||
| 2898 | int vprintk_deferred(const char *fmt, va_list args) | ||
| 2899 | { | ||
| 2900 | int r; | ||
| 2901 | |||
| 2902 | r = vprintk_emit(0, LOGLEVEL_SCHED, NULL, 0, fmt, args); | ||
| 2903 | defer_console_output(); | ||
| 2900 | 2904 | ||
| 2901 | return r; | 2905 | return r; |
| 2902 | } | 2906 | } |
