[PATCH] Revert "driver core: Use mod_delayed_work to prevent lost deferred probe work"
From: Biju
Date: Tue May 26 2026 - 08:03:24 EST
From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Commit 1137838865bf ("driver core: Use mod_delayed_work to prevent lost
deferred probe work") introduced below regression on Renesas SMARC RZ/G2L
EVK:
class_for_each_device called for class 'devlink' before it was registered
WARNING: drivers/base/class.c:415 at class_for_each_device+0x12c/0x13c, CPU#1: kworker/1:1/26
class_for_each_device+0x12c/0x13c (P)
fw_devlink_probing_done+0x58/0xa0
deferred_probe_timeout_work_func+0x5c/0xb8
process_one_work+0x150/0x290
worker_thread+0x18c/0x300
kthread+0x114/0x120
Reverting the commit fixes the issue.
Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
---
drivers/base/dd.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 172a02a438a2..5799a60fd058 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -323,10 +323,12 @@ void deferred_probe_extend_timeout(void)
* If the work hasn't been queued yet or if the work expired, don't
* start a new one.
*/
- if (mod_delayed_work(system_wq, &deferred_probe_timeout_work,
- driver_deferred_probe_timeout))
+ if (cancel_delayed_work(&deferred_probe_timeout_work)) {
+ schedule_delayed_work(&deferred_probe_timeout_work,
+ driver_deferred_probe_timeout * HZ);
pr_debug("Extended deferred probe timeout by %d secs\n",
driver_deferred_probe_timeout);
+ }
}
/**
--
2.43.0