[PATCH] drivers: acpi: Fix platform profile driver on !acpi platforms
Alexandre Ghiti
alex at ghiti.fr
Fri May 23 13:01:16 PDT 2025
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 at kernel.org> wrote:
>> On Fri, May 23, 2025 at 12:11 PM Alexandre Ghiti <alex at ghiti.fr> 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@gmx.de/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 at rivosinc.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;
>>>> _______________________________________________
>>>> linux-riscv mailing list
>>>> linux-riscv at lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/linux-riscv
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
More information about the linux-riscv
mailing list