Re: [RFC PATCH v4 01/12] __wr_after_init: Core and default arch

From: Igor Stoppa
Date: Tue Feb 12 2019 - 02:20:43 EST




On 12/02/2019 04:39, Matthew Wilcox wrote:
On Tue, Feb 12, 2019 at 01:27:38AM +0200, Igor Stoppa wrote:
+#ifndef CONFIG_PRMEM
[...]
+#else
+
+#include <linux/mm.h>

It's a mistake to do conditional includes like this. That way you see
include loops with some configs and not others. Our headers are already
so messy, better to just include mm.h unconditionally.


ok

Can I still do the following, in prmem.c ?

#ifdef CONFIG_ARCH_HAS_PRMEM_HEADER
+#include <asm/prmem.h>
+#else
+
+struct wr_state {
+ struct mm_struct *prev;
+};
+
+#endif


It's still a conditional include, but it's in a C file, it shouldn't cause any chance of loops.

The alternative is that each arch supporting prmem must have a (probably) empty asm/prmem.h header.

I did some reasearch about telling the compiler to include a header only if it exists, but it doesn't seem to be a gcc feature.

--
igor