aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/lib
diff options
context:
space:
mode:
authorGravatar Santosh Sivaraj <santosh@fossix.org> 2019-09-04 03:13:58 +0530
committerGravatar Michael Ellerman <mpe@ellerman.id.au> 2019-09-12 09:27:00 +1000
commit20055a8bfaaa75f2cb9c23ecc8ab12b4abd8dc84 (patch)
tree3d64b3e4bd6df2e322a47712bd65d72c46f77bb3 /arch/powerpc/lib
parentpowerpc: Add attributes for setjmp/longjmp (diff)
downloadlinux-20055a8bfaaa75f2cb9c23ecc8ab12b4abd8dc84.tar.gz
linux-20055a8bfaaa75f2cb9c23ecc8ab12b4abd8dc84.tar.bz2
linux-20055a8bfaaa75f2cb9c23ecc8ab12b4abd8dc84.zip
powerpc/memcpy: Fix stack corruption for smaller sizes
For sizes lesser than 128 bytes, the code branches out early without saving the stack frame, which when restored later drops frame of the caller. Tested-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Signed-off-by: Santosh Sivaraj <santosh@fossix.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20190903214359.23887-1-santosh@fossix.org
Diffstat (limited to 'arch/powerpc/lib')
-rw-r--r--arch/powerpc/lib/memcpy_mcsafe_64.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/lib/memcpy_mcsafe_64.S b/arch/powerpc/lib/memcpy_mcsafe_64.S
index 949976dc115d..cb882d9a6d8a 100644
--- a/arch/powerpc/lib/memcpy_mcsafe_64.S
+++ b/arch/powerpc/lib/memcpy_mcsafe_64.S
@@ -84,7 +84,6 @@ err1; stw r0,0(r3)
3: sub r5,r5,r6
cmpldi r5,128
- blt 5f
mflr r0
stdu r1,-STACKFRAMESIZE(r1)
@@ -99,6 +98,7 @@ err1; stw r0,0(r3)
std r22,STK_REG(R22)(r1)
std r0,STACKFRAMESIZE+16(r1)
+ blt 5f
srdi r6,r5,7
mtctr r6