diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-19 08:47:57 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-19 08:47:57 -0400 |
commit | 40d743b8c16a8cf6e30c1d941aa6147f9550ea75 (patch) | |
tree | 9fcdf9a06b18a275253048d1ea7c9803cec38845 /arch/alpha/include/asm | |
parent | 7da18afa423f167e7ef3c9728e584d8bf05bd55a (diff) | |
parent | 83e686ea0291ee93b87dcdc00b96443b80de56c9 (diff) |
Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6
Diffstat (limited to 'arch/alpha/include/asm')
-rw-r--r-- | arch/alpha/include/asm/agp.h | 4 | ||||
-rw-r--r-- | arch/alpha/include/asm/pci.h | 1 | ||||
-rw-r--r-- | arch/alpha/include/asm/percpu.h | 100 | ||||
-rw-r--r-- | arch/alpha/include/asm/tlbflush.h | 1 |
4 files changed, 9 insertions, 97 deletions
diff --git a/arch/alpha/include/asm/agp.h b/arch/alpha/include/asm/agp.h index 26c179135293..a94d48b8677f 100644 --- a/arch/alpha/include/asm/agp.h +++ b/arch/alpha/include/asm/agp.h | |||
@@ -9,10 +9,6 @@ | |||
9 | #define unmap_page_from_agp(page) | 9 | #define unmap_page_from_agp(page) |
10 | #define flush_agp_cache() mb() | 10 | #define flush_agp_cache() mb() |
11 | 11 | ||
12 | /* Convert a physical address to an address suitable for the GART. */ | ||
13 | #define phys_to_gart(x) (x) | ||
14 | #define gart_to_phys(x) (x) | ||
15 | |||
16 | /* GATT allocation. Returns/accepts GATT kernel virtual address. */ | 12 | /* GATT allocation. Returns/accepts GATT kernel virtual address. */ |
17 | #define alloc_gatt_pages(order) \ | 13 | #define alloc_gatt_pages(order) \ |
18 | ((char *)__get_free_pages(GFP_KERNEL, (order))) | 14 | ((char *)__get_free_pages(GFP_KERNEL, (order))) |
diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h index d22ace99d13d..dd8dcabf160f 100644 --- a/arch/alpha/include/asm/pci.h +++ b/arch/alpha/include/asm/pci.h | |||
@@ -52,7 +52,6 @@ struct pci_controller { | |||
52 | bus numbers. */ | 52 | bus numbers. */ |
53 | 53 | ||
54 | #define pcibios_assign_all_busses() 1 | 54 | #define pcibios_assign_all_busses() 1 |
55 | #define pcibios_scan_all_fns(a, b) 0 | ||
56 | 55 | ||
57 | #define PCIBIOS_MIN_IO alpha_mv.min_io_address | 56 | #define PCIBIOS_MIN_IO alpha_mv.min_io_address |
58 | #define PCIBIOS_MIN_MEM alpha_mv.min_mem_address | 57 | #define PCIBIOS_MIN_MEM alpha_mv.min_mem_address |
diff --git a/arch/alpha/include/asm/percpu.h b/arch/alpha/include/asm/percpu.h index b663f1f10b6a..2c12378e3aa9 100644 --- a/arch/alpha/include/asm/percpu.h +++ b/arch/alpha/include/asm/percpu.h | |||
@@ -1,102 +1,18 @@ | |||
1 | #ifndef __ALPHA_PERCPU_H | 1 | #ifndef __ALPHA_PERCPU_H |
2 | #define __ALPHA_PERCPU_H | 2 | #define __ALPHA_PERCPU_H |
3 | 3 | ||
4 | #include <linux/compiler.h> | ||
5 | #include <linux/threads.h> | ||
6 | #include <linux/percpu-defs.h> | ||
7 | |||
8 | /* | ||
9 | * Determine the real variable name from the name visible in the | ||
10 | * kernel sources. | ||
11 | */ | ||
12 | #define per_cpu_var(var) per_cpu__##var | ||
13 | |||
14 | #ifdef CONFIG_SMP | ||
15 | |||
16 | /* | ||
17 | * per_cpu_offset() is the offset that has to be added to a | ||
18 | * percpu variable to get to the instance for a certain processor. | ||
19 | */ | ||
20 | extern unsigned long __per_cpu_offset[NR_CPUS]; | ||
21 | |||
22 | #define per_cpu_offset(x) (__per_cpu_offset[x]) | ||
23 | |||
24 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id()) | ||
25 | #ifdef CONFIG_DEBUG_PREEMPT | ||
26 | #define my_cpu_offset per_cpu_offset(smp_processor_id()) | ||
27 | #else | ||
28 | #define my_cpu_offset __my_cpu_offset | ||
29 | #endif | ||
30 | |||
31 | #ifndef MODULE | ||
32 | #define SHIFT_PERCPU_PTR(var, offset) RELOC_HIDE(&per_cpu_var(var), (offset)) | ||
33 | #define PER_CPU_DEF_ATTRIBUTES | ||
34 | #else | ||
35 | /* | 4 | /* |
36 | * To calculate addresses of locally defined variables, GCC uses 32-bit | 5 | * To calculate addresses of locally defined variables, GCC uses |
37 | * displacement from the GP. Which doesn't work for per cpu variables in | 6 | * 32-bit displacement from the GP. Which doesn't work for per cpu |
38 | * modules, as an offset to the kernel per cpu area is way above 4G. | 7 | * variables in modules, as an offset to the kernel per cpu area is |
8 | * way above 4G. | ||
39 | * | 9 | * |
40 | * This forces allocation of a GOT entry for per cpu variable using | 10 | * Always use weak definitions for percpu variables in modules. |
41 | * ldq instruction with a 'literal' relocation. | ||
42 | */ | ||
43 | #define SHIFT_PERCPU_PTR(var, offset) ({ \ | ||
44 | extern int simple_identifier_##var(void); \ | ||
45 | unsigned long __ptr, tmp_gp; \ | ||
46 | asm ( "br %1, 1f \n\ | ||
47 | 1: ldgp %1, 0(%1) \n\ | ||
48 | ldq %0, per_cpu__" #var"(%1)\t!literal" \ | ||
49 | : "=&r"(__ptr), "=&r"(tmp_gp)); \ | ||
50 | (typeof(&per_cpu_var(var)))(__ptr + (offset)); }) | ||
51 | |||
52 | #define PER_CPU_DEF_ATTRIBUTES __used | ||
53 | |||
54 | #endif /* MODULE */ | ||
55 | |||
56 | /* | ||
57 | * A percpu variable may point to a discarded regions. The following are | ||
58 | * established ways to produce a usable pointer from the percpu variable | ||
59 | * offset. | ||
60 | */ | 11 | */ |
61 | #define per_cpu(var, cpu) \ | 12 | #if defined(MODULE) && defined(CONFIG_SMP) |
62 | (*SHIFT_PERCPU_PTR(var, per_cpu_offset(cpu))) | 13 | #define ARCH_NEEDS_WEAK_PER_CPU |
63 | #define __get_cpu_var(var) \ | ||
64 | (*SHIFT_PERCPU_PTR(var, my_cpu_offset)) | ||
65 | #define __raw_get_cpu_var(var) \ | ||
66 | (*SHIFT_PERCPU_PTR(var, __my_cpu_offset)) | ||
67 | |||
68 | #else /* ! SMP */ | ||
69 | |||
70 | #define per_cpu(var, cpu) (*((void)(cpu), &per_cpu_var(var))) | ||
71 | #define __get_cpu_var(var) per_cpu_var(var) | ||
72 | #define __raw_get_cpu_var(var) per_cpu_var(var) | ||
73 | |||
74 | #define PER_CPU_DEF_ATTRIBUTES | ||
75 | |||
76 | #endif /* SMP */ | ||
77 | |||
78 | #ifdef CONFIG_SMP | ||
79 | #define PER_CPU_BASE_SECTION ".data.percpu" | ||
80 | #else | ||
81 | #define PER_CPU_BASE_SECTION ".data" | ||
82 | #endif | ||
83 | |||
84 | #ifdef CONFIG_SMP | ||
85 | |||
86 | #ifdef MODULE | ||
87 | #define PER_CPU_SHARED_ALIGNED_SECTION "" | ||
88 | #else | ||
89 | #define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned" | ||
90 | #endif | ||
91 | #define PER_CPU_FIRST_SECTION ".first" | ||
92 | |||
93 | #else | ||
94 | |||
95 | #define PER_CPU_SHARED_ALIGNED_SECTION "" | ||
96 | #define PER_CPU_FIRST_SECTION "" | ||
97 | |||
98 | #endif | 14 | #endif |
99 | 15 | ||
100 | #define PER_CPU_ATTRIBUTES | 16 | #include <asm-generic/percpu.h> |
101 | 17 | ||
102 | #endif /* __ALPHA_PERCPU_H */ | 18 | #endif /* __ALPHA_PERCPU_H */ |
diff --git a/arch/alpha/include/asm/tlbflush.h b/arch/alpha/include/asm/tlbflush.h index 9d87aaa08c0d..e89e0c2e15b1 100644 --- a/arch/alpha/include/asm/tlbflush.h +++ b/arch/alpha/include/asm/tlbflush.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _ALPHA_TLBFLUSH_H | 2 | #define _ALPHA_TLBFLUSH_H |
3 | 3 | ||
4 | #include <linux/mm.h> | 4 | #include <linux/mm.h> |
5 | #include <linux/sched.h> | ||
5 | #include <asm/compiler.h> | 6 | #include <asm/compiler.h> |
6 | #include <asm/pgalloc.h> | 7 | #include <asm/pgalloc.h> |
7 | 8 | ||