[PATCH v2 6/8] ACPI: driver: Avoid using pnp.device_class for netlink handling
From: Rafael J. Wysocki
Date: Fri Mar 13 2026 - 09:07:45 EST
From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Update several core ACPI device drivers that use
acpi_bus_generate_netlink_event() for generating netlink messages to
pass a string literal as its first argument instead of a pointer to
pnp.device_class in a given struct acpi_device, which will allow them
to avoid initializing the pnp.device_class field in the future.
The ACPI button driver that uses different acpi_device_class()
values for different button types will still pass it to
acpi_bus_generate_netlink_event(), but update it to use the
acpi_device_class() macro instead of open coding the pointer
access path.
No intentional functional impact.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---
drivers/acpi/ac.c | 6 +++---
drivers/acpi/acpi_pad.c | 4 ++--
drivers/acpi/battery.c | 2 +-
drivers/acpi/button.c | 2 +-
drivers/acpi/processor_driver.c | 22 ++++++++--------------
drivers/acpi/thermal.c | 6 +++---
6 files changed, 18 insertions(+), 24 deletions(-)
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -130,9 +130,9 @@ static void acpi_ac_notify(acpi_handle h
msleep(ac_sleep_before_get_state_ms);
acpi_ac_get_state(ac);
- acpi_bus_generate_netlink_event(adev->pnp.device_class,
- dev_name(&adev->dev), event,
- (u32) ac->state);
+ acpi_bus_generate_netlink_event(ACPI_AC_CLASS,
+ dev_name(&adev->dev), event,
+ ac->state);
acpi_notifier_call_chain(ACPI_AC_CLASS, acpi_device_bid(adev),
event, ac->state);
power_supply_changed(ac->charger);
--- a/drivers/acpi/acpi_pad.c
+++ b/drivers/acpi/acpi_pad.c
@@ -413,8 +413,8 @@ static void acpi_pad_notify(acpi_handle
switch (event) {
case ACPI_PROCESSOR_AGGREGATOR_NOTIFY:
acpi_pad_handle_notify(handle);
- acpi_bus_generate_netlink_event(adev->pnp.device_class,
- dev_name(&adev->dev), event, 0);
+ acpi_bus_generate_netlink_event(ACPI_PROCESSOR_AGGREGATOR_CLASS,
+ dev_name(&adev->dev), event, 0);
break;
default:
pr_warn("Unsupported event [0x%x]\n", event);
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -1078,7 +1078,7 @@ static void acpi_battery_notify(acpi_han
if (event == ACPI_BATTERY_NOTIFY_INFO)
acpi_battery_refresh(battery);
acpi_battery_update(battery, false);
- acpi_bus_generate_netlink_event(device->pnp.device_class,
+ acpi_bus_generate_netlink_event(ACPI_BATTERY_CLASS,
dev_name(&device->dev), event,
acpi_battery_present(battery));
acpi_notifier_call_chain(ACPI_BATTERY_CLASS, acpi_device_bid(device),
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -468,7 +468,7 @@ static void acpi_button_notify(acpi_hand
input_report_key(input, keycode, 0);
input_sync(input);
- acpi_bus_generate_netlink_event(device->pnp.device_class,
+ acpi_bus_generate_netlink_event(acpi_device_class(device),
dev_name(&device->dev),
event, ++button->pushed);
}
--- a/drivers/acpi/processor_driver.c
+++ b/drivers/acpi/processor_driver.c
@@ -53,7 +53,7 @@ static void acpi_processor_notify(acpi_h
{
struct acpi_device *device = data;
struct acpi_processor *pr;
- int saved;
+ int saved, ev_data = 0;
if (device->handle != handle)
return;
@@ -66,33 +66,27 @@ static void acpi_processor_notify(acpi_h
case ACPI_PROCESSOR_NOTIFY_PERFORMANCE:
saved = pr->performance_platform_limit;
acpi_processor_ppc_has_changed(pr, 1);
- if (saved == pr->performance_platform_limit)
- break;
- acpi_bus_generate_netlink_event(device->pnp.device_class,
- dev_name(&device->dev), event,
- pr->performance_platform_limit);
+ ev_data = pr->performance_platform_limit;
+ if (saved == ev_data)
+ return;
+
break;
case ACPI_PROCESSOR_NOTIFY_POWER:
acpi_processor_power_state_has_changed(pr);
- acpi_bus_generate_netlink_event(device->pnp.device_class,
- dev_name(&device->dev), event, 0);
break;
case ACPI_PROCESSOR_NOTIFY_THROTTLING:
acpi_processor_tstate_has_changed(pr);
- acpi_bus_generate_netlink_event(device->pnp.device_class,
- dev_name(&device->dev), event, 0);
break;
case ACPI_PROCESSOR_NOTIFY_HIGEST_PERF_CHANGED:
cpufreq_update_limits(pr->id);
- acpi_bus_generate_netlink_event(device->pnp.device_class,
- dev_name(&device->dev), event, 0);
break;
default:
acpi_handle_debug(handle, "Unsupported event [0x%x]\n", event);
- break;
+ return;
}
- return;
+ acpi_bus_generate_netlink_event(ACPI_PROCESSOR_CLASS,
+ dev_name(&device->dev), event, ev_data);
}
static int __acpi_processor_start(struct acpi_device *device);
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -340,7 +340,7 @@ static void acpi_thermal_trips_update(st
thermal_zone_for_each_trip(tz->thermal_zone,
acpi_thermal_adjust_trip, &atd);
acpi_queue_thermal_check(tz);
- acpi_bus_generate_netlink_event(adev->pnp.device_class,
+ acpi_bus_generate_netlink_event(ACPI_THERMAL_CLASS,
dev_name(&adev->dev), event, 0);
}
@@ -542,7 +542,7 @@ static void acpi_thermal_zone_device_hot
{
struct acpi_thermal *tz = thermal_zone_device_priv(thermal);
- acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
+ acpi_bus_generate_netlink_event(ACPI_THERMAL_CLASS,
dev_name(&tz->device->dev),
ACPI_THERMAL_NOTIFY_HOT, 1);
}
@@ -551,7 +551,7 @@ static void acpi_thermal_zone_device_cri
{
struct acpi_thermal *tz = thermal_zone_device_priv(thermal);
- acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
+ acpi_bus_generate_netlink_event(ACPI_THERMAL_CLASS,
dev_name(&tz->device->dev),
ACPI_THERMAL_NOTIFY_CRITICAL, 1);