All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: the arch/x86 maintainers <x86@kernel.org>,
	Xen-devel <xen-devel@lists.xensource.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Juan Quintela <quintela@redhat.com>,
	Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Subject: [PATCH 02/19] xen dom0: Initialize xenbus for dom0.
Date: Mon, 16 Feb 2009 15:45:55 -0800	[thread overview]
Message-ID: <9fbd402b72d6c494f453ff86e071ac1b2658ece9.1234826723.git.jeremy.fitzhardinge@citrix.com> (raw)
In-Reply-To: <edde7fdd064390d321bdafcfb993b28b4d2588b1.1234826723.git.jeremy.fitzhardinge@citrix.com>
In-Reply-To: <cover.1234826723.git.jeremy.fitzhardinge@citrix.com>

From: Juan Quintela <quintela@redhat.com>

Do initial xenbus/xenstore setup in dom0.  In dom0 we need to actually
allocate the xenstore resources, rather than being given them from
outside.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 drivers/xen/xenbus/xenbus_probe.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 773d1cf..38aaec3 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -821,6 +821,7 @@ void xenbus_probe(struct work_struct *unused)
 static int __init xenbus_probe_init(void)
 {
 	int err = 0;
+	unsigned long page = 0;
 
 	DPRINTK("");
 
@@ -841,7 +842,31 @@ static int __init xenbus_probe_init(void)
 	 * Domain0 doesn't have a store_evtchn or store_mfn yet.
 	 */
 	if (xen_initial_domain()) {
-		/* dom0 not yet supported */
+		struct evtchn_alloc_unbound alloc_unbound;
+
+		/* Allocate Xenstore page */
+		page = get_zeroed_page(GFP_KERNEL);
+		if (!page)
+			return -ENOMEM;
+
+		xen_store_mfn = xen_start_info->store_mfn =
+			pfn_to_mfn(virt_to_phys((void *)page) >>
+				   PAGE_SHIFT);
+
+		/* Next allocate a local port which xenstored can bind to */
+		alloc_unbound.dom        = DOMID_SELF;
+		alloc_unbound.remote_dom = 0;
+
+		err = HYPERVISOR_event_channel_op(EVTCHNOP_alloc_unbound,
+						  &alloc_unbound);
+		if (err == -ENOSYS)
+			goto out_unreg_front;
+
+		BUG_ON(err);
+		xen_store_evtchn = xen_start_info->store_evtchn =
+			alloc_unbound.port;
+
+		xen_store_interface = mfn_to_virt(xen_store_mfn);
 	} else {
 		xenstored_ready = 1;
 		xen_store_evtchn = xen_start_info->store_evtchn;
@@ -877,6 +902,9 @@ static int __init xenbus_probe_init(void)
 	bus_unregister(&xenbus_frontend.bus);
 
   out_error:
+	if (page != 0)
+		free_page(page);
+
 	return err;
 }
 
-- 
1.6.0.6


  reply	other threads:[~2009-02-16 23:47 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-16 23:45 [PATCH 00/19] *** SUBJECT HERE *** Jeremy Fitzhardinge
2009-02-16 23:45 ` [PATCH 01/19] xen dom0: Make hvc_xen console work for dom0 Jeremy Fitzhardinge
2009-02-16 23:45   ` Jeremy Fitzhardinge [this message]
2009-02-16 23:45     ` [PATCH 03/19] xen dom0: Set up basic IO permissions " Jeremy Fitzhardinge
2009-02-16 23:45       ` [PATCH 04/19] xen-dom0: only selectively disable cpu features Jeremy Fitzhardinge
2009-02-16 23:45         ` Jeremy Fitzhardinge
2009-02-16 23:45         ` [PATCH 05/19] xen dom0: Add support for the platform_ops hypercall Jeremy Fitzhardinge
2009-02-16 23:45           ` [PATCH 06/19] xen mtrr: Add mtrr_ops support for Xen mtrr Jeremy Fitzhardinge
2009-02-16 23:46             ` [PATCH 07/19] xen: disable PAT Jeremy Fitzhardinge
2009-02-16 23:46               ` [PATCH 08/19] xen/dom0: use _PAGE_IOMAP in ioremap to do machine mappings Jeremy Fitzhardinge
2009-02-16 23:46                 ` [PATCH 09/19] paravirt/xen: add pvop for page_is_ram Jeremy Fitzhardinge
2009-02-16 23:46                   ` [PATCH 10/19] xen/dom0: Use host E820 map Jeremy Fitzhardinge
2009-02-16 23:46                     ` [PATCH 11/19] xen: implement XENMEM_machphys_mapping Jeremy Fitzhardinge
2009-02-16 23:46                       ` [PATCH 12/19] xen: clear reserved bits in l3 entries given in the initial pagetables Jeremy Fitzhardinge
2009-02-16 23:46                         ` [PATCH 13/19] xen/dom0: add XEN_DOM0 config option Jeremy Fitzhardinge
2009-02-16 23:46                           ` [PATCH 14/19] xen: allow enable use of VGA console on dom0 Jeremy Fitzhardinge
2009-02-16 23:46                             ` [PATCH 15/19] xen mtrr: Use specific cpu_has_foo macros instead of generic cpu_has() Jeremy Fitzhardinge
2009-02-16 23:46                               ` [PATCH 16/19] xen mtrr: Kill some unneccessary includes Jeremy Fitzhardinge
2009-02-16 23:46                                 ` [PATCH 17/19] xen mtrr: Use generic_validate_add_page() Jeremy Fitzhardinge
2009-02-16 23:46                                   ` [PATCH 18/19] xen mtrr: Implement xen_get_free_region() Jeremy Fitzhardinge
2009-02-16 23:46                                     ` [PATCH 19/19] xen mtrr: Add xen_{get,set}_mtrr() implementations Jeremy Fitzhardinge
2009-02-16 23:47 ` [Xen-devel] [PATCH 00/19] *** SUBJECT HERE *** Jeremy Fitzhardinge

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=9fbd402b72d6c494f453ff86e071ac1b2658ece9.1234826723.git.jeremy.fitzhardinge@citrix.com \
    --to=jeremy@goop.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=jeremy.fitzhardinge@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=quintela@redhat.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    --cc=yinghai@kernel.org \
    /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.