2005-04-17 06:20:36 +08:00
|
|
|
#ifndef __ALPHA_PERCPU_H
|
|
|
|
#define __ALPHA_PERCPU_H
|
2009-05-13 04:19:39 +08:00
|
|
|
|
2008-06-21 07:25:39 +08:00
|
|
|
/*
|
2009-06-24 14:13:52 +08:00
|
|
|
* To calculate addresses of locally defined variables, GCC uses
|
|
|
|
* 32-bit displacement from the GP. Which doesn't work for per cpu
|
|
|
|
* variables in modules, as an offset to the kernel per cpu area is
|
|
|
|
* way above 4G.
|
2008-06-21 07:25:39 +08:00
|
|
|
*
|
2009-06-24 14:13:52 +08:00
|
|
|
* Always use weak definitions for percpu variables in modules.
|
2008-06-21 07:25:39 +08:00
|
|
|
*/
|
2009-06-24 14:13:52 +08:00
|
|
|
#if defined(MODULE) && defined(CONFIG_SMP)
|
|
|
|
#define ARCH_NEEDS_WEAK_PER_CPU
|
2009-05-13 04:19:39 +08:00
|
|
|
#endif
|
|
|
|
|
2009-06-24 14:13:52 +08:00
|
|
|
#include <asm-generic/percpu.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#endif /* __ALPHA_PERCPU_H */
|