* [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper
@ 2026-04-27 17:20 Thorsten Blum
2026-04-27 17:20 ` [PATCH 2/3] crypto: omap - add omap_des_unregister_algs helper Thorsten Blum
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Thorsten Blum @ 2026-04-27 17:20 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: Thorsten Blum, linux-crypto, linux-kernel
Add a new helper omap_aes_unregister_algs() and replace two for loops in
omap_aes_probe() and omap_aes_remove(), which also ensure ->registered
is reset to 0.
Replace two additional for loops with crypto_engine_unregister_aeads()
while at it and reset ->registered to 0 explicitly.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
drivers/crypto/omap-aes.c | 43 ++++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 3eadaf7a64fa..f31555c0d715 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -1089,6 +1089,20 @@ static struct attribute *omap_aes_attrs[] = {
};
ATTRIBUTE_GROUPS(omap_aes);
+static void omap_aes_unregister_algs(const struct omap_aes_pdata *pdata)
+{
+ struct omap_aes_algs_info *alg_info;
+ int i;
+
+ for (i = pdata->algs_info_size - 1; i >= 0; i--) {
+ alg_info = &pdata->algs_info[i];
+
+ crypto_engine_unregister_skciphers(alg_info->algs_list,
+ alg_info->registered);
+ alg_info->registered = 0;
+ }
+}
+
static int omap_aes_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -1215,15 +1229,11 @@ static int omap_aes_probe(struct platform_device *pdev)
return 0;
err_aead_algs:
- for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) {
- aalg = &dd->pdata->aead_algs_info->algs_list[i];
- crypto_engine_unregister_aead(aalg);
- }
+ crypto_engine_unregister_aeads(dd->pdata->aead_algs_info->algs_list,
+ dd->pdata->aead_algs_info->registered);
+ dd->pdata->aead_algs_info->registered = 0;
err_algs:
- for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
- for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
- crypto_engine_unregister_skcipher(
- &dd->pdata->algs_info[i].algs_list[j]);
+ omap_aes_unregister_algs(dd->pdata);
err_engine:
if (dd->engine)
@@ -1244,25 +1254,16 @@ static int omap_aes_probe(struct platform_device *pdev)
static void omap_aes_remove(struct platform_device *pdev)
{
struct omap_aes_dev *dd = platform_get_drvdata(pdev);
- struct aead_engine_alg *aalg;
- int i, j;
spin_lock_bh(&list_lock);
list_del(&dd->list);
spin_unlock_bh(&list_lock);
- for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
- for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) {
- crypto_engine_unregister_skcipher(
- &dd->pdata->algs_info[i].algs_list[j]);
- dd->pdata->algs_info[i].registered--;
- }
+ omap_aes_unregister_algs(dd->pdata);
- for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) {
- aalg = &dd->pdata->aead_algs_info->algs_list[i];
- crypto_engine_unregister_aead(aalg);
- dd->pdata->aead_algs_info->registered--;
- }
+ crypto_engine_unregister_aeads(dd->pdata->aead_algs_info->algs_list,
+ dd->pdata->aead_algs_info->registered);
+ dd->pdata->aead_algs_info->registered = 0;
crypto_engine_exit(dd->engine);
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/3] crypto: omap - add omap_des_unregister_algs helper
2026-04-27 17:20 [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Thorsten Blum
@ 2026-04-27 17:20 ` Thorsten Blum
2026-04-27 17:20 ` [PATCH 3/3] crypto: omap - add omap_sham_unregister_algs helper Thorsten Blum
2026-05-05 9:28 ` [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Herbert Xu
2 siblings, 0 replies; 4+ messages in thread
From: Thorsten Blum @ 2026-04-27 17:20 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: Thorsten Blum, linux-crypto, linux-kernel
Add a new helper omap_des_unregister_algs() and replace two for loops in
omap_des_probe() and omap_des_remove(), which also ensure ->registered
is reset to 0.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
drivers/crypto/omap-des.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/drivers/crypto/omap-des.c b/drivers/crypto/omap-des.c
index 149ebd77710b..16d5c617d5ee 100644
--- a/drivers/crypto/omap-des.c
+++ b/drivers/crypto/omap-des.c
@@ -938,6 +938,20 @@ static int omap_des_get_pdev(struct omap_des_dev *dd,
return 0;
}
+static void omap_des_unregister_algs(const struct omap_des_pdata *pdata)
+{
+ struct omap_des_algs_info *alg_info;
+ int i;
+
+ for (i = pdata->algs_info_size - 1; i >= 0; i--) {
+ alg_info = &pdata->algs_info[i];
+
+ crypto_engine_unregister_skciphers(alg_info->algs_list,
+ alg_info->registered);
+ alg_info->registered = 0;
+ }
+}
+
static int omap_des_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -1043,11 +1057,7 @@ static int omap_des_probe(struct platform_device *pdev)
return 0;
err_algs:
- for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
- for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
- crypto_engine_unregister_skcipher(
- &dd->pdata->algs_info[i].algs_list[j]);
-
+ omap_des_unregister_algs(dd->pdata);
err_engine:
if (dd->engine)
crypto_engine_exit(dd->engine);
@@ -1067,16 +1077,12 @@ static int omap_des_probe(struct platform_device *pdev)
static void omap_des_remove(struct platform_device *pdev)
{
struct omap_des_dev *dd = platform_get_drvdata(pdev);
- int i, j;
spin_lock_bh(&list_lock);
list_del(&dd->list);
spin_unlock_bh(&list_lock);
- for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
- for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
- crypto_engine_unregister_skcipher(
- &dd->pdata->algs_info[i].algs_list[j]);
+ omap_des_unregister_algs(dd->pdata);
cancel_work_sync(&dd->done_task);
omap_des_dma_cleanup(dd);
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/3] crypto: omap - add omap_sham_unregister_algs helper
2026-04-27 17:20 [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Thorsten Blum
2026-04-27 17:20 ` [PATCH 2/3] crypto: omap - add omap_des_unregister_algs helper Thorsten Blum
@ 2026-04-27 17:20 ` Thorsten Blum
2026-05-05 9:28 ` [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Herbert Xu
2 siblings, 0 replies; 4+ messages in thread
From: Thorsten Blum @ 2026-04-27 17:20 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: Thorsten Blum, linux-crypto, linux-kernel
Add a new helper omap_sham_unregister_algs() and replace two for loops
in omap_sham_probe() and omap_sham_remove(), which also ensure
->registered is reset to 0.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
drivers/crypto/omap-sham.c | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index b8c416c5ee70..be1ac640ee59 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -2042,6 +2042,20 @@ static struct attribute *omap_sham_attrs[] = {
};
ATTRIBUTE_GROUPS(omap_sham);
+static void omap_sham_unregister_algs(const struct omap_sham_pdata *pdata)
+{
+ struct omap_sham_algs_info *alg_info;
+ int i;
+
+ for (i = pdata->algs_info_size - 1; i >= 0; i--) {
+ alg_info = &pdata->algs_info[i];
+
+ crypto_engine_unregister_ahashes(alg_info->algs_list,
+ alg_info->registered);
+ alg_info->registered = 0;
+ }
+}
+
static int omap_sham_probe(struct platform_device *pdev)
{
struct omap_sham_dev *dd;
@@ -2158,10 +2172,7 @@ static int omap_sham_probe(struct platform_device *pdev)
return 0;
err_algs:
- for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
- for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
- crypto_engine_unregister_ahash(
- &dd->pdata->algs_info[i].algs_list[j]);
+ omap_sham_unregister_algs(dd->pdata);
err_engine_start:
crypto_engine_exit(dd->engine);
err_engine:
@@ -2182,19 +2193,13 @@ static int omap_sham_probe(struct platform_device *pdev)
static void omap_sham_remove(struct platform_device *pdev)
{
struct omap_sham_dev *dd;
- int i, j;
dd = platform_get_drvdata(pdev);
spin_lock_bh(&sham.lock);
list_del(&dd->list);
spin_unlock_bh(&sham.lock);
- for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
- for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) {
- crypto_engine_unregister_ahash(
- &dd->pdata->algs_info[i].algs_list[j]);
- dd->pdata->algs_info[i].registered--;
- }
+ omap_sham_unregister_algs(dd->pdata);
cancel_work_sync(&dd->done_task);
pm_runtime_dont_use_autosuspend(&pdev->dev);
pm_runtime_disable(&pdev->dev);
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper
2026-04-27 17:20 [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Thorsten Blum
2026-04-27 17:20 ` [PATCH 2/3] crypto: omap - add omap_des_unregister_algs helper Thorsten Blum
2026-04-27 17:20 ` [PATCH 3/3] crypto: omap - add omap_sham_unregister_algs helper Thorsten Blum
@ 2026-05-05 9:28 ` Herbert Xu
2 siblings, 0 replies; 4+ messages in thread
From: Herbert Xu @ 2026-05-05 9:28 UTC (permalink / raw)
To: Thorsten Blum; +Cc: David S. Miller, linux-crypto, linux-kernel
On Mon, Apr 27, 2026 at 07:20:18PM +0200, Thorsten Blum wrote:
> Add a new helper omap_aes_unregister_algs() and replace two for loops in
> omap_aes_probe() and omap_aes_remove(), which also ensure ->registered
> is reset to 0.
>
> Replace two additional for loops with crypto_engine_unregister_aeads()
> while at it and reset ->registered to 0 explicitly.
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
> drivers/crypto/omap-aes.c | 43 ++++++++++++++++++++-------------------
> 1 file changed, 22 insertions(+), 21 deletions(-)
All applied. Thanks.
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-05-05 9:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-27 17:20 [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Thorsten Blum
2026-04-27 17:20 ` [PATCH 2/3] crypto: omap - add omap_des_unregister_algs helper Thorsten Blum
2026-04-27 17:20 ` [PATCH 3/3] crypto: omap - add omap_sham_unregister_algs helper Thorsten Blum
2026-05-05 9:28 ` [PATCH 1/3] crypto: omap - add omap_aes_unregister_algs helper Herbert Xu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.