[PATCH 10/12] crypto: atmel - update workqueue flags and add flush on exit
From: Lothar Rubusch
Date: Tue May 12 2026 - 18:46:47 EST
Update workqueue initialization to use WQ_MEM_RECLAIM instead of
WQ_PERCPU. WQ_MEM_RECLAIM already provides per-CPU execution
semantics via a bound workqueue while also ensuring forward progress
via a rescue thread.
Add a flush_workqueue() call during module exit to ensure all queued
work is completed before destroying the workqueue.
Signed-off-by: Lothar Rubusch <l.rubusch@xxxxxxxxx>
---
drivers/crypto/atmel-i2c.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c
index 50b6bce478d2..0ec2d768a763 100644
--- a/drivers/crypto/atmel-i2c.c
+++ b/drivers/crypto/atmel-i2c.c
@@ -626,12 +626,13 @@ EXPORT_SYMBOL(atmel_i2c_probe);
static int __init atmel_i2c_init(void)
{
- atmel_wq = alloc_workqueue("atmel_wq", WQ_PERCPU, 0);
+ atmel_wq = alloc_workqueue("atmel_wq", WQ_MEM_RECLAIM, 0);
return atmel_wq ? 0 : -ENOMEM;
}
static void __exit atmel_i2c_exit(void)
{
+ flush_workqueue(atmel_wq);
destroy_workqueue(atmel_wq);
}
--
2.53.0