Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c =================================================================== --- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c +++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c @@ -40,7 +40,9 @@ #include #endif +#ifndef shared_info_area void *shared_info_area; +#endif #define is_valid_evtchn(x) ((x) != 0) #define evtchn_from_irq(x) (irq_evtchn[irq].evtchn) Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c =================================================================== --- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c @@ -77,7 +77,6 @@ static uint64_t callback_via; static int __devinit init_xen_info(void) { struct xen_add_to_physmap xatp; - extern void *shared_info_area; #ifdef __ia64__ xencomm_initialize(); @@ -85,6 +84,7 @@ static int __devinit init_xen_info(void) setup_xen_features(); +#ifndef shared_info_area shared_info_frame = alloc_xen_mmio(PAGE_SIZE) >> PAGE_SHIFT; xatp.domid = DOMID_SELF; xatp.idx = 0; @@ -97,6 +97,11 @@ static int __devinit init_xen_info(void) ioremap(shared_info_frame << PAGE_SHIFT, PAGE_SIZE); if (shared_info_area == NULL) panic("can't map shared info\n"); +#else + shared_info_frame = __pa(shared_info_area) >> PAGE_SHIFT; + printk(KERN_INFO "Using kernel provided shared info (pfn=%lx)\n", + shared_info_frame); +#endif return 0; } Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h =================================================================== --- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h +++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h @@ -27,6 +27,11 @@ unsigned long alloc_xen_mmio(unsigned long len); void platform_pci_resume(void); +#ifdef CONFIG_ENLIGHTEN_SPINLOCKS +#define shared_info_area xen_shared_info +#endif +extern void *shared_info_area; + extern struct pci_dev *xen_platform_pdev; #endif /* _XEN_PLATFORM_PCI_H */