]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: atmel-sha204a - fail on hwrng registration error in probe path
authorThorsten Blum <thorsten.blum@linux.dev>
Sun, 17 May 2026 16:27:40 +0000 (18:27 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 22 May 2026 12:25:30 +0000 (20:25 +0800)
Commit 13909a0c8897 ("crypto: atmel-sha204a - provide the otp content")
overwrote the hwrng registration return value when creating the sysfs
group, which allowed atmel_sha204a_probe() to succeed even if
devm_hwrng_register() failed.

Return immediately when devm_hwrng_register() fails, and report both
hwrng and sysfs registration errors with dev_err(). Adjust the sysfs
error log message for consistency.

Fixes: 13909a0c8897 ("crypto: atmel-sha204a - provide the otp content")
Cc: stable@vger.kernel.org
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/atmel-sha204a.c

index 37538b0fd7c288c5659371211619983e940f91dd..12eb85b573802edf02e5958ffb401878bff3fe86 100644 (file)
@@ -183,12 +183,14 @@ static int atmel_sha204a_probe(struct i2c_client *client)
                i2c_priv->hwrng.quality = *quality;
 
        ret = devm_hwrng_register(&client->dev, &i2c_priv->hwrng);
-       if (ret)
-               dev_warn(&client->dev, "failed to register RNG (%d)\n", ret);
+       if (ret) {
+               dev_err(&client->dev, "failed to register RNG (%d)\n", ret);
+               return ret;
+       }
 
        ret = sysfs_create_group(&client->dev.kobj, &atmel_sha204a_groups);
        if (ret) {
-               dev_err(&client->dev, "failed to register sysfs entry\n");
+               dev_err(&client->dev, "failed to create sysfs group (%d)\n", ret);
                return ret;
        }