Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab87e8dc88a7cae341c403547cea6b022f5ac023
Commit:     ab87e8dc88a7cae341c403547cea6b022f5ac023
Parent:     e75b171768b8b98ec5fd57acb3e87a30c97c9472
Author:     Anton Blanchard <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 9 02:37:16 2007 +1100
Committer:  Paul Mackerras <[EMAIL PROTECTED]>
CommitDate: Tue Jan 9 17:03:03 2007 +1100

    [POWERPC] Fix corruption in hcall9
    
    It looks to me like we are corrupting r12 in the hcall9 function.
    Although we have r0 free we cant use offsets against it, so save
    away r12 in there instead.  r12 holds the ninth return value from
    the hypervisor call, so without this fix, the caller will see the
    wrong value for the ninth element in the array that gets the return
    values.
    
    Signed-off-by: Anton Blanchard <[EMAIL PROTECTED]>
    Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>
---
 arch/powerpc/platforms/pseries/hvCall.S |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/hvCall.S 
b/arch/powerpc/platforms/pseries/hvCall.S
index c00cfed..527da44 100644
--- a/arch/powerpc/platforms/pseries/hvCall.S
+++ b/arch/powerpc/platforms/pseries/hvCall.S
@@ -145,6 +145,7 @@ _GLOBAL(plpar_hcall9)
 
        HVSC                            /* invoke the hypervisor */
 
+       mr      r0,r12
        ld      r12,STK_PARM(r4)(r1)
        std     r4,  0(r12)
        std     r5,  8(r12)
@@ -154,7 +155,7 @@ _GLOBAL(plpar_hcall9)
        std     r9, 40(r12)
        std     r10,48(r12)
        std     r11,56(r12)
-       std     r12,64(r12)
+       std     r0, 64(r12)
 
        HCALL_INST_POSTCALL
 
-
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