Loading drivers/md/dm-integrity.c +24 −23 Original line number Diff line number Diff line Loading @@ -4354,46 +4354,47 @@ static int get_mac(struct crypto_shash **shash, struct crypto_ahash **ahash, int r; if (a->alg_string) { if (ahash) { *ahash = crypto_alloc_ahash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*ahash)) { *ahash = NULL; goto try_shash; if (shash) { *shash = crypto_alloc_shash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*shash)) { *shash = NULL; goto try_ahash; } if (a->key) { r = crypto_ahash_setkey(*ahash, a->key, a->key_size); r = crypto_shash_setkey(*shash, a->key, a->key_size); if (r) { *error = error_key; return r; } } else if (crypto_ahash_get_flags(*ahash) & CRYPTO_TFM_NEED_KEY) { } else if (crypto_shash_get_flags(*shash) & CRYPTO_TFM_NEED_KEY) { *error = error_key; return -ENOKEY; } return 0; } try_shash: *shash = crypto_alloc_shash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*shash)) { try_ahash: if (ahash) { *ahash = crypto_alloc_ahash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*ahash)) { *error = error_alg; r = PTR_ERR(*shash); *shash = NULL; r = PTR_ERR(*ahash); *ahash = NULL; return r; } if (a->key) { r = crypto_shash_setkey(*shash, a->key, a->key_size); r = crypto_ahash_setkey(*ahash, a->key, a->key_size); if (r) { *error = error_key; return r; } } else if (crypto_shash_get_flags(*shash) & CRYPTO_TFM_NEED_KEY) { } else if (crypto_ahash_get_flags(*ahash) & CRYPTO_TFM_NEED_KEY) { *error = error_key; return -ENOKEY; } return 0; } *error = error_alg; return -ENOENT; } return 0; Loading Loading
drivers/md/dm-integrity.c +24 −23 Original line number Diff line number Diff line Loading @@ -4354,46 +4354,47 @@ static int get_mac(struct crypto_shash **shash, struct crypto_ahash **ahash, int r; if (a->alg_string) { if (ahash) { *ahash = crypto_alloc_ahash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*ahash)) { *ahash = NULL; goto try_shash; if (shash) { *shash = crypto_alloc_shash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*shash)) { *shash = NULL; goto try_ahash; } if (a->key) { r = crypto_ahash_setkey(*ahash, a->key, a->key_size); r = crypto_shash_setkey(*shash, a->key, a->key_size); if (r) { *error = error_key; return r; } } else if (crypto_ahash_get_flags(*ahash) & CRYPTO_TFM_NEED_KEY) { } else if (crypto_shash_get_flags(*shash) & CRYPTO_TFM_NEED_KEY) { *error = error_key; return -ENOKEY; } return 0; } try_shash: *shash = crypto_alloc_shash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*shash)) { try_ahash: if (ahash) { *ahash = crypto_alloc_ahash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY); if (IS_ERR(*ahash)) { *error = error_alg; r = PTR_ERR(*shash); *shash = NULL; r = PTR_ERR(*ahash); *ahash = NULL; return r; } if (a->key) { r = crypto_shash_setkey(*shash, a->key, a->key_size); r = crypto_ahash_setkey(*ahash, a->key, a->key_size); if (r) { *error = error_key; return r; } } else if (crypto_shash_get_flags(*shash) & CRYPTO_TFM_NEED_KEY) { } else if (crypto_ahash_get_flags(*ahash) & CRYPTO_TFM_NEED_KEY) { *error = error_key; return -ENOKEY; } return 0; } *error = error_alg; return -ENOENT; } return 0; Loading