mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
hw/misc/aspeed_hace: Extract non-accumulation hash execution into helper function
To improve code readability and maintainability of do_hash_operation(), this commit introduces a new helper function: hash_execute_non_acc_mode(). The helper encapsulate the hashing logic for non-accumulation mode. No functional changes are introduced. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/20250515081008.583578-8-jamin_lin@aspeedtech.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
0479419785
commit
02c4c44846
1 changed files with 24 additions and 8 deletions
|
@ -248,6 +248,25 @@ static void hash_write_digest_and_unmap_iov(AspeedHACEState *s,
|
|||
}
|
||||
}
|
||||
|
||||
static void hash_execute_non_acc_mode(AspeedHACEState *s, int algo,
|
||||
struct iovec *iov, int iov_idx)
|
||||
{
|
||||
g_autofree uint8_t *digest_buf = NULL;
|
||||
Error *local_err = NULL;
|
||||
size_t digest_len = 0;
|
||||
|
||||
if (qcrypto_hash_bytesv(algo, iov, iov_idx, &digest_buf,
|
||||
&digest_len, &local_err) < 0) {
|
||||
qemu_log_mask(LOG_GUEST_ERROR,
|
||||
"%s: qcrypto hash bytesv failed : %s",
|
||||
__func__, error_get_pretty(local_err));
|
||||
error_free(local_err);
|
||||
return;
|
||||
}
|
||||
|
||||
hash_write_digest_and_unmap_iov(s, iov, iov_idx, digest_buf, digest_len);
|
||||
}
|
||||
|
||||
static void do_hash_operation(AspeedHACEState *s, int algo, bool sg_mode,
|
||||
bool acc_mode)
|
||||
{
|
||||
|
@ -304,15 +323,12 @@ static void do_hash_operation(AspeedHACEState *s, int algo, bool sg_mode,
|
|||
s->hash_ctx = NULL;
|
||||
s->total_req_len = 0;
|
||||
}
|
||||
} else if (qcrypto_hash_bytesv(algo, iov, iov_idx, &digest_buf,
|
||||
&digest_len, &local_err) < 0) {
|
||||
qemu_log_mask(LOG_GUEST_ERROR, "qcrypto hash bytesv failed : %s",
|
||||
error_get_pretty(local_err));
|
||||
error_free(local_err);
|
||||
return;
|
||||
}
|
||||
|
||||
hash_write_digest_and_unmap_iov(s, iov, iov_idx, digest_buf, digest_len);
|
||||
hash_write_digest_and_unmap_iov(s, iov, iov_idx, digest_buf,
|
||||
digest_len);
|
||||
} else {
|
||||
hash_execute_non_acc_mode(s, algo, iov, iov_idx);
|
||||
}
|
||||
}
|
||||
|
||||
static uint64_t aspeed_hace_read(void *opaque, hwaddr addr, unsigned int size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue