linux-stable/arch/arm
Suzuki K Poulose 0f62f0e95b kvm: arm64: Set a limit on the IPA size
So far we have restricted the IPA size of the VM to the default
value (40bits). Now that we can manage the IPA size per VM and
support dynamic stage2 page tables, we can allow VMs to have
larger IPA. This patch introduces a the maximum IPA size
supported on the host. This is decided by the following factors :

 1) Maximum PARange supported by the CPUs - This can be inferred
    from the system wide safe value.
 2) Maximum PA size supported by the host kernel (48 vs 52)
 3) Number of levels in the host page table (as we base our
    stage2 tables on the host table helpers).

Since the stage2 page table code is dependent on the stage1
page table, we always ensure that :

  Number of Levels at Stage1 >= Number of Levels at Stage2

So we limit the IPA to make sure that the above condition
is satisfied. This will affect the following combinations
of VA_BITS and IPA for different page sizes.

  Host configuration | Unsupported IPA ranges
  39bit VA, 4K       | [44, 48]
  36bit VA, 16K      | [41, 48]
  42bit VA, 64K      | [47, 52]

Supporting the above combinations need independent stage2
page table manipulation code, which would need substantial
changes. We could purse the solution independently and
switch the page table code once we have it ready.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Christoffer Dall <cdall@kernel.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-10-03 11:44:55 +01:00
..
boot ARM: dts: at91: add new compatibility string for macb on sama5d3 2018-09-17 07:54:40 -07:00
common ARM: Always build secure_cntvoff.S on ARM V7 to fix shmobile !SMP build 2018-06-23 18:26:48 -07:00
configs ARM: defconfig: Update the ARM Versatile defconfig 2018-08-29 11:50:46 -07:00
crypto treewide: convert ISO_8859-1 text comments to utf-8 2018-08-23 18:48:43 -07:00
firmware ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
include kvm: arm64: Set a limit on the IPA size 2018-10-03 11:44:55 +01:00
kernel include/linux/compiler*.h: make compiler-*.h mutually exclusive 2018-08-22 17:31:34 -07:00
kvm KVM: arm: vgic-v3: Add support for ICC_SGI0R and ICC_ASGI1R accesses 2018-08-12 12:06:35 +01:00
lib Merge branches 'fixes', 'misc' and 'spectre' into for-linus 2018-08-13 16:28:50 +01:00
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: Device-tree updates 2018-08-23 14:02:22 -07:00
mach-axxia
mach-bcm PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-berlin ARM: berlin: switch to SPDX license identifier 2018-05-24 14:49:09 +08:00
mach-clps711x
mach-cns3xxx
mach-davinci DaVinci SoC updates for v4.19 2018-07-14 14:16:26 -07:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx sound updates for 4.18 2018-06-06 09:08:38 -07:00
mach-exynos ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
mach-footbridge treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-gemini
mach-highbank
mach-hisi ARM: hisi: handle of_iomap and fix missing of_node_put 2018-07-16 17:36:50 +01:00
mach-imx ARM: mx5: Set the DBGEN bit in ARM_GPC register 2018-07-12 09:52:20 +08:00
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-keystone ARM: keystone: fix platform_domain_notifier array overrun 2018-05-14 09:24:29 -07:00
mach-ks8695 i2c: gpio: move header to platform_data 2018-05-17 16:27:09 +02:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: merge Kconfig symbol MACH_MESON8B into MACH_MESON8 2018-05-23 10:08:13 -07:00
mach-mmp headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
mach-moxart
mach-mv78xx0
mach-mvebu ARM: mvebu: convert secondary CPU clock sync to hotplug state 2018-06-27 08:40:29 +02:00
mach-mxs
mach-netx
mach-nomadik
mach-npcm
mach-nspire
mach-omap1 ARM: OMAP1: ams-delta: move late devices back to init_machine 2018-07-02 23:07:54 -07:00
mach-omap2 Merge branch 'perm-fix' into omap-for-v4.19/fixes-v2 2018-08-28 09:58:03 -07:00
mach-orion5x
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
mach-qcom
mach-realview
mach-rockchip ARM: rockchip: Force CONFIG_PM on Rockchip systems 2018-08-24 08:50:23 -07:00
mach-rpc mm: do not initialize TLB stack vma's with vma_init() 2018-08-01 13:43:38 -07:00
mach-s3c24xx ARM: s3c24xx: Fix typo in guard macro of s3c2412.h 2018-06-25 18:39:18 +02:00
mach-s3c64xx regulator: gpio: Revert 2018-06-07 14:23:08 +01:00
mach-s5pv210
mach-sa1100 Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
mach-shmobile ARM: shmobile: Always enable ARCH_TIMER on SoCs with A7 and/or A15 2018-07-20 13:44:10 +02:00
mach-socfpga PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-spear
mach-sti
mach-stm32 ARM: stm32: Don't select DMA unconditionally on STM32MP157C 2018-05-25 15:26:38 -07:00
mach-sunxi
mach-tango
mach-tegra ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
mach-u300
mach-uniphier ARM: uniphier: select RESET_CONTROLLER 2018-07-31 19:04:41 -07:00
mach-ux500
mach-versatile
mach-vexpress treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm kernel/dma: remove unsupported gfp_mask parameter from dma_alloc_from_contiguous() 2018-08-17 16:20:32 -07:00
net ARM: net: bpf: improve 64-bit ALU implementation 2018-07-13 15:26:42 +02:00
nwfpe
oprofile
plat-iop
plat-omap ARM/time: Remove read_boot_clock64() 2018-07-20 00:02:41 +02:00
plat-orion
plat-pxa ARM: pxa: change SSP DMA channels allocation 2018-06-18 21:32:41 +02:00
plat-samsung headers: fix build error in arch/arm/plat-samsung/adc.c, add <linux/mod_devicetable.h> 2018-07-08 15:19:04 +02:00
plat-versatile
probes Updates for v4.19: 2018-08-20 18:32:00 -07:00
tools arm: Wire up restartable sequences system call 2018-06-06 11:58:31 +02:00
vdso arm: port KCOV to arm 2018-06-15 07:55:24 +09:00
vfp Merge branches 'fixes', 'misc' and 'spectre' into for-linus 2018-08-13 16:28:50 +01:00
xen xen: share start flags between PV and PVH 2018-06-19 13:51:00 +02:00
Kconfig ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
Kconfig-nommu
Kconfig.debug ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
Makefile Kbuild updates for v4.19 (2nd) 2018-08-25 13:40:38 -07:00