diff options
| author | Olivier Cochard <olivier@FreeBSD.org> | 2026-03-03 23:05:04 +0000 |
|---|---|---|
| committer | Olivier Cochard <olivier@FreeBSD.org> | 2026-03-03 23:08:23 +0000 |
| commit | 4d876fc5fc427f9e4a110da5cc2ce62a21998b6c (patch) | |
| tree | f7e1fbf320def2dcb21903512f263770bf75613f | |
| parent | f268f95955f5f0f91f4d39e13bcd69a24e0d8ce4 (diff) | |
acpi_spmc: fix revision check reading name as integer
In acpi_spmc_get_constraints_spec(), the revision of the device
constraint detail package was mistakenly read from
constraint_obj->Package.Elements[0], which is the device name
(a string), instead of from the detail sub-package's first element.
Move the initialisation of 'detail' before the revision check and
read the revision from detail->Package.Elements[0] as the comment
already states
Approved by: obiwac
Differential Revision: https://reviews.freebsd.org/D55639
Sponsored by: Netflix
| -rw-r--r-- | sys/dev/acpica/acpi_spmc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi_spmc.c b/sys/dev/acpica/acpi_spmc.c index e8ed14fdcb1b..6b4363bb364d 100644 --- a/sys/dev/acpica/acpi_spmc.c +++ b/sys/dev/acpica/acpi_spmc.c @@ -322,11 +322,12 @@ acpi_spmc_get_constraints_spec(struct acpi_spmc_softc *sc, ACPI_OBJECT *object) return (ENOMEM); } + detail = &constraint_obj->Package.Elements[2]; /* * The first element in the device constraint detail package is * the revision, and should always be zero. */ - revision = constraint_obj->Package.Elements[0].Integer.Value; + revision = detail->Package.Elements[0].Integer.Value; if (revision != 0) { device_printf(sc->dev, "Unknown revision %d for " "device constraint detail package\n", revision); @@ -334,7 +335,6 @@ acpi_spmc_get_constraints_spec(struct acpi_spmc_softc *sc, ACPI_OBJECT *object) continue; } - detail = &constraint_obj->Package.Elements[2]; constraint_package = &detail->Package.Elements[1]; constraint->lpi_uid = |
