Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3381bd9 authored by Bob Moore's avatar Bob Moore Committed by Rafael J. Wysocki
Browse files

ACPICA: Interpreter: Emit warning for creation of a zero-length op region

ACPICA commit 387c850c5d49d09d7c2e70b2711e584ad83956a1

Nothing can be done with such a region. Just emit a warning so as
not to abort a table load or running method.

Link: https://github.com/acpica/acpica/commit/387c850c


Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarErik Schmauss <erik.schmauss@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent aa342261
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -356,6 +356,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
	union acpi_operand_object *operand_desc;
	struct acpi_namespace_node *node;
	union acpi_parse_object *next_op;
	acpi_adr_space_type space_id;

	ACPI_FUNCTION_TRACE_PTR(ds_eval_region_operands, op);

@@ -368,6 +369,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
	/* next_op points to the op that holds the space_ID */

	next_op = op->common.value.arg;
	space_id = (acpi_adr_space_type)next_op->common.value.integer;

	/* next_op points to address op */

@@ -403,6 +405,15 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
	obj_desc->region.length = (u32) operand_desc->integer.value;
	acpi_ut_remove_reference(operand_desc);

	/* A zero-length operation region is unusable. Just warn */

	if (!obj_desc->region.length
	    && (space_id < ACPI_NUM_PREDEFINED_REGIONS)) {
		ACPI_WARNING((AE_INFO,
			      "Operation Region [%4.4s] has zero length (SpaceId %X)",
			      node->name.ascii, space_id));
	}

	/*
	 * Get the address and save it
	 * (at top of stack - 1)