Commit 221e00d1 authored by Borislav Petkov's avatar Borislav Petkov Committed by Herbert Xu

crypto: x86 - Add missing RETs

Add explicit RETs to the tail calls of AEGIS and MORUS crypto algorithms
otherwise they run into INT3 padding due to

  ("x86/asm: Pad assembly functions with INT3 instructions")

leading to spurious debug exceptions.

Mike Galbraith <efault@gmx.de> took care of all the remaining callsites.
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Acked-by: default avatarOndrej Mosnacek <omosnacek@gmail.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent a068b94d
...@@ -535,6 +535,7 @@ ENTRY(crypto_aegis128_aesni_enc_tail) ...@@ -535,6 +535,7 @@ ENTRY(crypto_aegis128_aesni_enc_tail)
movdqu STATE3, 0x40(STATEP) movdqu STATE3, 0x40(STATEP)
FRAME_END FRAME_END
ret
ENDPROC(crypto_aegis128_aesni_enc_tail) ENDPROC(crypto_aegis128_aesni_enc_tail)
.macro decrypt_block a s0 s1 s2 s3 s4 i .macro decrypt_block a s0 s1 s2 s3 s4 i
......
...@@ -645,6 +645,7 @@ ENTRY(crypto_aegis128l_aesni_enc_tail) ...@@ -645,6 +645,7 @@ ENTRY(crypto_aegis128l_aesni_enc_tail)
state_store0 state_store0
FRAME_END FRAME_END
ret
ENDPROC(crypto_aegis128l_aesni_enc_tail) ENDPROC(crypto_aegis128l_aesni_enc_tail)
/* /*
......
...@@ -543,6 +543,7 @@ ENTRY(crypto_aegis256_aesni_enc_tail) ...@@ -543,6 +543,7 @@ ENTRY(crypto_aegis256_aesni_enc_tail)
state_store0 state_store0
FRAME_END FRAME_END
ret
ENDPROC(crypto_aegis256_aesni_enc_tail) ENDPROC(crypto_aegis256_aesni_enc_tail)
/* /*
......
...@@ -453,6 +453,7 @@ ENTRY(crypto_morus1280_avx2_enc_tail) ...@@ -453,6 +453,7 @@ ENTRY(crypto_morus1280_avx2_enc_tail)
vmovdqu STATE4, (4 * 32)(%rdi) vmovdqu STATE4, (4 * 32)(%rdi)
FRAME_END FRAME_END
ret
ENDPROC(crypto_morus1280_avx2_enc_tail) ENDPROC(crypto_morus1280_avx2_enc_tail)
/* /*
......
...@@ -652,6 +652,7 @@ ENTRY(crypto_morus1280_sse2_enc_tail) ...@@ -652,6 +652,7 @@ ENTRY(crypto_morus1280_sse2_enc_tail)
movdqu STATE4_HI, (9 * 16)(%rdi) movdqu STATE4_HI, (9 * 16)(%rdi)
FRAME_END FRAME_END
ret
ENDPROC(crypto_morus1280_sse2_enc_tail) ENDPROC(crypto_morus1280_sse2_enc_tail)
/* /*
......
...@@ -437,6 +437,7 @@ ENTRY(crypto_morus640_sse2_enc_tail) ...@@ -437,6 +437,7 @@ ENTRY(crypto_morus640_sse2_enc_tail)
movdqu STATE4, (4 * 16)(%rdi) movdqu STATE4, (4 * 16)(%rdi)
FRAME_END FRAME_END
ret
ENDPROC(crypto_morus640_sse2_enc_tail) ENDPROC(crypto_morus640_sse2_enc_tail)
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment