[SPARC64]: Give more accurate errors in dr_cpu_configure().
When cpu_up() fails, we can discern the most likely cause. If cpu_present() is false, this means the cpu did not appear in the MD. If -ENODEV is the error return value, then the processor did not boot properly into the kernel. Pass this information back in the dr-cpu response packet. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
39dd992aee
Коммит
9918cc2e32
|
@ -535,11 +535,21 @@ static int dr_cpu_configure(struct ds_cap_state *cp, u64 req_num,
|
|||
printk(KERN_INFO PFX "Starting cpu %d...\n", cpu);
|
||||
err = cpu_up(cpu);
|
||||
if (err) {
|
||||
__u32 res = DR_CPU_RES_FAILURE;
|
||||
__u32 stat = DR_CPU_STAT_UNCONFIGURED;
|
||||
|
||||
if (!cpu_present(cpu)) {
|
||||
/* CPU not present in MD */
|
||||
res = DR_CPU_RES_NOT_IN_MD;
|
||||
stat = DR_CPU_STAT_NOT_PRESENT;
|
||||
} else if (err == -ENODEV) {
|
||||
/* CPU did not call in successfully */
|
||||
res = DR_CPU_RES_CPU_NOT_RESPONDING;
|
||||
}
|
||||
|
||||
printk(KERN_INFO PFX "CPU startup failed err=%d\n",
|
||||
err);
|
||||
dr_cpu_mark(resp, cpu, ncpus,
|
||||
DR_CPU_RES_FAILURE,
|
||||
DR_CPU_STAT_UNCONFIGURED);
|
||||
dr_cpu_mark(resp, cpu, ncpus, res, stat);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче