[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250522141410.31315-1-alexghiti@rivosinc.com>
Date: Thu, 22 May 2025 16:13:56 +0200
From: Alexandre Ghiti <alexghiti@...osinc.com>
To: "Rafael J . Wysocki" <rafael@...nel.org>,
Len Brown <lenb@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Mario Limonciello <mario.limonciello@....com>,
Mark Pearson <mpearson-lenovo@...ebb.ca>,
Armin Wolf <W_Armin@....de>,
Arnd Bergmann <arnd@...db.de>,
linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-riscv@...ts.infradead.org
Cc: Alexandre Ghiti <alexghiti@...osinc.com>
Subject: [PATCH] drivers: acpi: Fix platform profile driver on !acpi platforms
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
Powered by blists - more mailing lists