aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-09-26 16:42:14 -0400
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-09-26 16:43:35 -0400
commitae1659ee6b4bf5e12a141d04636a3de89543c237 (patch)
tree67ca3da7e9461832f9e2cb23fc89b5c7c92ff10d /drivers/xen
parentc341ca45ce56143804ef5a8f4db753e554e640b4 (diff)
parentbbd6eb29214e1a278e8575f57d64b88077bebf6d (diff)
Merge branch 'xenarm-for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm into stable/for-linus-3.7
* 'xenarm-for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm: arm: introduce a DTS for Xen unprivileged virtual machines MAINTAINERS: add myself as Xen ARM maintainer xen/arm: compile netback xen/arm: compile blkfront and blkback xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree xen/arm: receive Xen events on ARM xen/arm: initialize grant_table on ARM xen/arm: get privilege status xen/arm: introduce CONFIG_XEN on ARM xen: do not compile manage, balloon, pci, acpi, pcpu and cpu_hotplug on ARM xen/arm: Introduce xen_ulong_t for unsigned long xen/arm: Xen detection and shared_info page mapping docs: Xen ARM DT bindings xen/arm: empty implementation of grant_table arch specific functions xen/arm: sync_bitops xen/arm: page.h definitions xen/arm: hypercalls arm: initial Xen support Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/Makefile13
-rw-r--r--drivers/xen/events.c17
2 files changed, 23 insertions, 7 deletions
diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
index d80bea5535a2..cd28aae575dd 100644
--- a/drivers/xen/Makefile
+++ b/drivers/xen/Makefile
@@ -1,11 +1,18 @@
1obj-y += grant-table.o features.o events.o manage.o balloon.o 1ifneq ($(CONFIG_ARM),y)
2obj-y += manage.o balloon.o
3obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o
4endif
5obj-y += grant-table.o features.o events.o
2obj-y += xenbus/ 6obj-y += xenbus/
3 7
4nostackp := $(call cc-option, -fno-stack-protector) 8nostackp := $(call cc-option, -fno-stack-protector)
5CFLAGS_features.o := $(nostackp) 9CFLAGS_features.o := $(nostackp)
6 10
11obj-$(CONFIG_XEN_DOM0) += $(dom0-y)
12dom0-$(CONFIG_PCI) += pci.o
13dom0-$(CONFIG_ACPI) += acpi.o
14dom0-$(CONFIG_X86) += pcpu.o
7obj-$(CONFIG_BLOCK) += biomerge.o 15obj-$(CONFIG_BLOCK) += biomerge.o
8obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o
9obj-$(CONFIG_XEN_XENCOMM) += xencomm.o 16obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
10obj-$(CONFIG_XEN_BALLOON) += xen-balloon.o 17obj-$(CONFIG_XEN_BALLOON) += xen-balloon.o
11obj-$(CONFIG_XEN_SELFBALLOONING) += xen-selfballoon.o 18obj-$(CONFIG_XEN_SELFBALLOONING) += xen-selfballoon.o
@@ -17,8 +24,6 @@ obj-$(CONFIG_XEN_SYS_HYPERVISOR) += sys-hypervisor.o
17obj-$(CONFIG_XEN_PVHVM) += platform-pci.o 24obj-$(CONFIG_XEN_PVHVM) += platform-pci.o
18obj-$(CONFIG_XEN_TMEM) += tmem.o 25obj-$(CONFIG_XEN_TMEM) += tmem.o
19obj-$(CONFIG_SWIOTLB_XEN) += swiotlb-xen.o 26obj-$(CONFIG_SWIOTLB_XEN) += swiotlb-xen.o
20obj-$(CONFIG_XEN_DOM0) += pcpu.o
21obj-$(CONFIG_XEN_DOM0) += pci.o acpi.o
22obj-$(CONFIG_XEN_MCE_LOG) += mcelog.o 27obj-$(CONFIG_XEN_MCE_LOG) += mcelog.o
23obj-$(CONFIG_XEN_PCIDEV_BACKEND) += xen-pciback/ 28obj-$(CONFIG_XEN_PCIDEV_BACKEND) += xen-pciback/
24obj-$(CONFIG_XEN_PRIVCMD) += xen-privcmd.o 29obj-$(CONFIG_XEN_PRIVCMD) += xen-privcmd.o
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index c60d1629c916..8672211555bb 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -31,14 +31,16 @@
31#include <linux/irqnr.h> 31#include <linux/irqnr.h>
32#include <linux/pci.h> 32#include <linux/pci.h>
33 33
34#ifdef CONFIG_X86
34#include <asm/desc.h> 35#include <asm/desc.h>
35#include <asm/ptrace.h> 36#include <asm/ptrace.h>
36#include <asm/irq.h> 37#include <asm/irq.h>
37#include <asm/idle.h> 38#include <asm/idle.h>
38#include <asm/io_apic.h> 39#include <asm/io_apic.h>
39#include <asm/sync_bitops.h>
40#include <asm/xen/page.h> 40#include <asm/xen/page.h>
41#include <asm/xen/pci.h> 41#include <asm/xen/pci.h>
42#endif
43#include <asm/sync_bitops.h>
42#include <asm/xen/hypercall.h> 44#include <asm/xen/hypercall.h>
43#include <asm/xen/hypervisor.h> 45#include <asm/xen/hypervisor.h>
44 46
@@ -50,6 +52,9 @@
50#include <xen/interface/event_channel.h> 52#include <xen/interface/event_channel.h>
51#include <xen/interface/hvm/hvm_op.h> 53#include <xen/interface/hvm/hvm_op.h>
52#include <xen/interface/hvm/params.h> 54#include <xen/interface/hvm/params.h>
55#include <xen/interface/physdev.h>
56#include <xen/interface/sched.h>
57#include <asm/hw_irq.h>
53 58
54/* 59/*
55 * This lock protects updates to the following mapping and reference-count 60 * This lock protects updates to the following mapping and reference-count
@@ -1386,7 +1391,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
1386{ 1391{
1387 struct pt_regs *old_regs = set_irq_regs(regs); 1392 struct pt_regs *old_regs = set_irq_regs(regs);
1388 1393
1394#ifdef CONFIG_X86
1389 exit_idle(); 1395 exit_idle();
1396#endif
1390 irq_enter(); 1397 irq_enter();
1391 1398
1392 __xen_evtchn_do_upcall(); 1399 __xen_evtchn_do_upcall();
@@ -1795,9 +1802,9 @@ void xen_callback_vector(void)
1795void xen_callback_vector(void) {} 1802void xen_callback_vector(void) {}
1796#endif 1803#endif
1797 1804
1798void __init xen_init_IRQ(void) 1805void xen_init_IRQ(void)
1799{ 1806{
1800 int i, rc; 1807 int i;
1801 1808
1802 evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq), 1809 evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq),
1803 GFP_KERNEL); 1810 GFP_KERNEL);
@@ -1813,6 +1820,7 @@ void __init xen_init_IRQ(void)
1813 1820
1814 pirq_needs_eoi = pirq_needs_eoi_flag; 1821 pirq_needs_eoi = pirq_needs_eoi_flag;
1815 1822
1823#ifdef CONFIG_X86
1816 if (xen_hvm_domain()) { 1824 if (xen_hvm_domain()) {
1817 xen_callback_vector(); 1825 xen_callback_vector();
1818 native_init_IRQ(); 1826 native_init_IRQ();
@@ -1820,6 +1828,7 @@ void __init xen_init_IRQ(void)
1820 * __acpi_register_gsi can point at the right function */ 1828 * __acpi_register_gsi can point at the right function */
1821 pci_xen_hvm_init(); 1829 pci_xen_hvm_init();
1822 } else { 1830 } else {
1831 int rc;
1823 struct physdev_pirq_eoi_gmfn eoi_gmfn; 1832 struct physdev_pirq_eoi_gmfn eoi_gmfn;
1824 1833
1825 irq_ctx_init(smp_processor_id()); 1834 irq_ctx_init(smp_processor_id());
@@ -1835,4 +1844,6 @@ void __init xen_init_IRQ(void)
1835 } else 1844 } else
1836 pirq_needs_eoi = pirq_check_eoi_map; 1845 pirq_needs_eoi = pirq_check_eoi_map;
1837 } 1846 }
1847#endif
1838} 1848}
1849EXPORT_SYMBOL_GPL(xen_init_IRQ);