[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20251013-sleep-fix-v1-1-92bc11b6ecae@gmail.com>
Date: Mon, 13 Oct 2025 00:21:05 -0500
From: Kurt Borja <kuurtb@...il.com>
To: Hans de Goede <hansg@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Armin Wolf <W_Armin@....de>
Cc: platform-driver-x86@...r.kernel.org, Dell.Client.Kernel@...l.com,
linux-kernel@...r.kernel.org, stable@...r.kernel.org,
Gal Hammer <galhammer@...il.com>, Kurt Borja <kuurtb@...il.com>
Subject: [PATCH] platform/x86: alienware-wmi-wmax: Fix null pointer
derefence in sleep handlers
Initialize `awcc` with empty quirks to avoid a null pointer dereference
in sleep handlers for devices without the AWCC interface.
This also allows some code simplification in alienware_wmax_wmi_init().
Cc: stable@...r.kernel.org
Reported-by: Gal Hammer <galhammer@...il.com>
Tested-by: Gal Hammer <galhammer@...il.com>
Fixes: 07ac275981b1 ("platform/x86: alienware-wmi-wmax: Add support for manual fan control")
Signed-off-by: Kurt Borja <kuurtb@...il.com>
---
drivers/platform/x86/dell/alienware-wmi-wmax.c | 24 +++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)
diff --git a/drivers/platform/x86/dell/alienware-wmi-wmax.c b/drivers/platform/x86/dell/alienware-wmi-wmax.c
index 31f9643a6a3b5c2eb74b089dc071964bd6df8b43..2c4b71b03c264edaffcb0341bbd9e6acefced8b8 100644
--- a/drivers/platform/x86/dell/alienware-wmi-wmax.c
+++ b/drivers/platform/x86/dell/alienware-wmi-wmax.c
@@ -393,7 +393,7 @@ static const enum platform_profile_option awcc_mode_to_platform_profile[AWCC_PRO
[AWCC_PROFILE_LEGACY_PERFORMANCE] = PLATFORM_PROFILE_PERFORMANCE,
};
-static struct awcc_quirks *awcc;
+static struct awcc_quirks *awcc = &empty_quirks;
/*
* The HDMI mux sysfs node indicates the status of the HDMI input mux.
@@ -1680,26 +1680,16 @@ int __init alienware_wmax_wmi_init(void)
if (id)
awcc = id->driver_data;
- if (force_hwmon) {
- if (!awcc)
- awcc = &empty_quirks;
-
+ if (force_hwmon)
awcc->hwmon = true;
- }
-
- if (force_platform_profile) {
- if (!awcc)
- awcc = &empty_quirks;
+ if (force_platform_profile)
awcc->pprof = true;
- }
- if (force_gmode) {
- if (awcc)
- awcc->gmode = true;
- else
- pr_warn("force_gmode requires platform profile support\n");
- }
+ if (force_gmode && awcc->pprof)
+ awcc->gmode = true;
+ else
+ pr_warn("force_gmode requires platform profile support\n");
return wmi_driver_register(&alienware_wmax_wmi_driver);
}
---
base-commit: 3ed17349f18774c24505b0c21dfbd3cc4f126518
change-id: 20251012-sleep-fix-5d0596dd92a3
--
~ Kurt
Powered by blists - more mailing lists