lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHp75Vciv7B+G_9s+9X=tRFGhqNSdeLu8LD7GcURcZ8Tab9JqQ@mail.gmail.com>
Date:   Wed, 3 May 2017 21:13:51 +0300
From:   Andy Shevchenko <andy.shevchenko@...il.com>
To:     Nicolas Pitre <nicolas.pitre@...aro.org>,
        Petr Mladek <pmladek@...e.com>
Cc:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Jiri Slaby <jslaby@...e.com>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/4] console: move console_init() out of tty_io.c

+Cc: Petr

On Thu, Apr 13, 2017 at 1:37 AM, Nicolas Pitre <nicolas.pitre@...aro.org> wrote:
> 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. No logical changes from this patch.
>

So, I missed cover letter.
The question is what is this all for and why it's not applied yet?

> Signed-off-by: Nicolas Pitre <nico@...aro.org>
> ---
>  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(-)
>
> 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 <linux/initrd.h>
>  #include <linux/bootmem.h>
>  #include <linux/acpi.h>
> -#include <linux/tty.h>
> +#include <linux/console.h>
>  #include <linux/nmi.h>
>  #include <linux/percpu.h>
>  #include <linux/kmod.h>
> 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.
> --
> 2.9.3
>



-- 
With Best Regards,
Andy Shevchenko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