lkml.org 
[lkml]   [2022]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 11/33] crypto: rockchip: rewrite type
    Date
    Instead of using a custom type for classify algorithms, let's just use
    already defined ones.
    And let's made a bit more verbose about what is registered.

    Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
    ---
    drivers/crypto/rockchip/rk3288_crypto.c | 26 +++++++++++++------
    drivers/crypto/rockchip/rk3288_crypto.h | 7 +----
    drivers/crypto/rockchip/rk3288_crypto_ahash.c | 6 ++---
    .../crypto/rockchip/rk3288_crypto_skcipher.c | 12 ++++-----
    4 files changed, 28 insertions(+), 23 deletions(-)

    diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c
    index 1afb65eee6c9..8f9664acc78d 100644
    --- a/drivers/crypto/rockchip/rk3288_crypto.c
    +++ b/drivers/crypto/rockchip/rk3288_crypto.c
    @@ -102,12 +102,22 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)

    for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
    rk_cipher_algs[i]->dev = crypto_info;
    - if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
    - err = crypto_register_skcipher(
    - &rk_cipher_algs[i]->alg.skcipher);
    - else
    - err = crypto_register_ahash(
    - &rk_cipher_algs[i]->alg.hash);
    + switch (rk_cipher_algs[i]->type) {
    + case CRYPTO_ALG_TYPE_SKCIPHER:
    + dev_info(crypto_info->dev, "Register %s as %s\n",
    + rk_cipher_algs[i]->alg.skcipher.base.cra_name,
    + rk_cipher_algs[i]->alg.skcipher.base.cra_driver_name);
    + err = crypto_register_skcipher(&rk_cipher_algs[i]->alg.skcipher);
    + break;
    + case CRYPTO_ALG_TYPE_AHASH:
    + dev_info(crypto_info->dev, "Register %s as %s\n",
    + rk_cipher_algs[i]->alg.hash.halg.base.cra_name,
    + rk_cipher_algs[i]->alg.hash.halg.base.cra_driver_name);
    + err = crypto_register_ahash(&rk_cipher_algs[i]->alg.hash);
    + break;
    + default:
    + dev_err(crypto_info->dev, "unknown algorithm\n");
    + }
    if (err)
    goto err_cipher_algs;
    }
    @@ -115,7 +125,7 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)

    err_cipher_algs:
    for (k = 0; k < i; k++) {
    - if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
    + if (rk_cipher_algs[i]->type == CRYPTO_ALG_TYPE_SKCIPHER)
    crypto_unregister_skcipher(&rk_cipher_algs[k]->alg.skcipher);
    else
    crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
    @@ -128,7 +138,7 @@ static void rk_crypto_unregister(void)
    unsigned int i;

    for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
    - if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
    + if (rk_cipher_algs[i]->type == CRYPTO_ALG_TYPE_SKCIPHER)
    crypto_unregister_skcipher(&rk_cipher_algs[i]->alg.skcipher);
    else
    crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
    diff --git a/drivers/crypto/rockchip/rk3288_crypto.h b/drivers/crypto/rockchip/rk3288_crypto.h
    index 65ed645e0168..d924ea17402a 100644
    --- a/drivers/crypto/rockchip/rk3288_crypto.h
    +++ b/drivers/crypto/rockchip/rk3288_crypto.h
    @@ -232,18 +232,13 @@ struct rk_cipher_rctx {
    struct skcipher_request fallback_req; // keep at the end
    };

    -enum alg_type {
    - ALG_TYPE_HASH,
    - ALG_TYPE_CIPHER,
    -};
    -
    struct rk_crypto_tmp {
    + u32 type;
    struct rk_crypto_info *dev;
    union {
    struct skcipher_alg skcipher;
    struct ahash_alg hash;
    } alg;
    - enum alg_type type;
    };

    extern struct rk_crypto_tmp rk_ecb_aes_alg;
    diff --git a/drivers/crypto/rockchip/rk3288_crypto_ahash.c b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
    index edd40e16a3f0..d08e2438d356 100644
    --- a/drivers/crypto/rockchip/rk3288_crypto_ahash.c
    +++ b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
    @@ -352,7 +352,7 @@ static void rk_cra_hash_exit(struct crypto_tfm *tfm)
    }

    struct rk_crypto_tmp rk_ahash_sha1 = {
    - .type = ALG_TYPE_HASH,
    + .type = CRYPTO_ALG_TYPE_AHASH,
    .alg.hash = {
    .init = rk_ahash_init,
    .update = rk_ahash_update,
    @@ -382,7 +382,7 @@ struct rk_crypto_tmp rk_ahash_sha1 = {
    };

    struct rk_crypto_tmp rk_ahash_sha256 = {
    - .type = ALG_TYPE_HASH,
    + .type = CRYPTO_ALG_TYPE_AHASH,
    .alg.hash = {
    .init = rk_ahash_init,
    .update = rk_ahash_update,
    @@ -412,7 +412,7 @@ struct rk_crypto_tmp rk_ahash_sha256 = {
    };

    struct rk_crypto_tmp rk_ahash_md5 = {
    - .type = ALG_TYPE_HASH,
    + .type = CRYPTO_ALG_TYPE_AHASH,
    .alg.hash = {
    .init = rk_ahash_init,
    .update = rk_ahash_update,
    diff --git a/drivers/crypto/rockchip/rk3288_crypto_skcipher.c b/drivers/crypto/rockchip/rk3288_crypto_skcipher.c
    index 67a7e05d5ae3..1ed297f5d809 100644
    --- a/drivers/crypto/rockchip/rk3288_crypto_skcipher.c
    +++ b/drivers/crypto/rockchip/rk3288_crypto_skcipher.c
    @@ -468,7 +468,7 @@ static void rk_ablk_exit_tfm(struct crypto_skcipher *tfm)
    }

    struct rk_crypto_tmp rk_ecb_aes_alg = {
    - .type = ALG_TYPE_CIPHER,
    + .type = CRYPTO_ALG_TYPE_SKCIPHER,
    .alg.skcipher = {
    .base.cra_name = "ecb(aes)",
    .base.cra_driver_name = "ecb-aes-rk",
    @@ -490,7 +490,7 @@ struct rk_crypto_tmp rk_ecb_aes_alg = {
    };

    struct rk_crypto_tmp rk_cbc_aes_alg = {
    - .type = ALG_TYPE_CIPHER,
    + .type = CRYPTO_ALG_TYPE_SKCIPHER,
    .alg.skcipher = {
    .base.cra_name = "cbc(aes)",
    .base.cra_driver_name = "cbc-aes-rk",
    @@ -513,7 +513,7 @@ struct rk_crypto_tmp rk_cbc_aes_alg = {
    };

    struct rk_crypto_tmp rk_ecb_des_alg = {
    - .type = ALG_TYPE_CIPHER,
    + .type = CRYPTO_ALG_TYPE_SKCIPHER,
    .alg.skcipher = {
    .base.cra_name = "ecb(des)",
    .base.cra_driver_name = "ecb-des-rk",
    @@ -535,7 +535,7 @@ struct rk_crypto_tmp rk_ecb_des_alg = {
    };

    struct rk_crypto_tmp rk_cbc_des_alg = {
    - .type = ALG_TYPE_CIPHER,
    + .type = CRYPTO_ALG_TYPE_SKCIPHER,
    .alg.skcipher = {
    .base.cra_name = "cbc(des)",
    .base.cra_driver_name = "cbc-des-rk",
    @@ -558,7 +558,7 @@ struct rk_crypto_tmp rk_cbc_des_alg = {
    };

    struct rk_crypto_tmp rk_ecb_des3_ede_alg = {
    - .type = ALG_TYPE_CIPHER,
    + .type = CRYPTO_ALG_TYPE_SKCIPHER,
    .alg.skcipher = {
    .base.cra_name = "ecb(des3_ede)",
    .base.cra_driver_name = "ecb-des3-ede-rk",
    @@ -580,7 +580,7 @@ struct rk_crypto_tmp rk_ecb_des3_ede_alg = {
    };

    struct rk_crypto_tmp rk_cbc_des3_ede_alg = {
    - .type = ALG_TYPE_CIPHER,
    + .type = CRYPTO_ALG_TYPE_SKCIPHER,
    .alg.skcipher = {
    .base.cra_name = "cbc(des3_ede)",
    .base.cra_driver_name = "cbc-des3-ede-rk",
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-04-13 21:09    [W:4.437 / U:0.512 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site