All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Richard Henderson <rth@twiddle.net>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Matt Turner <mattst88@gmail.com>,
	Alexey Brodkin <abrodkin@synopsys.com>,
	Vineet Gupta <vgupta@synopsys.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Dave Airlie <airlied@redhat.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	Ben Skeggs <bskeggs@redhat.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Jiri Slaby <jirislaby@gmail.com>,
	Nick Kossifidis <mickflemm@gmail.com>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Kalle Valo <kvalo@codeaurora.org>,
	"David S. Miller" <davem@davemloft.net>,
	Dave Jiang <dave.jiang@intel.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Subject: [RFT 01/13] iomap: Constify ioreadX() iomem argument (as in generic implementation)
Date: Tue,  7 Jan 2020 17:52:58 +0100	[thread overview]
Message-ID: <1578415992-24054-2-git-send-email-krzk__29893.3489875466$1578416034$gmane$org@kernel.org> (raw)
In-Reply-To: <1578415992-24054-1-git-send-email-krzk@kernel.org>

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.

Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 include/asm-generic/iomap.h           | 22 +++++++++++-----------
 include/linux/io-64-nonatomic-hi-lo.h |  4 ++--
 include/linux/io-64-nonatomic-lo-hi.h |  4 ++--
 lib/iomap.c                           | 18 +++++++++---------
 4 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/include/asm-generic/iomap.h b/include/asm-generic/iomap.h
index 9d28a5e82f73..986e894bef49 100644
--- a/include/asm-generic/iomap.h
+++ b/include/asm-generic/iomap.h
@@ -26,14 +26,14 @@
  * in the low address range. Architectures for which this is not
  * true can't use this generic implementation.
  */
-extern unsigned int ioread8(void __iomem *);
-extern unsigned int ioread16(void __iomem *);
-extern unsigned int ioread16be(void __iomem *);
-extern unsigned int ioread32(void __iomem *);
-extern unsigned int ioread32be(void __iomem *);
+extern unsigned int ioread8(const void __iomem *);
+extern unsigned int ioread16(const void __iomem *);
+extern unsigned int ioread16be(const void __iomem *);
+extern unsigned int ioread32(const void __iomem *);
+extern unsigned int ioread32be(const void __iomem *);
 #ifdef CONFIG_64BIT
-extern u64 ioread64(void __iomem *);
-extern u64 ioread64be(void __iomem *);
+extern u64 ioread64(const void __iomem *);
+extern u64 ioread64be(const void __iomem *);
 #endif
 
 #ifdef readq
@@ -41,10 +41,10 @@ extern u64 ioread64be(void __iomem *);
 #define ioread64_hi_lo ioread64_hi_lo
 #define ioread64be_lo_hi ioread64be_lo_hi
 #define ioread64be_hi_lo ioread64be_hi_lo
-extern u64 ioread64_lo_hi(void __iomem *addr);
-extern u64 ioread64_hi_lo(void __iomem *addr);
-extern u64 ioread64be_lo_hi(void __iomem *addr);
-extern u64 ioread64be_hi_lo(void __iomem *addr);
+extern u64 ioread64_lo_hi(const void __iomem *addr);
+extern u64 ioread64_hi_lo(const void __iomem *addr);
+extern u64 ioread64be_lo_hi(const void __iomem *addr);
+extern u64 ioread64be_hi_lo(const void __iomem *addr);
 #endif
 
 extern void iowrite8(u8, void __iomem *);
diff --git a/include/linux/io-64-nonatomic-hi-lo.h b/include/linux/io-64-nonatomic-hi-lo.h
index ae21b72cce85..f32522bb3aa5 100644
--- a/include/linux/io-64-nonatomic-hi-lo.h
+++ b/include/linux/io-64-nonatomic-hi-lo.h
@@ -57,7 +57,7 @@ static inline void hi_lo_writeq_relaxed(__u64 val, volatile void __iomem *addr)
 
 #ifndef ioread64_hi_lo
 #define ioread64_hi_lo ioread64_hi_lo
