[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 08/11] xen: arm: rewrite start of day page table and cpu bring up
On Fri, 2013-09-27 at 15:10 +0100, Ian Campbell wrote: > On Fri, 2013-09-27 at 14:30 +0100, Julien Grall wrote: > > > > @@ -581,6 +589,12 @@ static void __init init_cpus_maps(void) > > > } > > > } > > > > > > + if ( (rc = arch_cpu_init(hwid, cpu)) < 0 ) > > > > As I understand your patch #6, arch_cpu_init take a logical cpu id (on > > ARM64 it's used as an index in an array). > > Yes, I thought I wanted to pass the hwid here, but it looks like I've > got my wires crossed. > > > So you should used j here. > > You mean cpuidx I think, after having moved the call after the cpuidx++ > > I wanted to handle the case where the function failed by having > possible_map not contain failed cpus. I think I'll handle this by making > tmp_map[i] == INVALID_MIDR in that case and checking that in the loop > which sets bits in cpu_possible_map. Incrementally this looks like: diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c index 5923cfc..b836be4 100644 --- a/xen/arch/arm/smpboot.c +++ b/xen/arch/arm/smpboot.c @@ -165,12 +165,6 @@ void __init smp_init_cpus(void) } } - if ( (rc = arch_cpu_init(hwid, cpu)) < 0 ) - { - printk("cpu init failed (hwid %x): %d\n", hwid, rc); - continue; - } - /* * Build a stashed array of MPIDR values. Numbering scheme requires * that if detected the boot CPU must be assigned logical id 0. Other @@ -196,7 +190,13 @@ void __init smp_init_cpus(void) break; } - tmp_map[i] = hwid; + if ( (rc = arch_cpu_init(i, cpu)) < 0 ) + { + printk("cpu%d init failed (hwid %x): %d\n", i, hwid, rc); + tmp_map[i] = MPIDR_INVALID; + } + else + tmp_map[i] = hwid; } if ( !bootcpu_valid ) @@ -208,6 +208,8 @@ void __init smp_init_cpus(void) for ( i = 0; i < cpuidx; i++ ) { + if ( tmp_map[i] == MPIDR_INVALID ) + continue; cpumask_set_cpu(i, &cpu_possible_map); cpu_logical_map(i) = tmp_map[i]; } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |