Commit 02755af0 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'parisc-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fixes from Helge Deller:

 - Fix a parisc-specific fallout of Christoph's
   dma_set_mask_and_coherent() patches (Sven)

 - Fix a vmap memory leak in ioremap()/ioremap() (Helge)

 - Some minor cleanups and documentation updates (Nick, Helge)

* 'parisc-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Remove 32-bit DMA enforcement from sba_iommu
  parisc: Fix vmap memory leak in ioremap()/iounmap()
  parisc: prefer __section from compiler_attributes.h
  parisc: sysctl.c: Use CONFIG_PARISC instead of __hppa_ define
  MAINTAINERS: Add hp_sdc drivers to parisc arch
parents 37b238da c32c47aa
...@@ -12312,12 +12312,15 @@ F: arch/parisc/ ...@@ -12312,12 +12312,15 @@ F: arch/parisc/
F: Documentation/parisc/ F: Documentation/parisc/
F: drivers/parisc/ F: drivers/parisc/
F: drivers/char/agp/parisc-agp.c F: drivers/char/agp/parisc-agp.c
F: drivers/input/misc/hp_sdc_rtc.c
F: drivers/input/serio/gscps2.c F: drivers/input/serio/gscps2.c
F: drivers/input/serio/hp_sdc*
F: drivers/parport/parport_gsc.* F: drivers/parport/parport_gsc.*
F: drivers/tty/serial/8250/8250_gsc.c F: drivers/tty/serial/8250/8250_gsc.c
F: drivers/video/fbdev/sti* F: drivers/video/fbdev/sti*
F: drivers/video/console/sti* F: drivers/video/console/sti*
F: drivers/video/logo/logo_parisc* F: drivers/video/logo/logo_parisc*
F: include/linux/hp_sdc.h
PARMAN PARMAN
M: Jiri Pirko <jiri@mellanox.com> M: Jiri Pirko <jiri@mellanox.com>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#define ARCH_DMA_MINALIGN L1_CACHE_BYTES #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
#define __read_mostly __attribute__((__section__(".data..read_mostly"))) #define __read_mostly __section(.data..read_mostly)
void parisc_cache_init(void); /* initializes cache-flushing */ void parisc_cache_init(void); /* initializes cache-flushing */
void disable_sr_hashing_asm(int); /* low level support for above */ void disable_sr_hashing_asm(int); /* low level support for above */
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
}) })
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
# define __lock_aligned __attribute__((__section__(".data..lock_aligned"))) # define __lock_aligned __section(.data..lock_aligned)
#endif #endif
#endif /* __PARISC_LDCW_H */ #endif /* __PARISC_LDCW_H */
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* arch/parisc/mm/ioremap.c * arch/parisc/mm/ioremap.c
* *
* (C) Copyright 1995 1996 Linus Torvalds * (C) Copyright 1995 1996 Linus Torvalds
* (C) Copyright 2001-2006 Helge Deller <deller@gmx.de> * (C) Copyright 2001-2019 Helge Deller <deller@gmx.de>
* (C) Copyright 2005 Kyle McMartin <kyle@parisc-linux.org> * (C) Copyright 2005 Kyle McMartin <kyle@parisc-linux.org>
*/ */
...@@ -84,7 +84,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l ...@@ -84,7 +84,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
addr = (void __iomem *) area->addr; addr = (void __iomem *) area->addr;
if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size, if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
phys_addr, pgprot)) { phys_addr, pgprot)) {
vfree(addr); vunmap(addr);
return NULL; return NULL;
} }
...@@ -92,9 +92,11 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l ...@@ -92,9 +92,11 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
} }
EXPORT_SYMBOL(__ioremap); EXPORT_SYMBOL(__ioremap);
void iounmap(const volatile void __iomem *addr) void iounmap(const volatile void __iomem *io_addr)
{ {
if (addr > high_memory) unsigned long addr = (unsigned long)io_addr & PAGE_MASK;
return vfree((void *) (PAGE_MASK & (unsigned long __force) addr));
if (is_vmalloc_addr((void *)addr))
vunmap((void *)addr);
} }
EXPORT_SYMBOL(iounmap); EXPORT_SYMBOL(iounmap);
...@@ -678,14 +678,6 @@ static int sba_dma_supported( struct device *dev, u64 mask) ...@@ -678,14 +678,6 @@ static int sba_dma_supported( struct device *dev, u64 mask)
return(0); return(0);
} }
/* Documentation/DMA-API-HOWTO.txt tells drivers to try 64-bit
* first, then fall back to 32-bit if that fails.
* We are just "encouraging" 32-bit DMA masks here since we can
* never allow IOMMU bypass unless we add special support for ZX1.
*/
if (mask > ~0U)
return 0;
ioc = GET_IOC(dev); ioc = GET_IOC(dev);
if (!ioc) if (!ioc)
return 0; return 0;
......
...@@ -163,7 +163,7 @@ static unsigned long hung_task_timeout_max = (LONG_MAX/HZ); ...@@ -163,7 +163,7 @@ static unsigned long hung_task_timeout_max = (LONG_MAX/HZ);
#ifdef CONFIG_SPARC #ifdef CONFIG_SPARC
#endif #endif
#ifdef __hppa__ #ifdef CONFIG_PARISC
extern int pwrsw_enabled; extern int pwrsw_enabled;
#endif #endif
...@@ -620,7 +620,7 @@ static struct ctl_table kern_table[] = { ...@@ -620,7 +620,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec, .proc_handler = proc_dointvec,
}, },
#endif #endif
#ifdef __hppa__ #ifdef CONFIG_PARISC
{ {
.procname = "soft-power", .procname = "soft-power",
.data = &pwrsw_enabled, .data = &pwrsw_enabled,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment