hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/acpi/acpica/dsmethod.c
....@@ -517,7 +517,7 @@
517517 info = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_evaluate_info));
518518 if (!info) {
519519 status = AE_NO_MEMORY;
520
- goto cleanup;
520
+ goto pop_walk_state;
521521 }
522522
523523 info->parameters = &this_walk_state->operands[0];
....@@ -529,7 +529,7 @@
529529
530530 ACPI_FREE(info);
531531 if (ACPI_FAILURE(status)) {
532
- goto cleanup;
532
+ goto pop_walk_state;
533533 }
534534
535535 next_walk_state->method_nesting_depth =
....@@ -575,6 +575,12 @@
575575
576576 return_ACPI_STATUS(status);
577577
578
+pop_walk_state:
579
+
580
+ /* On error, pop the walk state to be deleted from thread */
581
+
582
+ acpi_ds_pop_walk_state(thread);
583
+
578584 cleanup:
579585
580586 /* On error, we must terminate the method properly */