diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c Tue Aug 30 20:36:49 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c Fri Sep 2 22:47:27 2005 @@ -48,12 +48,12 @@ static inline struct ringbuf_head *outbuf(void) { - return mfn_to_virt(xen_start_info.store_mfn); + return XENSTORE_BUF; } static inline struct ringbuf_head *inbuf(void) { - return mfn_to_virt(xen_start_info.store_mfn) + PAGE_SIZE/2; + return XENSTORE_BUF + PAGE_SIZE/2; } static irqreturn_t wake_waiting(int irq, void *unused, struct pt_regs *regs) @@ -218,7 +218,7 @@ } /* FIXME zero out page -- domain builder should probably do this*/ - memset(mfn_to_virt(xen_start_info.store_mfn), 0, PAGE_SIZE); + memset(XENSTORE_BUF, 0, PAGE_SIZE); return 0; } diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h Tue Aug 30 20:36:49 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h Fri Sep 2 22:47:27 2005 @@ -38,4 +38,11 @@ int xs_input_avail(void); extern wait_queue_head_t xb_waitq; +#ifdef CONFIG_XEN +#define XENSTORE_BUF mfn_to_virt(xen_start_info.store_mfn) +#else +extern void *shared_xenstore_buf; +#define XENSTORE_BUF shared_xenstore_buf +#endif + #endif /* _XENBUS_COMMS_H */ diff -r 287d36b46fa3 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Tue Aug 30 20:36:49 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Sep 2 22:47:27 2005 @@ -648,4 +648,5 @@ return 0; } -postcore_initcall(xenbus_probe_init); +module_init(xenbus_probe_init); +MODULE_LICENSE("GPL");