On 2024-02-19, Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: >>> The headers in this file is a mess. But here you can at least keep the >>> piece ordered, can you? >> >> Just to clarify, you would like to see this ordering and inclusion? > > Roughly, yes. Ideally it is quite likely that kernel.h is being used as > a 'proxy' header. Nowadays, it's rare the code needs kernel.h. So I took the time to painfully discover every header that is required for nbcon.c without any proxy usage. It came down to this: #include <linux/atomic.h> #include <linux/bug.h> #include <linux/compiler.h> #include <linux/console.h> #include <linux/delay.h> #include <linux/errno.h> #include <linux/export.h> #include <linux/init.h> #include <linux/irqflags.h> #include <linux/minmax.h> #include <linux/percpu-defs.h> #include <linux/preempt.h> #include <linux/serial_core.h> #include <linux/slab.h> #include <linux/smp.h> #include <linux/stddef.h> #include <linux/string.h> #include <linux/types.h> #include "internal.h" For the next version of this series I will only add the includes you suggested, but will follow-up with a patch that fixes all proxy headers for nbcon.c. As a separate patch it will help with bisecting in case the ordering causes an explosion on some config/architecture. John