diff mbox series

ACPI: fan: fix warning with CONFIG_DEBUG_LOCK_ALLOC

Message ID 20201204182545.8322-1-pierre-louis.bossart@linux.intel.com (mailing list archive)
State Not Applicable, archived
Headers show
Series ACPI: fan: fix warning with CONFIG_DEBUG_LOCK_ALLOC | expand

Commit Message

Pierre-Louis Bossart Dec. 4, 2020, 6:25 p.m. UTC
On a TigerLake device with CONFIG_DEBUG_LOCK_ALLOC the following
warning is thrown:

[   13.784413] BUG: key ffff88810ea5a080 has not been registered!
[   13.784722] DEBUG_LOCKS_WARN_ON(1)
[   13.784737] WARNING: CPU: 2 PID: 1 at kernel/locking/lockdep.c:4623
lockdep_init_map_waits+0x25e/0x310
[   13.787831] Call Trace:
[   13.787902]  __kernfs_create_file+0xa5/0x180
[   13.788016]  sysfs_add_file_mode_ns+0x120/0x270
[   13.788138]  sysfs_create_file_ns+0xcd/0x120
[   13.788256]  ? sysfs_add_file_mode_ns+0x270/0x270
[   13.788381]  ? fan_get_max_state+0x70/0x70
[   13.788491]  ? sort_r+0x1a5/0x200
[   13.788579]  acpi_fan_probe+0x63b/0x7a0

Dynamically-allocated attributes need to be initialized to make
lockdep happy, see include/linux/sysfs.h

Fixes: d19e470b6605c ('ACPI: fan: Expose fan performance state information')
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 drivers/acpi/fan.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Rafael J. Wysocki Dec. 7, 2020, 1:14 p.m. UTC | #1
On Fri, Dec 4, 2020 at 7:27 PM Pierre-Louis Bossart
<pierre-louis.bossart@linux.intel.com> wrote:
>
> On a TigerLake device with CONFIG_DEBUG_LOCK_ALLOC the following
> warning is thrown:
>
> [   13.784413] BUG: key ffff88810ea5a080 has not been registered!
> [   13.784722] DEBUG_LOCKS_WARN_ON(1)
> [   13.784737] WARNING: CPU: 2 PID: 1 at kernel/locking/lockdep.c:4623
> lockdep_init_map_waits+0x25e/0x310
> [   13.787831] Call Trace:
> [   13.787902]  __kernfs_create_file+0xa5/0x180
> [   13.788016]  sysfs_add_file_mode_ns+0x120/0x270
> [   13.788138]  sysfs_create_file_ns+0xcd/0x120
> [   13.788256]  ? sysfs_add_file_mode_ns+0x270/0x270
> [   13.788381]  ? fan_get_max_state+0x70/0x70
> [   13.788491]  ? sort_r+0x1a5/0x200
> [   13.788579]  acpi_fan_probe+0x63b/0x7a0
>
> Dynamically-allocated attributes need to be initialized to make
> lockdep happy, see include/linux/sysfs.h
>
> Fixes: d19e470b6605c ('ACPI: fan: Expose fan performance state information')
> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> ---
>  drivers/acpi/fan.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
> index 66c3983f0ccc..9cab806298ff 100644
> --- a/drivers/acpi/fan.c
> +++ b/drivers/acpi/fan.c
> @@ -357,6 +357,7 @@ static int acpi_fan_get_fps(struct acpi_device *device)
>                 fps->dev_attr.store = NULL;
>                 fps->dev_attr.attr.name = fps->name;
>                 fps->dev_attr.attr.mode = 0444;
> +               sysfs_attr_init(&fps->dev_attr.attr);
>                 status = sysfs_create_file(&device->dev.kobj, &fps->dev_attr.attr);
>                 if (status) {
>                         int j;
> --

This has been fixed in the mainline already AFAICS, by commit
7dc7a8b04f3d ("ACPI: fan: Initialize performance state sysfs
attribute").
diff mbox series

Patch

diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index 66c3983f0ccc..9cab806298ff 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -357,6 +357,7 @@  static int acpi_fan_get_fps(struct acpi_device *device)
 		fps->dev_attr.store = NULL;
 		fps->dev_attr.attr.name = fps->name;
 		fps->dev_attr.attr.mode = 0444;
+		sysfs_attr_init(&fps->dev_attr.attr);
 		status = sysfs_create_file(&device->dev.kobj, &fps->dev_attr.attr);
 		if (status) {
 			int j;