aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/parisc/lib/iomap.c4
-rw-r--r--arch/parisc/mm/ioremap.c24
-rw-r--r--include/asm-parisc/io.h33
-rw-r--r--lib/Kconfig.debug13
4 files changed, 0 insertions, 74 deletions
diff --git a/arch/parisc/lib/iomap.c b/arch/parisc/lib/iomap.c
index 01bec8fcbd0d..f4a811690ab3 100644
--- a/arch/parisc/lib/iomap.c
+++ b/arch/parisc/lib/iomap.c
@@ -263,11 +263,7 @@ static const struct iomap_ops iomem_ops = {
263 263
264const struct iomap_ops *iomap_ops[8] = { 264const struct iomap_ops *iomap_ops[8] = {
265 [0] = &ioport_ops, 265 [0] = &ioport_ops,
266#ifdef CONFIG_DEBUG_IOREMAP
267 [6] = &iomem_ops,
268#else
269 [7] = &iomem_ops 266 [7] = &iomem_ops
270#endif
271}; 267};
272 268
273 269
diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c
index 21a16747e56e..a5967b7d3726 100644
--- a/arch/parisc/mm/ioremap.c
+++ b/arch/parisc/mm/ioremap.c
@@ -114,30 +114,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr,
114 return error; 114 return error;
115} 115}
116 116
117#ifdef CONFIG_DEBUG_IOREMAP
118static unsigned long last = 0;
119
120void gsc_bad_addr(unsigned long addr)
121{
122 if (time_after(jiffies, last + HZ*10)) {
123 printk("gsc_foo() called with bad address 0x%lx\n", addr);
124 dump_stack();
125 last = jiffies;
126 }
127}
128EXPORT_SYMBOL(gsc_bad_addr);
129
130void __raw_bad_addr(const volatile void __iomem *addr)
131{
132 if (time_after(jiffies, last + HZ*10)) {
133 printk("__raw_foo() called with bad address 0x%p\n", addr);
134 dump_stack();
135 last = jiffies;
136 }
137}
138EXPORT_SYMBOL(__raw_bad_addr);
139#endif
140
141/* 117/*
142 * Generic mapping function (not visible outside): 118 * Generic mapping function (not visible outside):
143 */ 119 */
diff --git a/include/asm-parisc/io.h b/include/asm-parisc/io.h
index bcfe0b09c93f..29da31194b91 100644
--- a/include/asm-parisc/io.h
+++ b/include/asm-parisc/io.h
@@ -25,31 +25,11 @@ extern unsigned long parisc_vmerge_max_size;
25 * eg dev->hpa or 0xfee00000. 25 * eg dev->hpa or 0xfee00000.
26 */ 26 */
27 27
28#ifdef CONFIG_DEBUG_IOREMAP
29#define NYBBLE_SHIFT (BITS_PER_LONG - 4)
30extern void gsc_bad_addr(unsigned long addr);
31extern void __raw_bad_addr(const volatile void __iomem *addr);
32#define gsc_check_addr(addr) \
33 if ((addr >> NYBBLE_SHIFT) != 0xf) { \
34 gsc_bad_addr(addr); \
35 addr |= 0xfUL << NYBBLE_SHIFT; \
36 }
37#define __raw_check_addr(addr) \
38 if (((unsigned long)addr >> NYBBLE_SHIFT) != 0xe) \
39 __raw_bad_addr(addr); \
40 addr = (void __iomem *)((unsigned long)addr | (0xfUL << NYBBLE_SHIFT));
41#else
42#define gsc_check_addr(addr)
43#define __raw_check_addr(addr)
44#endif
45
46static inline unsigned char gsc_readb(unsigned long addr) 28static inline unsigned char gsc_readb(unsigned long addr)
47{ 29{
48 long flags; 30 long flags;
49 unsigned char ret; 31 unsigned char ret;
50 32
51 gsc_check_addr(addr);
52
53 __asm__ __volatile__( 33 __asm__ __volatile__(
54 " rsm 2,%0\n" 34 " rsm 2,%0\n"
55 " ldbx 0(%2),%1\n" 35 " ldbx 0(%2),%1\n"
@@ -64,8 +44,6 @@ static inline unsigned short gsc_readw(unsigned long addr)
64 long flags; 44 long flags;
65 unsigned short ret; 45 unsigned short ret;
66 46
67 gsc_check_addr(addr);
68
69 __asm__ __volatile__( 47 __asm__ __volatile__(
70 " rsm 2,%0\n" 48 " rsm 2,%0\n"
71 " ldhx 0(%2),%1\n" 49 " ldhx 0(%2),%1\n"
@@ -79,8 +57,6 @@ static inline unsigned int gsc_readl(unsigned long addr)
79{ 57{
80 u32 ret; 58 u32 ret;
81 59
82 gsc_check_addr(addr);
83
84 __asm__ __volatile__( 60 __asm__ __volatile__(
85 " ldwax 0(%1),%0\n" 61 " ldwax 0(%1),%0\n"
86 : "=r" (ret) : "r" (addr) ); 62 : "=r" (ret) : "r" (addr) );
@@ -91,7 +67,6 @@ static inline unsigned int gsc_readl(unsigned long addr)
91static inline unsigned long long gsc_readq(unsigned long addr) 67static inline unsigned long long gsc_readq(unsigned long addr)
92{ 68{
93 unsigned long long ret; 69 unsigned long long ret;
94 gsc_check_addr(addr);
95 70
96#ifdef __LP64__ 71#ifdef __LP64__
97 __asm__ __volatile__( 72 __asm__ __volatile__(
@@ -108,8 +83,6 @@ static inline unsigned long long gsc_readq(unsigned long addr)
108static inline void gsc_writeb(unsigned char val, unsigned long addr) 83static inline void gsc_writeb(unsigned char val, unsigned long addr)
109{ 84{
110 long flags; 85 long flags;
111 gsc_check_addr(addr);
112
113 __asm__ __volatile__( 86 __asm__ __volatile__(
114 " rsm 2,%0\n" 87 " rsm 2,%0\n"
115 " stbs %1,0(%2)\n" 88 " stbs %1,0(%2)\n"
@@ -120,8 +93,6 @@ static inline void gsc_writeb(unsigned char val, unsigned long addr)
120static inline void gsc_writew(unsigned short val, unsigned long addr) 93static inline void gsc_writew(unsigned short val, unsigned long addr)
121{ 94{
122 long flags; 95 long flags;
123 gsc_check_addr(addr);
124
125 __asm__ __volatile__( 96 __asm__ __volatile__(
126 " rsm 2,%0\n" 97 " rsm 2,%0\n"
127 " sths %1,0(%2)\n" 98 " sths %1,0(%2)\n"
@@ -131,8 +102,6 @@ static inline void gsc_writew(unsigned short val, unsigned long addr)
131 102
132static inline void gsc_writel(unsigned int val, unsigned long addr) 103static inline void gsc_writel(unsigned int val, unsigned long addr)
133{ 104{
134 gsc_check_addr(addr);
135
136 __asm__ __volatile__( 105 __asm__ __volatile__(
137 " stwas %0,0(%1)\n" 106 " stwas %0,0(%1)\n"
138 : : "r" (val), "r" (addr) ); 107 : : "r" (val), "r" (addr) );
@@ -140,8 +109,6 @@ static inline void gsc_writel(unsigned int val, unsigned long addr)
140 109
141static inline void gsc_writeq(unsigned long long val, unsigned long addr) 110static inline void gsc_writeq(unsigned long long val, unsigned long addr)
142{ 111{
143 gsc_check_addr(addr);
144
145#ifdef __LP64__ 112#ifdef __LP64__
146 __asm__ __volatile__( 113 __asm__ __volatile__(
147 " stda %0,0(%1)\n" 114 " stda %0,0(%1)\n"
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 6e8a60f67c7a..d57fd9181b18 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -157,19 +157,6 @@ config DEBUG_INFO
157 157
158 If unsure, say N. 158 If unsure, say N.
159 159
160config DEBUG_IOREMAP
161 bool "Enable ioremap() debugging"
162 depends on DEBUG_KERNEL && PARISC
163 help
164 Enabling this option will cause the kernel to distinguish between
165 ioremapped and physical addresses. It will print a backtrace (at
166 most one every 10 seconds), hopefully allowing you to see which
167 drivers need work. Fixing all these problems is a prerequisite
168 for turning on USE_HPPA_IOREMAP. The warnings are harmless;
169 the kernel has enough information to fix the broken drivers
170 automatically, but we'd like to make it more efficient by not
171 having to do that.
172
173config DEBUG_FS 160config DEBUG_FS
174 bool "Debug Filesystem" 161 bool "Debug Filesystem"
175 depends on SYSFS 162 depends on SYSFS