summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/contrib/dev/acpica/dsmthdat.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/contrib/dev/acpica/dsmthdat.c b/sys/contrib/dev/acpica/dsmthdat.c
index ac5254b..30bb0a2 100644
--- a/sys/contrib/dev/acpica/dsmthdat.c
+++ b/sys/contrib/dev/acpica/dsmthdat.c
@@ -663,6 +663,7 @@ AcpiDsStoreObjectToLocal (
ACPI_NAMESPACE_NODE *Node;
ACPI_OPERAND_OBJECT *CurrentObjDesc;
ACPI_OPERAND_OBJECT *NewObjDesc;
+ UINT8 ObjType;
ACPI_FUNCTION_TRACE ("DsStoreObjectToLocal");
@@ -697,7 +698,11 @@ AcpiDsStoreObjectToLocal (
* take a copy of the object before we store.
*/
NewObjDesc = ObjDesc;
- if (ObjDesc->Common.ReferenceCount > 1)
+ ObjType = ACPI_GET_OBJECT_TYPE(ObjDesc);
+ if (ObjDesc->Common.ReferenceCount > 1 &&
+ ObjType != ACPI_TYPE_BUFFER &&
+ ObjType != ACPI_TYPE_PACKAGE &&
+ ObjType != ACPI_TYPE_REGION)
{
Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState);
if (ACPI_FAILURE (Status))
OpenPOWER on IntegriCloud