mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
ACPICA: _CST repair: Handle null package entries
Sort package only after null/bad elements have been removed. Fixes a problem where the _CST sort was performed too early. This change sorts the package only after null/bad elements have been removed. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
5a9792f3be
commit
341e7ba1a9
@ -452,18 +452,7 @@ acpi_ns_repair_CST(struct acpi_evaluate_info *info,
|
||||
ACPI_FUNCTION_NAME(ns_repair_CST);
|
||||
|
||||
/*
|
||||
* Entries (subpackages) in the _CST Package must be sorted by the
|
||||
* C-state type, in ascending order.
|
||||
*/
|
||||
status = acpi_ns_check_sorted_list(info, return_object, 1, 4, 1,
|
||||
ACPI_SORT_ASCENDING, "C-State Type");
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return (status);
|
||||
}
|
||||
|
||||
/*
|
||||
* We now know the list is correctly sorted by C-state type. Check if
|
||||
* the C-state type values are proportional.
|
||||
* Check if the C-state type values are proportional.
|
||||
*/
|
||||
outer_element_count = return_object->package.count - 1;
|
||||
i = 0;
|
||||
@ -502,6 +491,17 @@ acpi_ns_repair_CST(struct acpi_evaluate_info *info,
|
||||
|
||||
obj_desc = return_object->package.elements[0];
|
||||
obj_desc->integer.value = outer_element_count;
|
||||
|
||||
/*
|
||||
* Entries (subpackages) in the _CST Package must be sorted by the
|
||||
* C-state type, in ascending order.
|
||||
*/
|
||||
status = acpi_ns_check_sorted_list(info, return_object, 1, 4, 1,
|
||||
ACPI_SORT_ASCENDING, "C-State Type");
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return (status);
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user