diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/mm/hash_native_64.c | 22 | ||||
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 2 | ||||
-rw-r--r-- | arch/powerpc/mm/mmu_decl.h | 4 | ||||
-rw-r--r-- | arch/powerpc/mm/ppc_mmu_32.c | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/call_hpt.h | 9 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/htab.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/htab.c | 14 |
7 files changed, 33 insertions, 32 deletions
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c index bb76814c4a5b..823fa63e6485 100644 --- a/arch/powerpc/mm/hash_native_64.c +++ b/arch/powerpc/mm/hash_native_64.c | |||
@@ -104,7 +104,7 @@ static inline void tlbie(unsigned long va, int psize, int local) | |||
104 | spin_unlock(&native_tlbie_lock); | 104 | spin_unlock(&native_tlbie_lock); |
105 | } | 105 | } |
106 | 106 | ||
107 | static inline void native_lock_hpte(hpte_t *hptep) | 107 | static inline void native_lock_hpte(struct hash_pte *hptep) |
108 | { | 108 | { |
109 | unsigned long *word = &hptep->v; | 109 | unsigned long *word = &hptep->v; |
110 | 110 | ||
@@ -116,7 +116,7 @@ static inline void native_lock_hpte(hpte_t *hptep) | |||
116 | } | 116 | } |
117 | } | 117 | } |
118 | 118 | ||
119 | static inline void native_unlock_hpte(hpte_t *hptep) | 119 | static inline void native_unlock_hpte(struct hash_pte *hptep) |
120 | { | 120 | { |
121 | unsigned long *word = &hptep->v; | 121 | unsigned long *word = &hptep->v; |
122 | 122 | ||
@@ -128,7 +128,7 @@ static long native_hpte_insert(unsigned long hpte_group, unsigned long va, | |||
128 | unsigned long pa, unsigned long rflags, | 128 | unsigned long pa, unsigned long rflags, |
129 | unsigned long vflags, int psize) | 129 | unsigned long vflags, int psize) |
130 | { | 130 | { |
131 | hpte_t *hptep = htab_address + hpte_group; | 131 | struct hash_pte *hptep = htab_address + hpte_group; |
132 | unsigned long hpte_v, hpte_r; | 132 | unsigned long hpte_v, hpte_r; |
133 | int i; | 133 | int i; |
134 | 134 | ||
@@ -177,7 +177,7 @@ static long native_hpte_insert(unsigned long hpte_group, unsigned long va, | |||
177 | 177 | ||
178 | static long native_hpte_remove(unsigned long hpte_group) | 178 | static long native_hpte_remove(unsigned long hpte_group) |
179 | { | 179 | { |
180 | hpte_t *hptep; | 180 | struct hash_pte *hptep; |
181 | int i; | 181 | int i; |
182 | int slot_offset; | 182 | int slot_offset; |
183 | unsigned long hpte_v; | 183 | unsigned long hpte_v; |
@@ -217,7 +217,7 @@ static long native_hpte_remove(unsigned long hpte_group) | |||
217 | static long native_hpte_updatepp(unsigned long slot, unsigned long newpp, | 217 | static long native_hpte_updatepp(unsigned long slot, unsigned long newpp, |
218 | unsigned long va, int psize, int local) | 218 | unsigned long va, int psize, int local) |
219 | { | 219 | { |
220 | hpte_t *hptep = htab_address + slot; | 220 | struct hash_pte *hptep = htab_address + slot; |
221 | unsigned long hpte_v, want_v; | 221 | unsigned long hpte_v, want_v; |
222 | int ret = 0; | 222 | int ret = 0; |
223 | 223 | ||
@@ -250,7 +250,7 @@ static long native_hpte_updatepp(unsigned long slot, unsigned long newpp, | |||
250 | 250 | ||
251 | static long native_hpte_find(unsigned long va, int psize) | 251 | static long native_hpte_find(unsigned long va, int psize) |
252 | { | 252 | { |
253 | hpte_t *hptep; | 253 | struct hash_pte *hptep; |
254 | unsigned long hash; | 254 | unsigned long hash; |
255 | unsigned long i, j; | 255 | unsigned long i, j; |
256 | long slot; | 256 | long slot; |
@@ -293,7 +293,7 @@ static void native_hpte_updateboltedpp(unsigned long newpp, unsigned long ea, | |||
293 | { | 293 | { |
294 | unsigned long vsid, va; | 294 | unsigned long vsid, va; |
295 | long slot; | 295 | long slot; |
296 | hpte_t *hptep; | 296 | struct hash_pte *hptep; |
297 | 297 | ||
298 | vsid = get_kernel_vsid(ea); | 298 | vsid = get_kernel_vsid(ea); |
299 | va = (vsid << 28) | (ea & 0x0fffffff); | 299 | va = (vsid << 28) | (ea & 0x0fffffff); |
@@ -314,7 +314,7 @@ static void native_hpte_updateboltedpp(unsigned long newpp, unsigned long ea, | |||
314 | static void native_hpte_invalidate(unsigned long slot, unsigned long va, | 314 | static void native_hpte_invalidate(unsigned long slot, unsigned long va, |
315 | int psize, int local) | 315 | int psize, int local) |
316 | { | 316 | { |
317 | hpte_t *hptep = htab_address + slot; | 317 | struct hash_pte *hptep = htab_address + slot; |
318 | unsigned long hpte_v; | 318 | unsigned long hpte_v; |
319 | unsigned long want_v; | 319 | unsigned long want_v; |
320 | unsigned long flags; | 320 | unsigned long flags; |
@@ -344,7 +344,7 @@ static void native_hpte_invalidate(unsigned long slot, unsigned long va, | |||
344 | #define LP_BITS 8 | 344 | #define LP_BITS 8 |
345 | #define LP_MASK(i) ((0xFF >> (i)) << LP_SHIFT) | 345 | #define LP_MASK(i) ((0xFF >> (i)) << LP_SHIFT) |
346 | 346 | ||
347 | static void hpte_decode(hpte_t *hpte, unsigned long slot, | 347 | static void hpte_decode(struct hash_pte *hpte, unsigned long slot, |
348 | int *psize, unsigned long *va) | 348 | int *psize, unsigned long *va) |
349 | { | 349 | { |
350 | unsigned long hpte_r = hpte->r; | 350 | unsigned long hpte_r = hpte->r; |
@@ -414,7 +414,7 @@ static void hpte_decode(hpte_t *hpte, unsigned long slot, | |||
414 | static void native_hpte_clear(void) | 414 | static void native_hpte_clear(void) |
415 | { | 415 | { |
416 | unsigned long slot, slots, flags; | 416 | unsigned long slot, slots, flags; |
417 | hpte_t *hptep = htab_address; | 417 | struct hash_pte *hptep = htab_address; |
418 | unsigned long hpte_v, va; | 418 | unsigned long hpte_v, va; |
419 | unsigned long pteg_count; | 419 | unsigned long pteg_count; |
420 | int psize; | 420 | int psize; |
@@ -461,7 +461,7 @@ static void native_hpte_clear(void) | |||
461 | static void native_flush_hash_range(unsigned long number, int local) | 461 | static void native_flush_hash_range(unsigned long number, int local) |
462 | { | 462 | { |
463 | unsigned long va, hash, index, hidx, shift, slot; | 463 | unsigned long va, hash, index, hidx, shift, slot; |
464 | hpte_t *hptep; | 464 | struct hash_pte *hptep; |
465 | unsigned long hpte_v; | 465 | unsigned long hpte_v; |
466 | unsigned long want_v; | 466 | unsigned long want_v; |
467 | unsigned long flags; | 467 | unsigned long flags; |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 4f2f4534a9d8..2ce9491b48d4 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -87,7 +87,7 @@ extern unsigned long dart_tablebase; | |||
87 | static unsigned long _SDR1; | 87 | static unsigned long _SDR1; |
88 | struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; | 88 | struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; |
89 | 89 | ||
90 | hpte_t *htab_address; | 90 | struct hash_pte *htab_address; |
91 | unsigned long htab_size_bytes; | 91 | unsigned long htab_size_bytes; |
92 | unsigned long htab_hash_mask; | 92 | unsigned long htab_hash_mask; |
93 | int mmu_linear_psize = MMU_PAGE_4K; | 93 | int mmu_linear_psize = MMU_PAGE_4K; |
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index 69cd1c617cdc..c94a64fd3c01 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h | |||
@@ -39,8 +39,8 @@ extern int __map_without_bats; | |||
39 | extern unsigned long ioremap_base; | 39 | extern unsigned long ioremap_base; |
40 | extern unsigned int rtas_data, rtas_size; | 40 | extern unsigned int rtas_data, rtas_size; |
41 | 41 | ||
42 | struct _PTE; | 42 | struct hash_pte; |
43 | extern struct _PTE *Hash, *Hash_end; | 43 | extern struct hash_pte *Hash, *Hash_end; |
44 | extern unsigned long Hash_size, Hash_mask; | 44 | extern unsigned long Hash_size, Hash_mask; |
45 | 45 | ||
46 | extern unsigned int num_tlbcam_entries; | 46 | extern unsigned int num_tlbcam_entries; |
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c index 142849de50e4..5c45d474cfcc 100644 --- a/arch/powerpc/mm/ppc_mmu_32.c +++ b/arch/powerpc/mm/ppc_mmu_32.c | |||
@@ -34,12 +34,12 @@ | |||
34 | 34 | ||
35 | #include "mmu_decl.h" | 35 | #include "mmu_decl.h" |
36 | 36 | ||
37 | PTE *Hash, *Hash_end; | 37 | struct hash_pte *Hash, *Hash_end; |
38 | unsigned long Hash_size, Hash_mask; | 38 | unsigned long Hash_size, Hash_mask; |
39 | unsigned long _SDR1; | 39 | unsigned long _SDR1; |
40 | 40 | ||
41 | union ubat { /* BAT register values to be loaded */ | 41 | union ubat { /* BAT register values to be loaded */ |
42 | BAT bat; | 42 | struct ppc_bat bat; |
43 | u32 word[2]; | 43 | u32 word[2]; |
44 | } BATS[8][2]; /* 8 pairs of IBAT, DBAT */ | 44 | } BATS[8][2]; /* 8 pairs of IBAT, DBAT */ |
45 | 45 | ||
@@ -244,7 +244,7 @@ void __init MMU_init_hw(void) | |||
244 | cacheable_memzero(Hash, Hash_size); | 244 | cacheable_memzero(Hash, Hash_size); |
245 | _SDR1 = __pa(Hash) | SDR1_LOW_BITS; | 245 | _SDR1 = __pa(Hash) | SDR1_LOW_BITS; |
246 | 246 | ||
247 | Hash_end = (PTE *) ((unsigned long)Hash + Hash_size); | 247 | Hash_end = (struct hash_pte *) ((unsigned long)Hash + Hash_size); |
248 | 248 | ||
249 | printk("Total memory = %ldMB; using %ldkB for hash table (at %p)\n", | 249 | printk("Total memory = %ldMB; using %ldkB for hash table (at %p)\n", |
250 | total_memory >> 20, Hash_size >> 10, Hash); | 250 | total_memory >> 20, Hash_size >> 10, Hash); |
diff --git a/arch/powerpc/platforms/iseries/call_hpt.h b/arch/powerpc/platforms/iseries/call_hpt.h index a843b0f87b72..8d95fe4b554e 100644 --- a/arch/powerpc/platforms/iseries/call_hpt.h +++ b/arch/powerpc/platforms/iseries/call_hpt.h | |||
@@ -76,24 +76,25 @@ static inline u64 HvCallHpt_invalidateSetSwBitsGet(u32 hpteIndex, u8 bitson, | |||
76 | return compressedStatus; | 76 | return compressedStatus; |
77 | } | 77 | } |
78 | 78 | ||
79 | static inline u64 HvCallHpt_findValid(hpte_t *hpte, u64 vpn) | 79 | static inline u64 HvCallHpt_findValid(struct hash_pte *hpte, u64 vpn) |
80 | { | 80 | { |
81 | return HvCall3Ret16(HvCallHptFindValid, hpte, vpn, 0, 0); | 81 | return HvCall3Ret16(HvCallHptFindValid, hpte, vpn, 0, 0); |
82 | } | 82 | } |
83 | 83 | ||
84 | static inline u64 HvCallHpt_findNextValid(hpte_t *hpte, u32 hpteIndex, | 84 | static inline u64 HvCallHpt_findNextValid(struct hash_pte *hpte, u32 hpteIndex, |
85 | u8 bitson, u8 bitsoff) | 85 | u8 bitson, u8 bitsoff) |
86 | { | 86 | { |
87 | return HvCall3Ret16(HvCallHptFindNextValid, hpte, hpteIndex, | 87 | return HvCall3Ret16(HvCallHptFindNextValid, hpte, hpteIndex, |
88 | bitson, bitsoff); | 88 | bitson, bitsoff); |
89 | } | 89 | } |
90 | 90 | ||
91 | static inline void HvCallHpt_get(hpte_t *hpte, u32 hpteIndex) | 91 | static inline void HvCallHpt_get(struct hash_pte *hpte, u32 hpteIndex) |
92 | { | 92 | { |
93 | HvCall2Ret16(HvCallHptGet, hpte, hpteIndex, 0); | 93 | HvCall2Ret16(HvCallHptGet, hpte, hpteIndex, 0); |
94 | } | 94 | } |
95 | 95 | ||
96 | static inline void HvCallHpt_addValidate(u32 hpteIndex, u32 hBit, hpte_t *hpte) | 96 | static inline void HvCallHpt_addValidate(u32 hpteIndex, u32 hBit, |
97 | struct hash_pte *hpte) | ||
97 | { | 98 | { |
98 | HvCall4(HvCallHptAddValidate, hpteIndex, hBit, hpte->v, hpte->r); | 99 | HvCall4(HvCallHptAddValidate, hpteIndex, hBit, hpte->v, hpte->r); |
99 | } | 100 | } |
diff --git a/arch/powerpc/platforms/iseries/htab.c b/arch/powerpc/platforms/iseries/htab.c index ed44dfceaa45..b4e2c7a038e1 100644 --- a/arch/powerpc/platforms/iseries/htab.c +++ b/arch/powerpc/platforms/iseries/htab.c | |||
@@ -44,7 +44,7 @@ long iSeries_hpte_insert(unsigned long hpte_group, unsigned long va, | |||
44 | unsigned long vflags, int psize) | 44 | unsigned long vflags, int psize) |
45 | { | 45 | { |
46 | long slot; | 46 | long slot; |
47 | hpte_t lhpte; | 47 | struct hash_pte lhpte; |
48 | int secondary = 0; | 48 | int secondary = 0; |
49 | 49 | ||
50 | BUG_ON(psize != MMU_PAGE_4K); | 50 | BUG_ON(psize != MMU_PAGE_4K); |
@@ -99,7 +99,7 @@ long iSeries_hpte_insert(unsigned long hpte_group, unsigned long va, | |||
99 | 99 | ||
100 | static unsigned long iSeries_hpte_getword0(unsigned long slot) | 100 | static unsigned long iSeries_hpte_getword0(unsigned long slot) |
101 | { | 101 | { |
102 | hpte_t hpte; | 102 | struct hash_pte hpte; |
103 | 103 | ||
104 | HvCallHpt_get(&hpte, slot); | 104 | HvCallHpt_get(&hpte, slot); |
105 | return hpte.v; | 105 | return hpte.v; |
@@ -144,7 +144,7 @@ static long iSeries_hpte_remove(unsigned long hpte_group) | |||
144 | static long iSeries_hpte_updatepp(unsigned long slot, unsigned long newpp, | 144 | static long iSeries_hpte_updatepp(unsigned long slot, unsigned long newpp, |
145 | unsigned long va, int psize, int local) | 145 | unsigned long va, int psize, int local) |
146 | { | 146 | { |
147 | hpte_t hpte; | 147 | struct hash_pte hpte; |
148 | unsigned long want_v; | 148 | unsigned long want_v; |
149 | 149 | ||
150 | iSeries_hlock(slot); | 150 | iSeries_hlock(slot); |
@@ -176,7 +176,7 @@ static long iSeries_hpte_updatepp(unsigned long slot, unsigned long newpp, | |||
176 | */ | 176 | */ |
177 | static long iSeries_hpte_find(unsigned long vpn) | 177 | static long iSeries_hpte_find(unsigned long vpn) |
178 | { | 178 | { |
179 | hpte_t hpte; | 179 | struct hash_pte hpte; |
180 | long slot; | 180 | long slot; |
181 | 181 | ||
182 | /* | 182 | /* |
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c index a1409e450c70..17414e8d7dd3 100644 --- a/arch/powerpc/platforms/ps3/htab.c +++ b/arch/powerpc/platforms/ps3/htab.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #define DBG(fmt...) do{if(0)printk(fmt);}while(0) | 34 | #define DBG(fmt...) do{if(0)printk(fmt);}while(0) |
35 | #endif | 35 | #endif |
36 | 36 | ||
37 | static hpte_t *htab; | 37 | static struct hash_pte *htab; |
38 | static unsigned long htab_addr; | 38 | static unsigned long htab_addr; |
39 | static unsigned char *bolttab; | 39 | static unsigned char *bolttab; |
40 | static unsigned char *inusetab; | 40 | static unsigned char *inusetab; |
@@ -44,8 +44,8 @@ static DEFINE_SPINLOCK(ps3_bolttab_lock); | |||
44 | #define debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g) \ | 44 | #define debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g) \ |
45 | _debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g, __func__, __LINE__) | 45 | _debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g, __func__, __LINE__) |
46 | static void _debug_dump_hpte(unsigned long pa, unsigned long va, | 46 | static void _debug_dump_hpte(unsigned long pa, unsigned long va, |
47 | unsigned long group, unsigned long bitmap, hpte_t lhpte, int psize, | 47 | unsigned long group, unsigned long bitmap, struct hash_pte lhpte, |
48 | unsigned long slot, const char* func, int line) | 48 | int psize, unsigned long slot, const char* func, int line) |
49 | { | 49 | { |
50 | DBG("%s:%d: pa = %lxh\n", func, line, pa); | 50 | DBG("%s:%d: pa = %lxh\n", func, line, pa); |
51 | DBG("%s:%d: lpar = %lxh\n", func, line, | 51 | DBG("%s:%d: lpar = %lxh\n", func, line, |
@@ -63,7 +63,7 @@ static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va, | |||
63 | unsigned long pa, unsigned long rflags, unsigned long vflags, int psize) | 63 | unsigned long pa, unsigned long rflags, unsigned long vflags, int psize) |
64 | { | 64 | { |
65 | unsigned long slot; | 65 | unsigned long slot; |
66 | hpte_t lhpte; | 66 | struct hash_pte lhpte; |
67 | int secondary = 0; | 67 | int secondary = 0; |
68 | unsigned long result; | 68 | unsigned long result; |
69 | unsigned long bitmap; | 69 | unsigned long bitmap; |
@@ -255,7 +255,7 @@ void __init ps3_hpte_init(unsigned long htab_size) | |||
255 | 255 | ||
256 | ppc64_pft_size = __ilog2(htab_size); | 256 | ppc64_pft_size = __ilog2(htab_size); |
257 | 257 | ||
258 | bitmap_size = htab_size / sizeof(hpte_t) / 8; | 258 | bitmap_size = htab_size / sizeof(struct hash_pte) / 8; |
259 | 259 | ||
260 | bolttab = __va(lmb_alloc(bitmap_size, 1)); | 260 | bolttab = __va(lmb_alloc(bitmap_size, 1)); |
261 | inusetab = __va(lmb_alloc(bitmap_size, 1)); | 261 | inusetab = __va(lmb_alloc(bitmap_size, 1)); |
@@ -273,8 +273,8 @@ void __init ps3_map_htab(void) | |||
273 | 273 | ||
274 | result = lv1_map_htab(0, &htab_addr); | 274 | result = lv1_map_htab(0, &htab_addr); |
275 | 275 | ||
276 | htab = (hpte_t *)__ioremap(htab_addr, htab_size, | 276 | htab = (struct hash_pte *)__ioremap(htab_addr, htab_size, |
277 | pgprot_val(PAGE_READONLY_X)); | 277 | pgprot_val(PAGE_READONLY_X)); |
278 | 278 | ||
279 | DBG("%s:%d: lpar %016lxh, virt %016lxh\n", __func__, __LINE__, | 279 | DBG("%s:%d: lpar %016lxh, virt %016lxh\n", __func__, __LINE__, |
280 | htab_addr, (unsigned long)htab); | 280 | htab_addr, (unsigned long)htab); |