1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ALPHA_PERCPU_H 3*4882a593Smuzhiyun #define __ALPHA_PERCPU_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* 6*4882a593Smuzhiyun * To calculate addresses of locally defined variables, GCC uses 7*4882a593Smuzhiyun * 32-bit displacement from the GP. Which doesn't work for per cpu 8*4882a593Smuzhiyun * variables in modules, as an offset to the kernel per cpu area is 9*4882a593Smuzhiyun * way above 4G. 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * Always use weak definitions for percpu variables in modules. 12*4882a593Smuzhiyun */ 13*4882a593Smuzhiyun #if defined(MODULE) && defined(CONFIG_SMP) 14*4882a593Smuzhiyun #define ARCH_NEEDS_WEAK_PER_CPU 15*4882a593Smuzhiyun #endif 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #include <asm-generic/percpu.h> 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #endif /* __ALPHA_PERCPU_H */ 20