All of lore.kernel.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Arnd Bergmann <arnd@arndb.de>,
	guoren@kernel.org, monstr@monstr.eu, green.hu@gmail.com,
	deanbo422@gmail.com, gxt@pku.edu.cn, x86@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	nios2-dev@lists.rocketboards.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	linux-mtd@lists.infradead.org, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 15:29:08 +0000	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Arnd Bergmann <arnd@arndb.de>,
	guoren@kernel.org, monstr@monstr.eu, green.hu@gmail.com,
	deanbo422@gmail.com, gxt@pku.edu.cn, x86@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
	nios2-dev@lists.rocketboards.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	linux-mtd@lists.infradead.org, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 07:29:08 -0800 (PST)	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-kernel@vger.kernel.org, guoren@kernel.org,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	deanbo422@gmail.com, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-hexagon@vger.kernel.org,
	x86@kernel.org, linux-snps-arc@lists.infradead.org,
	linux-xtensa@linux-xtensa.org, Arnd Bergmann <arnd@arndb.de>,
	linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
	green.hu@gmail.com, linux-mtd@lists.infradead.org,
	gxt@pku.edu.cn, linux-arm-kernel@lists.infradead.org,
	monstr@monstr.eu, linux-parisc@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-alpha@vger.kernel.org,
	nios2-dev@lists.rocketboards.org
