diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-12 23:25:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-12 23:25:53 -0400 |
commit | 7946844ae890282fa03f52d226d12dda48164f10 (patch) | |
tree | d2d5f46ed12508efdd02c1da03383dba0a5320e0 /arch | |
parent | 4febd95a8a85dd38b1a71fcf9726e19c7fd20039 (diff) | |
parent | d2e0bca377dc0f85acd19df465122f361a6c9e99 (diff) |
Merge tag 'stable/for-linus-3.9-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
Pull Xen fixes from Konrad Rzeszutek Wilk:
- Compile warnings and errors (one on x86, two on ARM)
- WARNING in xen-pciback
- Use the acpi_processor_get_performance_info instead of the 'register'
version
* tag 'stable/for-linus-3.9-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
xen/acpi: remove redundant acpi/acpi_drivers.h include
xen: arm: mandate EABI and use generic atomic operations.
acpi: Export the acpi_processor_get_performance_info
xen/pciback: Don't disable a PCI device that is already disabled.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/xen/events.h | 25 |
2 files changed, 6 insertions, 22 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a98070fe7f14..2c3bdce15134 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1889,8 +1889,9 @@ config XEN_DOM0 | |||
1889 | 1889 | ||
1890 | config XEN | 1890 | config XEN |
1891 | bool "Xen guest support on ARM (EXPERIMENTAL)" | 1891 | bool "Xen guest support on ARM (EXPERIMENTAL)" |
1892 | depends on ARM && OF | 1892 | depends on ARM && AEABI && OF |
1893 | depends on CPU_V7 && !CPU_V6 | 1893 | depends on CPU_V7 && !CPU_V6 |
1894 | depends on !GENERIC_ATOMIC64 | ||
1894 | help | 1895 | help |
1895 | Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. | 1896 | Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. |
1896 | 1897 | ||
diff --git a/arch/arm/include/asm/xen/events.h b/arch/arm/include/asm/xen/events.h index 5c27696de14f..8b1f37bfeeec 100644 --- a/arch/arm/include/asm/xen/events.h +++ b/arch/arm/include/asm/xen/events.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _ASM_ARM_XEN_EVENTS_H | 2 | #define _ASM_ARM_XEN_EVENTS_H |
3 | 3 | ||
4 | #include <asm/ptrace.h> | 4 | #include <asm/ptrace.h> |
5 | #include <asm/atomic.h> | ||
5 | 6 | ||
6 | enum ipi_vector { | 7 | enum ipi_vector { |
7 | XEN_PLACEHOLDER_VECTOR, | 8 | XEN_PLACEHOLDER_VECTOR, |
@@ -15,26 +16,8 @@ static inline int xen_irqs_disabled(struct pt_regs *regs) | |||
15 | return raw_irqs_disabled_flags(regs->ARM_cpsr); | 16 | return raw_irqs_disabled_flags(regs->ARM_cpsr); |
16 | } | 17 | } |
17 | 18 | ||
18 | /* | 19 | #define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((ptr), \ |
19 | * We cannot use xchg because it does not support 8-byte | 20 | atomic64_t, \ |
20 | * values. However it is safe to use {ldr,dtd}exd directly because all | 21 | counter), (val)) |
21 | * platforms which Xen can run on support those instructions. | ||
22 | */ | ||
23 | static inline xen_ulong_t xchg_xen_ulong(xen_ulong_t *ptr, xen_ulong_t val) | ||
24 | { | ||
25 | xen_ulong_t oldval; | ||
26 | unsigned int tmp; | ||
27 | |||
28 | wmb(); | ||
29 | asm volatile("@ xchg_xen_ulong\n" | ||
30 | "1: ldrexd %0, %H0, [%3]\n" | ||
31 | " strexd %1, %2, %H2, [%3]\n" | ||
32 | " teq %1, #0\n" | ||
33 | " bne 1b" | ||
34 | : "=&r" (oldval), "=&r" (tmp) | ||
35 | : "r" (val), "r" (ptr) | ||
36 | : "memory", "cc"); | ||
37 | return oldval; | ||
38 | } | ||
39 | 22 | ||
40 | #endif /* _ASM_ARM_XEN_EVENTS_H */ | 23 | #endif /* _ASM_ARM_XEN_EVENTS_H */ |