From patchwork Sat Dec 21 20:37:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Colin Ian King X-Patchwork-Id: 2026680 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=fwts-devel-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4YFx1p2nZTz1yRL for ; Sun, 22 Dec 2024 07:38:05 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1tP6EX-0008TV-Lo; Sat, 21 Dec 2024 20:37:57 +0000 Received: from mail-wm1-f45.google.com ([209.85.128.45]) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1tP6EW-0008TM-AV for fwts-devel@lists.ubuntu.com; Sat, 21 Dec 2024 20:37:56 +0000 Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43625c4a50dso20677705e9.0 for ; Sat, 21 Dec 2024 12:37:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734813475; x=1735418275; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=L2tI79vmsmb/GQ8nFL7UgIXbxyrHxDUD2H5MyHTrufY=; b=TZWyfdyuLTyPcHTSkDhazNbY2AoV6QntgrnK9bIXX9GUEIO9zoRIIGYkrhh9mTI8D9 tdbdpfvD8BHh7UXm1+/ES3AM9g8Pd/QmclxhNIaFg2tyT2A3P7v+2hOrme7dbRruP01t ImalfWB17nyEm9MtN8GAv6Z6+C8iZr1HCFtxLzuIEo4qg90bgq8q3+L7lafFUXYfQ77f cKt9qZWvv0LiuJLZb8d5kwaIV++Ep/6HffhfGslYvfMZxyVlGEq0DUMOugC22pGB/Yw6 XV8kbFHOFB8Qx2eKYWkLit7CjC8xpWOkNpnS7MTYS4qgH93eTdEyJb5g+wCoFqv3lFqW TtKg== X-Gm-Message-State: AOJu0YwlSlY4dl9ZDuIFfGhO5t9S0oOO30tSceUjkNM30lvEPXOoYJd0 GXouse+SSMT2MqkWdtSzYgP3q7OOgtSghIldQoXbeJ8J3hZxpZmMsNQwqQ== X-Gm-Gg: ASbGnct3faB+5dRHA4NXMcC3gwq06o1XsCAXX+vSGQtzUbKixPSAvgwB6L2kvTiJUlO sFNiMuqXBG3qsS0i+s7jLggnlXvxEjgUJQ8jA9kuxkTEgzL6Q+QmDKYLGzfj5+0gWS9RLdWnpmL d74wNMcnnPmgUK0oPpFBX0iTEYum3vTCEyZZh6zst0Jm9GXIBTVZKy1wbrb1t53ga5mffirRHDs 7A7fLwFZnXOPYVRiSgfcqmO606W3rUQAjmMYi8hS9s4JCoS6rozRmep8Q== X-Google-Smtp-Source: AGHT+IHezPf5DGuYxvQFYriHr4JAm1S857wRkYHt+yZR8GXXOA3FQBknFcEqaWJdJwY2FgyUPY3THQ== X-Received: by 2002:a05:600c:35c9:b0:434:f1e9:afb3 with SMTP id 5b1f17b1804b1-43668548499mr67426335e9.3.1734813474741; Sat, 21 Dec 2024 12:37:54 -0800 (PST) Received: from localhost ([194.120.133.23]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4364a376846sm136757025e9.0.2024.12.21.12.37.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Dec 2024 12:37:54 -0800 (PST) From: Colin Ian King To: fwts-devel@lists.ubuntu.com Subject: [PATCH] ACPICA: Update to version 20241212 Date: Sat, 21 Dec 2024 20:37:53 +0000 Message-ID: <20241221203753.442672-1-colin.i.king@gmail.com> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.128.45; envelope-from=colin.i.king@gmail.com; helo=mail-wm1-f45.google.com X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: "fwts-devel" Major changes in this release of ACPICA are detailed below (from ACPICA documents/changes.txt): Major changes: * Fix 2 critical CVE addressing memory leaks - Seunghun Han * EINJ V2 updates ? Zaid Alali (Ampere Computing) * CDAT updates ? Ira Weiny (Intel Corporation) * Fix mutex handling, don?t release ones that were never acquired - Daniil Tatianin * Experiment with new tag name format Ryyyy_mm_dd to solve chronological sorting problems Signed-off-by: Colin Ian King --- src/acpica/source/common/dmtbinfo3.c | 2 +- .../source/components/dispatcher/dsutils.c | 9 +++- .../source/components/events/evxfregn.c | 1 - .../source/components/parser/psobject.c | 44 +++++++------------ src/acpica/source/include/acpixf.h | 2 +- src/acpica/source/include/actbl1.h | 25 ++++++----- src/acpica/source/include/actbl3.h | 2 +- 7 files changed, 41 insertions(+), 44 deletions(-) diff --git a/src/acpica/source/common/dmtbinfo3.c b/src/acpica/source/common/dmtbinfo3.c index 2f67e5e7..1e6f609f 100644 --- a/src/acpica/source/common/dmtbinfo3.c +++ b/src/acpica/source/common/dmtbinfo3.c @@ -379,7 +379,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[] = ACPI_DMT_TERMINATOR }; -/* 4: GCC ITS Affinity (ACPI 6.2) */ +/* 4: GIC ITS Affinity (ACPI 6.2) */ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[] = { diff --git a/src/acpica/source/components/dispatcher/dsutils.c b/src/acpica/source/components/dispatcher/dsutils.c index cc1d2b1f..f006d432 100644 --- a/src/acpica/source/components/dispatcher/dsutils.c +++ b/src/acpica/source/components/dispatcher/dsutils.c @@ -867,6 +867,8 @@ AcpiDsCreateOperands ( ACPI_PARSE_OBJECT *Arguments[ACPI_OBJ_NUM_OPERANDS]; UINT32 ArgCount = 0; UINT32 Index = WalkState->NumOperands; + UINT32 PrevNumOperands = WalkState->NumOperands; + UINT32 NewNumOperands; UINT32 i; @@ -899,6 +901,7 @@ AcpiDsCreateOperands ( /* Create the interpreter arguments, in reverse order */ + NewNumOperands = Index; Index--; for (i = 0; i < ArgCount; i++) { @@ -926,7 +929,11 @@ Cleanup: * pop everything off of the operand stack and delete those * objects */ - AcpiDsObjStackPopAndDelete (ArgCount, WalkState); + WalkState->NumOperands = (UINT8) (i); + AcpiDsObjStackPopAndDelete (NewNumOperands, WalkState); + + /* Restore operand count */ + WalkState->NumOperands = (UINT8) (PrevNumOperands); ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %u", Index)); return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/events/evxfregn.c b/src/acpica/source/components/events/evxfregn.c index 01643619..30cecb7c 100644 --- a/src/acpica/source/components/events/evxfregn.c +++ b/src/acpica/source/components/events/evxfregn.c @@ -392,7 +392,6 @@ AcpiRemoveAddressSpaceHandler ( /* Now we can delete the handler object */ - AcpiOsReleaseMutex (HandlerObj->AddressSpace.ContextMutex); AcpiUtRemoveReference (HandlerObj); goto UnlockAndExit; } diff --git a/src/acpica/source/components/parser/psobject.c b/src/acpica/source/components/parser/psobject.c index 40a69912..d02dcbe2 100644 --- a/src/acpica/source/components/parser/psobject.c +++ b/src/acpica/source/components/parser/psobject.c @@ -815,7 +815,8 @@ AcpiPsCompleteFinalOp ( ACPI_PARSE_OBJECT *Op, ACPI_STATUS Status) { - ACPI_STATUS Status2; + ACPI_STATUS ReturnStatus = Status; + BOOLEAN Ascending = TRUE; ACPI_FUNCTION_TRACE_PTR (PsCompleteFinalOp, WalkState); @@ -832,7 +833,7 @@ AcpiPsCompleteFinalOp ( { if (Op) { - if (WalkState->AscendingCallback != NULL) + if (Ascending && WalkState->AscendingCallback != NULL) { WalkState->Op = Op; WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode); @@ -851,41 +852,28 @@ AcpiPsCompleteFinalOp ( if (Status == AE_CTRL_TERMINATE) { - Status = AE_OK; - - /* Clean up */ - do - { - if (Op) - { - Status2 = AcpiPsCompleteThisOp (WalkState, Op); - if (ACPI_FAILURE (Status2)) - { - return_ACPI_STATUS (Status2); - } - } - - AcpiPsPopScope (&(WalkState->ParserState), &Op, - &WalkState->ArgTypes, &WalkState->ArgCount); - - } while (Op); - - return_ACPI_STATUS (Status); + Ascending = FALSE; + ReturnStatus = AE_CTRL_TERMINATE; } else if (ACPI_FAILURE (Status)) { /* First error is most important */ - (void) AcpiPsCompleteThisOp (WalkState, Op); - return_ACPI_STATUS (Status); + Ascending = FALSE; + ReturnStatus = Status; } } - Status2 = AcpiPsCompleteThisOp (WalkState, Op); - if (ACPI_FAILURE (Status2)) + Status = AcpiPsCompleteThisOp (WalkState, Op); + if (ACPI_FAILURE (Status)) { - return_ACPI_STATUS (Status2); + Ascending = FALSE; + if (ACPI_SUCCESS (ReturnStatus) || + ReturnStatus == AE_CTRL_TERMINATE) + { + ReturnStatus = Status; + } } } @@ -894,5 +882,5 @@ AcpiPsCompleteFinalOp ( } while (Op); - return_ACPI_STATUS (Status); + return_ACPI_STATUS (ReturnStatus); } diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h index 53d56a95..18f47c9e 100644 --- a/src/acpica/source/include/acpixf.h +++ b/src/acpica/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20240827 +#define ACPI_CA_VERSION 0x20241212 #include "acconfig.h" #include "actypes.h" diff --git a/src/acpica/source/include/actbl1.h b/src/acpica/source/include/actbl1.h index 71cbc36d..9ec85d2d 100644 --- a/src/acpica/source/include/actbl1.h +++ b/src/acpica/source/include/actbl1.h @@ -636,6 +636,8 @@ typedef struct acpi_cdat_dsmas /* Flags for subtable above */ #define ACPI_CDAT_DSMAS_NON_VOLATILE (1 << 2) +#define ACPI_CDAT_DSMAS_SHAREABLE (1 << 3) +#define ACPI_CDAT_DSMAS_READ_ONLY (1 << 6) /* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */ @@ -1369,17 +1371,18 @@ typedef struct acpi_einj_entry enum AcpiEinjActions { - ACPI_EINJ_BEGIN_OPERATION = 0, - ACPI_EINJ_GET_TRIGGER_TABLE = 1, - ACPI_EINJ_SET_ERROR_TYPE = 2, - ACPI_EINJ_GET_ERROR_TYPE = 3, - ACPI_EINJ_END_OPERATION = 4, - ACPI_EINJ_EXECUTE_OPERATION = 5, - ACPI_EINJ_CHECK_BUSY_STATUS = 6, - ACPI_EINJ_GET_COMMAND_STATUS = 7, - ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8, - ACPI_EINJ_GET_EXECUTE_TIMINGS = 9, - ACPI_EINJ_ACTION_RESERVED = 10, /* 10 and greater are reserved */ + ACPI_EINJ_BEGIN_OPERATION = 0x0, + ACPI_EINJ_GET_TRIGGER_TABLE = 0x1, + ACPI_EINJ_SET_ERROR_TYPE = 0x2, + ACPI_EINJ_GET_ERROR_TYPE = 0x3, + ACPI_EINJ_END_OPERATION = 0x4, + ACPI_EINJ_EXECUTE_OPERATION = 0x5, + ACPI_EINJ_CHECK_BUSY_STATUS = 0x6, + ACPI_EINJ_GET_COMMAND_STATUS = 0x7, + ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 0x8, + ACPI_EINJ_GET_EXECUTE_TIMINGS = 0x9, + ACPI_EINJV2_GET_ERROR_TYPE = 0x11, + ACPI_EINJ_ACTION_RESERVED = 0x12, /* 0x12 and greater are reserved */ ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */ }; diff --git a/src/acpica/source/include/actbl3.h b/src/acpica/source/include/actbl3.h index 31619792..516b081d 100644 --- a/src/acpica/source/include/actbl3.h +++ b/src/acpica/source/include/actbl3.h @@ -442,7 +442,7 @@ typedef struct acpi_srat_gicc_affinity #define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */ -/* 4: GCC ITS Affinity (ACPI 6.2) */ +/* 4: GIC ITS Affinity (ACPI 6.2) */ typedef struct acpi_srat_gic_its_affinity {