diff options
author | Anton Blanchard <anton@samba.org> | 2007-01-09 02:37:16 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-01-09 17:03:03 +1100 |
commit | ab87e8dc88a7cae341c403547cea6b022f5ac023 (patch) | |
tree | f3eb5fab9432b77e3a1d248daa142c8f4573becd /arch/powerpc | |
parent | e75b171768b8b98ec5fd57acb3e87a30c97c9472 (diff) | |
download | kernel_samsung_smdk4412-ab87e8dc88a7cae341c403547cea6b022f5ac023.zip kernel_samsung_smdk4412-ab87e8dc88a7cae341c403547cea6b022f5ac023.tar.gz kernel_samsung_smdk4412-ab87e8dc88a7cae341c403547cea6b022f5ac023.tar.bz2 |
[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 <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | 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 |