projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
aec4d0e
)
x86/asm/crypto: Don't use RBP as a scratch register
author
Josh Poimboeuf
<
[email protected]
>
Thu, 21 Jan 2016 22:49:18 +0000
(16:49 -0600)
committer
Ingo Molnar
<
[email protected]
>
Wed, 24 Feb 2016 07:35:42 +0000
(08:35 +0100)
The frame pointer (RBP) is getting clobbered in
sha1_mb_mgr_submit_avx2() before a function call, which can mess up
stack traces. Use R12 instead.
Signed-off-by: Josh Poimboeuf <
[email protected]
>
Cc: Andrew Morton <
[email protected]
>
Cc: Andy Lutomirski <
[email protected]
>
Cc: Andy Lutomirski <
[email protected]
>
Cc: Arnaldo Carvalho de Melo <
[email protected]
>
Cc: Bernd Petrovitsch <
[email protected]
>
Cc: Borislav Petkov <
[email protected]
>
Cc: Brian Gerst <
[email protected]
>
Cc: Chris J Arges <
[email protected]
>
Cc: Denys Vlasenko <
[email protected]
>
Cc: H. Peter Anvin <
[email protected]
>
Cc: Jiri Slaby <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Cc: Michal Marek <
[email protected]
>
Cc: Namhyung Kim <
[email protected]
>
Cc: Pedro Alves <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Cc:
[email protected]
Link:
http://lkml.kernel.org/r/15a3eb7ebe68e37755927915f45e4f0bde4d18c5.1453405861.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <
[email protected]
>
arch/x86/crypto/sha-mb/sha1_mb_mgr_submit_avx2.S
patch
|
blob
|
history
diff --git
a/arch/x86/crypto/sha-mb/sha1_mb_mgr_submit_avx2.S
b/arch/x86/crypto/sha-mb/sha1_mb_mgr_submit_avx2.S
index a5a14c62d843262660067837e31e13e826a71d82..c3b944781d3f971556794b4b9fbbc36e5e0f5b83 100644
(file)
--- a/
arch/x86/crypto/sha-mb/sha1_mb_mgr_submit_avx2.S
+++ b/
arch/x86/crypto/sha-mb/sha1_mb_mgr_submit_avx2.S
@@
-86,8
+86,8
@@
job_rax = %rax
len = %rax
DWORD_len = %eax
-lane = %r
bp
-tmp3 = %r
bp
+lane = %r
12
+tmp3 = %r
12
tmp = %r9
DWORD_tmp = %r9d
@@
-99,7
+99,7
@@
lane_data = %r10
# arg 2 : rdx : job
ENTRY(sha1_mb_mgr_submit_avx2)
push %rbx
- push %r
bp
+ push %r
12
mov _unused_lanes(state), unused_lanes
mov unused_lanes, lane
@@
-190,7
+190,7
@@
len_is_0:
movl DWORD_tmp, _result_digest+1*16(job_rax)
return:
- pop %r
bp
+ pop %r
12
pop %rbx
ret