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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 15:29:10 +0000	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 07:29:10 -0800 (PST)	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 07:29:10 -0800 (PST)	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

_______________________________________________
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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 07:29:10 -0800 (PST)	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

______________________________________________________
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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 07:29:10 -0800 (PST)	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

_______________________________________________
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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 07:29:10 -0800 (PST)	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

_______________________________________________
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 17/21] lib: provide a simple generic ioremap implementation
Date: Thu, 07 Nov 2019 07:29:10 -0800 (PST)	[thread overview]
Message-ID: <mhng-e96b8613-e384-4e94-90f8-d1cf78c5627a@palmer-si-x1c4> (raw)
In-Reply-To: <20191029064834.23438-18-hch@lst.de>

On Mon, 28 Oct 2019 23:48:30 PDT (-0700), Christoph Hellwig wrote:
> A lot of architectures reuse the same simple ioremap implementation, so
> start lifting the most simple variant to lib/ioremap.c.  It provides
> ioremap_prot and iounmap, plus a default ioremap that uses prot_noncached,
> although that can be overridden by asm/io.h.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  include/asm-generic/io.h | 20 ++++++++++++++++----
>  lib/Kconfig              |  3 +++
>  lib/ioremap.c            | 39 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+), 4 deletions(-)
>
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 4e45e1cb6560..4a661fdd1937 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -923,9 +923,10 @@ static inline void *phys_to_virt(unsigned long address)
>   * DOC: ioremap() and ioremap_*() variants
>   *
>   * Architectures with an MMU are expected to provide ioremap() and iounmap()
> - * themselves.  For NOMMU architectures we provide a default nop-op
> - * implementation that expect that the physical address used for MMIO are
> - * already marked as uncached, and can be used as kernel virtual addresses.
> + * themselves or rely on GENERIC_IOREMAP.  For NOMMU architectures we provide
> + * a default nop-op implementation that expect that the physical address used
> + * for MMIO are already marked as uncached, and can be used as kernel virtual
> + * addresses.
>   *
>   * ioremap_wc() and ioremap_wt() can provide more relaxed caching attributes
>   * for specific drivers if the architecture choses to implement them.  If they
> @@ -946,7 +947,18 @@ static inline void iounmap(void __iomem *addr)
>  {
>  }
>  #endif
> -#endif /* CONFIG_MMU */
> +#elif defined(CONFIG_GENERIC_IOREMAP)
> +#include <asm/pgtable.h>
> +
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> +void iounmap(volatile void __iomem *addr);
> +
> +static inline void __iomem *ioremap(phys_addr_t addr, size_t size)
> +{
> +	/* _PAGE_IOREMAP needs to be supplied by the architecture */
> +	return ioremap_prot(addr, size, _PAGE_IOREMAP);
> +}
> +#endif /* !CONFIG_MMU || CONFIG_GENERIC_IOREMAP */
>
>  #ifndef ioremap_nocache
>  #define ioremap_nocache ioremap
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 183f92a297ca..afc78aaf2b25 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -638,6 +638,9 @@ config STRING_SELFTEST
>
>  endmenu
>
> +config GENERIC_IOREMAP
> +	bool
> +
>  config GENERIC_LIB_ASHLDI3
>  	bool
>
> diff --git a/lib/ioremap.c b/lib/ioremap.c
> index 0a2ffadc6d71..3f0e18543de8 100644
> --- a/lib/ioremap.c
> +++ b/lib/ioremap.c
> @@ -231,3 +231,42 @@ int ioremap_page_range(unsigned long addr,
>
>  	return err;
>  }
> +
> +#ifdef CONFIG_GENERIC_IOREMAP
> +void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
> +{
> +	unsigned long offset, vaddr;
> +	phys_addr_t last_addr;
> +	struct vm_struct *area;
> +
> +	/* Disallow wrap-around or zero size */
> +	last_addr = addr + size - 1;
> +	if (!size || last_addr < addr)
> +		return NULL;
> +
> +	/* Page-align mappings */
> +	offset = addr & (~PAGE_MASK);
> +	addr -= offset;
> +	size = PAGE_ALIGN(size + offset);
> +
> +	area = get_vm_area_caller(size, VM_IOREMAP,
> +			__builtin_return_address(0));
> +	if (!area)
> +		return NULL;
> +	vaddr = (unsigned long)area->addr;
> +
> +	if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) {
> +		free_vm_area(area);
> +		return NULL;
> +	}
> +
> +	return (void __iomem *)(vaddr + offset);
> +}
> +EXPORT_SYMBOL(ioremap_prot);
> +
> +void iounmap(volatile void __iomem *addr)
> +{
> +	vunmap((void *)((unsigned long)addr & PAGE_MASK));
> +}
> +EXPORT_SYMBOL(iounmap);
> +#endif /* CONFIG_GENERIC_IOREMAP */

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

Thanks!  This should let us get rid of arch/riscv/mm/ioremap.c.

  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
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 [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 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-e96b8613-e384-4e94-90f8-d1cf78c5627a@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.