On 2021/04/06 16:10, Greg Kroah-Hartman wrote: > On Tue, Apr 06, 2021 at 02:31:43PM +0900, Tetsuo Handa wrote: >> On 2021/04/06 13:51, Jiri Slaby wrote: >>> On 03. 04. 21, 6:14, Tetsuo Handa wrote: >>>> --- a/include/linux/tty.h >>>> +++ b/include/linux/tty.h >>>> @@ -14,6 +14,7 @@ >>>> #include <uapi/linux/tty.h> >>>> #include <linux/rwsem.h> >>>> #include <linux/llist.h> >>>> +#include <../../kernel/printk/internal.h> >>> >>> Including printk's internal header in linux/tty.h doesn't look correct to >>> me. >>> >> >> This is because this patch wants __printk_safe_enter()/__printk_safe_exit() >> without #ifdef'ing CONFIG_PRINTK. > > Then those functions need to be "properly" exported, not placed only in > an "internal.h" file that obviously should not be included from anywhere > like this. > >> Peter and Sergey, what should we do? >> Can we move printk_safe_enter_irqsave()/printk_safe_exit_irqrestore() to >> include/linux/printk.h ? > > Are you sure that is the only way to resolve this?
Publishing printk_safe_enter_irqsave() etc. was once proposed at https://lkml.kernel.org/r/[email protected] and Peter Zijlstra did not like such change. But we reconfirmed that "tty_port lock must switch to printk_safe" at https://lkml.kernel.org/r/20190219013254.GA20023@jagdpanzerIV . Two years has elapsed since a completely new printk implementation which would not use printk_safe context was proposed, but printk_safe context is still remaining. Therefore, we might need to tolerate, with a warning that printk_safe_enter_irqsave() etc. are not intended for general use, use of printk_safe context for tty_msg() and tty_buffer_alloc().

