Messages in this thread Patch in this message | | | Date | Wed, 22 Jun 2022 21:21:50 -0700 | Subject | [PATCH v1] driver core: Ignore driver_async_probe cmdline param for module drivers | From | Saravana Kannan <> |
| |
If the module's async_probe option isn't set, the module loading code will do a async_synchronize_full() before returning to userspace. This effectively negates any benefits of driver_async_probe listing the module's driver.
If the module's async_probe is set, then we already do async probe for that module's driver even if driver_async_probe does not list that driver. So, again, the driver_async_probe's value doesn't matter for a module's driver.
So this change ignores the driver_async_probe for module drivers to avoid useless async probes.
In addition, if driver_async_probe lists a module's driver and the driver's async probe ends up calling request_module() in the async thread context, that's going to trigger a spurious WARNING stack dump without any real benefits of async probing. So this will avoid that unnecessary warning in that situation.
Signed-off-by: Saravana Kannan <saravanak@google.com> --- drivers/base/dd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index e600dd2afc35..f1ac28a4ce62 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -823,7 +823,7 @@ bool driver_allows_async_probing(struct device_driver *drv) return false; default: - if (cmdline_requested_async_probing(drv->name)) + if (cmdline_requested_async_probing(drv->name) && drv->owner == NULL) return true; if (module_requested_async_probing(drv->owner)) -- 2.37.0.rc0.161.g10f37bed90-goog
| |