From: Xiaofeng Ling <xiaofeng.ling@intel.com>
To: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>,
Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel <xen-devel@lists.xensource.com>
Subject: [PATCH] get xenstore buffer in vmx guest
Date: Mon, 05 Sep 2005 16:38:20 +0800 [thread overview]
Message-ID: <431C03FC.1060302@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2166 bytes --]
This patch add support to get xenstore buffer in unmodified vmx guest.
mfn_to_virt it not available in unmodified kernel so use an external
symbol for it. This symbol will be exported by event channel pci device
driver. The driver will use ioremap to get the access to this page.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
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");
[-- Attachment #2: vbd-xenbus.patch --]
[-- Type: text/x-patch, Size: 1761 bytes --]
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");
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next reply other threads:[~2005-09-05 8:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-05 8:38 Xiaofeng Ling [this message]
2005-09-05 11:14 ` [PATCH] get xenstore buffer in vmx guest Rusty Russell
-- strict thread matches above, loose matches on Subject: below --
2005-09-05 14:22 Ling, Xiaofeng
2005-09-06 0:15 ` Rusty Russell
2005-09-06 5:29 ` Xiaofeng Ling
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=431C03FC.1060302@intel.com \
--to=xiaofeng.ling@intel.com \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=m+Ian.Pratt@cl.cam.ac.uk \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.