Initialize the kernel printing thread and enable printk()
offloading.

Signed-off-by: Sergey Senozhatsky <[email protected]>
---
 kernel/printk/printk.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 6e00073a7331..601a9ef6db89 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2779,6 +2779,25 @@ static int printk_kthread_func(void *data)
        return 0;
 }
 
+/*
+ * Init printk kthread at late_initcall stage, after core/arch/device/etc.
+ * initialization.
+ */
+static int __init init_printk_kthread(void)
+{
+       struct task_struct *thread;
+
+       thread = kthread_run(printk_kthread_func, NULL, "printk");
+       if (IS_ERR(thread)) {
+               pr_err("printk: unable to create printing thread\n");
+               return PTR_ERR(thread);
+       }
+
+       printk_kthread = thread;
+       return 0;
+}
+late_initcall(init_printk_kthread);
+
 void wake_up_klogd(void)
 {
        preempt_disable();
-- 
2.12.0

Reply via email to