2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-18 18:23:53 +08:00
linux-next/arch/arm
Joonsoo Kim ed8fd2186a ARM: 7645/1: ioremap: introduce an infrastructure for static mapped area
In current implementation, we used ARM-specific flag, that is,
VM_ARM_STATIC_MAPPING, for distinguishing ARM specific static mapped area.
The purpose of static mapped area is to re-use static mapped area when
entire physical address range of the ioremap request can be covered
by this area.

This implementation causes needless overhead for some cases.
For example, assume that there is only one static mapped area and
vmlist has 300 areas. Every time we call ioremap, we check 300 areas for
deciding whether it is matched or not. Moreover, even if there is
no static mapped area and vmlist has 300 areas, every time we call
ioremap, we check 300 areas in now.

If we construct a extra list for static mapped area, we can eliminate
above mentioned overhead.
With a extra list, if there is one static mapped area,
we just check only one area and proceed next operation quickly.

In fact, it is not a critical problem, because ioremap is not frequently
used. But reducing overhead is better idea.

Another reason for doing this work is for removing architecture dependency
on vmalloc layer. I think that vmlist and vmlist_lock is internal data
structure for vmalloc layer. Some codes for debugging and stat inevitably
use vmlist and vmlist_lock. But it is preferable that they are used
as least as possible in outside of vmalloc.c

Now, I introduce an ARM-specific infrastructure for static mapped area. In
the following patch, we will use this and resolve above mentioned problem.

Reviewed-by: Nicolas Pitre <nico@linaro.org>
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-02-16 17:54:22 +00:00
..
boot ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
common Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
configs arm: mvebu: Use dw-apb-uart instead of ns16650 as UART driver 2013-01-06 17:41:14 +00:00
crypto ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible 2013-01-13 12:41:22 +00:00
include ARM: 7637/1: memory: use SZ_ constants for defining the virtual memory layout 2013-02-16 17:54:17 +00:00
kernel ARM: smp: remove wrapper functions 2013-01-14 15:54:28 +00:00
lib
mach-at91 Sound updates for 3.8-rc1 2012-12-13 11:51:23 -08:00
mach-bcm Add support for generic BCM SoC chipsets 2012-11-19 22:39:07 -08:00
mach-bcm2835 ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
mach-clps711x ARM: clps711x: Rename board files to match functionality 2012-11-21 09:57:46 -08:00
mach-cns3xxx ARM: arm-soc: Non-critical bug fixes 2012-12-12 11:32:16 -08:00
mach-davinci ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-dove ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-ebsa110
mach-ep93xx ARM: ep93xx: properly wait for UART FIFO to be empty 2012-12-12 11:22:56 +11:00
mach-exynos ARM: EXYNOS: skip the clock initialization for exynos5440 2013-01-05 08:32:55 -08:00
mach-footbridge
mach-gemini
mach-h720x
mach-highbank ARM: highbank: save and restore L2 cache and GIC on suspend 2013-01-07 21:08:26 -08:00
mach-imx Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
mach-integrator ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
mach-iop13xx ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-iop32x
mach-iop33x
mach-ixp4xx Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-12-12 11:30:02 -08:00
mach-kirkwood ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
mach-ks8695 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-l7200/include/mach
mach-lpc32xx ARM: LPC32xx: Add the motor PWM clock 2012-11-12 11:27:40 +01:00
mach-mmp ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-msm ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-mv78xx0 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-mvebu arm: mvebu: add L2 cache support 2012-11-27 15:35:05 +00:00
mach-mxs Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-12-18 09:58:09 -08:00
mach-netx treewide: Fix typos in various drivers 2012-12-03 11:05:04 +01:00
mach-nomadik ARM: nomadik: bump the IRQ numbers again 2013-01-03 23:42:07 +01:00
mach-omap1 ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
mach-omap2 ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
mach-orion5x ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-picoxcell
mach-prima2 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-pxa ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-realview ARM: 7607/1: realview: fix private peripheral memory base for EB rev. B boards 2012-12-20 10:42:00 +00:00
mach-rpc
mach-s3c24xx ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-s3c64xx ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s5p64x0 ARM: S5P64X0: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s5pc100 ARM: S5PC100: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s5pv210 ARM: S5PV210: Avoid passing the clks through platform data 2012-12-19 09:49:29 -08:00
mach-sa1100 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-shark
mach-shmobile fbdev changes for 3.8: 2012-12-15 13:03:48 -08:00
mach-socfpga ARM: socfpga: mark secondary_trampoline as cpuinit 2012-11-06 23:14:49 +01:00
mach-spear3xx ARM: SPEAr3xx: Shirq: Move shirq controller out of plat/ 2012-11-26 16:55:33 +05:30
mach-spear6xx
mach-spear13xx ARM: SPEAr1310: Fix AUXDATA for compact flash controller 2012-11-26 16:55:31 +05:30
mach-sunxi sunxi: Change the machine compatible string. 2012-12-23 18:20:15 +01:00
mach-tegra ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-u300 ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mach-ux500 ARM: ux500: add pinctrl address resources 2012-12-26 01:59:54 +01:00
mach-versatile ARM: 7635/1: versatile: fix the PCI IRQ regression 2013-02-06 09:33:09 +00:00
mach-vexpress ARM: 7609/1: disable errata work-arounds which access secure registers 2013-01-02 10:35:05 +00:00
mach-vt8500 ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00
mach-w90x900
mach-zynq ARM: zynq: Remove all unused mach headers 2012-11-21 10:52:21 +01:00
mm ARM: 7645/1: ioremap: introduce an infrastructure for static mapped area 2013-02-16 17:54:22 +00:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-12-12 18:07:07 -08:00
nwfpe
oprofile
plat-iop
plat-omap ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
plat-orion ARM: arm-soc: Updates for Marvell mvebu/kirkwood 2012-12-14 14:54:26 -08:00
plat-pxa ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
plat-s3c24xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
plat-samsung ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
plat-spear ARM: SPEAr3xx: Shirq: Move shirq controller out of plat/ 2012-11-26 16:55:33 +05:30
plat-versatile ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
tools ARM: boot: Fix usage of kecho 2012-11-12 23:22:54 +01:00
vfp ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set 2012-10-29 10:04:05 +00:00
xen Features: 2012-12-13 14:29:16 -08:00
Kconfig Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
Kconfig-nommu
Kconfig.debug ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00
Makefile ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00