xen: Enable interrupts when calling _cond_resched()
[platform/kernel/linux-rpi.git] / crypto / serpent_generic.c
index 16f612b..56fa665 100644 (file)
        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),