Merge tag 'jfs-5.6' of git://github.com/kleikamp/linux-shaggy
[linux-2.6-microblaze.git] / arch / x86 / crypto / cast6_avx_glue.c
index a8a38ff..48e0f37 100644 (file)
 
 #define CAST6_PARALLEL_BLOCKS 8
 
-asmlinkage void cast6_ecb_enc_8way(struct cast6_ctx *ctx, u8 *dst,
-                                  const u8 *src);
-asmlinkage void cast6_ecb_dec_8way(struct cast6_ctx *ctx, u8 *dst,
-                                  const u8 *src);
-
-asmlinkage void cast6_cbc_dec_8way(struct cast6_ctx *ctx, u8 *dst,
-                                  const u8 *src);
-asmlinkage void cast6_ctr_8way(struct cast6_ctx *ctx, u8 *dst, const u8 *src,
+asmlinkage void cast6_ecb_enc_8way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void cast6_ecb_dec_8way(const void *ctx, u8 *dst, const u8 *src);
+
+asmlinkage void cast6_cbc_dec_8way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void cast6_ctr_8way(const void *ctx, u8 *dst, const u8 *src,
                               le128 *iv);
 
-asmlinkage void cast6_xts_enc_8way(struct cast6_ctx *ctx, u8 *dst,
-                                  const u8 *src, le128 *iv);
-asmlinkage void cast6_xts_dec_8way(struct cast6_ctx *ctx, u8 *dst,
-                                  const u8 *src, le128 *iv);
+asmlinkage void cast6_xts_enc_8way(const void *ctx, u8 *dst, const u8 *src,
+                                  le128 *iv);
+asmlinkage void cast6_xts_dec_8way(const void *ctx, u8 *dst, const u8 *src,
+                                  le128 *iv);
 
 static int cast6_setkey_skcipher(struct crypto_skcipher *tfm,
                                 const u8 *key, unsigned int keylen)
@@ -41,21 +38,21 @@ static int cast6_setkey_skcipher(struct crypto_skcipher *tfm,
        return cast6_setkey(&tfm->base, key, keylen);
 }
 
-static void cast6_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void cast6_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-       glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-                                 GLUE_FUNC_CAST(__cast6_encrypt));
+       glue_xts_crypt_128bit_one(ctx, dst, src, iv, __cast6_encrypt);
 }
 
-static void cast6_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void cast6_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-       glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-                                 GLUE_FUNC_CAST(__cast6_decrypt));
+       glue_xts_crypt_128bit_one(ctx, dst, src, iv, __cast6_decrypt);
 }
 
-static void cast6_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void cast6_crypt_ctr(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
        be128 ctrblk;
+       u128 *dst = (u128 *)d;
+       const u128 *src = (const u128 *)s;
 
        le128_to_be128(&ctrblk, iv);
        le128_inc(iv);
@@ -70,10 +67,10 @@ static const struct common_glue_ctx cast6_enc = {
 
        .funcs = { {
                .num_blocks = CAST6_PARALLEL_BLOCKS,
-               .fn_u = { .ecb = GLUE_FUNC_CAST(cast6_ecb_enc_8way) }
+               .fn_u = { .ecb = cast6_ecb_enc_8way }
        }, {
                .num_blocks = 1,
-               .fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_encrypt) }
+               .fn_u = { .ecb = __cast6_encrypt }
        } }
 };
 
@@ -83,10 +80,10 @@ static const struct common_glue_ctx cast6_ctr = {
 
        .funcs = { {
                .num_blocks = CAST6_PARALLEL_BLOCKS,
-               .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_ctr_8way) }
+               .fn_u = { .ctr = cast6_ctr_8way }
        }, {
                .num_blocks = 1,
-               .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_crypt_ctr) }
+               .fn_u = { .ctr = cast6_crypt_ctr }
        } }
 };
 
