From nobody Tue Apr 7 11:18:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0FCEF230270; Fri, 13 Mar 2026 13:04:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773407063; cv=none; b=LayzvbBTCFdz7uKYE071yOF7zW8pBT+329BKUtTCSqnrVXSzJ03E0uhL9sMihurT1VnJ9Ga2fW5YI6z/QmZ6lhs9MtVt8KzQgn66hAxUX5S51xTUoeJsbA4uSHqyjTZZ2NAczf646pNCSc4GvPM2g3cNPmFX+4KTVOwvSOiKLaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773407063; c=relaxed/simple; bh=ernrdKhesQzKSW4P8/b20dhtKj8kfX3mUWKJafyi044=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=H1HPpqEmTPjIJi+PhG3UY0PnG2QHuVuk6kN+Yc/hMrQLVLU8WHJP5xgASmMxOmjm3kgmd1fGdk9oOePEarkNjrpIb7gUXAIyXUbNjwJQ3TxKYBZMGeNmtBwzzNleBCPgf5n3rEncEsdLklpo6JQvs1AqriXD/Hwnk33W+jpUWks= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LJUP3+dJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LJUP3+dJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D4DEEC2BC87; Fri, 13 Mar 2026 13:04:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773407062; bh=ernrdKhesQzKSW4P8/b20dhtKj8kfX3mUWKJafyi044=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LJUP3+dJF3zpEK+qHx8mGs/vrkwJibJqtzpQSiL3LfA+ASEJBKffvCJvqfVTU3BLO mrHkreGmHva6qU5lUbt8MMIH82vk5SqadSa2dFRDpMmglwkjEo4RJ97WFkBFjRSMjg ANV0XPPaqtXjUZhbVcLCT8Qqe4imCdRxUwcgP818qLU2w2zi5LgGeP+oqQx7GnAPfY +gbhhEqefy8YGY7nv2KAT+fsz6QxeaSt5jVKmqJdrJAStKQUrWcxlUwAzJnC9DMB64 RHXBUeFl3Mdz3jv4q9RzgJ6j9+yJAAdx9AoOLMORyFrEiyOoolwL7JYuljLuYYVzQC uhZfAOe4cnXEg== From: "Rafael J. Wysocki" To: Linux ACPI Cc: LKML , Hans de Goede Subject: [PATCH v2 6/8] ACPI: driver: Avoid using pnp.device_class for netlink handling Date: Fri, 13 Mar 2026 13:59:58 +0100 Message-ID: <7944022.EvYhyI6sBW@rafael.j.wysocki> Organization: Linux Kernel Development In-Reply-To: <6271415.lOV4Wx5bFT@rafael.j.wysocki> References: <6271415.lOV4Wx5bFT@rafael.j.wysocki> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Rafael J. Wysocki 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 --- 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); =20 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 =3D=3D 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); =20 - 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 =3D data; struct acpi_processor *pr; - int saved; + int saved, ev_data =3D 0; =20 if (device->handle !=3D handle) return; @@ -66,33 +66,27 @@ static void acpi_processor_notify(acpi_h case ACPI_PROCESSOR_NOTIFY_PERFORMANCE: saved =3D pr->performance_platform_limit; acpi_processor_ppc_has_changed(pr, 1); - if (saved =3D=3D 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 =3D pr->performance_platform_limit; + if (saved =3D=3D 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; } =20 - return; + acpi_bus_generate_netlink_event(ACPI_PROCESSOR_CLASS, + dev_name(&device->dev), event, ev_data); } =20 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); } =20 @@ -542,7 +542,7 @@ static void acpi_thermal_zone_device_hot { struct acpi_thermal *tz =3D thermal_zone_device_priv(thermal); =20 - 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 =3D thermal_zone_device_priv(thermal); =20 - 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);