diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 15:06:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 15:06:51 -0400 |
commit | 3c3762957818dc902222733a8184f23102e24472 (patch) | |
tree | 97a17d0923d87108715af32f83a526d24e65fb80 /arch/sh/include | |
parent | e9f29c9a56ca06d0effa557823a737cbe7ec09f7 (diff) | |
parent | 63111a3a70fb4d80e3b54ed75f13795e98f7a467 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (32 commits)
sh: intc: switch irq_desc iteration to new active IRQ iterator.
sh: fix up cpu hotplug IRQ migration for irq_data changes.
sh: oprofile: Make sure the backtrace op is available for timer-fallback.
sh64: oprofile: Fix up kernel stack pointer size mismatch.
sh: oprofile: Fix up and extend op_name_from_perf_id().
sh: lockless get_user_pages_fast()
sh64: _PAGE_SPECIAL support.
sound: sh: ctrl_in/outX to __raw_read/writeX conversion.
sh: disable deprecated genirq support.
sh: update show_interrupts() for irq_data chip lookup.
sh: intc: irq_data conversion.
sh64: irq_data conversion.
sh64: update for IRQ flag handling naming changes.
rtc: rtc-rs5c313: ctrl_in/outX to __raw_read/writeX conversion.
sh: mach-se: irq_data conversion.
input: hp680_ts_input: ctrl_in/outX to __raw_read/writeX conversion.
input: jornada680_kbd: ctrl_in/outX to __raw_read/writeX conversion.
sh: hd64461: irq_data conversion.
sh: mach-x3proto: irq_data conversion.
sh: mach-systemh: irq_data conversion.
...
Diffstat (limited to 'arch/sh/include')
-rw-r--r-- | arch/sh/include/asm/pgtable.h | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/pgtable_32.h | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/pgtable_64.h | 9 | ||||
-rw-r--r-- | arch/sh/include/asm/processor.h | 1 |
4 files changed, 8 insertions, 6 deletions
diff --git a/arch/sh/include/asm/pgtable.h b/arch/sh/include/asm/pgtable.h index 02f77450cd8..a15f1058bbf 100644 --- a/arch/sh/include/asm/pgtable.h +++ b/arch/sh/include/asm/pgtable.h | |||
@@ -169,6 +169,8 @@ extern void page_table_range_init(unsigned long start, unsigned long end, | |||
169 | #define HAVE_ARCH_UNMAPPED_AREA | 169 | #define HAVE_ARCH_UNMAPPED_AREA |
170 | #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN | 170 | #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN |
171 | 171 | ||
172 | #define __HAVE_ARCH_PTE_SPECIAL | ||
173 | |||
172 | #include <asm-generic/pgtable.h> | 174 | #include <asm-generic/pgtable.h> |
173 | 175 | ||
174 | #endif /* __ASM_SH_PGTABLE_H */ | 176 | #endif /* __ASM_SH_PGTABLE_H */ |
diff --git a/arch/sh/include/asm/pgtable_32.h b/arch/sh/include/asm/pgtable_32.h index 69fdfbf14ea..43528ec656b 100644 --- a/arch/sh/include/asm/pgtable_32.h +++ b/arch/sh/include/asm/pgtable_32.h | |||
@@ -378,8 +378,6 @@ PTE_BIT_FUNC(low, mkold, &= ~_PAGE_ACCESSED); | |||
378 | PTE_BIT_FUNC(low, mkyoung, |= _PAGE_ACCESSED); | 378 | PTE_BIT_FUNC(low, mkyoung, |= _PAGE_ACCESSED); |
379 | PTE_BIT_FUNC(low, mkspecial, |= _PAGE_SPECIAL); | 379 | PTE_BIT_FUNC(low, mkspecial, |= _PAGE_SPECIAL); |
380 | 380 | ||
381 | #define __HAVE_ARCH_PTE_SPECIAL | ||
382 | |||
383 | /* | 381 | /* |
384 | * Macro and implementation to make a page protection as uncachable. | 382 | * Macro and implementation to make a page protection as uncachable. |
385 | */ | 383 | */ |
diff --git a/arch/sh/include/asm/pgtable_64.h b/arch/sh/include/asm/pgtable_64.h index 10a48111226..42cb9dd5216 100644 --- a/arch/sh/include/asm/pgtable_64.h +++ b/arch/sh/include/asm/pgtable_64.h | |||
@@ -130,6 +130,7 @@ static __inline__ void set_pte(pte_t *pteptr, pte_t pteval) | |||
130 | * anything above the PPN field. | 130 | * anything above the PPN field. |
131 | */ | 131 | */ |
132 | #define _PAGE_WIRED _PAGE_EXT(0x001) /* software: wire the tlb entry */ | 132 | #define _PAGE_WIRED _PAGE_EXT(0x001) /* software: wire the tlb entry */ |
133 | #define _PAGE_SPECIAL _PAGE_EXT(0x002) | ||
133 | 134 | ||
134 | #define _PAGE_CLEAR_FLAGS (_PAGE_PRESENT | _PAGE_FILE | _PAGE_SHARED | \ | 135 | #define _PAGE_CLEAR_FLAGS (_PAGE_PRESENT | _PAGE_FILE | _PAGE_SHARED | \ |
135 | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_WIRED) | 136 | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_WIRED) |
@@ -173,7 +174,8 @@ static __inline__ void set_pte(pte_t *pteptr, pte_t pteval) | |||
173 | /* Default flags for a User page */ | 174 | /* Default flags for a User page */ |
174 | #define _PAGE_TABLE (_KERNPG_TABLE | _PAGE_USER) | 175 | #define _PAGE_TABLE (_KERNPG_TABLE | _PAGE_USER) |
175 | 176 | ||
176 | #define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) | 177 | #define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \ |
178 | _PAGE_SPECIAL) | ||
177 | 179 | ||
178 | /* | 180 | /* |
179 | * We have full permissions (Read/Write/Execute/Shared). | 181 | * We have full permissions (Read/Write/Execute/Shared). |
@@ -263,7 +265,7 @@ static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } | |||
263 | static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } | 265 | static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } |
264 | static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; } | 266 | static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; } |
265 | static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } | 267 | static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } |
266 | static inline int pte_special(pte_t pte){ return 0; } | 268 | static inline int pte_special(pte_t pte){ return pte_val(pte) & _PAGE_SPECIAL; } |
267 | 269 | ||
268 | static inline pte_t pte_wrprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_WRITE)); return pte; } | 270 | static inline pte_t pte_wrprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_WRITE)); return pte; } |
269 | static inline pte_t pte_mkclean(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; } | 271 | static inline pte_t pte_mkclean(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; } |
@@ -272,8 +274,7 @@ static inline pte_t pte_mkwrite(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | | |||
272 | static inline pte_t pte_mkdirty(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY)); return pte; } | 274 | static inline pte_t pte_mkdirty(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY)); return pte; } |
273 | static inline pte_t pte_mkyoung(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_ACCESSED)); return pte; } | 275 | static inline pte_t pte_mkyoung(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_ACCESSED)); return pte; } |
274 | static inline pte_t pte_mkhuge(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_SZHUGE)); return pte; } | 276 | static inline pte_t pte_mkhuge(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_SZHUGE)); return pte; } |
275 | static inline pte_t pte_mkspecial(pte_t pte) { return pte; } | 277 | static inline pte_t pte_mkspecial(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_SPECIAL)); return pte; } |
276 | |||
277 | 278 | ||
278 | /* | 279 | /* |
279 | * Conversion functions: convert a page and protection to a page entry. | 280 | * Conversion functions: convert a page and protection to a page entry. |
diff --git a/arch/sh/include/asm/processor.h b/arch/sh/include/asm/processor.h index 0a58cb25a65..c9e7cbc4768 100644 --- a/arch/sh/include/asm/processor.h +++ b/arch/sh/include/asm/processor.h | |||
@@ -89,6 +89,7 @@ struct sh_cpuinfo { | |||
89 | struct task_struct *idle; | 89 | struct task_struct *idle; |
90 | #endif | 90 | #endif |
91 | 91 | ||
92 | unsigned int phys_bits; | ||
92 | unsigned long flags; | 93 | unsigned long flags; |
93 | } __attribute__ ((aligned(L1_CACHE_BYTES))); | 94 | } __attribute__ ((aligned(L1_CACHE_BYTES))); |
94 | 95 | ||