@@ -183,11 +183,10 @@ static int hash_dma_write(struct hash_ctx *ctx,
* @zero_digest: True if zero_digest returned.
*/
static int get_empty_message_digest(
- struct hash_device_data *device_data,
+ struct hash_device_data *device_data, struct hash_ctx *ctx,
u8 *zero_hash, u32 *zero_hash_size, bool *zero_digest)
{
int ret = 0;
- struct hash_ctx *ctx = device_data->current_ctx;
*zero_digest = false;
/**
@@ -889,7 +888,7 @@ static int hash_hw_final(struct ahash_request *req)
* Use a pre-calculated empty message digest
* (workaround since hw return zeroes, hw bug!?)
*/
- ret = get_empty_message_digest(device_data, &zero_hash[0],
+ ret = get_empty_message_digest(device_data, ctx, &zero_hash[0],
&zero_hash_size, &zero_digest);
if (!ret && likely(zero_hash_size == ctx->digestsize) &&
zero_digest) {
This function obtains the current context from the device state pointer, which is fragile. Pass the context explicitly instead. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- ChangeLog v2->v3: - Rebased on v6.0-rc1 ChangeLog v1->v2: - No changes --- drivers/crypto/ux500/hash/hash_core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)