--- 2009-11-09.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c 2008-10-14 19:44:11.000000000 +0200 +++ 2009-11-09/unmodified_drivers/linux-2.6/platform-pci/evtchn.c 2009-11-24 17:38:08.000000000 +0100 @@ -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) --- 2009-11-09.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c 2009-02-24 20:09:53.000000000 +0100 +++ 2009-11-09/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c 2009-11-24 17:45:02.000000000 +0100 @@ -70,7 +70,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(); @@ -78,6 +77,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; @@ -90,6 +90,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; } --- 2009-11-09.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h 2008-10-14 19:44:11.000000000 +0200 +++ 2009-11-09/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h 2009-11-24 17:40:08.000000000 +0100 @@ -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 */