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>
diff --git a/drivers/acpi/acpica/nsrepair2.c b/drivers/acpi/acpica/nsrepair2.c
index 029816e..c84603e 100644
--- a/drivers/acpi/acpica/nsrepair2.c
+++ b/drivers/acpi/acpica/nsrepair2.c
@@ -452,18 +452,7 @@
 	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 @@
 
 	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);
 }