Git pull request: removal, and ioremap optimization
Nicolas Pitre
nico at fluxnic.net
Mon Nov 21 15:15:14 EST 2011
Russell, please pull the following:
git://git.linaro.org/people/nico/linux vmalloc
This patch series removes all instances of mach/vmalloc.h in order to
have a more unified memory map across all ARM architectures. To do so,
the static mappings are moved inside the vmalloc area. And finally this
allows for a generic optimization to ioremap where static mappings are
reused whenever possible, using common code instead of having this
duplicated in a couple places.
This series provides a net reduction of more than 1200 lines of code.
One regression was discovered on shmobile during testing because that
platform asks for 158MB of consistent DMA memory while the documented
maximum is 14MB. Inspection of the code doesn't tell why this is
required, and listed maintainers did not respond yet, more than two
months after repeated inquiries. So a temporary exception to the
definition of VMALLOC_END was added for CONFIG_SHMOBILE, accompanied by
a noisy warning to get those maintainers' attention.
This is based on v3.2-rc2 and was successfully tested on several
platforms, including OMAP which was the platform that made me withdraw
this pull request during the last cycle.
Nicolas Pitre (20):
ARM: mach-dove: remove inclusion of <mach/vmalloc.h>
ARM: mach-prima2: don't define SIRFSOC_VA in terms of VMALLOC_END
ARM: plat-mxc: remove inclusion of <mach/vmalloc.h>
ARM: mach-at91: remove arch specific special handling for ioremap
ARM: mach-davinci: remove arch specific special handling for ioremap
ARM: mach-tegra: remove arch specific special handling for ioremap
ARM: plat-omap: remove arch specific special handling for ioremap
ARM: mach-bcmring: use proper constant to identify DMA memory area
ARM: mach-orion5x: remove arch specific special handling for ioremap
ARM: mach-kirkwood: remove arch specific special handling for ioremap
ARM: mach-ixp23xx: remove arch specific special handling for ioremap
ARM: plat-iop: remove arch specific special handling for ioremap
ARM: sort the meminfo array earlier
ARM: move initialization of the high_memory variable earlier
mm: add vm_area_add_early()
ARM: move iotable mappings within the vmalloc region
ARM: simplify __iounmap() when dealing with section based mapping
ARM: add generic ioremap optimization by reusing static mappings
ARM: big removal of now unused vmalloc.h files
ARM: move VMALLOC_END down temporarily for shmobile
Rob Herring (3):
ARM: versatile: remove overlapping map_desc entry
ARM: realview: fix map_desc alignment
ARM: realview-eb11mp: fix map_desc alignment
Documentation/arm/memory.txt | 11 +-
arch/arm/include/asm/pgtable.h | 13 +-
arch/arm/kernel/setup.c | 8 +
arch/arm/mach-at91/include/mach/io.h | 8 -
arch/arm/mach-at91/include/mach/vmalloc.h | 28 ---
arch/arm/mach-at91/setup.c | 18 --
arch/arm/mach-bcmring/dma.c | 2 +-
arch/arm/mach-bcmring/include/mach/vmalloc.h | 25 ---
arch/arm/mach-clps711x/include/mach/vmalloc.h | 20 --
arch/arm/mach-cns3xxx/include/mach/vmalloc.h | 11 --
arch/arm/mach-davinci/Makefile | 2 +-
arch/arm/mach-davinci/include/mach/io.h | 8 -
arch/arm/mach-davinci/include/mach/vmalloc.h | 14 --
arch/arm/mach-davinci/io.c | 48 -----
arch/arm/mach-dove/include/mach/dove.h | 2 -
arch/arm/mach-dove/include/mach/vmalloc.h | 5 -
arch/arm/mach-ebsa110/include/mach/vmalloc.h | 10 -
arch/arm/mach-ep93xx/include/mach/vmalloc.h | 5 -
arch/arm/mach-exynos/include/mach/vmalloc.h | 22 ---
arch/arm/mach-footbridge/include/mach/vmalloc.h | 10 -
arch/arm/mach-gemini/include/mach/vmalloc.h | 10 -
arch/arm/mach-h720x/include/mach/vmalloc.h | 10 -
arch/arm/mach-highbank/include/mach/vmalloc.h | 1 -
arch/arm/mach-integrator/include/mach/vmalloc.h | 20 --
arch/arm/mach-iop13xx/include/mach/vmalloc.h | 4 -
arch/arm/mach-iop32x/include/mach/io.h | 7 -
arch/arm/mach-iop32x/include/mach/vmalloc.h | 5 -
arch/arm/mach-iop33x/include/mach/io.h | 7 -
arch/arm/mach-iop33x/include/mach/vmalloc.h | 5 -
arch/arm/mach-ixp2000/include/mach/vmalloc.h | 20 --
arch/arm/mach-ixp23xx/include/mach/io.h | 29 ---
arch/arm/mach-ixp23xx/include/mach/vmalloc.h | 10 -
arch/arm/mach-ixp4xx/include/mach/vmalloc.h | 5 -
arch/arm/mach-kirkwood/include/mach/io.h | 25 ---
arch/arm/mach-kirkwood/include/mach/vmalloc.h | 5 -
arch/arm/mach-ks8695/include/mach/vmalloc.h | 19 --
arch/arm/mach-lpc32xx/include/mach/vmalloc.h | 24 ---
arch/arm/mach-mmp/include/mach/vmalloc.h | 5 -
arch/arm/mach-msm/include/mach/vmalloc.h | 22 ---
arch/arm/mach-mv78xx0/include/mach/vmalloc.h | 5 -
arch/arm/mach-mxs/include/mach/vmalloc.h | 22 ---
arch/arm/mach-netx/include/mach/vmalloc.h | 19 --
arch/arm/mach-nomadik/include/mach/vmalloc.h | 2 -
arch/arm/mach-omap1/include/mach/vmalloc.h | 20 --
arch/arm/mach-omap1/io.c | 1 -
arch/arm/mach-omap2/include/mach/vmalloc.h | 20 --
arch/arm/mach-omap2/io.c | 1 -
arch/arm/mach-orion5x/include/mach/io.h | 25 ---
arch/arm/mach-orion5x/include/mach/vmalloc.h | 5 -
arch/arm/mach-picoxcell/include/mach/vmalloc.h | 14 --
arch/arm/mach-pnx4008/include/mach/vmalloc.h | 20 --
arch/arm/mach-prima2/include/mach/map.h | 6 +-
arch/arm/mach-prima2/include/mach/vmalloc.h | 16 --
arch/arm/mach-pxa/include/mach/vmalloc.h | 11 --
arch/arm/mach-realview/include/mach/vmalloc.h | 21 ---
arch/arm/mach-realview/realview_eb.c | 4 +-
arch/arm/mach-realview/realview_pbx.c | 4 +-
arch/arm/mach-rpc/include/mach/vmalloc.h | 10 -
arch/arm/mach-s3c2410/include/mach/vmalloc.h | 20 --
arch/arm/mach-s3c64xx/include/mach/vmalloc.h | 20 --
arch/arm/mach-s5p64x0/include/mach/vmalloc.h | 20 --
arch/arm/mach-s5pc100/include/mach/vmalloc.h | 17 --
arch/arm/mach-s5pv210/include/mach/vmalloc.h | 22 ---
arch/arm/mach-sa1100/include/mach/vmalloc.h | 4 -
arch/arm/mach-shark/include/mach/vmalloc.h | 4 -
arch/arm/mach-shmobile/include/mach/vmalloc.h | 7 -
arch/arm/mach-spear3xx/include/mach/vmalloc.h | 19 --
arch/arm/mach-spear6xx/include/mach/vmalloc.h | 19 --
arch/arm/mach-tegra/include/mach/io.h | 6 -
arch/arm/mach-tegra/include/mach/vmalloc.h | 28 ---
arch/arm/mach-tegra/io.c | 21 ---
arch/arm/mach-u300/include/mach/vmalloc.h | 12 --
arch/arm/mach-ux500/include/mach/vmalloc.h | 18 --
arch/arm/mach-versatile/core.c | 5 -
arch/arm/mach-versatile/include/mach/vmalloc.h | 21 ---
arch/arm/mach-vexpress/include/mach/vmalloc.h | 21 ---
arch/arm/mach-vt8500/include/mach/vmalloc.h | 20 --
arch/arm/mach-w90x900/include/mach/vmalloc.h | 23 ---
arch/arm/mach-zynq/include/mach/vmalloc.h | 20 --
arch/arm/mm/init.c | 40 +----
arch/arm/mm/ioremap.c | 82 ++++++---
arch/arm/mm/mm.h | 14 ++
arch/arm/mm/mmu.c | 50 ++++--
arch/arm/mm/nommu.c | 2 +
arch/arm/plat-iop/Makefile | 2 -
arch/arm/plat-iop/io.c | 59 ------
arch/arm/plat-mxc/include/mach/mx1.h | 2 -
arch/arm/plat-mxc/include/mach/vmalloc.h | 22 ---
arch/arm/plat-omap/Makefile | 2 +-
arch/arm/plat-omap/common.c | 7 +
arch/arm/plat-omap/include/plat/io.h | 8 -
arch/arm/plat-omap/io.c | 159 -----------------
arch/arm/plat-spear/include/plat/vmalloc.h | 19 --
arch/arm/plat-tcc/include/mach/vmalloc.h | 10 -
include/linux/vmalloc.h | 1 +
mm/vmalloc.c | 29 +++-
96 files changed, 177 insertions(+), 1407 deletions(-)
More information about the linux-arm-kernel
mailing list