Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef __ALPHA_PERCPU_H |
| 2 | #define __ALPHA_PERCPU_H |
Tejun Heo | 9aa7a7d | 2009-05-12 13:19:39 -0700 | [diff] [blame] | 3 | |
Ivan Kokshaysky | 9267b4b | 2008-06-21 03:25:39 +0400 | [diff] [blame] | 4 | /* |
Tejun Heo | 9b7dbc7 | 2009-06-24 15:13:52 +0900 | [diff] [blame] | 5 | * To calculate addresses of locally defined variables, GCC uses |
| 6 | * 32-bit displacement from the GP. Which doesn't work for per cpu |
| 7 | * variables in modules, as an offset to the kernel per cpu area is |
| 8 | * way above 4G. |
Ivan Kokshaysky | 9267b4b | 2008-06-21 03:25:39 +0400 | [diff] [blame] | 9 | * |
Tejun Heo | 9b7dbc7 | 2009-06-24 15:13:52 +0900 | [diff] [blame] | 10 | * Always use weak definitions for percpu variables in modules. |
Ivan Kokshaysky | 9267b4b | 2008-06-21 03:25:39 +0400 | [diff] [blame] | 11 | */ |
Tejun Heo | 9b7dbc7 | 2009-06-24 15:13:52 +0900 | [diff] [blame] | 12 | #if defined(MODULE) && defined(CONFIG_SMP) |
| 13 | #define ARCH_NEEDS_WEAK_PER_CPU |
Tejun Heo | 9aa7a7d | 2009-05-12 13:19:39 -0700 | [diff] [blame] | 14 | #endif |
| 15 | |
Tejun Heo | 9b7dbc7 | 2009-06-24 15:13:52 +0900 | [diff] [blame] | 16 | #include <asm-generic/percpu.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | |
| 18 | #endif /* __ALPHA_PERCPU_H */ |