diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2019-08-12 14:36:27 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2019-08-12 14:36:27 +0200 |
commit | c37dd209adcf9a17dccab32db8a0f9fa068bf81b (patch) | |
tree | 1f7d1531e21179d1bc47d322c97286a24a23db3e /crypto/serpent_generic.c | |
parent | dbe02bf7c56e55a5d9ef542dc3cf4cfc12f3017c (diff) | |
parent | 0a4fa7ef65b9f8d2d8cd0db31769f3a0eb77e76f (diff) | |
download | linux-crypto-c37dd209adcf9a17dccab32db8a0f9fa068bf81b.tar.gz linux-crypto-c37dd209adcf9a17dccab32db8a0f9fa068bf81b.zip |
Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi into efi/urgent
Pull a single EFI fix for v5.3 from Ard:
- Fix mixed mode breakage in EFI config table handling for TPM.
Diffstat (limited to 'crypto/serpent_generic.c')
-rw-r--r-- | crypto/serpent_generic.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/crypto/serpent_generic.c b/crypto/serpent_generic.c index 16f612b6..56fa665a 100644 --- a/crypto/serpent_generic.c +++ b/crypto/serpent_generic.c @@ -225,7 +225,13 @@ x4 ^= x2; \ }) -static void __serpent_setkey_sbox(u32 r0, u32 r1, u32 r2, u32 r3, u32 r4, u32 *k) +/* + * both gcc and clang have misoptimized this function in the past, + * producing horrible object code from spilling temporary variables + * on the stack. Forcing this part out of line avoids that. + */ +static noinline void __serpent_setkey_sbox(u32 r0, u32 r1, u32 r2, + u32 r3, u32 r4, u32 *k) { k += 100; S3(r3, r4, r0, r1, r2); store_and_load_keys(r1, r2, r4, r3, 28, 24); @@ -637,6 +643,7 @@ static struct crypto_alg srp_algs[2] = { { .cia_decrypt = serpent_decrypt } } }, { .cra_name = "tnepres", + .cra_driver_name = "tnepres-generic", .cra_flags = CRYPTO_ALG_TYPE_CIPHER, .cra_blocksize = SERPENT_BLOCK_SIZE, .cra_ctxsize = sizeof(struct serpent_ctx), |