[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <83d4fd6f-805f-4b96-b772-70aa55c8c1f9@app.fastmail.com>
Date: Thu, 22 May 2025 10:20:10 -0400
From: "Mark Pearson" <mpearson-lenovo@...ebb.ca>
To: "Alexandre Ghiti" <alexghiti@...osinc.com>,
"Rafael J. Wysocki" <rafael@...nel.org>, "Len Brown" <lenb@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
"Limonciello, Mario" <mario.limonciello@....com>,
"Armin Wolf" <W_Armin@....de>, "Arnd Bergmann" <arnd@...db.de>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
linux-kernel@...r.kernel.org, linux-riscv@...ts.infradead.org
Subject: Re: [PATCH] drivers: acpi: Fix platform profile driver on !acpi platforms
On Thu, May 22, 2025, at 10:13 AM, Alexandre Ghiti wrote:
> The platform profile driver is loaded even on platforms that do not have
> acpi enabled. The initialization of the sysfs entries was recently moved
> from platform_profile_register() to the module init call, and those
> entries need acpi_kobj to be initialized which is not the case when acpi
> is disabled.
>
> This results in the following warning:
>
> WARNING: CPU: 5 PID: 1 at fs/sysfs/group.c:131
> internal_create_group+0xa22/0xdd8
> Modules linked in:
> CPU: 5 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W
> 6.15.0-rc7-dirty #6 PREEMPT
> Tainted: [W]=WARN
> Hardware name: riscv-virtio,qemu (DT)
> epc : internal_create_group+0xa22/0xdd8
> ra : internal_create_group+0xa22/0xdd8
>
> Call Trace:
>
> internal_create_group+0xa22/0xdd8
> sysfs_create_group+0x22/0x2e
> platform_profile_init+0x74/0xb2
> do_one_initcall+0x198/0xa9e
> kernel_init_freeable+0x6d8/0x780
> kernel_init+0x28/0x24c
> ret_from_fork+0xe/0x18
>
> Fix this by checking if acpi is enabled before trying to create sysfs
> entries.
>
> Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI
> platform profile")
> Signed-off-by: Alexandre Ghiti <alexghiti@...osinc.com>
> ---
> drivers/acpi/platform_profile.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
> index ffbfd32f4cf1..b43f4459a4f6 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -688,6 +688,9 @@ static int __init platform_profile_init(void)
> {
> int err;
>
> + if (acpi_disabled)
> + return -EOPNOTSUPP;
> +
> err = class_register(&platform_profile_class);
> if (err)
> return err;
> --
> 2.43.0
Looks good to me.
Reviewed-by: Mark Pearson <mpearson-lenovo@...ebb.ca>
Mark
Powered by blists - more mailing lists