-static inline u64 ioread64_hi_lo(void __iomem *addr)
+static inline u64 ioread64_hi_lo(const void __iomem *addr)
 {
 	u32 low, high;
 
@@ -79,7 +79,7 @@ static inline void iowrite64_hi_lo(u64 val, void __iomem *addr)
 
 #ifndef ioread64be_hi_lo
 #define ioread64be_hi_lo ioread64be_hi_lo
-static inline u64 ioread64be_hi_lo(void __iomem *addr)
+static inline u64 ioread64be_hi_lo(const void __iomem *addr)
 {
 	u32 low, high;
 
diff --git a/include/linux/io-64-nonatomic-lo-hi.h b/include/linux/io-64-nonatomic-lo-hi.h
index faaa842dbdb9..448a21435dba 100644
--- a/include/linux/io-64-nonatomic-lo-hi.h
+++ b/include/linux/io-64-nonatomic-lo-hi.h
@@ -57,7 +57,7 @@ static inline void lo_hi_writeq_relaxed(__u64 val, volatile void __iomem *addr)
 
 #ifndef ioread64_lo_hi
 #define ioread64_lo_hi ioread64_lo_hi
-static inline u64 ioread64_lo_hi(void __iomem *addr)
+static inline u64 ioread64_lo_hi(const void __iomem *addr)
 {
 	u32 low, high;
 
@@ -79,7 +79,7 @@ static inline void iowrite64_lo_hi(u64 val, void __iomem *addr)
 
 #ifndef ioread64be_lo_hi
 #define ioread64be_lo_hi ioread64be_lo_hi
-static inline u64 ioread64be_lo_hi(void __iomem *addr)
+static inline u64 ioread64be_lo_hi(const void __iomem *addr)
 {
 	u32 low, high;
 
diff --git a/lib/iomap.c b/lib/iomap.c
index e909ab71e995..3b10c0ab2cee 100644
--- a/lib/iomap.c
+++ b/lib/iomap.c
@@ -70,27 +70,27 @@ static void bad_io_access(unsigned long port, const char *access)
 #define mmio_read64be(addr) swab64(readq(addr))
 #endif
 
-unsigned int ioread8(void __iomem *addr)
+unsigned int ioread8(const void __iomem *addr)
 {
 	IO_COND(addr, return inb(port), return readb(addr));
 	return 0xff;
 }
-unsigned int ioread16(void __iomem *addr)
+unsigned int ioread16(const void __iomem *addr)
 {
 	IO_COND(addr, return inw(port), return readw(addr));
 	return 0xffff;
 }
-unsigned int ioread16be(void __iomem *addr)
+unsigned int ioread16be(const void __iomem *addr)
 {
 	IO_COND(addr, return pio_read16be(port), return mmio_read16be(addr));
 	return 0xffff;
 }
-unsigned int ioread32(void __iomem *addr)
+unsigned int ioread32(const void __iomem *addr)
 {
 	IO_COND(addr, return inl(port), return readl(addr));
 	return 0xffffffff;
 }
-unsigned int ioread32be(void __iomem *addr)
+unsigned int ioread32be(const void __iomem *addr)
 {
 	IO_COND(addr, return pio_read32be(port), return mmio_read32be(addr));
 	return 0xffffffff;
@@ -142,26 +142,26 @@ static u64 pio_read64be_hi_lo(unsigned long port)
 	return lo | (hi << 32);
 }
 
-u64 ioread64_lo_hi(void __iomem *addr)
+u64 ioread64_lo_hi(const void __iomem *addr)
 {
 	IO_COND(addr, return pio_read64_lo_hi(port), return readq(addr));
 	return 0xffffffffffffffffULL;
 }
 
-u64 ioread64_hi_lo(void __iomem *addr)
+u64 ioread64_hi_lo(const void __iomem *addr)
 {
 	IO_COND(addr, return pio_read64_hi_lo(port), return readq(addr));
 	return 0xffffffffffffffffULL;
 }
 
-u64 ioread64be_lo_hi(void __iomem *addr)
+u64 ioread64be_lo_hi(const void __iomem *addr)
 {
 	IO_COND(addr, return pio_read64be_lo_hi(port),
 		return mmio_read64be(addr));
 	return 0xffffffffffffffffULL;
 }
 
-u64 ioread64be_hi_lo(void __iomem *addr)
+u64 ioread64be_hi_lo(const void __iomem *addr)
 {
 	IO_COND(addr, return pio_read64be_hi_lo(port),
 		return mmio_read64be(addr));
-- 
2.7.4

  reply	other threads:[~2020-01-07 16:52 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-07 16:52 [RFT 00/13] iomap: Constify ioreadX() iomem argument Krzysztof Kozlowski
2020-01-07 16:52 ` Krzysztof Kozlowski
2020-01-07 16:52 ` Krzysztof Kozlowski
2020-01-07 16:52 ` Krzysztof Kozlowski
2020-01-07 16:52 ` Krzysztof Kozlowski [this message]
2020-01-07 16:52 ` [RFT 01/13] iomap: Constify ioreadX() iomem argument (as in generic implementation) Krzysztof Kozlowski
2020-01-07 16:52   ` Krzysztof Kozlowski
2020-01-07 16:52   ` Krzysztof Kozlowski
2020-01-07 16:52   ` Krzysztof Kozlowski
     [not found] ` <1578415992-24054-1-git-send-email-krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2020-01-07 16:52   ` Krzysztof Kozlowski
2020-01-07 16:52   ` [RFT 02/13] alpha: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 02/13] sh: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 03/13] alpha: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 03/13] sh: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 04/13] parisc: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 05/13] powerpc: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 06/13] arc: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 07/13] drm/mgag200: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 08/13] drm/nouveau: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 09/13] media: fsl-viu: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 10/13] net: wireless: ath5k: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 11/13] net: wireless: rtl818x: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 12/13] ntb: intel: " Krzysztof Kozlowski
2020-01-07 16:53   ` [RFT 13/13] virtio: pci: " Krzysztof Kozlowski
2020-01-07 16:52 ` [RFT 02/13] alpha: " Krzysztof Kozlowski
2020-01-07 16:52 ` Krzysztof Kozlowski
2020-01-07 16:52   ` Krzysztof Kozlowski
2020-01-07 16:52   ` Krzysztof Kozlowski
2020-01-07 16:52   ` Krzysztof Kozlowski
2020-01-08  8:10   ` Geert Uytterhoeven
2020-01-08  8:10   ` Geert Uytterhoeven
2020-01-08  8:10     ` Geert Uytterhoeven
2020-01-08  8:10     ` Geert Uytterhoeven
2020-01-08  8:10     ` Geert Uytterhoeven
2020-01-08  8:10     ` Geert Uytterhoeven
2020-01-08  9:07     ` Krzysztof Kozlowski
2020-01-08  9:07     ` Krzysztof Kozlowski
2020-01-08  9:07       ` Krzysztof Kozlowski
2020-01-08  9:07       ` Krzysztof Kozlowski
2020-01-08  9:07       ` Krzysztof Kozlowski
2020-01-08  9:07       ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 02/13] sh: " Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 03/13] alpha: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 03/13] sh: " Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 17:08   ` Arnd Bergmann
2020-01-07 17:08     ` Arnd Bergmann
2020-01-07 17:08     ` Arnd Bergmann
2020-01-07 17:08     ` Arnd Bergmann
2020-01-07 17:08     ` Arnd Bergmann
2020-01-07 17:08   ` Arnd Bergmann
2020-01-07 16:53 ` [RFT 04/13] parisc: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 05/13] powerpc: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 06/13] arc: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 17:10   ` Arnd Bergmann
2020-01-07 17:10     ` Arnd Bergmann
2020-01-07 17:10     ` Arnd Bergmann
2020-01-07 17:10     ` Arnd Bergmann
2020-01-07 17:10     ` Arnd Bergmann
2020-01-07 17:10   ` Arnd Bergmann
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 07/13] drm/mgag200: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 08/13] drm/nouveau: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 09/13] media: fsl-viu: " Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 10/13] net: wireless: ath5k: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 11/13] net: wireless: rtl818x: " Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 12/13] ntb: intel: " Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53 ` [RFT 13/13] virtio: pci: " Krzysztof Kozlowski
2020-01-07 16:53 ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-07 16:53   ` Krzysztof Kozlowski
2020-01-08  8:07 ` [RFT 00/13] iomap: Constify ioreadX() iomem argument Geert Uytterhoeven
2020-01-08  8:07   ` Geert Uytterhoeven
2020-01-08  8:07   ` Geert Uytterhoeven
2020-01-08  8:07   ` Geert Uytterhoeven
2020-01-08  8:07   ` Geert Uytterhoeven
2020-01-08  8:12   ` Geert Uytterhoeven
2020-01-08  8:12   ` Geert Uytterhoeven
2020-01-08  8:12     ` Geert Uytterhoeven
2020-01-08  8:12     ` Geert Uytterhoeven
2020-01-08  8:12     ` Geert Uytterhoeven
2020-01-08  8:12     ` Geert Uytterhoeven
2020-01-08  8:18     ` Krzysztof Kozlowski
2020-01-08  8:18       ` Krzysztof Kozlowski
2020-01-08  8:18       ` Krzysztof Kozlowski
2020-01-08  8:18       ` Krzysztof Kozlowski
2020-01-08  8:18       ` Krzysztof Kozlowski
2020-01-08  8:35       ` Christophe Leroy
2020-01-08  8:35         ` Christophe Leroy
2020-01-08  8:35         ` Christophe Leroy
2020-01-08  8:35         ` Christophe Leroy
2020-01-08  8:35         ` Christophe Leroy
2020-01-08  8:35         ` Christophe Leroy
2020-01-08  8:43         ` Geert Uytterhoeven
2020-01-08  8:43         ` Geert Uytterhoeven
2020-01-08  8:43           ` Geert Uytterhoeven
2020-01-08  8:43           ` Geert Uytterhoeven
2020-01-08  8:43           ` Geert Uytterhoeven
2020-01-08  8:43           ` Geert Uytterhoeven
2020-01-08  8:43           ` Geert Uytterhoeven
2020-01-08  8:43           ` Geert Uytterhoeven
2020-01-08  8:48           ` Christophe Leroy
2020-01-08  8:48           ` Christophe Leroy
2020-01-08  8:48             ` Christophe Leroy
2020-01-08  8:48             ` Christophe Leroy
2020-01-08  8:48             ` Christophe Leroy
2020-01-08  8:48             ` Christophe Leroy
2020-01-08  8:48             ` Christophe Leroy
2020-01-08  8:48             ` Christophe Leroy
2020-01-08 17:39             ` David Laight
2020-01-08 17:39               ` David Laight
2020-01-08 17:39               ` David Laight
2020-01-08 17:39               ` David Laight
2020-01-08 17:39               ` David Laight
2020-01-08  8:44         ` Arnd Bergmann
2020-01-08  8:44         ` Arnd Bergmann
2020-01-08  8:44           ` Arnd Bergmann
2020-01-08  8:44           ` Arnd Bergmann
2020-01-08  8:44           ` Arnd Bergmann
2020-01-08  8:44           ` Arnd Bergmann
2020-01-08  8:44           ` Arnd Bergmann
2020-01-08  9:15           ` Krzysztof Kozlowski
2020-01-08  9:15             ` Krzysztof Kozlowski
2020-01-08  9:15             ` Krzysztof Kozlowski
2020-01-08  9:15             ` Krzysztof Kozlowski
2020-01-08  9:15             ` Krzysztof Kozlowski
2020-01-08 11:55             ` Arnd Bergmann
2020-01-08 11:55             ` Arnd Bergmann
2020-01-08 11:55               ` Arnd Bergmann
2020-01-08 11:55               ` Arnd Bergmann
2020-01-08 11:55               ` Arnd Bergmann
2020-01-08 11:55               ` Arnd Bergmann
2020-01-08 11:55               ` Arnd Bergmann
2020-01-08  8:35       ` Christophe Leroy
2020-01-08  8:18     ` Krzysztof Kozlowski
2020-01-08  8:15   ` Krzysztof Kozlowski
2020-01-08  8:15   ` Krzysztof Kozlowski
2020-01-08  8:15     ` Krzysztof Kozlowski
2020-01-08  8:15     ` Krzysztof Kozlowski
2020-01-08  8:15     ` Krzysztof Kozlowski
2020-01-08  8:15     ` Krzysztof Kozlowski
2020-01-08  8:07 ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='1578415992-24054-2-git-send-email-krzk__29893.3489875466$1578416034$gmane$org@kernel.org' \
    --to=krzk@kernel.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=abrodkin@synopsys.com \
    --cc=airlied@linux.ie \
    --cc=airlied@redhat.com \
    --cc=benh@kernel.crashing.org \
    --cc=bskeggs@redhat.com \
    --cc=dalias@libc.org \
    --cc=daniel@ffwll.ch \
    --cc=dave.jiang@intel.com \
    --cc=davem@davemloft.net \
    --cc=deller@gmx.de \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jirislaby@gmail.com \
    --cc=kvalo@codeaurora.org \
    --cc=mattst88@gmail.com \
    --cc=mcgrof@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mickflemm@gmail.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=rth@twiddle.net \
    --cc=vgupta@synopsys.com \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.