From patchwork Sat Apr 1 22:21:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Pitre X-Patchwork-Id: 96580 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp1303568qgd; Sat, 1 Apr 2017 15:21:35 -0700 (PDT) X-Received: by 10.98.64.9 with SMTP id n9mr9350610pfa.211.1491085295790; Sat, 01 Apr 2017 15:21:35 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 35si9211646pgx.238.2017.04.01.15.21.35; Sat, 01 Apr 2017 15:21:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752047AbdDAWVd (ORCPT + 24 others); Sat, 1 Apr 2017 18:21:33 -0400 Received: from alt22.smtp-out.videotron.ca ([70.80.0.73]:37056 "EHLO alt22.smtp-out.videotron.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751968AbdDAWVa (ORCPT ); Sat, 1 Apr 2017 18:21:30 -0400 Received: from yoda.home ([96.23.157.65]) by Videotron with SMTP id uROhciYOjzCgpuROicjZJO; Sat, 01 Apr 2017 18:21:29 -0400 X-Authority-Analysis: v=2.1 cv=QfzGxpvv c=1 sm=1 tr=0 a=keA3yYpnlypCNW5BNWqu+w==:117 a=keA3yYpnlypCNW5BNWqu+w==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=AzvcPWV-tVgA:10 a=KKAkSRfTAAAA:8 a=Uzn0aNsXRxZ8utFiinYA:9 a=cvBusfyB2V15izCimMoJ:22 Received: from xanadu.home (xanadu.home [192.168.2.2]) by yoda.home (Postfix) with ESMTP id 040B92DA044C; Sat, 1 Apr 2017 18:21:27 -0400 (EDT) From: Nicolas Pitre To: Greg Kroah-Hartman , Jiri Slaby , linux-serial@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 1/5] console: move console_init() out of tty_io.c Date: Sat, 1 Apr 2017 18:21:15 -0400 Message-Id: <20170401222119.25106-2-nicolas.pitre@linaro.org> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170401222119.25106-1-nicolas.pitre@linaro.org> References: <20170401222119.25106-1-nicolas.pitre@linaro.org> X-CMAE-Envelope: MS4wfCmp5Kh2LvN0c6GUzputIqMzCIeH1iAWt/eXWlsHqfwtT7X1ZsGr2C/tCvdjLFaxvigi81mi8as4S7XcSPLMWxc7HX1rYZJSaMQ2CksbXHIHrSPGZYii n5H0HI4vxOj8EMi0vCLmRyPalbKICmi+0f8p5QyfyKVf7YanlWNrZ7l+VB48buW/eM/raBZAMXl7EYMXXGM7mWc7jSfUomzEGozE+2UXlyr5qcU0NAQSfX6a 2ReU34G9h9/83O6VoY9EpOFXlqaaHP+Hfl7kVppCJnga7UBpbVWx854QmOiqyTzPXf2FeWvUeMuaIyTv3zGFZIatBD2QrS0VDYH6c96JcYQ= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All the console driver handling code lives in printk.c. Move console_init() there as well so console support can still be used when the TTY code is configured out. Signed-off-by: Nicolas Pitre --- drivers/tty/tty_io.c | 24 ------------------------ include/linux/console.h | 2 ++ include/linux/tty.h | 7 ++++--- init/main.c | 2 +- kernel/printk/printk.c | 24 ++++++++++++++++++++++++ 5 files changed, 31 insertions(+), 28 deletions(-) -- 2.9.3 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index e6d1a65108..2100295861 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -3578,30 +3578,6 @@ void tty_default_fops(struct file_operations *fops) *fops = tty_fops; } -/* - * Initialize the console device. This is called *early*, so - * we can't necessarily depend on lots of kernel help here. - * Just do some early initializations, and do the complex setup - * later. - */ -void __init console_init(void) -{ - initcall_t *call; - - /* Setup the default TTY line discipline. */ - n_tty_init(); - - /* - * set up the console device so that later boot sequences can - * inform about problems etc.. - */ - call = __con_initcall_start; - while (call < __con_initcall_end) { - (*call)(); - call++; - } -} - static char *tty_devnode(struct device *dev, umode_t *mode) { if (!mode) diff --git a/include/linux/console.h b/include/linux/console.h index 5949d18555..b8920a031a 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -212,4 +212,6 @@ extern bool vgacon_text_force(void); static inline bool vgacon_text_force(void) { return false; } #endif +extern void console_init(void); + #endif /* _LINUX_CONSOLE_H */ diff --git a/include/linux/tty.h b/include/linux/tty.h index 1017e904c0..f1106d7c73 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -390,7 +390,6 @@ static inline bool tty_throttled(struct tty_struct *tty) } #ifdef CONFIG_TTY -extern void console_init(void); extern void tty_kref_put(struct tty_struct *tty); extern struct pid *tty_get_pgrp(struct tty_struct *tty); extern void tty_vhangup_self(void); @@ -402,8 +401,6 @@ extern struct tty_struct *get_current_tty(void); extern int __init tty_init(void); extern const char *tty_name(const struct tty_struct *tty); #else -static inline void console_init(void) -{ } static inline void tty_kref_put(struct tty_struct *tty) { } static inline struct pid *tty_get_pgrp(struct tty_struct *tty) @@ -669,7 +666,11 @@ extern int tty_ldisc_receive_buf(struct tty_ldisc *ld, const unsigned char *p, /* n_tty.c */ extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops); +#ifdef CONFIG_TTY extern void __init n_tty_init(void); +#else +static inline void n_tty_init(void) { } +#endif /* tty_audit.c */ #ifdef CONFIG_AUDIT diff --git a/init/main.c b/init/main.c index f9c9d99482..b9bd0edf21 100644 --- a/init/main.c +++ b/init/main.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 2984fb0f02..3a09406526 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -2611,6 +2611,30 @@ int unregister_console(struct console *console) EXPORT_SYMBOL(unregister_console); /* + * Initialize the console device. This is called *early*, so + * we can't necessarily depend on lots of kernel help here. + * Just do some early initializations, and do the complex setup + * later. + */ +void __init console_init(void) +{ + initcall_t *call; + + /* Setup the default TTY line discipline. */ + n_tty_init(); + + /* + * set up the console device so that later boot sequences can + * inform about problems etc.. + */ + call = __con_initcall_start; + while (call < __con_initcall_end) { + (*call)(); + call++; + } +} + +/* * Some boot consoles access data that is in the init section and which will * be discarded after the initcalls have been run. To make sure that no code * will access this data, unregister the boot consoles in a late initcall.