On 03/14/23 at 06:19pm, Arnd Bergmann wrote: > On Tue, Mar 14, 2023, at 17:31, Florian Fainelli wrote: > > On 3/14/23 08:34, Thomas Bogendoerfer wrote: > >> On Tue, Mar 14, 2023 at 10:56:36AM +0800, Baoquan He wrote: > >>>> In file included from /local/tbogendoerfer/korg/linux/include/linux/spinlock.h:311:0, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/vmalloc.h:5, > >>>> from /local/tbogendoerfer/korg/linux/include/asm-generic/io.h:994, > >>>> from /local/tbogendoerfer/korg/linux/arch/mips/include/asm/io.h:618, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/io.h:13, > >>>> from /local/tbogendoerfer/korg/linux/arch/mips/include/asm/mips-cps.h:11, > >>>> from /local/tbogendoerfer/korg/linux/arch/mips/include/asm/smp-ops.h:16, > >>>> from /local/tbogendoerfer/korg/linux/arch/mips/include/asm/smp.h:21, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/smp.h:113, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/lockdep.h:14, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/rcupdate.h:29, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/rculist.h:11, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/pid.h:5, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/sched.h:14, > >>>> from /local/tbogendoerfer/korg/linux/include/linux/utsname.h:6, > >>>> from /local/tbogendoerfer/korg/linux/init/version.c:17: > >> > >> already tried it, but it doesn't fix the issue. I've attached the > >> config. > > > > I had attempted a similar approach before as Baoquan did, but met the > > same build issue as Thomas that was not immediately clear to me why it > > popped up. I would be curious to see how this can be resolved. > > I think this is the result of recursive header inclusion: > spinlock.h includes lockdep.h, but its header guard is already > there from the include chain. > > There is probably something in one of the mips asm/*.h headers that > causes this recursion that is not present elsewhere. > > I think this should fix it, but is likely to cause another problem elsewhere: > > --- a/arch/mips/include/asm/smp-ops.h > +++ b/arch/mips/include/asm/smp-ops.h > @@ -13,8 +13,6 @@ > > #include <linux/errno.h> > > -#include <asm/mips-cps.h> > - > #ifdef CONFIG_SMP > > #include <linux/cpumask.h> Will meet below compiling error after appllying above patch. Adding asm/mips-cps.h including in arch/mips/kernel/setup.c will fix it as below. arch/mips/kernel/setup.c: In function ‘setup_arch’: arch/mips/kernel/setup.c:781:9: error: implicit declaration of function ‘mips_cm_probe’ [-Werror=implicit-function-declaration] 781 | mips_cm_probe(); | ^~~~~~~~~~~~~ cc1: all warnings being treated as errors diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index f1c88f8a1dc5..e8c4020ef367 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -43,6 +43,7 @@ #include <asm/smp-ops.h> #include <asm/prom.h> #include <asm/fw/fw.h> +#include <asm/mips-cps.h> #ifdef CONFIG_MIPS_ELF_APPENDED_DTB char __section(".appended_dtb") __appended_dtb[0x100000];