Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: Fix up more fallout from pointless ARM __iomem churn.

It was already pointed out how to fix these cases before the offending
patches were merged, but unsurprisingly, that didn't happen. As this
change is entirely superfluous to begin with, simply shut things up by
casting everything away.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

+31 -21
+27 -18
drivers/sh/intc/access.c
··· 75 75 static unsigned long test_8(unsigned long addr, unsigned long h, 76 76 unsigned long ignore) 77 77 { 78 - return intc_get_field_from_handle(__raw_readb(addr), h); 78 + void __iomem *ptr = (void __iomem *)addr; 79 + return intc_get_field_from_handle(__raw_readb(ptr), h); 79 80 } 80 81 81 82 static unsigned long test_16(unsigned long addr, unsigned long h, 82 83 unsigned long ignore) 83 84 { 84 - return intc_get_field_from_handle(__raw_readw(addr), h); 85 + void __iomem *ptr = (void __iomem *)addr; 86 + return intc_get_field_from_handle(__raw_readw(ptr), h); 85 87 } 86 88 87 89 static unsigned long test_32(unsigned long addr, unsigned long h, 88 90 unsigned long ignore) 89 91 { 90 - return intc_get_field_from_handle(__raw_readl(addr), h); 92 + void __iomem *ptr = (void __iomem *)addr; 93 + return intc_get_field_from_handle(__raw_readl(ptr), h); 91 94 } 92 95 93 96 static unsigned long write_8(unsigned long addr, unsigned long h, 94 97 unsigned long data) 95 98 { 96 - __raw_writeb(intc_set_field_from_handle(0, data, h), addr); 97 - (void)__raw_readb(addr); /* Defeat write posting */ 99 + void __iomem *ptr = (void __iomem *)addr; 100 + __raw_writeb(intc_set_field_from_handle(0, data, h), ptr); 101 + (void)__raw_readb(ptr); /* Defeat write posting */ 98 102 return 0; 99 103 } 100 104 101 105 static unsigned long write_16(unsigned long addr, unsigned long h, 102 106 unsigned long data) 103 107 { 104 - __raw_writew(intc_set_field_from_handle(0, data, h), addr); 105 - (void)__raw_readw(addr); /* Defeat write posting */ 108 + void __iomem *ptr = (void __iomem *)addr; 109 + __raw_writew(intc_set_field_from_handle(0, data, h), ptr); 110 + (void)__raw_readw(ptr); /* Defeat write posting */ 106 111 return 0; 107 112 } 108 113 109 114 static unsigned long write_32(unsigned long addr, unsigned long h, 110 115 unsigned long data) 111 116 { 112 - __raw_writel(intc_set_field_from_handle(0, data, h), addr); 113 - (void)__raw_readl(addr); /* Defeat write posting */ 117 + void __iomem *ptr = (void __iomem *)addr; 118 + __raw_writel(intc_set_field_from_handle(0, data, h), ptr); 119 + (void)__raw_readl(ptr); /* Defeat write posting */ 114 120 return 0; 115 121 } 116 122 117 123 static unsigned long modify_8(unsigned long addr, unsigned long h, 118 124 unsigned long data) 119 125 { 126 + void __iomem *ptr = (void __iomem *)addr; 120 127 unsigned long flags; 121 128 unsigned int value; 122 129 local_irq_save(flags); 123 - value = intc_set_field_from_handle(__raw_readb(addr), data, h); 124 - __raw_writeb(value, addr); 125 - (void)__raw_readb(addr); /* Defeat write posting */ 130 + value = intc_set_field_from_handle(__raw_readb(ptr), data, h); 131 + __raw_writeb(value, ptr); 132 + (void)__raw_readb(ptr); /* Defeat write posting */ 126 133 local_irq_restore(flags); 127 134 return 0; 128 135 } ··· 137 130 static unsigned long modify_16(unsigned long addr, unsigned long h, 138 131 unsigned long data) 139 132 { 133 + void __iomem *ptr = (void __iomem *)addr; 140 134 unsigned long flags; 141 135 unsigned int value; 142 136 local_irq_save(flags); 143 - value = intc_set_field_from_handle(__raw_readw(addr), data, h); 144 - __raw_writew(value, addr); 145 - (void)__raw_readw(addr); /* Defeat write posting */ 137 + value = intc_set_field_from_handle(__raw_readw(ptr), data, h); 138 + __raw_writew(value, ptr); 139 + (void)__raw_readw(ptr); /* Defeat write posting */ 146 140 local_irq_restore(flags); 147 141 return 0; 148 142 } ··· 151 143 static unsigned long modify_32(unsigned long addr, unsigned long h, 152 144 unsigned long data) 153 145 { 146 + void __iomem *ptr = (void __iomem *)addr; 154 147 unsigned long flags; 155 148 unsigned int value; 156 149 local_irq_save(flags); 157 - value = intc_set_field_from_handle(__raw_readl(addr), data, h); 158 - __raw_writel(value, addr); 159 - (void)__raw_readl(addr); /* Defeat write posting */ 150 + value = intc_set_field_from_handle(__raw_readl(ptr), data, h); 151 + __raw_writel(value, ptr); 152 + (void)__raw_readl(ptr); /* Defeat write posting */ 160 153 local_irq_restore(flags); 161 154 return 0; 162 155 }
+2 -2
drivers/sh/intc/chip.c
··· 83 83 unsigned int irq = data->irq; 84 84 struct intc_desc_int *d = get_intc_desc(irq); 85 85 unsigned long handle = intc_get_ack_handle(irq); 86 - unsigned long addr; 86 + void __iomem *addr; 87 87 88 88 intc_disable(data); 89 89 ··· 91 91 if (handle) { 92 92 unsigned int value; 93 93 94 - addr = INTC_REG(d, _INTC_ADDR_D(handle), 0); 94 + addr = (void __iomem *)INTC_REG(d, _INTC_ADDR_D(handle), 0); 95 95 value = intc_set_field_from_handle(0, 1, handle); 96 96 97 97 switch (_INTC_FN(handle)) {
+2 -1
drivers/tty/serial/sh-sci.c
··· 530 530 if (s->cfg->port_reg <= 0) 531 531 return 1; 532 532 533 - return !!__raw_readb(s->cfg->port_reg); 533 + /* Cast for ARM damage */ 534 + return !!__raw_readb((void __iomem *)s->cfg->port_reg); 534 535 } 535 536 536 537 /* ********************************************************************** *