All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>,
	Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	x86@kernel.org
Cc: 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: [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 06:48:32 +0000	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>,
	Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	x86@kernel.org
Cc: 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: [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 07:48:32 +0100	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1


WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>,
	Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	x86@kernel.org
Cc: linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-xtensa@linux-xtensa.org, linux-mips@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	openrisc@lists.librecores.org, linux-mtd@lists.infradead.org,
	linux-alpha@vger.kernel.org, sparclinux@vger.kernel.org,
	nios2-dev@lists.rocketboards.org,
	linux-riscv@lists.infradead.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 07:48:32 +0100	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1


_______________________________________________
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: Christoph Hellwig <hch@lst.de>
To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>,
	Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	x86@kernel.org
Cc: linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-xtensa@linux-xtensa.org, linux-mips@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	openrisc@lists.librecores.org, linux-mtd@lists.infradead.org,
	linux-alpha@vger.kernel.org, sparclinux@vger.kernel.org,
	nios2-dev@lists.rocketboards.org,
	linux-riscv@lists.infradead.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 07:48:32 +0100	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1


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

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>,
	Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	x86@kernel.org
Cc: linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-xtensa@linux-xtensa.org, linux-mips@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	openrisc@lists.librecores.org, linux-mtd@lists.infradead.org,
	linux-alpha@vger.kernel.org, sparclinux@vger.kernel.org,
	nios2-dev@lists.rocketboards.org,
	linux-riscv@lists.infradead.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 07:48:32 +0100	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1


_______________________________________________
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: Christoph Hellwig <hch@lst.de>
To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>,
	Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	x86@kernel.org
Cc: linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-xtensa@linux-xtensa.org, linux-mips@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	openrisc@lists.librecores.org, linux-mtd@lists.infradead.org,
	linux-alpha@vger.kernel.org, sparclinux@vger.kernel.org,
	nios2-dev@lists.rocketboards.org,
	linux-riscv@lists.infradead.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 07:48:32 +0100	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1


_______________________________________________
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: Christoph Hellwig <hch@lst.de>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH 19/21] nds32: use generic ioremap
Date: Tue, 29 Oct 2019 07:48:32 +0100	[thread overview]
Message-ID: <20191029064834.23438-20-hch@lst.de> (raw)
In-Reply-To: <20191029064834.23438-1-hch@lst.de>

Use the generic ioremap_prot and iounmap helpers.

Note that the io.h include in pgtable.h had to be removed to not create
an include loop.  As far as I can tell there was no need for it to
start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/nds32/Kconfig               |  1 +
 arch/nds32/include/asm/io.h      |  3 +-
 arch/nds32/include/asm/pgtable.h |  4 ++-
 arch/nds32/mm/Makefile           |  3 +-
 arch/nds32/mm/ioremap.c          | 62 --------------------------------
 5 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 arch/nds32/mm/ioremap.c

diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index fbd68329737f..12c06a833b7c 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -20,6 +20,7 @@ config NDS32
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_IOREMAP
 	select GENERIC_LIB_ASHLDI3
 	select GENERIC_LIB_ASHRDI3
 	select GENERIC_LIB_CMPDI2
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
index fb0e8a24c7af..e57378d04006 100644
--- a/arch/nds32/include/asm/io.h
+++ b/arch/nds32/include/asm/io.h
@@ -6,8 +6,6 @@
 
 #include <linux/types.h>
 
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-extern void iounmap(volatile void __iomem *addr);
 #define __raw_writeb __raw_writeb
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
@@ -80,6 +78,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)
 #define writeb(v,c)	({ __iowmb(); writeb_relaxed((v),(c)); })
 #define writew(v,c)	({ __iowmb(); writew_relaxed((v),(c)); })
 #define writel(v,c)	({ __iowmb(); writel_relaxed((v),(c)); })
+
 #include <asm-generic/io.h>
 
 #endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
index 0588ec99725c..6fbf251cfc26 100644
--- a/arch/nds32/include/asm/pgtable.h
+++ b/arch/nds32/include/asm/pgtable.h
@@ -12,7 +12,6 @@
 #include <asm/nds32.h>
 #ifndef __ASSEMBLY__
 #include <asm/fixmap.h>
-#include <asm/io.h>
 #include <nds32_intrinsic.h>
 #endif
 
@@ -130,6 +129,9 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
 #define _PAGE_CACHE		_PAGE_C_MEM_WB
 #endif
 
+#define _PAGE_IOREMAP \
+	(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
+
 /*
  * + Level 1 descriptor (PMD)
  */
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
index bd360e4583b5..897ecaf5cf54 100644
--- a/arch/nds32/mm/Makefile
+++ b/arch/nds32/mm/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-obj-y				:= extable.o tlb.o \
-				   fault.o init.o ioremap.o mmap.o \
+obj-y				:= extable.o tlb.o fault.o init.o mmap.o \
                                    mm-nds32.o cacheflush.o proc.o
 
 obj-$(CONFIG_ALIGNMENT_TRAP)	+= alignment.o
diff --git a/arch/nds32/mm/ioremap.c b/arch/nds32/mm/ioremap.c
deleted file mode 100644
index 690140bb23a2..000000000000
--- a/arch/nds32/mm/ioremap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/vmalloc.h>
-#include <linux/io.h>
-#include <linux/mm.h>
-#include <asm/pgtable.h>
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size);
-
-static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
-				      void *caller)
-{
-	struct vm_struct *area;
-	unsigned long addr, offset, last_addr;
-	pgprot_t prot;
-
-	/* Don't allow wraparound or zero size */
-	last_addr = phys_addr + size - 1;
-	if (!size || last_addr < phys_addr)
-		return NULL;
-
-	/*
-	 * Mappings have to be page-aligned
-	 */
-	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PAGE_MASK;
-	size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-	/*
-	 * Ok, go for it..
-	 */
-	area = get_vm_area_caller(size, VM_IOREMAP, caller);
-	if (!area)
-		return NULL;
-
-	area->phys_addr = phys_addr;
-	addr = (unsigned long)area->addr;
-	prot = __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D |
-			_PAGE_G | _PAGE_C_DEV);
-	if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-		vunmap((void *)addr);
-		return NULL;
-	}
-	return (__force void __iomem *)(offset + (char *)addr);
-
-}
-
-void __iomem *ioremap(phys_addr_t phys_addr, size_t size)
-{
-	return __ioremap_caller(phys_addr, size,
-				__builtin_return_address(0));
-}
-
-EXPORT_SYMBOL(ioremap);
-
-void iounmap(volatile void __iomem * addr)
-{
-	vunmap((void *)(PAGE_MASK & (unsigned long)addr));
-}
-
-EXPORT_SYMBOL(iounmap);
-- 
2.20.1


  parent reply	other threads:[~2019-10-29  6:48 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
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   ` Christoph Hellwig [this message]
2019-10-29  6:48     ` [OpenRISC] [PATCH 19/21] nds32: use generic ioremap 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=20191029064834.23438-20-hch@lst.de \
    --to=hch@lst.de \
    --cc=arnd@arndb.de \
    --cc=deanbo422@gmail.com \
    --cc=green.hu@gmail.com \
    --cc=guoren@kernel.org \
    --cc=gxt@pku.edu.cn \
    --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.