[PATCH] driver core: introduce PROBE_FORCE_ASYNCHRONOUS

From: Dmitry Torokhov

Date: Mon Jul 27 2026 - 01:32:02 EST


Add PROBE_FORCE_ASYNCHRONOUS probe type enum and update
driver_allows_async_probing() to allow asynchronous probing for drivers
marked with this type.

While PROBE_PREFER_ASYNCHRONOUS exists, it represents a temporary opt-in
preference. Subsystems that require asynchronous probing (such as slow
legacy buses) need a dedicated probe type to guarantee asynchronous
execution.

Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
---

I am planning to rework serio and gameport subsystems to rely on
asynchronous probing instead of rolling their own implementations.

drivers/base/dd.c | 1 +
include/linux/device/driver.h | 1 +
2 files changed, 2 insertions(+)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 60c005223844..34df7b4416ac 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -936,6 +936,7 @@ __setup("driver_async_probe=", save_async_options);
static bool driver_allows_async_probing(const struct device_driver *drv)
{
switch (drv->probe_type) {
+ case PROBE_FORCE_ASYNCHRONOUS:
case PROBE_PREFER_ASYNCHRONOUS:
return true;

diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index 768a1334c0a1..4b3901a35e85 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -48,6 +48,7 @@ enum probe_type {
PROBE_DEFAULT_STRATEGY,
PROBE_PREFER_ASYNCHRONOUS,
PROBE_FORCE_SYNCHRONOUS,
+ PROBE_FORCE_ASYNCHRONOUS,
};

/**
--
2.55.0.229.g6434b31f56-goog


--
Dmitry