aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2005-04-27 21:04:45 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-27 21:04:45 -0400
commitbdceb6a0162274934386f19f3ea5a9d44feb0b20 (patch)
tree326774cd0818e893561a3e77fc57ad5ea320771a /arch
parent5fc3e624ad7278604628c598e92aa77c67064166 (diff)
[PATCH] ppc64: Fix return value of some vDSO calls
The ppc vDSO would not properly clear the return value for some calls, which will be a problem when interfacing those calls with glibc. This should be fixed before 2.6.12 is released (as it is the first kernel with the ppc vDSO) so that we don't have to play with symbol versioning and ugly workarounds. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/ppc64/kernel/vdso32/cacheflush.S2
-rw-r--r--arch/ppc64/kernel/vdso32/gettimeofday.S1
-rw-r--r--arch/ppc64/kernel/vdso64/cacheflush.S2
3 files changed, 5 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/vdso32/cacheflush.S b/arch/ppc64/kernel/vdso32/cacheflush.S
index c74fddb6afd4..0ed7ea721715 100644
--- a/arch/ppc64/kernel/vdso32/cacheflush.S
+++ b/arch/ppc64/kernel/vdso32/cacheflush.S
@@ -47,6 +47,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
47 addi r6,r6,128 47 addi r6,r6,128
48 bdnz 1b 48 bdnz 1b
49 isync 49 isync
50 li r3,0
50 blr 51 blr
51 .cfi_endproc 52 .cfi_endproc
52V_FUNCTION_END(__kernel_sync_dicache) 53V_FUNCTION_END(__kernel_sync_dicache)
@@ -59,6 +60,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache_p5)
59 .cfi_startproc 60 .cfi_startproc
60 sync 61 sync
61 isync 62 isync
63 li r3,0
62 blr 64 blr
63 .cfi_endproc 65 .cfi_endproc
64V_FUNCTION_END(__kernel_sync_dicache_p5) 66V_FUNCTION_END(__kernel_sync_dicache_p5)
diff --git a/arch/ppc64/kernel/vdso32/gettimeofday.S b/arch/ppc64/kernel/vdso32/gettimeofday.S
index ca7f415195c4..2b48bf1fb109 100644
--- a/arch/ppc64/kernel/vdso32/gettimeofday.S
+++ b/arch/ppc64/kernel/vdso32/gettimeofday.S
@@ -58,6 +58,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
58 stw r5,TZONE_TZ_DSTTIME(r11) 58 stw r5,TZONE_TZ_DSTTIME(r11)
59 59
601: mtlr r12 601: mtlr r12
61 li r3,0
61 blr 62 blr
62 63
632: mr r3,r10 642: mr r3,r10
diff --git a/arch/ppc64/kernel/vdso64/cacheflush.S b/arch/ppc64/kernel/vdso64/cacheflush.S
index d9696ffcf334..e0725b7b7003 100644
--- a/arch/ppc64/kernel/vdso64/cacheflush.S
+++ b/arch/ppc64/kernel/vdso64/cacheflush.S
@@ -47,6 +47,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
47 addi r6,r6,128 47 addi r6,r6,128
48 bdnz 1b 48 bdnz 1b
49 isync 49 isync
50 li r3,0
50 blr 51 blr
51 .cfi_endproc 52 .cfi_endproc
52V_FUNCTION_END(__kernel_sync_dicache) 53V_FUNCTION_END(__kernel_sync_dicache)
@@ -59,6 +60,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache_p5)
59 .cfi_startproc 60 .cfi_startproc
60 sync 61 sync
61 isync 62 isync
63 li r3,0
62 blr 64 blr
63 .cfi_endproc 65 .cfi_endproc
64V_FUNCTION_END(__kernel_sync_dicache_p5) 66V_FUNCTION_END(__kernel_sync_dicache_p5)