Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9918cc2e3275bf7f3561e4de1d5a3314183e71dc
Commit:     9918cc2e3275bf7f3561e4de1d5a3314183e71dc
Parent:     39dd992aee381ff5077536853051fc69e58cc4a9
Author:     David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Sun Jul 15 02:02:01 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jul 16 04:05:24 2007 -0700

    [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 <[EMAIL PROTECTED]>
---
 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 d412cf8..b633171 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,
                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);
                }
        }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to