mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 14:41:27 +00:00
driver-core: platform_driver_probe() must probe synchronously
Because platform_driver_probe() checks, after trying to register driver, if there are any devices that driver successfully bound to, driver's probe routine must be run synchronously. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d173a137c5
commit
5c36eb2a9e
1 changed files with 13 additions and 0 deletions
|
@ -613,6 +613,19 @@ int __init_or_module __platform_driver_probe(struct platform_driver *drv,
|
||||||
{
|
{
|
||||||
int retval, code;
|
int retval, code;
|
||||||
|
|
||||||
|
if (drv->driver.probe_type == PROBE_PREFER_ASYNCHRONOUS) {
|
||||||
|
pr_err("%s: drivers registered with %s can not be probed asynchronously\n",
|
||||||
|
drv->driver.name, __func__);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We have to run our probes synchronously because we check if
|
||||||
|
* we find any devices to bind to and exit with error if there
|
||||||
|
* are any.
|
||||||
|
*/
|
||||||
|
drv->driver.probe_type = PROBE_FORCE_SYNCHRONOUS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Prevent driver from requesting probe deferral to avoid further
|
* Prevent driver from requesting probe deferral to avoid further
|
||||||
* futile probe attempts.
|
* futile probe attempts.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue