printk: Make linux/printk.h self-contained
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 21 Jul 2020 06:22:48 +0000 (16:22 +1000)
committerSergey Senozhatsky <sergey.senozhatsky@gmail.com>
Mon, 27 Jul 2020 08:46:24 +0000 (17:46 +0900)
commitb4a461e72bcb28a512bbdd29a4cb70aede2d68d3
tree9384d6ab3bef584f4bee0b8a3b75e929c8d8dd2a
parentbc885f1ab6de0d38c6956a71b0126543b64875b0
printk: Make linux/printk.h self-contained

As it stands if you include printk.h by itself it will fail to
compile because it requires definitions from ratelimit.h.  However,
simply including ratelimit.h from printk.h does not work due to
inclusion loops involving sched.h and kernel.h.

This patch solves this by moving bits from ratelimit.h into a new
header file which can then be included by printk.h without any
worries about header loops.

The build bot then revealed some intriguing failures arising out
of this patch.  On s390 there is an inclusion loop with asm/bug.h
and linux/kernel.h that triggers a compile failure, because kernel.h
will cause asm-generic/bug.h to be included before s390's own
asm/bug.h has finished processing.  This has been fixed by not
including kernel.h in arch/s390/include/asm/bug.h.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Petr Mladek <pmladek@suse.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Link: https://lore.kernel.org/r/20200721062248.GA18383@gondor.apana.org.au
arch/s390/include/asm/bug.h
include/linux/printk.h
include/linux/ratelimit.h
include/linux/ratelimit_types.h [new file with mode: 0644]