[PATCH 1/2] crypto: atmel-ecc - simplify control flow in atmel_ecdh_set_secret

From: Thorsten Blum

Date: Tue Jul 28 2026 - 16:59:35 EST


Free the public key directly on I2C transaction failure and remove the
free_public_key label to simplify the code.

Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
---
drivers/crypto/atmel-ecc.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c
index 21192a042fa2..f98782f0a2c6 100644
--- a/drivers/crypto/atmel-ecc.c
+++ b/drivers/crypto/atmel-ecc.c
@@ -107,17 +107,14 @@ static int atmel_ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
atmel_i2c_init_genkey_cmd(cmd, DATA_SLOT_2);

ret = atmel_i2c_send_receive(ctx->client, cmd);
- if (ret)
- goto free_public_key;
+ if (ret) {
+ kfree(public_key);
+ goto free_cmd;
+ }

memcpy(public_key, &cmd->data[RSP_DATA_IDX], ATMEL_ECC_PUBKEY_SIZE);
ctx->public_key = public_key;

- kfree(cmd);
- return 0;
-
-free_public_key:
- kfree(public_key);
free_cmd:
kfree(cmd);
return ret;