[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XenPPC] [linux-ppc-2.6] [POWERPC][XEN][LINUX] Always construct a start_info_t from device tree properties.
# HG changeset patch # User Hollis Blanchard <hollisb@xxxxxxxxxx> # Date 1172781585 21600 # Node ID 7638780944199b7dad6cc4f017e26cde99f0e695 # Parent 3e512eaf2a6f0f740331bc891fbc0a29392a2794 [POWERPC][XEN][LINUX] Always construct a start_info_t from device tree properties. Xen used to create one for Dom0, but no longer. Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx> Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx> --- arch/powerpc/platforms/xen/setup.c | 35 ++++++++++++++++------------------- 1 files changed, 16 insertions(+), 19 deletions(-) diff -r 3e512eaf2a6f -r 763878094419 arch/powerpc/platforms/xen/setup.c --- a/arch/powerpc/platforms/xen/setup.c Thu Mar 01 10:27:39 2007 -0600 +++ b/arch/powerpc/platforms/xen/setup.c Thu Mar 01 14:39:45 2007 -0600 @@ -32,7 +32,7 @@ EXPORT_SYMBOL(HYPERVISOR_shared_info); EXPORT_SYMBOL(HYPERVISOR_shared_info); /* Raw start-of-day parameters from the hypervisor. */ -start_info_t xsi; +static start_info_t xsi; start_info_t *xen_start_info; EXPORT_SYMBOL(xen_start_info); @@ -89,29 +89,26 @@ static void __init xen_init_early(void) static void __init xen_init_early(void) { struct device_node *xen; - u64 *si; DBG(" -> %s\n", __func__); xen = of_find_node_by_path("/xen"); - si = (u64 *)get_property(xen, "start-info", NULL); - - /* build our own start_info_t if start-info property is not present */ - if (si != NULL) { - xen_start_info = (start_info_t *)__va(*si); - } else { - struct device_node *console; - struct device_node *store; - - console = of_find_node_by_path("/xen/console"); - store = of_find_node_by_path("/xen/store"); - - xen_start_info = &xsi; - - /* fill out start_info_t from devtree */ - xen_start_info->shared_info = *((u64 *)get_property(xen, - "shared-info", NULL)); + xen_start_info = &xsi; + + /* fill out start_info_t from devtree */ + if ((char *)get_property(xen, "privileged", NULL)) + xen_start_info->flags |= SIF_PRIVILEGED; + if ((char *)get_property(xen, "initdomain", NULL)) + xen_start_info->flags |= SIF_INITDOMAIN; + xen_start_info->shared_info = *((u64 *)get_property(xen, + "shared-info", NULL)); + + /* only look for store and console for guest domains */ + if (xen_start_info->flags == 0) { + struct device_node *console = of_find_node_by_path("/xen/console"); + struct device_node *store = of_find_node_by_path("/xen/store"); + xen_start_info->store_mfn = (*((u64 *)get_property(store, "reg", NULL))) >> PAGE_SHIFT; xen_start_info->store_evtchn = *((u32 *)get_property(store, _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |