The default implementation of 'cpu_has_fpu' macro calls smp_processor_id() which causes this warning when preemption is enabled: [ 4.664000] Algorithmics/MIPS FPU Emulator v1.5 [ 4.676000] BUG: using smp_processor_id() in preemptible [00000000] code: init/1 [ 4.700000] caller is fpu_emulator_cop1Handler+0x434/0x27b8 Work around this by defining cpu_has_fpu for XLR and XLP in mach-netlogic/cpu-feature-overrides.h Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx> --- .../asm/mach-netlogic/cpu-feature-overrides.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h b/arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h index 966db4b..4f5907f 100644 --- a/arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h @@ -44,10 +44,12 @@ #define cpu_has_dc_aliases 0 #define cpu_has_mips32r2 0 #define cpu_has_mips64r2 0 +#define cpu_has_fpu 0 #elif defined(CONFIG_CPU_XLP) #define cpu_has_userlocal 1 #define cpu_has_mips32r2 1 #define cpu_has_mips64r2 1 +#define cpu_has_fpu 1 #else #error "Unknown Netlogic CPU" #endif -- 1.7.9.5