diff options
-rw-r--r-- | arch/sparc64/kernel/ds.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/ds.c b/arch/sparc64/kernel/ds.c index d412cf876ab4..b6331718ee0c 100644 --- a/arch/sparc64/kernel/ds.c +++ b/arch/sparc64/kernel/ds.c | |||
@@ -535,11 +535,21 @@ static int dr_cpu_configure(struct ds_cap_state *cp, u64 req_num, | |||
535 | printk(KERN_INFO PFX "Starting cpu %d...\n", cpu); | 535 | printk(KERN_INFO PFX "Starting cpu %d...\n", cpu); |
536 | err = cpu_up(cpu); | 536 | err = cpu_up(cpu); |
537 | if (err) { | 537 | if (err) { |
538 | __u32 res = DR_CPU_RES_FAILURE; | ||
539 | __u32 stat = DR_CPU_STAT_UNCONFIGURED; | ||
540 | |||
541 | if (!cpu_present(cpu)) { | ||
542 | /* CPU not present in MD */ | ||
543 | res = DR_CPU_RES_NOT_IN_MD; | ||
544 | stat = DR_CPU_STAT_NOT_PRESENT; | ||
545 | } else if (err == -ENODEV) { | ||
546 | /* CPU did not call in successfully */ | ||
547 | res = DR_CPU_RES_CPU_NOT_RESPONDING; | ||
548 | } | ||
549 | |||
538 | printk(KERN_INFO PFX "CPU startup failed err=%d\n", | 550 | printk(KERN_INFO PFX "CPU startup failed err=%d\n", |
539 | err); | 551 | err); |
540 | dr_cpu_mark(resp, cpu, ncpus, | 552 | dr_cpu_mark(resp, cpu, ncpus, res, stat); |
541 | DR_CPU_RES_FAILURE, | ||
542 | DR_CPU_STAT_UNCONFIGURED); | ||
543 | } | 553 | } |
544 | } | 554 | } |
545 | 555 | ||