@@ -96,10 +93,10 @@ static const struct common_glue_ctx cast6_enc_xts = {
 
        .funcs = { {
                .num_blocks = CAST6_PARALLEL_BLOCKS,
-               .fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_enc_8way) }
+               .fn_u = { .xts = cast6_xts_enc_8way }
        }, {
                .num_blocks = 1,
-               .fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_enc) }
+               .fn_u = { .xts = cast6_xts_enc }
        } }
 };
 
@@ -109,10 +106,10 @@ static const struct common_glue_ctx cast6_dec = {
 
        .funcs = { {
                .num_blocks = CAST6_PARALLEL_BLOCKS,
-               .fn_u = { .ecb = GLUE_FUNC_CAST(cast6_ecb_dec_8way) }
+               .fn_u = { .ecb = cast6_ecb_dec_8way }
        }, {
                .num_blocks = 1,
-               .fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_decrypt) }
+               .fn_u = { .ecb = __cast6_decrypt }
        } }
 };
 
@@ -122,10 +119,10 @@ static const struct common_glue_ctx cast6_dec_cbc = {
 
        .funcs = { {
                .num_blocks = CAST6_PARALLEL_BLOCKS,
-               .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(cast6_cbc_dec_8way) }
+               .fn_u = { .cbc = cast6_cbc_dec_8way }
        }, {
                .num_blocks = 1,
-               .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__cast6_decrypt) }
+               .fn_u = { .cbc = __cast6_decrypt }
        } }
 };
 
@@ -135,10 +132,10 @@ static const struct common_glue_ctx cast6_dec_xts = {
 
        .funcs = { {
                .num_blocks = CAST6_PARALLEL_BLOCKS,
-               .fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_dec_8way) }
+               .fn_u = { .xts = cast6_xts_dec_8way }
        }, {
                .num_blocks = 1,
-               .fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_dec) }
+               .fn_u = { .xts = cast6_xts_dec }
        } }
 };
 
@@ -154,8 +151,7 @@ static int ecb_decrypt(struct skcipher_request *req)
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-       return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(__cast6_encrypt),
-                                          req);
+       return glue_cbc_encrypt_req_128bit(__cast6_encrypt, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -177,7 +173,6 @@ static int xts_cast6_setkey(struct crypto_skcipher *tfm, const u8 *key,
                            unsigned int keylen)
 {
        struct cast6_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
-       u32 *flags = &tfm->base.crt_flags;
        int err;
 
        err = xts_verify_key(tfm, key, keylen);
@@ -185,13 +180,12 @@ static int xts_cast6_setkey(struct crypto_skcipher *tfm, const u8 *key,
                return err;
 
        /* first half of xts-key is for crypt */
-       err = __cast6_setkey(&ctx->crypt_ctx, key, keylen / 2, flags);
+       err = __cast6_setkey(&ctx->crypt_ctx, key, keylen / 2);
        if (err)
                return err;
 
        /* second half of xts-key is for tweak */
-       return __cast6_setkey(&ctx->tweak_ctx, key + keylen / 2, keylen / 2,
-                             flags);
+       return __cast6_setkey(&ctx->tweak_ctx, key + keylen / 2, keylen / 2);
 }
 
 static int xts_encrypt(struct skcipher_request *req)
@@ -199,8 +193,7 @@ static int xts_encrypt(struct skcipher_request *req)
        struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
        struct cast6_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-       return glue_xts_req_128bit(&cast6_enc_xts, req,
-                                  XTS_TWEAK_CAST(__cast6_encrypt),
+       return glue_xts_req_128bit(&cast6_enc_xts, req, __cast6_encrypt,
                                   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
 }
 
@@ -209,8 +202,7 @@ static int xts_decrypt(struct skcipher_request *req)
        struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
        struct cast6_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-       return glue_xts_req_128bit(&cast6_dec_xts, req,
-                                  XTS_TWEAK_CAST(__cast6_encrypt),
+       return glue_xts_req_128bit(&cast6_dec_xts, req, __cast6_encrypt,
                                   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
 }