Re: [PATCH v3 1/3] Revert "drivers: core: synchronize really_probe() and dev_uevent()"
From: Google
Date: Thu Apr 03 2025 - 00:09:03 EST
On Mon, 10 Mar 2025 22:24:14 -0700
Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote:
> This reverts commit c0a40097f0bc81deafc15f9195d1fb54595cd6d0.
>
> Probing a device can take arbitrary long time. In the field we observed
> that, for example, probing a bad micro-SD cards in an external USB card
> reader (or maybe cards were good but cables were flaky) sometimes takes
> longer than 2 minutes due to multiple retries at various levels of the
> stack. We can not block uevent_show() method for that long because udev
> is reading that attribute very often and that blocks udev and interferes
> with booting of the system.
>
> The change that introduced locking was concerned with dev_uevent()
> racing with unbinding the driver. However we can handle it without
> locking (which will be done in subsequent patch).
>
> There was also claim that synchronization with probe() is needed to
> properly load USB drivers, however this is a red herring: the change
> adding the lock was introduced in May of last year and USB loading and
> probing worked properly for many years before that.
>
> Revert the harmful locking.
>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
Thanks,
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> ---
> drivers/base/core.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> v3: no changes.
>
> v2: added Cc: stable, no code changes.
>
> diff --git a/drivers/base/core.c b/drivers/base/core.c
> index d2f9d3a59d6b..f9c1c623bca5 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -2726,11 +2726,8 @@ static ssize_t uevent_show(struct device *dev, struct device_attribute *attr,
> if (!env)
> return -ENOMEM;
>
> - /* Synchronize with really_probe() */
> - device_lock(dev);
> /* let the kset specific function add its keys */
> retval = kset->uevent_ops->uevent(&dev->kobj, env);
> - device_unlock(dev);
> if (retval)
> goto out;
>
> --
> 2.49.0.rc0.332.g42c0ae87b1-goog
>
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>