Message ID | 20190817073253.27819-6-hch@lst.de |
---|---|
State | Not Applicable |
Headers | show |
Series | [01/26] mtd/maps/pxa2xx: use ioremap_cache insted of ioremap_cached | expand |
On Sat, Aug 17, 2019 at 09:32:32AM +0200, Christoph Hellwig wrote: > Openrisc is the only architecture not mapping ioremap as uncached, > which has been the default since the Linux 2.6.x days. Switch it > over to implement uncached semantics by default. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > arch/openrisc/include/asm/io.h | 20 +++----------------- > arch/openrisc/include/asm/pgtable.h | 2 +- > arch/openrisc/mm/ioremap.c | 8 ++++---- > 3 files changed, 8 insertions(+), 22 deletions(-) Acked-by: Stafford Horne <shorne@gmail.com> Thanks, -Stafford
On Fri, Aug 23, 2019 at 10:55:39PM +0900, Stafford Horne wrote: > On Sat, Aug 17, 2019 at 09:32:32AM +0200, Christoph Hellwig wrote: > > Openrisc is the only architecture not mapping ioremap as uncached, > > which has been the default since the Linux 2.6.x days. Switch it > > over to implement uncached semantics by default. > > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > --- > > arch/openrisc/include/asm/io.h | 20 +++----------------- > > arch/openrisc/include/asm/pgtable.h | 2 +- > > arch/openrisc/mm/ioremap.c | 8 ++++---- > > 3 files changed, 8 insertions(+), 22 deletions(-) > > Acked-by: Stafford Horne <shorne@gmail.com> Can you send this one to Linus for 5.4? That would help with the possibility to remove ioremap_nocache after that.
On Fri, Aug 30, 2019 at 06:07:05PM +0200, Christoph Hellwig wrote: > On Fri, Aug 23, 2019 at 10:55:39PM +0900, Stafford Horne wrote: > > On Sat, Aug 17, 2019 at 09:32:32AM +0200, Christoph Hellwig wrote: > > > Openrisc is the only architecture not mapping ioremap as uncached, > > > which has been the default since the Linux 2.6.x days. Switch it > > > over to implement uncached semantics by default. > > > > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > > --- > > > arch/openrisc/include/asm/io.h | 20 +++----------------- > > > arch/openrisc/include/asm/pgtable.h | 2 +- > > > arch/openrisc/mm/ioremap.c | 8 ++++---- > > > 3 files changed, 8 insertions(+), 22 deletions(-) > > > > Acked-by: Stafford Horne <shorne@gmail.com> > > Can you send this one to Linus for 5.4? That would help with the > possibility to remove ioremap_nocache after that. Sure, I will pick this up. -Stafford
diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h index 06a710757789..5b81a96ab85e 100644 --- a/arch/openrisc/include/asm/io.h +++ b/arch/openrisc/include/asm/io.h @@ -25,25 +25,11 @@ #define PIO_OFFSET 0 #define PIO_MASK 0 -#define ioremap_nocache ioremap_nocache +#define ioremap_nocache ioremap #include <asm-generic/io.h> #include <asm/pgtable.h> -extern void __iomem *__ioremap(phys_addr_t offset, unsigned long size, - pgprot_t prot); - -static inline void __iomem *ioremap(phys_addr_t offset, size_t size) -{ - return __ioremap(offset, size, PAGE_KERNEL); -} - -/* #define _PAGE_CI 0x002 */ -static inline void __iomem *ioremap_nocache(phys_addr_t offset, - unsigned long size) -{ - return __ioremap(offset, size, - __pgprot(pgprot_val(PAGE_KERNEL) | _PAGE_CI)); -} - +void __iomem *ioremap(phys_addr_t offset, unsigned long size); extern void iounmap(void *addr); + #endif diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h index 497fd908a4c4..2fe9ff5b5d6f 100644 --- a/arch/openrisc/include/asm/pgtable.h +++ b/arch/openrisc/include/asm/pgtable.h @@ -97,7 +97,7 @@ extern void paging_init(void); /* Define some higher level generic page attributes. * * If you change _PAGE_CI definition be sure to change it in - * io.h for ioremap_nocache() too. + * io.h for ioremap() too. */ /* diff --git a/arch/openrisc/mm/ioremap.c b/arch/openrisc/mm/ioremap.c index e0c551ca0891..8f8e97f7eac9 100644 --- a/arch/openrisc/mm/ioremap.c +++ b/arch/openrisc/mm/ioremap.c @@ -34,8 +34,7 @@ static unsigned int fixmaps_used __initdata; * have to convert them into an offset in a page-aligned mapping, but the * caller shouldn't need to know that small detail. */ -void __iomem *__ref -__ioremap(phys_addr_t addr, unsigned long size, pgprot_t prot) +void __iomem *__ref ioremap(phys_addr_t addr, unsigned long size) { phys_addr_t p; unsigned long v; @@ -66,7 +65,8 @@ __ioremap(phys_addr_t addr, unsigned long size, pgprot_t prot) fixmaps_used += (size >> PAGE_SHIFT); } - if (ioremap_page_range(v, v + size, p, prot)) { + if (ioremap_page_range(v, v + size, p, + __pgprot(pgprot_val(PAGE_KERNEL) | _PAGE_CI))) { if (likely(mem_init_done)) vfree(area->addr); else @@ -76,7 +76,7 @@ __ioremap(phys_addr_t addr, unsigned long size, pgprot_t prot) return (void __iomem *)(offset + (char *)v); } -EXPORT_SYMBOL(__ioremap); +EXPORT_SYMBOL(ioremap); void iounmap(void *addr) {
Openrisc is the only architecture not mapping ioremap as uncached, which has been the default since the Linux 2.6.x days. Switch it over to implement uncached semantics by default. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/openrisc/include/asm/io.h | 20 +++----------------- arch/openrisc/include/asm/pgtable.h | 2 +- arch/openrisc/mm/ioremap.c | 8 ++++---- 3 files changed, 8 insertions(+), 22 deletions(-)