On 10/08/20 09:44, Greg KH wrote: >> There is more #ifdef CONFIG_CPU_LOONGSON64 in arch/mips/kvm/vz.c, and >> more #include "loongson_regs.h" in arch/mips. So while I agree with >> Greg that this idiom is quite unusual, it seems to be the expected way >> to use this header. I queued the patch. > Or you all could fix it up to work properly like all other #include > lines in the kernel source tree. There's no reason mips should be > "special" here, right? It's not just this #include, there's a couple dozen mach-* directories; changing how they work would be up to the MIPS maintainers (CCed), and it would certainly not be a patch that can be merged in stable@ kernels. arch/mips/kernel/cpu-probe.c has the same #ifdef CONFIG_CPU_LOONGSON64 #include <loongson_regs.h> for example, so apparently they're good with this. So if I don't pick up the patch to fix the build it would be in all likelihood merged by MIPS maintainers. The only difference will be how long the build remains broken and the fact that they need to worry about KVM despite the presence of a specific maintainer. KVM could of course just #include <asm/mach-loongson64/loongson_regs.h>, which would be found unconditionally. But there is some assembly in the header, so even if it would compile (I didn't check) it seems wrong to include it unconditionally and in fact it would be the only case of a file including <asm/mach-*/*.h> even if it is not compiled for that platform. Another alternative would be to move CONFIG_CPU_LOONGSON64 code out of arch/mips/kvm/vz.c and include it with obj-$(CONFIG_CPU_LOONGSON64). I'll gladly accept a patch to do that, but I won't write it since I don't have access to the hardware in order to test it. For now, and for the immediate purpose of not breaking the build, when in Rome I'll do as the Romans do. Paolo