diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-01-19 00:00:14 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-01-19 00:00:14 -0500 |
commit | 6d63e73d520b690e4378cef3003eb5f01f7d128c (patch) | |
tree | 9a28f581e591c684f76190dafda0910323065fda /arch | |
parent | f33609344acfdde1c1acedf6de3efe6b80af93a6 (diff) |
sh: Limit ioremap_prot() to 32bit pgprot parts.
Presently ioremap_prot() uses an unsigned long to pass the pgprot value
around. This results in the upper half of the pgprot being chomped when
using 64-bit pgprots on a 32-bit ABI (X2TLB and SH-5).
As the only users of ioremap_prot() are presently legacy parts, this
doesn't cause too much of an issue. In the future when the interface is
converted to use pgprot_t directly this can be re-enabled for the other
parts, too.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sh/Kconfig | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/io.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 5ac0115c9e20..8d0eabbf7460 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -13,7 +13,6 @@ config SUPERH | |||
13 | select HAVE_LMB | 13 | select HAVE_LMB |
14 | select HAVE_OPROFILE | 14 | select HAVE_OPROFILE |
15 | select HAVE_GENERIC_DMA_COHERENT | 15 | select HAVE_GENERIC_DMA_COHERENT |
16 | select HAVE_IOREMAP_PROT if MMU | ||
17 | select HAVE_ARCH_TRACEHOOK | 16 | select HAVE_ARCH_TRACEHOOK |
18 | select HAVE_DMA_API_DEBUG | 17 | select HAVE_DMA_API_DEBUG |
19 | select HAVE_DMA_ATTRS | 18 | select HAVE_DMA_ATTRS |
@@ -36,6 +35,7 @@ config SUPERH32 | |||
36 | def_bool ARCH = "sh" | 35 | def_bool ARCH = "sh" |
37 | select HAVE_KPROBES | 36 | select HAVE_KPROBES |
38 | select HAVE_KRETPROBES | 37 | select HAVE_KRETPROBES |
38 | select HAVE_IOREMAP_PROT if MMU && !X2TLB | ||
39 | select HAVE_FUNCTION_TRACER | 39 | select HAVE_FUNCTION_TRACER |
40 | select HAVE_FTRACE_MCOUNT_RECORD | 40 | select HAVE_FTRACE_MCOUNT_RECORD |
41 | select HAVE_DYNAMIC_FTRACE | 41 | select HAVE_DYNAMIC_FTRACE |
diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h index c32a55601d01..4bad72a1b39e 100644 --- a/arch/sh/include/asm/io.h +++ b/arch/sh/include/asm/io.h | |||
@@ -321,11 +321,13 @@ ioremap_cache(unsigned long offset, unsigned long size) | |||
321 | return __ioremap_mode(offset, size, PAGE_KERNEL); | 321 | return __ioremap_mode(offset, size, PAGE_KERNEL); |
322 | } | 322 | } |
323 | 323 | ||
324 | #ifdef CONFIG_HAVE_IOREMAP_PROT | ||
324 | static inline void __iomem * | 325 | static inline void __iomem * |
325 | ioremap_prot(resource_size_t offset, unsigned long size, unsigned long flags) | 326 | ioremap_prot(resource_size_t offset, unsigned long size, unsigned long flags) |
326 | { | 327 | { |
327 | return __ioremap_mode(offset, size, __pgprot(flags)); | 328 | return __ioremap_mode(offset, size, __pgprot(flags)); |
328 | } | 329 | } |
330 | #endif | ||
329 | 331 | ||
330 | #define ioremap_nocache ioremap | 332 | #define ioremap_nocache ioremap |
331 | #define iounmap __iounmap | 333 | #define iounmap __iounmap |