Re: [PATCH] drivers: acpi: Fix platform profile driver on !acpi platforms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rafael,

On 5/23/25 16:46, Rafael J. Wysocki wrote:
On Fri, May 23, 2025 at 12:50 PM Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
On Fri, May 23, 2025 at 12:11 PM Alexandre Ghiti <alex@xxxxxxxx> wrote:
On 5/22/25 22:04, Armin Wolf wrote:
Am 22.05.25 um 16:13 schrieb Alexandre Ghiti:

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.
I already submitted a patch for this problem (see
https://lore.kernel.org/linux-acpi/a6d92cdd-4dc3-4080-9ed9-5b1f02f247e0@xxxxxx/T/)
that only disables the legacy sysfs interface while keeping the
class-based interface functional
as it does not depend on ACPI at all.

Great, I understand if your patchset is not merged for rc1 but it would
be nice to have it merged in 6.16 though to fix riscv syzkaller
instance. Perhaps you could add the Fixes tag that Arnd mentioned too?
I actually prefer your patch to the Armin's one because there are
questions regarding the latter (see the most recent message from Arnd
in this thread).
And so it has been applied as 6.16 material now, thanks!


Thank you very much!

Alex



Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI
platform profile")
Signed-off-by: Alexandre Ghiti <alexghiti@xxxxxxxxxxxx>
---
   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;
_______________________________________________
linux-riscv mailing list
linux-riscv@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-riscv




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux