aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-01-19 00:00:14 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-01-19 00:00:14 -0500
commit6d63e73d520b690e4378cef3003eb5f01f7d128c (patch)
tree9a28f581e591c684f76190dafda0910323065fda /arch/sh
parentf33609344acfdde1c1acedf6de3efe6b80af93a6 (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/sh')
-rw-r--r--arch/sh/Kconfig2
-rw-r--r--arch/sh/include/asm/io.h2
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
324static inline void __iomem * 325static inline void __iomem *
325ioremap_prot(resource_size_t offset, unsigned long size, unsigned long flags) 326ioremap_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