diff options
author | Mario Limonciello <mario.limonciello@amd.com> | 2022-09-28 11:19:34 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2022-09-28 21:32:49 +0200 |
commit | 39f81776c6807d605cfec6fa7a2439fa4786034e (patch) | |
tree | 21712a6c3ba3c3613821ad88aba2e67179ab5edc /drivers/acpi/x86 | |
parent | 631b54519e8e58758e4541756c1818dcebd2dcc9 (diff) | |
download | linux-39f81776c6807d605cfec6fa7a2439fa4786034e.tar.gz linux-39f81776c6807d605cfec6fa7a2439fa4786034e.tar.bz2 linux-39f81776c6807d605cfec6fa7a2439fa4786034e.zip |
ACPI: x86: s2idle: Fix a NULL pointer dereference
Ryzen 7000 (Raphael) introduced AMDI0008 for _HID. This ID was added
in commit ed470febf837 ("ACPI: PM: s2idle: Add support for upcoming AMD
uPEP HID AMDI008"), but then removed in favor of aligning all new IDs
to Rembrandt support in commit fd894f05cf30 ("ACPI: x86: s2idle: If a
new AMD _HID is missing assume Rembrandt").
Unfortunately there was a mistake in commit 100a57379380 ("ACPI: x86:
s2idle: Move _HID handling for AMD systems into structures") that can
lead to a NULL pointer dereference accessing `dev_id->driver_data` in
the sentinel of `amd_hid_ids`. Fix this dereference.
Reported-by: Richard Gong <Richard.Gong@amd.com>
Fixes: 100a57379380 ("ACPI: x86: s2idle: Move _HID handling for AMD systems into structures")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/x86')
-rw-r--r-- | drivers/acpi/x86/s2idle.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index eedd21d8a284..3ae2ba74de92 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -470,7 +470,7 @@ static int lps0_device_attach(struct acpi_device *adev, for (dev_id = &amd_hid_ids[0]; dev_id->id[0]; dev_id++) if (acpi_dev_hid_uid_match(adev, dev_id->id, NULL)) break; - if (dev_id) + if (dev_id->id[0]) data = (const struct amd_lps0_hid_device_data *) dev_id->driver_data; else data = &amd_rembrandt; |