From: Chen Baozi <baoz...@gmail.com> This patch does the same thing as the previous one but for dom0 kernel.
Signed-off-by: Chen Baozi <baoz...@gmail.com> --- xen/arch/arm/domain_build.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index a156de9..28b4f75 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -712,6 +712,7 @@ static int make_cpus_node(const struct domain *d, void *fdt, char buf[15]; u32 clock_frequency; bool_t clock_valid; + uint32_t cpu_id; DPRINT("Create cpus node\n"); @@ -761,9 +762,13 @@ static int make_cpus_node(const struct domain *d, void *fdt, for ( cpu = 0; cpu < d->max_vcpus; cpu++ ) { - DPRINT("Create cpu@%u node\n", cpu); + /* + * Linux kernel assumes that MPIDR is equal to logical CPUID + */ + cpu_id = vcpuid_to_vaffinity(cpu); + DPRINT("Create cpu@%x node\n", cpu_id); - snprintf(buf, sizeof(buf), "cpu@%u", cpu); + snprintf(buf, sizeof(buf), "cpu@%x", cpu_id); res = fdt_begin_node(fdt, buf); if ( res ) return res; @@ -776,7 +781,7 @@ static int make_cpus_node(const struct domain *d, void *fdt, if ( res ) return res; - res = fdt_property_cell(fdt, "reg", cpu); + res = fdt_property_cell(fdt, "reg", cpu_id); if ( res ) return res; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel