Re: [PATCH] tty: provide tty_name() even without CONFIG_TTY
From: Arnd Bergmann
Date: Wed Apr 27 2016 - 13:26:14 EST
On Wednesday 27 April 2016 12:20:02 Paul Moore wrote:
> > diff --git a/include/linux/tty.h b/include/linux/tty.h
> > index 3b09f235db66..17b247c94440 100644
> > --- a/include/linux/tty.h
> > +++ b/include/linux/tty.h
> > @@ -371,6 +371,7 @@ extern void proc_clear_tty(struct task_struct *p);
> > extern struct tty_struct *get_current_tty(void);
> > /* tty_io.c */
> > extern int __init tty_init(void);
> > +extern const char *tty_name(const struct tty_struct *tty);
> > #else
> > static inline void console_init(void)
> > { }
> > @@ -391,6 +392,8 @@ static inline struct tty_struct *get_current_tty(void)
> > /* tty_io.c */
> > static inline int __init tty_init(void)
> > { return 0; }
> > +static inline const char *tty_name(const struct tty_struct *tty)
> > +{ return "(none)"; }
> > #endif
>
> As it currently stands tty_name() returns "NULL tty" when the passed
> tty_struct is NULL while this patch returns "(none)" in the case of
> CONFIG_TTY=n; it seems like some consistency might be good, yes? Or
> do you think there is value in differentiating between the two cases?
>
> From an audit point of view, we would prefer if both were "(none)".
Right, I noticed that the audit code prints "(none)" here while the
tty code prints "NULL tty", and that meant I could not make it behave
the same way as all the existing code. I picked "(none)" because
in case of CONFIG_TTY being disabled that is more logical: it's
not a NULL pointer because something went wrong, but instead the
pointer doesn't matter and we know there is no tty.
Arnd