diff options
| -rw-r--r-- | arch/parisc/lib/iomap.c | 4 | ||||
| -rw-r--r-- | arch/parisc/mm/ioremap.c | 24 | ||||
| -rw-r--r-- | include/asm-parisc/io.h | 33 | ||||
| -rw-r--r-- | lib/Kconfig.debug | 13 |
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 | ||
| 264 | const struct iomap_ops *iomap_ops[8] = { | 264 | const 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 | ||
| 118 | static unsigned long last = 0; | ||
| 119 | |||
| 120 | void 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 | } | ||
| 128 | EXPORT_SYMBOL(gsc_bad_addr); | ||
| 129 | |||
| 130 | void __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 | } | ||
| 138 | EXPORT_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) | ||
| 30 | extern void gsc_bad_addr(unsigned long addr); | ||
| 31 | extern 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 | |||
| 46 | static inline unsigned char gsc_readb(unsigned long addr) | 28 | static 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) | |||
| 91 | static inline unsigned long long gsc_readq(unsigned long addr) | 67 | static 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) | |||
| 108 | static inline void gsc_writeb(unsigned char val, unsigned long addr) | 83 | static 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) | |||
| 120 | static inline void gsc_writew(unsigned short val, unsigned long addr) | 93 | static 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 | ||
| 132 | static inline void gsc_writel(unsigned int val, unsigned long addr) | 103 | static 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 | ||
| 141 | static inline void gsc_writeq(unsigned long long val, unsigned long addr) | 110 | static 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 | ||
| 160 | config 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 | |||
| 173 | config DEBUG_FS | 160 | config DEBUG_FS |
| 174 | bool "Debug Filesystem" | 161 | bool "Debug Filesystem" |
| 175 | depends on SYSFS | 162 | depends on SYSFS |