Subject: Re: [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 07:29:08 -0800 (PST)	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-kernel@vger.kernel.org, guoren@kernel.org,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	deanbo422@gmail.com, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-hexagon@vger.kernel.org,
	x86@kernel.org, linux-snps-arc@lists.infradead.org,
	linux-xtensa@linux-xtensa.org, Arnd Bergmann <arnd@arndb.de>,
	linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
	green.hu@gmail.com, linux-mtd@lists.infradead.org,
	gxt@pku.edu.cn, linux-arm-kernel@lists.infradead.org,
	monstr@monstr.eu, linux-parisc@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-alpha@vger.kernel.org,
	nios2-dev@lists.rocketboards.org
Subject: Re: [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 07:29:08 -0800 (PST)	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-kernel@vger.kernel.org, guoren@kernel.org,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	deanbo422@gmail.com, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-hexagon@vger.kernel.org,
	x86@kernel.org, linux-snps-arc@lists.infradead.org,
	linux-xtensa@linux-xtensa.org, Arnd Bergmann <arnd@arndb.de>,
	linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
	green.hu@gmail.com, linux-mtd@lists.infradead.org,
	gxt@pku.edu.cn, linux-arm-kernel@lists.infradead.org,
	monstr@monstr.eu, linux-parisc@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-alpha@vger.kernel.org,
	nios2-dev@lists.rocketboards.org
Subject: Re: [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 07:29:08 -0800 (PST)	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-kernel@vger.kernel.org, guoren@kernel.org,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	deanbo422@gmail.com, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-hexagon@vger.kernel.org,
	x86@kernel.org, linux-snps-arc@lists.infradead.org,
	linux-xtensa@linux-xtensa.org, Arnd Bergmann <arnd@arndb.de>,
	linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
	green.hu@gmail.com, linux-mtd@lists.infradead.org,
	gxt@pku.edu.cn, linux-arm-kernel@lists.infradead.org,
	monstr@monstr.eu, linux-parisc@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-alpha@vger.kernel.org,
	nios2-dev@lists.rocketboards.org
Subject: Re: [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 07:29:08 -0800 (PST)	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions
Date: Thu, 07 Nov 2019 07:29:08 -0800 (PST)	[thread overview]
Message-ID: <mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-13-hch@lst.de>

On Mon, 28 Oct 2019 23:48:25 PDT (-0700), Christoph Hellwig wrote:
> Various architectures that use asm-generic/io.h still defined their
> own default versions of ioremap_nocache, ioremap_wt and ioremap_wc
> that point back to plain ioremap directly or indirectly.  Remove these
> definitions and rely on asm-generic/io.h instead.  For this to work
> the backup ioremap_* defintions needs to be changed to purely cpp
> macros instea of inlines to cover for architectures like openrisc
> that only define ioremap after including <asm-generic/io.h>.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  arch/arc/include/asm/io.h        |  4 ----
>  arch/arm/include/asm/io.h        |  1 -
>  arch/arm64/include/asm/io.h      |  2 --
>  arch/csky/include/asm/io.h       |  1 -
>  arch/ia64/include/asm/io.h       |  1 -
>  arch/microblaze/include/asm/io.h |  3 ---
>  arch/nios2/include/asm/io.h      |  4 ----
>  arch/openrisc/include/asm/io.h   |  1 -
>  arch/riscv/include/asm/io.h      | 10 ----------
>  arch/s390/include/asm/io.h       |  4 ----
>  arch/x86/include/asm/io.h        |  1 -
>  arch/xtensa/include/asm/io.h     |  4 ----
>  include/asm-generic/io.h         | 18 +++---------------
>  13 files changed, 3 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index 72f7929736f8..8f777d6441a5 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
>
>  extern void iounmap(const void __iomem *addr);
>
> -#define ioremap_nocache(phy, sz)	ioremap(phy, sz)
> -#define ioremap_wc(phy, sz)		ioremap(phy, sz)
> -#define ioremap_wt(phy, sz)		ioremap(phy, sz)
> -
>  /*
>   * io{read,write}{16,32}be() macros
>   */
> diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
> index 924f9dd502ed..aefdabdbeb84 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
>   */
>  void __iomem *ioremap(resource_size_t res_cookie, size_t size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  /*
>   * Do not use ioremap_cache for mapping memory. Use memremap instead.
> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 323cb306bd28..4e531f57147d 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
>  extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
> -#define ioremap_nocache(addr, size)	__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
> -#define ioremap_wt(addr, size)		__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
>
>  /*
>   * PCI configuration space mapping function.
> diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> index 80d071e2567f..a4b9fb616faa 100644
> --- a/arch/csky/include/asm/io.h
> +++ b/arch/csky/include/asm/io.h
> @@ -42,7 +42,6 @@ extern void iounmap(void *addr);
>
>  #define ioremap(addr, size)		__ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
>  #define ioremap_wc(addr, size)		__ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
> -#define ioremap_nocache(addr, size)	ioremap((addr), (size))
>  #define ioremap_cache			ioremap_cache
>
>  #include <asm-generic/io.h>
> diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> index fec9df9609ed..3d666a11a2de 100644
> --- a/arch/ia64/include/asm/io.h
> +++ b/arch/ia64/include/asm/io.h
> @@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
>  	return ioremap(phys_addr, size);
>  }
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>  #define ioremap_cache ioremap_cache
>  #define ioremap_uc ioremap_uc
>  #define iounmap iounmap
> diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
> index 86c95b2a1ce1..d33c61737b8b 100644
> --- a/arch/microblaze/include/asm/io.h
> +++ b/arch/microblaze/include/asm/io.h
> @@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
>  extern void iounmap(volatile void __iomem *addr);
>
>  extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
> -#define ioremap_nocache(addr, size)		ioremap((addr), (size))
> -#define ioremap_wc(addr, size)			ioremap((addr), (size))
> -#define ioremap_wt(addr, size)			ioremap((addr), (size))
>
>  #endif /* CONFIG_MMU */
>
> diff --git a/arch/nios2/include/asm/io.h b/arch/nios2/include/asm/io.h
> index 74ab34aa6731..d108937c321e 100644
> --- a/arch/nios2/include/asm/io.h
> +++ b/arch/nios2/include/asm/io.h
> @@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
>  	__iounmap(addr);
>  }
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  /* Pages to physical address... */
>  #define page_to_phys(page)	virt_to_phys(page_to_virt(page))
>
> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
> index 5b81a96ab85e..e18f038b2a6d 100644
> --- a/arch/openrisc/include/asm/io.h
> +++ b/arch/openrisc/include/asm/io.h
> @@ -25,7 +25,6 @@
>  #define PIO_OFFSET		0
>  #define PIO_MASK		0
>
> -#define ioremap_nocache ioremap
>  #include <asm-generic/io.h>
>  #include <asm/pgtable.h>
>
> diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h
> index fc1189ad3777..c1de6875cc77 100644
> --- a/arch/riscv/include/asm/io.h
> +++ b/arch/riscv/include/asm/io.h
> @@ -15,16 +15,6 @@
>  #include <asm/mmiowb.h>
>
>  extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
> -
> -/*
> - * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> - * change the properties of memory regions.  This should be fixed by the
> - * upcoming platform spec.
> - */
> -#define ioremap_nocache(addr, size) ioremap((addr), (size))
> -#define ioremap_wc(addr, size) ioremap((addr), (size))
> -#define ioremap_wt(addr, size) ioremap((addr), (size))
> -
>  extern void iounmap(volatile void __iomem *addr);
>
>  /* Generic IO read/write.  These perform native-endian accesses. */
> diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
> index ca421614722f..5a16f500515a 100644
> --- a/arch/s390/include/asm/io.h
> +++ b/arch/s390/include/asm/io.h
> @@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
>
>  #define IO_SPACE_LIMIT 0
>
> -#define ioremap_nocache(addr, size)	ioremap(addr, size)
> -#define ioremap_wc			ioremap_nocache
> -#define ioremap_wt			ioremap_nocache
> -
>  void __iomem *ioremap(unsigned long offset, unsigned long size);
>  void iounmap(volatile void __iomem *addr);
>
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 6b5cc41319a7..9997521fc5cd 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
>   */
>  void __iomem *ioremap(resource_size_t offset, unsigned long size);
>  #define ioremap ioremap
> -#define ioremap_nocache ioremap
>
>  extern void iounmap(volatile void __iomem *addr);
>  #define iounmap iounmap
> diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h
> index 441fb56926a7..54188e69b988 100644
> --- a/arch/xtensa/include/asm/io.h
> +++ b/arch/xtensa/include/asm/io.h
> @@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
>  }
>  #define ioremap_cache ioremap_cache
>
> -#define ioremap_nocache ioremap
> -#define ioremap_wc ioremap
> -#define ioremap_wt ioremap
> -
>  static inline void iounmap(volatile void __iomem *addr)
>  {
>  	unsigned long va = (unsigned long) addr;
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 6a5edc23afe2..4e45e1cb6560 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
>  #endif /* CONFIG_MMU */
>
>  #ifndef ioremap_nocache
> -#define ioremap_nocache ioremap_nocache
> -static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
> -{
> -	return ioremap(offset, size);
> -}
> +#define ioremap_nocache ioremap
>  #endif
>
>  #ifndef ioremap_wc
> -#define ioremap_wc ioremap_wc
> -static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wc ioremap
>  #endif
>
>  #ifndef ioremap_wt
> -#define ioremap_wt ioremap_wt
> -static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
> -{
> -	return ioremap_nocache(offset, size);
> -}
> +#define ioremap_wt ioremap
>  #endif
>
>  /*

Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>

  reply	other threads:[~2019-11-07 15:29 UTC|newest]

Thread overview: 557+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-17 17:45 generic ioremap (and lots of cleanups) v2 Christoph Hellwig
2019-10-17 17:45 ` Christoph Hellwig
2019-10-17 17:45 ` Christoph Hellwig
2019-10-17 17:45 ` Christoph Hellwig
2019-10-17 17:45 ` Christoph Hellwig
2019-10-17 17:45 ` Christoph Hellwig
2019-10-17 17:45 ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 01/21] arm: remove ioremap_cached Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 02/21] unicore32: " Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 03/21] ia64: rename ioremap_nocache to ioremap_uc Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-21  8:47   ` Sergei Shtylyov
2019-10-21  8:47     ` [OpenRISC] " Sergei Shtylyov
2019-10-21  8:47     ` Sergei Shtylyov
2019-10-21  8:47     ` Sergei Shtylyov
2019-10-21  8:47     ` Sergei Shtylyov
2019-10-21  8:47     ` Sergei Shtylyov
2019-10-21  8:47     ` Sergei Shtylyov
2019-10-17 17:45 ` [PATCH 04/21] hexagon: clean up ioremap Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 05/21] alpha: remove the unused __ioremap wrapper Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 06/21] nios2: remove __ioremap Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 07/21] parisc: " Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 21:35   ` Rolf Eike Beer
2019-10-17 21:35     ` Rolf Eike Beer
2019-10-17 21:35     ` Rolf Eike Beer
2019-10-17 21:35     ` Rolf Eike Beer
2019-10-17 21:35     ` Rolf Eike Beer
2019-10-17 21:35     ` Rolf Eike Beer
2019-10-17 17:45 ` [PATCH 08/21] x86: clean up ioremap Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-21  8:23   ` Thomas Gleixner
2019-10-21  8:23     ` [OpenRISC] " Thomas Gleixner
2019-10-21  8:23     ` Thomas Gleixner
2019-10-21  8:23     ` Thomas Gleixner
2019-10-21  8:23     ` Thomas Gleixner
2019-10-21  8:23     ` Thomas Gleixner
2019-10-21  8:23     ` Thomas Gleixner
2019-10-28 15:29     ` Christoph Hellwig
2019-10-28 15:29       ` [OpenRISC] " Christoph Hellwig
2019-10-28 15:29       ` Christoph Hellwig
2019-10-28 15:29       ` Christoph Hellwig
2019-10-28 15:29       ` Christoph Hellwig
2019-10-28 15:29       ` Christoph Hellwig
2019-10-28 15:29       ` Christoph Hellwig
2019-10-28 15:29       ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 09/21] xtensa: " Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 11/21] asm-generic: don't provide ioremap for CONFIG_MMU Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 13/21] m68k: rename __iounmap and mark it static Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-18  7:30   ` Geert Uytterhoeven
2019-10-18  7:30     ` Geert Uytterhoeven
2019-10-18  7:30     ` Geert Uytterhoeven
2019-10-18  7:30     ` Geert Uytterhoeven
2019-10-18  7:30     ` Geert Uytterhoeven
2019-10-18  7:30     ` Geert Uytterhoeven
2019-10-18  7:30     ` Geert Uytterhoeven
2019-10-17 17:45 ` [PATCH 14/21] hexagon: remove __iounmap Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 15/21] nios2: " Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 16/21] sh: " Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 17/21] lib: provide a simple generic ioremap implementation Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 18/21] riscv: use the generic ioremap code Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-18  3:42   ` Paul Walmsley
2019-10-18  3:42     ` Paul Walmsley
2019-10-18  3:42     ` Paul Walmsley
2019-10-18  3:42     ` Paul Walmsley
2019-10-18  3:42     ` Paul Walmsley
2019-10-18  3:42     ` Paul Walmsley
2019-10-18  3:42     ` Paul Walmsley
2019-10-17 17:45 ` [PATCH 19/21] nds32: use generic ioremap Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 20/21] csky: remove ioremap_cache Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-21  7:58   ` Guo Ren
2019-10-21  7:58     ` [OpenRISC] " Guo Ren
2019-10-21  7:58     ` Guo Ren
2019-10-21  7:58     ` Guo Ren
2019-10-21  7:58     ` Guo Ren
2019-10-21  7:58     ` Guo Ren
2019-10-21  7:58     ` Guo Ren
2019-11-05  1:26     ` Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-11-05  1:26       ` [OpenRISC] " Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-11-05  1:26       ` Christoph Hellwig
2019-10-17 17:45 ` [PATCH 21/21] csky: use generic ioremap Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-17 17:45   ` Christoph Hellwig
2019-10-29  6:48 ` generic ioremap (and lots of cleanups) v3 Christoph Hellwig
2019-10-29  6:48   ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48   ` Christoph Hellwig
2019-10-29  6:48   ` Christoph Hellwig
2019-10-29  6:48   ` Christoph Hellwig
2019-10-29  6:48   ` Christoph Hellwig
2019-10-29  6:48   ` Christoph Hellwig
2019-10-29  6:48   ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 01/21] arm: remove ioremap_cached Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-11 10:33     ` Arnd Bergmann
2019-11-11 10:33       ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-11-11 10:33       ` Arnd Bergmann
2019-10-29  6:48   ` [PATCH 02/21] unicore32: " Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 03/21] ia64: rename ioremap_nocache to ioremap_uc Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-11 10:36     ` Arnd Bergmann
2019-11-11 10:36       ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-11-11 10:36       ` Arnd Bergmann
2019-10-29  6:48   ` [PATCH 04/21] hexagon: clean up ioremap Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 05/21] alpha: remove the unused __ioremap wrapper Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 06/21] nios2: remove __ioremap Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 07/21] parisc: " Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-05 14:29     ` Helge Deller
2019-11-05 14:29       ` [OpenRISC] " Helge Deller
2019-11-05 14:29       ` Helge Deller
2019-11-05 14:29       ` Helge Deller
2019-11-05 14:29       ` Helge Deller
2019-11-05 14:29       ` Helge Deller
2019-11-05 14:29       ` Helge Deller
2019-11-05 14:29       ` Helge Deller
2019-10-29  6:48   ` [PATCH 08/21] x86: Clean up ioremap() Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-30 10:39     ` Thomas Gleixner
2019-10-30 10:39       ` [OpenRISC] " Thomas Gleixner
2019-10-30 10:39       ` Thomas Gleixner
2019-10-30 10:39       ` Thomas Gleixner
2019-10-30 10:39       ` Thomas Gleixner
2019-10-30 10:39       ` Thomas Gleixner
2019-10-30 10:39       ` Thomas Gleixner
2019-10-29  6:48   ` [PATCH 09/21] xtensa: clean up ioremap Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-06 17:56     ` Palmer Dabbelt
2019-11-06 17:56       ` [OpenRISC] " Palmer Dabbelt
2019-11-06 17:56       ` Palmer Dabbelt
2019-11-06 17:56       ` Palmer Dabbelt
2019-11-06 17:56       ` Palmer Dabbelt
2019-11-06 17:56       ` Palmer Dabbelt
2019-11-06 17:56       ` Palmer Dabbelt
2019-11-11 10:09     ` Arnd Bergmann
2019-11-11 10:09       ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:09       ` Arnd Bergmann
2019-11-11 10:15       ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` [OpenRISC] " Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:15         ` Christoph Hellwig
2019-11-11 10:27         ` Arnd Bergmann
2019-11-11 10:27           ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:27           ` Arnd Bergmann
2019-11-11 10:29           ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` [OpenRISC] " Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 10:29             ` Christoph Hellwig
2019-11-11 19:33             ` Arnd Bergmann
2019-11-11 19:33               ` [OpenRISC] " Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-11-11 19:33               ` Arnd Bergmann
2019-10-29  6:48   ` [PATCH 11/21] asm-generic: don't provide ioremap for CONFIG_MMU Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-06 18:11     ` Palmer Dabbelt
2019-11-06 18:11       ` [OpenRISC] " Palmer Dabbelt
2019-11-06 18:11       ` Palmer Dabbelt
2019-11-06 18:11       ` Palmer Dabbelt
2019-11-06 18:11       ` Palmer Dabbelt
2019-11-06 18:11       ` Palmer Dabbelt
2019-11-06 18:11       ` Palmer Dabbelt
2019-11-06 18:16       ` Geert Uytterhoeven
2019-11-06 18:16         ` [OpenRISC] " Geert Uytterhoeven
2019-11-06 18:16         ` Geert Uytterhoeven
2019-11-06 18:16         ` Geert Uytterhoeven
2019-11-06 18:16         ` Geert Uytterhoeven
2019-11-06 18:16         ` Geert Uytterhoeven
2019-11-06 18:16         ` Geert Uytterhoeven
2019-11-06 18:16         ` Geert Uytterhoeven
2019-11-06 18:28         ` Christoph Hellwig
2019-11-06 18:28           ` [OpenRISC] " Christoph Hellwig
2019-11-06 18:28           ` Christoph Hellwig
2019-11-06 18:28           ` Christoph Hellwig
2019-11-06 18:28           ` Christoph Hellwig
2019-11-06 18:28           ` Christoph Hellwig
2019-11-06 18:28           ` Christoph Hellwig
2019-11-06 18:28           ` Christoph Hellwig
2019-11-11 10:31         ` Arnd Bergmann
2019-11-11 10:31           ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:31           ` Arnd Bergmann
2019-11-11 10:29     ` Arnd Bergmann
2019-11-11 10:29       ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-11-11 10:29       ` Arnd Bergmann
2019-10-29  6:48   ` [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-07 15:29     ` Palmer Dabbelt [this message]
2019-11-07 15:29       ` [OpenRISC] " Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-11 10:10     ` Arnd Bergmann
2019-11-11 10:10       ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-10-29  6:48   ` [PATCH 13/21] m68k: rename __iounmap and mark it static Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-30  8:51     ` Geert Uytterhoeven
2019-10-30  8:51       ` [OpenRISC] " Geert Uytterhoeven
2019-10-30  8:51       ` Geert Uytterhoeven
2019-10-30  8:51       ` Geert Uytterhoeven
2019-10-30  8:51       ` Geert Uytterhoeven
2019-10-30  8:51       ` Geert Uytterhoeven
2019-10-30  8:51       ` Geert Uytterhoeven
2019-10-30  8:51       ` Geert Uytterhoeven
2019-10-29  6:48   ` [PATCH 14/21] hexagon: remove __iounmap Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 15/21] nios2: " Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 16/21] sh: " Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 17/21] lib: provide a simple generic ioremap implementation Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-07 15:29     ` Palmer Dabbelt
2019-11-07 15:29       ` [OpenRISC] " Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-07 15:29       ` Palmer Dabbelt
2019-11-11 10:10     ` Arnd Bergmann
2019-11-11 10:10       ` [OpenRISC] " Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-11-11 10:10       ` Arnd Bergmann
2019-10-29  6:48   ` [PATCH 18/21] riscv: use the generic ioremap code Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 19/21] nds32: use generic ioremap Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-12  8:51     ` Greentime Hu
2019-11-12  8:51       ` [OpenRISC] " Greentime Hu
2019-11-12  8:51       ` Greentime Hu
2019-11-12  8:51       ` Greentime Hu
2019-11-12  8:51       ` Greentime Hu
2019-11-12  8:51       ` Greentime Hu
2019-11-12  8:51       ` Greentime Hu
2019-11-12  8:51       ` Greentime Hu
2019-10-29  6:48   ` [PATCH 20/21] csky: remove ioremap_cache Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48   ` [PATCH 21/21] csky: use generic ioremap Christoph Hellwig
2019-10-29  6:48     ` [OpenRISC] " Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-10-29  6:48     ` Christoph Hellwig
2019-11-05  1:31   ` generic ioremap (and lots of cleanups) v3 Christoph Hellwig
2019-11-05  1:31     ` [OpenRISC] " Christoph Hellwig
2019-11-05  1:31     ` Christoph Hellwig
2019-11-05  1:31     ` Christoph Hellwig
2019-11-05  1:31     ` Christoph Hellwig
2019-11-05  1:31     ` Christoph Hellwig
2019-11-05  1:31     ` Christoph Hellwig
2019-11-07 20:47   ` generic-iomap tree for linux-next Christoph Hellwig
2019-11-07 20:47     ` [OpenRISC] " Christoph Hellwig
2019-11-07 20:47     ` Christoph Hellwig
2019-11-07 20:47     ` Christoph Hellwig
2019-11-08  2:20     ` Stephen Rothwell
2019-11-08  2:20       ` [OpenRISC] " Stephen Rothwell
2019-11-08  2:20       ` Stephen Rothwell
2019-11-08  2:20       ` Stephen Rothwell
2019-11-08  2:20       ` Stephen Rothwell
2019-11-08  2:20       ` Stephen Rothwell
2019-11-08  2:20       ` Stephen Rothwell
2019-11-08  4:52       ` Stephen Rothwell
2019-11-08  4:52         ` [OpenRISC] " Stephen Rothwell
2019-11-08  4:52         ` Stephen Rothwell
2019-11-08  4:52         ` Stephen Rothwell
2019-11-08  4:52         ` Stephen Rothwell
2019-11-08  4:52         ` Stephen Rothwell
2019-11-08  4:52         ` Stephen Rothwell
2019-11-08  5:14         ` Christoph Hellwig
2019-11-08  5:14           ` [OpenRISC] " Christoph Hellwig
2019-11-08  5:14           ` Christoph Hellwig
2019-11-08  5:14           ` Christoph Hellwig
2019-11-08  5:14           ` Christoph Hellwig
2019-11-08  5:14           ` Christoph Hellwig
2019-11-08  5:14           ` Christoph Hellwig
2019-11-08  5:14           ` Christoph Hellwig

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=mhng-fd2a8aae-e87e-44dd-9416-57bb380955d9@palmer-si-x1c4 \
    --to=palmer@dabbelt.com \
    --cc=arnd@arndb.de \
    --cc=deanbo422@gmail.com \
    --cc=green.hu@gmail.com \
    --cc=guoren@kernel.org \
    --cc=gxt@pku.edu.cn \
    --cc=hch@lst.de \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=monstr@monstr.eu \
    --cc=nios2-dev@lists.rocketboards.org \
    --cc=openrisc@lists.librecores.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=x86@kernel.org \
    /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.