Thread (31 messages) 31 messages, 5 authors, 2020-01-09

Re: [RFT 02/13] alpha: Constify ioreadX() iomem argument (as in generic implementation)

From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2020-01-08 09:07:39
Also in: dri-devel, linux-alpha, linux-arch, nouveau

On Wed, Jan 08, 2020 at 09:10:06AM +0100, Geert Uytterhoeven wrote:
Hi Krzysztof,

On Tue, Jan 7, 2020 at 5:53 PM Krzysztof Kozlowski [off-list ref] wrote:
quoted
The ioreadX() helpers have inconsistent interface.  On some architectures
void *__iomem address argument is a pointer to const, on some not.

Implementations of ioreadX() do not modify the memory under the address
so they can be converted to a "const" version for const-safety and
consistency among architectures.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
quoted
--- a/arch/alpha/include/asm/io.h
+++ b/arch/alpha/include/asm/io.h
@@ -151,9 +151,9 @@ static inline void generic_##NAME(TYPE b, QUAL void __iomem *addr)  \
        alpha_mv.mv_##NAME(b, addr);                                    \
 }

-REMAP1(unsigned int, ioread8, /**/)
-REMAP1(unsigned int, ioread16, /**/)
-REMAP1(unsigned int, ioread32, /**/)
+REMAP1(unsigned int, ioread8, const)
+REMAP1(unsigned int, ioread16, const)
+REMAP1(unsigned int, ioread32, const)
If these would become "const volatile", there would no longer be a need
for the last parameter of the REMAP1() macro.
quoted
 REMAP1(u8, readb, const volatile)
 REMAP1(u16, readw, const volatile)
 REMAP1(u32, readl, const volatile)
Same for REMAP2() macro below, for iowrite*().
Good point, thanks!

Best regards,
Krzysztof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help