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@vger.kernel.org Reported-by: Gal Hammer galhammer@gmail.com Tested-by: Gal Hammer galhammer@gmail.com Fixes: 07ac275981b1 ("platform/x86: alienware-wmi-wmax: Add support for manual fan control") Signed-off-by: Kurt Borja kuurtb@gmail.com --- Changes in v2: - Little logic mistake in the `force_gmode` path... (oops) - Link to v1: https://lore.kernel.org/r/20251013-sleep-fix-v1-1-92bc11b6ecae@gmail.com --- drivers/platform/x86/dell/alienware-wmi-wmax.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/drivers/platform/x86/dell/alienware-wmi-wmax.c b/drivers/platform/x86/dell/alienware-wmi-wmax.c index 31f9643a6a3b5c2eb74b089dc071964bd6df8b43..cefeef84d85d111e9cc15ebed35fb83f03c41c7c 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,22 +1680,14 @@ 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) + if (awcc->pprof) awcc->gmode = true; else pr_warn("force_gmode requires platform profile support\n");
--- base-commit: 3ed17349f18774c24505b0c21dfbd3cc4f126518 change-id: 20251012-sleep-fix-5d0596dd92a3