linux/arch/arm
Ian Campbell 85323a991d xen: arm: mandate EABI and use generic atomic operations.
Rob Herring has observed that c81611c4e9 "xen: event channel arrays are
xen_ulong_t and not unsigned long" introduced a compile failure when building
without CONFIG_AEABI:

/tmp/ccJaIZOW.s: Assembler messages:
/tmp/ccJaIZOW.s:831: Error: even register required -- `ldrexd r5,r6,[r4]'

Will Deacon pointed out that this is because OABI does not require even base
registers for 64-bit values. We can avoid this by simply using the existing
atomic64_xchg operation and the same containerof trick as used by the cmpxchg
macros. However since this code is used on memory which is shared with the
hypervisor we require proper atomic instructions and cannot use the generic
atomic64 callbacks (which are based on spinlocks), therefore add a dependency
on !GENERIC_ATOMIC64. Since we already depend on !CPU_V6 there isn't much
downside to this.

While thinking about this we also observed that OABI has different struct
alignment requirements to EABI, which is a problem for hypercall argument
structs which are shared with the hypervisor and which must be in EABI layout.
Since I don't expect people to want to run OABI kernels on Xen depend on
CONFIG_AEABI explicitly too (although it also happens to be enforced by the
!GENERIC_ATOMIC64 requirement too).

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Rob Herring <robherring2@gmail.com>
Acked-by: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
2013-03-11 13:52:19 -04:00
..
boot Merge branch 'akpm' (incoming from Andrew) 2013-02-21 17:38:49 -08:00
common ARM: GIC: fix GIC cpumask initialization 2013-02-08 10:17:22 +00:00
configs Merge branch 'akpm' (incoming from Andrew) 2013-02-21 17:38:49 -08: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 xen: arm: mandate EABI and use generic atomic operations. 2013-03-11 13:52:19 -04:00
kernel Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
kvm ARM: KVM: arch_timers: Wire the init code and config option 2013-02-11 19:06:00 +00:00
lib
mach-at91 arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
mach-bcm Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 2013-01-24 17:57:20 +09:00
mach-bcm2835 arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
mach-clps711x The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-cns3xxx The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-davinci arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
mach-dove The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-ebsa110 The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-ep93xx The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-exynos arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-footbridge The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-gemini The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-h720x The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-highbank arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-imx arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
mach-integrator arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-iop13xx The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-iop32x The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-iop33x The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-ixp4xx The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-kirkwood arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
mach-ks8695 The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-l7200/include/mach
mach-lpc32xx The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-mmp Merge branch 'akpm' (incoming from Andrew) 2013-02-21 17:38:49 -08:00
mach-msm arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-mv78xx0 The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-mvebu arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-mxs arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
mach-netx The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-nomadik arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
mach-omap1 arm-soc: board specific changes 2013-02-21 15:33:45 -08:00
mach-omap2 arm-soc: virtualization changes 2013-02-21 15:40:16 -08:00
mach-orion5x The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-picoxcell Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 2013-01-24 17:57:20 +09:00
mach-prima2 arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
mach-pxa arm-soc: board specific changes 2013-02-21 15:33:45 -08:00
mach-realview arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-rpc The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-s3c24xx arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-s3c64xx arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-s5p64x0 arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-s5pc100 Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 2013-01-24 17:57:20 +09:00
mach-s5pv210 arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-sa1100 arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-shark The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which 2013-02-05 10:26:20 -08:00
mach-shmobile arm-soc: board specific changes 2013-02-21 15:33:45 -08:00
mach-socfpga Merge branch 'socfpga/hw' into next/soc 2013-02-11 19:37:51 -08:00
mach-spear3xx Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 2013-01-24 17:57:20 +09:00
mach-spear6xx Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 2013-01-24 17:57:20 +09:00
mach-spear13xx Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 2013-01-24 17:57:20 +09:00
mach-sunxi arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-tegra arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
mach-u300 arm-soc: driver specific changes 2013-02-21 15:12:18 -08:00
mach-ux500 arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-versatile arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-vexpress Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-virt ARM: mach-virt: fixup machine descriptor after removal of sys_timer 2013-02-11 10:39:30 -08:00
mach-vt8500 arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
mach-w90x900 arm-soc: cleanups 2013-02-21 14:58:40 -08:00
mach-zynq arm: zynq: Add missing irqchip.h to common.c 2013-01-29 10:55:28 -08:00
mm arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
net ARM: net: bpf_jit: fix emit_swap16() for non ARMv6+. 2013-02-14 13:26:44 -05:00
nwfpe
oprofile
plat-iop ARM: use clockevents_config_and_register() where possible 2013-01-14 10:12:42 -08:00
plat-omap arm-soc: multiplatform support 2013-02-21 15:20:41 -08:00
plat-orion arm-soc: cleanups 2013-02-21 14:58:40 -08:00
plat-pxa ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
plat-samsung arm-soc: cleanups 2013-02-21 14:58:40 -08:00
plat-spear arm-soc: driver specific changes 2013-02-21 15:12:18 -08:00
plat-versatile Merge branch 'for-arm-soc/arch-timers' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into kvm-arm/timer 2013-02-11 19:03:52 +00:00
tools
vfp ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone 2013-01-16 16:51:10 +00:00
xen xen: implement updated XENMEM_add_to_physmap_range ABI 2013-02-19 22:01:55 -05:00
Kconfig xen: arm: mandate EABI and use generic atomic operations. 2013-03-11 13:52:19 -04:00
Kconfig-nommu
Kconfig.debug arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
Makefile arm-soc: virtualization changes 2013-02-21 15:40:16 -08:00