[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240222185059.00005f40@Huawei.com>
Date: Thu, 22 Feb 2024 18:50:59 +0000
From: Jonathan Cameron <Jonathan.Cameron@...wei.com>
To: "Rafael J. Wysocki" <rjw@...ysocki.net>
CC: Linux ACPI <linux-acpi@...r.kernel.org>, LKML
<linux-kernel@...r.kernel.org>, Mika Westerberg
<mika.westerberg@...ux.intel.com>, "Rafael J. Wysocki" <rafael@...nel.org>,
"Russell King (Oracle)" <linux@...linux.org.uk>
Subject: Re: [PATCH v1 1/4] ACPI: scan: Fix device check notification
handling
On Wed, 21 Feb 2024 21:01:02 +0100
"Rafael J. Wysocki" <rjw@...ysocki.net> wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
>
> It is generally invalid to fail a Device Check notification if the scan
> handler has not been attached to the given device after a bus rescan,
> because there may be valid reasons for the scan handler to refuse
> attaching to the device (for example, the device is not ready).
>
> For this reason, modify acpi_scan_device_check() to return 0 in that
> case without printing a warning.
>
> While at it, reduce the log level of the "already enumerated" message
> in the same function, because it is only interesting when debugging
> notification handling
>
> Fixes: 443fc8202272 ("ACPI / hotplug: Rework generic code to handle suprise removals")
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
Seems reasonable to me. Not sure it fixes any bugs anyone has seen
in the wild though. I'd not give it a fixes tag without such a
known case, but your subsystem so fair enough!
Thanks for resolving how to handle the processor case.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@...wei.com>
> ---
> drivers/acpi/scan.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> Index: linux-pm/drivers/acpi/scan.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/scan.c
> +++ linux-pm/drivers/acpi/scan.c
> @@ -314,18 +314,14 @@ static int acpi_scan_device_check(struct
> * again).
> */
> if (adev->handler) {
> - dev_warn(&adev->dev, "Already enumerated\n");
> - return -EALREADY;
> + dev_dbg(&adev->dev, "Already enumerated\n");
> + return 0;
> }
> error = acpi_bus_scan(adev->handle);
> if (error) {
> dev_warn(&adev->dev, "Namespace scan failure\n");
> return error;
> }
> - if (!adev->handler) {
> - dev_warn(&adev->dev, "Enumeration failure\n");
> - error = -ENODEV;
> - }
> } else {
> error = acpi_scan_device_not_enumerated(adev);
> }
>
>
>
Powered by blists - more mailing lists