From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Linux ACPI <linux-acpi@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Russell King (Oracle)" <linux@armlinux.org.uk>,
<kangkang.shen@futurewei.com>
Subject: Re: [PATCH v2 3/5] ACPI: scan: Make acpi_processor_add() check the device enabled bit
Date: Tue, 27 Feb 2024 09:28:44 +0000 [thread overview]
Message-ID: <20240227092844.00006d49@Huawei.com> (raw)
In-Reply-To: <3283809.44csPzL39Z@kreacher>
On Mon, 26 Feb 2024 17:40:52 +0100
"Rafael J. Wysocki" <rjw@rjwysocki.net> wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Modify acpi_processor_add() return an error if _STA returns the enabled
> bit clear for the given processor device, so as to avoid using processors
> that don't decode their resources, as per the ACPI specification. [1]
>
> Link: https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#sta-device-status # [1]
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Sorry for lack of reply on discussion. Your follow up mails never reached my
inbox for some reason so I just caught up on lore. I'll keep an eye on
the archives to make sure I don't miss further discussion.
Agreed that functional isn't relevant here so this patch is correct.
Also agree that it would be nice to clarify the spec as you mentioned
to say that bit 1 is reserved if bit 0 of _STA result is clear.
Depending on interpretation it's either a clarification or a relaxation
of current statements, so should be uncontroversial (famous last words ;)
+CC kangkang so this is on his radar as an ACPI cleanup suggestion.
For his reference, discussion is here:
https://lore.kernel.org/linux-acpi/CAJZ5v0jjD=KN0pOuWZZ8DT5yHdu03KgOSHYe3wB7h2vafNa44w@mail.gmail.com/
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
>
> v1 -> v2:
> * Move acpi_device_is_enabled() to this patch.
> * Change patch ordering.
> * Do not check the "functional" _STA bit in acpi_device_is_present().
>
> ---
> drivers/acpi/acpi_processor.c | 3 +++
> drivers/acpi/internal.h | 1 +
> drivers/acpi/scan.c | 5 +++++
> 3 files changed, 9 insertions(+)
>
> Index: linux-pm/drivers/acpi/internal.h
> ===================================================================
> --- linux-pm.orig/drivers/acpi/internal.h
> +++ linux-pm/drivers/acpi/internal.h
> @@ -121,6 +121,7 @@ int acpi_device_setup_files(struct acpi_
> void acpi_device_remove_files(struct acpi_device *dev);
> void acpi_device_add_finalize(struct acpi_device *device);
> void acpi_free_pnp_ids(struct acpi_device_pnp *pnp);
> +bool acpi_device_is_enabled(const struct acpi_device *adev);
> bool acpi_device_is_present(const struct acpi_device *adev);
> bool acpi_device_is_battery(struct acpi_device *adev);
> bool acpi_device_is_first_physical_node(struct acpi_device *adev,
> Index: linux-pm/drivers/acpi/acpi_processor.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/acpi_processor.c
> +++ linux-pm/drivers/acpi/acpi_processor.c
> @@ -381,6 +381,9 @@ static int acpi_processor_add(struct acp
> struct device *dev;
> int result = 0;
>
> + if (!acpi_device_is_enabled(device))
> + return -ENODEV;
> +
> pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
> if (!pr)
> return -ENOMEM;
> Index: linux-pm/drivers/acpi/scan.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/scan.c
> +++ linux-pm/drivers/acpi/scan.c
> @@ -1945,6 +1945,11 @@ bool acpi_device_is_present(const struct
> return adev->status.present || adev->status.functional;
> }
>
> +bool acpi_device_is_enabled(const struct acpi_device *adev)
> +{
> + return adev->status.present && adev->status.enabled;
> +}
> +
> static bool acpi_scan_handler_matching(struct acpi_scan_handler *handler,
> const char *idstr,
> const struct acpi_device_id **matchid)
>
>
>
next prev parent reply other threads:[~2024-02-27 9:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-26 16:24 [PATCH v2 0/5] ACPI: scan: Check enabled _STA bit on Bus/Device Checks Rafael J. Wysocki
2024-02-26 16:35 ` [PATCH v2 1/5] ACPI: scan: Fix device check notification handling Rafael J. Wysocki
2024-02-26 16:36 ` [PATCH v2 2/5] ACPI: scan: Relocate acpi_bus_trim_one() Rafael J. Wysocki
2024-02-26 16:49 ` Rafael J. Wysocki
2024-02-26 16:40 ` [PATCH v2 3/5] ACPI: scan: Make acpi_processor_add() check the device enabled bit Rafael J. Wysocki
2024-02-27 9:28 ` Jonathan Cameron [this message]
2024-02-27 11:13 ` Rafael J. Wysocki
2024-02-26 16:45 ` [PATCH v2 4/5] ACPI: scan: Rework Device Check and Bus Check notification handling Rafael J. Wysocki
2024-02-27 9:39 ` Jonathan Cameron
2024-02-26 16:46 ` [PATCH v2 5/5] ACPI: scan: Consolidate " Rafael J. Wysocki
2024-02-27 9:41 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240227092844.00006d49@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=kangkang.shen@futurewei.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mika.westerberg@linux.intel.com \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox