Yury Norov <yury.no...@gmail.com> writes: > archrandom.h includes <asm/machdep.h> to refer ppc_md. This causes > circular header dependency, if generic nodemask.h includes random.h: > > In file included from include/linux/cred.h:16, > from include/linux/seq_file.h:13, > from arch/powerpc/include/asm/machdep.h:6, > from arch/powerpc/include/asm/archrandom.h:5, > from include/linux/random.h:109, > from include/linux/nodemask.h:97, > from include/linux/list_lru.h:12, > from include/linux/fs.h:13, > from include/linux/compat.h:17, > from arch/powerpc/kernel/asm-offsets.c:12: > include/linux/sched.h:1203:9: error: unknown type name 'nodemask_t' > 1203 | nodemask_t mems_allowed; > | ^~~~~~~~~~ > > Fix it by removing <asm/machdep.h> dependency from archrandom.h > > Signed-off-by: Yury Norov <yury.no...@gmail.com> > --- > arch/powerpc/include/asm/archrandom.h | 9 +-------- > arch/powerpc/kernel/setup-common.c | 11 +++++++++++ > 2 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/include/asm/archrandom.h > b/arch/powerpc/include/asm/archrandom.h > index 9a53e29680f4..21def59ef1a6 100644 > --- a/arch/powerpc/include/asm/archrandom.h > +++ b/arch/powerpc/include/asm/archrandom.h > @@ -4,7 +4,7 @@ > > #ifdef CONFIG_ARCH_RANDOM > > -#include <asm/machdep.h> > +bool __must_check arch_get_random_seed_long(unsigned long *v); > > static inline bool __must_check arch_get_random_long(unsigned long *v) > { > @@ -16,13 +16,6 @@ static inline bool __must_check > arch_get_random_int(unsigned int *v) > return false; > } > > -static inline bool __must_check arch_get_random_seed_long(unsigned long *v) > -{ > - if (ppc_md.get_random_seed) > - return ppc_md.get_random_seed(v); > - > - return false; > -}
I'd rather we didn't have to force this out of line. I think I see a different way to fix it, I'll just do some more build tests. cheers