linux-stable/arch/arm
Vitaly Kuznetsov de75abbe01 arm/xen: fix SMP guests boot
Commit 88e957d6e4 ("xen: introduce xen_vcpu_id mapping") broke SMP
ARM guests on Xen. When FIFO-based event channels are in use (this is
the default), evtchn_fifo_alloc_control_block() is called on
CPU_UP_PREPARE event and this happens before we set up xen_vcpu_id
mapping in xen_starting_cpu. Temporary fix the issue by setting direct
Linux CPU id <-> Xen vCPU id mapping for all possible CPUs at boot. We
don't currently support kexec/kdump on Xen/ARM so these ids always
match.

In future, we have several ways to solve the issue, e.g.:

- Eliminate all hypercalls from CPU_UP_PREPARE, do them from the
  starting CPU. This can probably be done for both x86 and ARM and, if
  done, will allow us to get Xen's idea of vCPU id from CPUID/MPIDR on
  the starting CPU directly, no messing with ACPI/device tree
  required.

- Save vCPU id information from ACPI/device tree on ARM and use it to
  initialize xen_vcpu_id mapping. This is the same trick we currently
  do on x86.

Reported-by: Julien Grall <julien.grall@arm.com>
Tested-by: Wei Chen <Wei.Chen@arm.com>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2016-09-14 14:39:13 +01:00
..
boot revert "ARM: keystone: dts: add psci command definition" 2016-08-10 16:40:56 -07:00
common dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
configs Revert "ARM: aspeed: adapt defconfigs for new CONFIG_PRINTK_TIME" 2016-08-03 11:07:57 +02:00
crypto
firmware
include Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user 2016-08-08 14:48:14 -07:00
kernel Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-08-18 11:13:20 -07:00
kvm KVM: Protect device ops->create and list_add with kvm->lock 2016-08-12 12:01:27 +02:00
lib
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-axxia
mach-bcm ARM: DT updates for v4.8 2016-08-01 18:37:45 -04:00
mach-berlin
mach-clps711x ARM: do away with final ARCH_REQUIRE_GPIOLIB 2016-08-02 12:31:58 -07:00
mach-cns3xxx
mach-davinci ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC driver updates for v4.8 2016-08-01 18:36:01 -04:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: imx6: mark GPC node as not populated after irq init to probe pm domain driver 2016-08-09 12:36:28 -05:00
mach-integrator treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone ARM: SoC defconfig updates for v4.8 2016-08-01 18:30:44 -04:00
mach-ks8695
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson
mach-mmp
mach-moxart ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-mv78xx0 treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
mach-mvebu ARM: don't include removed directories 2016-08-10 22:42:18 +02:00
mach-mxs ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-netx
mach-nomadik
mach-nspire DeviceTree update for 4.8: 2016-07-30 11:32:01 -07:00
mach-omap1 ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-omap2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-03 07:26:11 -04:00
mach-orion5x RTC for 4.8 2016-08-05 09:48:22 -04:00
mach-oxnas ARM: oxnas: select reset controller framework 2016-08-10 22:42:32 +02:00
mach-picoxcell ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-prima2 ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-pxa ARM: SoC fixes 2016-08-11 14:14:23 -07:00
mach-qcom
mach-realview ARM: don't include removed directories 2016-08-10 22:42:18 +02:00
mach-rockchip ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-rpc
mach-s3c24xx ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-s3c64xx ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-s5pv210 ARM: don't include removed directories 2016-08-10 22:42:18 +02:00
mach-sa1100
mach-shmobile ARM: shmobile: don't call platform_can_secondary_boot on UP 2016-08-02 12:34:49 -07:00
mach-socfpga
mach-spear ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-sti Highlights: 2016-07-14 15:08:15 +02:00
mach-stm32
mach-sunxi
mach-tango
mach-tegra ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-u300 ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-uniphier
mach-ux500 ARM: SoC driver updates for v4.8 2016-08-01 18:36:01 -04:00
mach-versatile
mach-vexpress ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-vt8500 ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-w90x900
mach-zx
mach-zynq
mm ARM: 8591/1: mm: use fully constructed struct pages for EFI pgd allocations 2016-08-09 22:57:41 +01:00
net
nwfpe
oprofile
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
plat-versatile
probes
tools
vdso
vfp arm: Convert VFP hotplug notifiers to state machine 2016-07-15 10:40:22 +02:00
xen arm/xen: fix SMP guests boot 2016-09-14 14:39:13 +01:00
Kconfig Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user 2016-08-08 14:48:14 -07:00
Kconfig-nommu
Kconfig.debug
Makefile ARM: hide mach-*/ include for ARM_SINGLE_ARMV7M 2016-08-10 22:42:26 +02:00