Index: sys/arch/arm/include/cpu.h =================================================================== RCS file: /cvsroot/src/sys/arch/arm/include/cpu.h,v retrieving revision 1.83 diff -u -p -r1.83 cpu.h --- sys/arch/arm/include/cpu.h 28 Mar 2014 21:44:59 -0000 1.83 +++ sys/arch/arm/include/cpu.h 23 Nov 2014 07:27:42 -0000 @@ -179,6 +179,9 @@ struct cpu_info { extern struct cpu_info cpu_info_store; #if defined(TPIDRPRW_IS_CURLWP) +#if defined(MULTIPROCESSOR) +#error MULTIPROCESSOR requires TPIDRPRW_IS_CURCPU not TPIDRPRW_IS_CURLWP +#else static inline struct lwp * _curlwp(void) { @@ -191,23 +194,15 @@ _curlwp_set(struct lwp *l) armreg_tpidrprw_write((uintptr_t)l); } -#define curlwp (_curlwp()) -static inline struct cpu_info * -curcpu(void) -{ - return curlwp->l_cpu; -} +#define curcpu() (&cpu_info_store) +#endif #elif defined(TPIDRPRW_IS_CURCPU) static inline struct cpu_info * curcpu(void) { return (struct cpu_info *) armreg_tpidrprw_read(); } -#elif !defined(MULTIPROCESSOR) -#define curcpu() (&cpu_info_store) -#else -#error MULTIPROCESSOR requires TPIDRPRW_IS_CURLWP or TPIDRPRW_IS_CURCPU -#endif /* !TPIDRPRW_IS_CURCPU && !TPIDRPRW_IS_CURLWP */ +#endif #ifndef curlwp #define curlwp (curcpu()->ci_curlwp)