linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] ACPICA release 20200326
@ 2020-03-27 22:21 Erik Kaneda
  2020-03-27 22:21 ` [PATCH 01/10] ACPICA: Fix a typo in a comment field Erik Kaneda
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Erik Kaneda

This patch set contains the linux-ized patches of the ACPICA release
version 20200326

This release mostly consists of changes in the iASL compiler and the
acpiexec utility so linux changes are quite small. The acpiexec
change is specifically intended for the userspace utility's custom
initialization feature so there is no functional change in the kernel
space AML interpreter. Other than that, there were several additions to
ACPI tables such a new IVRS subtype and NHLT as well as trivial typo
fixes.

Bob Moore (3):
  ACPICA: Fix a typo in a comment field
  ACPICA: Fixes for acpiExec namespace init file
  ACPICA: Update version 20200326

Cezary Rojewski (1):
  ACPICA: Add NHLT table signature

Erik Kaneda (3):
  ACPICA: Change PlatformCommChannel ASL keyword to PCC
  ACPICA: acpiexec: remove redeclaration of
    acpi_gbl_db_opt_no_region_support
  ACPICA: WSMT: Fix typo, no functional change

John Levon (1):
  ACPICA: utilities: fix sprintf()

Michał Żygowski (2):
  ACPICA: Implement IVRS IVHD type 11h parsing
  ACPICA: Fix IVRS IVHD type 10h reserved field name

 drivers/acpi/acpica/acnamesp.h |  2 ++
 drivers/acpi/acpica/dbinput.c  | 16 +++++++--------
 drivers/acpi/acpica/dbxface.c  |  1 +
 drivers/acpi/acpica/dswexec.c  | 33 +++++++++++++++++++++++++++++++
 drivers/acpi/acpica/dswload.c  |  2 --
 drivers/acpi/acpica/dswload2.c | 36 ++++++++++++++++++++++++++++++++++
 drivers/acpi/acpica/nsnames.c  |  6 +-----
 drivers/acpi/acpica/utdecode.c |  2 +-
 drivers/acpi/acpica/utdelete.c |  9 +++++----
 drivers/acpi/acpica/utprint.c  |  7 ++++++-
 drivers/acpi/tables.c          |  2 +-
 include/acpi/acpixf.h          |  2 +-
 include/acpi/actbl2.h          | 21 +++++++++++++++++---
 include/acpi/actbl3.h          |  6 +++---
 include/acpi/acuuid.h          |  2 +-
 15 files changed, 116 insertions(+), 31 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 01/10] ACPICA: Fix a typo in a comment field
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 02/10] ACPICA: Implement IVRS IVHD type 11h parsing Erik Kaneda
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Bob Moore, Christophe Jaillet, Erik Kaneda

From: Bob Moore <robert.moore@intel.com>

ACPICA commit f3504c591c8766c70402dcc786391ff6748b515a

Link: https://github.com/acpica/acpica/commit/f3504c59
Reported-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 include/acpi/acuuid.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/acpi/acuuid.h b/include/acpi/acuuid.h
index 9dd4689a39cf..9e1367b19069 100644
--- a/include/acpi/acuuid.h
+++ b/include/acpi/acuuid.h
@@ -57,4 +57,4 @@
 #define UUID_THERMAL_EXTENSIONS         "14d399cd-7a27-4b18-8fb4-7cb7b9f4e500"
 #define UUID_DEVICE_PROPERTIES          "daffd814-6eba-4d8c-8a91-bc9bbf4aa301"
 
-#endif				/* __AUUID_H__ */
+#endif				/* __ACUUID_H__ */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 02/10] ACPICA: Implement IVRS IVHD type 11h parsing
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
  2020-03-27 22:21 ` [PATCH 01/10] ACPICA: Fix a typo in a comment field Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 03/10] ACPICA: Fix IVRS IVHD type 10h reserved field name Erik Kaneda
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi
  Cc: Michał Żygowski, Bob Moore, Erik Kaneda

From: Michał Żygowski <michal.zygowski@3mdeb.com>

ACPICA commit 6ddc19419896e4149ced1b5f35f0dc12516c0399

The AMD IVRS table parsing supported only IVHD type 10h structures.
Parsing an IVHD type 11h caused the iasl to report unknown subtable type.
Add necessary structure definition for IVHD type 11h and apply correct
parsing method based on subtable type.

Link: https://github.com/acpica/acpica/commit/6ddc1941
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 include/acpi/actbl2.h | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index b818ba60e19d..93323aeddc5a 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -274,7 +274,8 @@ struct acpi_ivrs_header {
 /* Values for subtable Type above */
 
 enum acpi_ivrs_type {
-	ACPI_IVRS_TYPE_HARDWARE = 0x10,
+	ACPI_IVRS_TYPE_HARDWARE1 = 0x10,
+	ACPI_IVRS_TYPE_HARDWARE2 = 0x11,
 	ACPI_IVRS_TYPE_MEMORY1 = 0x20,
 	ACPI_IVRS_TYPE_MEMORY2 = 0x21,
 	ACPI_IVRS_TYPE_MEMORY3 = 0x22
@@ -301,7 +302,7 @@ enum acpi_ivrs_type {
 
 /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */
 
-struct acpi_ivrs_hardware {
+struct acpi_ivrs_hardware_10 {
 	struct acpi_ivrs_header header;
 	u16 capability_offset;	/* Offset for IOMMU control fields */
 	u64 base_address;	/* IOMMU control registers */
@@ -310,6 +311,19 @@ struct acpi_ivrs_hardware {
 	u32 reserved;
 };
 
+/* 0x11: I/O Virtualization Hardware Definition Block (IVHD) */
+
+struct acpi_ivrs_hardware_11 {
+	struct acpi_ivrs_header header;
+	u16 capability_offset;	/* Offset for IOMMU control fields */
+	u64 base_address;	/* IOMMU control registers */
+	u16 pci_segment_group;
+	u16 info;		/* MSI number and unit ID */
+	u32 attributes;
+	u64 efr_register_image;
+	u64 reserved;
+};
+
 /* Masks for Info field above */
 
 #define ACPI_IVHD_MSI_NUMBER_MASK   0x001F	/* 5 bits, MSI message number */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 03/10] ACPICA: Fix IVRS IVHD type 10h reserved field name
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
  2020-03-27 22:21 ` [PATCH 01/10] ACPICA: Fix a typo in a comment field Erik Kaneda
  2020-03-27 22:21 ` [PATCH 02/10] ACPICA: Implement IVRS IVHD type 11h parsing Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 04/10] ACPICA: Change PlatformCommChannel ASL keyword to PCC Erik Kaneda
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi
  Cc: Michał Żygowski, Bob Moore, Erik Kaneda

From: Michał Żygowski <michal.zygowski@3mdeb.com>

ACPICA commit 87a1ab2b2a63e28776261c48bdbae345f790d05d

According to AMD IOMMU Specification Revision 3.05 the reserved field
should be IOMMU Feature Reporting. Change the name of the field to the
correct one.

Link: https://github.com/acpica/acpica/commit/87a1ab2b
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 include/acpi/actbl2.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index 93323aeddc5a..2175b3f84f02 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -308,7 +308,7 @@ struct acpi_ivrs_hardware_10 {
 	u64 base_address;	/* IOMMU control registers */
 	u16 pci_segment_group;
 	u16 info;		/* MSI number and unit ID */
-	u32 reserved;
+	u32 feature_reporting;
 };
 
 /* 0x11: I/O Virtualization Hardware Definition Block (IVHD) */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 04/10] ACPICA: Change PlatformCommChannel ASL keyword to PCC
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (2 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 03/10] ACPICA: Fix IVRS IVHD type 10h reserved field name Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 05/10] ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support Erik Kaneda
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Erik Kaneda, Bob Moore

ACPICA commit 811e69a59cb4189ebf8b882eba74c881f598a239

The former was proposed during specification discussions but it was
dropped. This keyword was introduced to the ACPICA code base by
mistake so this commit changes the keyword representing Platform
Communication Channel to be PCC.

Link: https://github.com/acpica/acpica/commit/811e69a5
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
---
 drivers/acpi/acpica/utdecode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/acpica/utdecode.c b/drivers/acpi/acpica/utdecode.c
index befdd13b403b..177ab88d95de 100644
--- a/drivers/acpi/acpica/utdecode.c
+++ b/drivers/acpi/acpica/utdecode.c
@@ -78,7 +78,7 @@ const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS] = {
 	"IPMI",			/* 0x07 */
 	"GeneralPurposeIo",	/* 0x08 */
 	"GenericSerialBus",	/* 0x09 */
-	"PlatformCommChannel"	/* 0x0A */
+	"PCC"			/* 0x0A */
 };
 
 const char *acpi_ut_get_region_name(u8 space_id)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 05/10] ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (3 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 04/10] ACPICA: Change PlatformCommChannel ASL keyword to PCC Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 06/10] ACPICA: utilities: fix sprintf() Erik Kaneda
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi
  Cc: Erik Kaneda, David Seifert, Benjamin Berg, Bob Moore

ACPICA commit 825c53661cacc7e3dab4844588201846143bd1b7

This variable was re-defined in a file specific to acpiexec. Remove
the redundant declaration and move the initialize to the debugger.

Patch based on suggestions by David Seifert and Benjamin Berg.

Link: https://github.com/acpica/acpica/commit/825c5366
Reported-by: David Seifert <soap@gentoo.org>
Reported-by: Benjamin Berg <bberg@redhat.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
---
 drivers/acpi/acpica/dbxface.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/acpi/acpica/dbxface.c b/drivers/acpi/acpica/dbxface.c
index 3eb45ea93e5e..9dfd693cda3e 100644
--- a/drivers/acpi/acpica/dbxface.c
+++ b/drivers/acpi/acpica/dbxface.c
@@ -409,6 +409,7 @@ acpi_status acpi_initialize_debugger(void)
 	acpi_gbl_db_output_flags = ACPI_DB_CONSOLE_OUTPUT;
 
 	acpi_gbl_db_opt_no_ini_methods = FALSE;
+	acpi_gbl_db_opt_no_region_support = FALSE;
 
 	acpi_gbl_db_buffer = acpi_os_allocate(ACPI_DEBUG_BUFFER_SIZE);
 	if (!acpi_gbl_db_buffer) {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 06/10] ACPICA: utilities: fix sprintf()
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (4 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 05/10] ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 07/10] ACPICA: WSMT: Fix typo, no functional change Erik Kaneda
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi
  Cc: John Levon, MSathieu, Bob Moore, Erik Kaneda

From: John Levon <john.levon@joyent.com>

This commit contains changes for the following commit ID's:
8f99a6ccd3b8e5c3d3d68c53fdbb054c2477eeb4
d30647af53abd334cbcf6362387464ea647bac9e
d3c5fb4cf5b2880d789c987eb847fc3de3774abc

On 32-bit, the provided sprintf() is non-functional: with a size of
ACPI_UINT32_MAX, String + Size will wrap, meaning End < Start, and
acpi_ut_bound_string_output() will never output anything as a result.

The symptom we saw of this was acpixtract failing to output anything.

Link: https://github.com/acpica/acpica/commit/8f99a6cc
Link: https://github.com/acpica/acpica/commit/d30647af
Link: https://github.com/acpica/acpica/commit/d3c5fb4c
Signed-off-by: MSathieu <18145111+MSathieu@users.noreply.github.com>
Signed-off-by: John Levon <john.levon@joyent.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 drivers/acpi/acpica/utprint.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/acpica/utprint.c b/drivers/acpi/acpica/utprint.c
index a874dac7db5c..681c11f4af4e 100644
--- a/drivers/acpi/acpica/utprint.c
+++ b/drivers/acpi/acpica/utprint.c
@@ -332,7 +332,12 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args)
 	int i;
 
 	pos = string;
-	end = string + size;
+
+	if (size != ACPI_UINT32_MAX) {
+		end = string + size;
+	} else {
+		end = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
+	}
 
 	for (; *format; ++format) {
 		if (*format != '%') {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 07/10] ACPICA: WSMT: Fix typo, no functional change
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (5 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 06/10] ACPICA: utilities: fix sprintf() Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 08/10] ACPICA: Add NHLT table signature Erik Kaneda
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Erik Kaneda, Laszlo Ersek, Bob Moore

ACPICA commit 764d18c5a83949ff3b0dbda6055cee1929b9caa2

The table signature WSMT stands for "Windows SMM Mitigations Table".
It is not "Windows SMM Migrations Table".

Link: https://github.com/acpica/acpica/commit/764d18c5
Reported-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
---
 include/acpi/actbl3.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h
index 2bf3baf819bb..b0b163b9efc6 100644
--- a/include/acpi/actbl3.h
+++ b/include/acpi/actbl3.h
@@ -39,7 +39,7 @@
 #define ACPI_SIG_WDDT           "WDDT"	/* Watchdog Timer Description Table */
 #define ACPI_SIG_WDRT           "WDRT"	/* Watchdog Resource Table */
 #define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
-#define ACPI_SIG_WSMT           "WSMT"	/* Windows SMM Security Migrations Table */
+#define ACPI_SIG_WSMT           "WSMT"	/* Windows SMM Security Mitigations Table */
 #define ACPI_SIG_XENV           "XENV"	/* Xen Environment table */
 #define ACPI_SIG_XXXX           "XXXX"	/* Intermediate AML header for ASL/ASL+ converter */
 
@@ -673,10 +673,10 @@ struct acpi_table_wpbt {
 
 /*******************************************************************************
  *
- * WSMT - Windows SMM Security Migrations Table
+ * WSMT - Windows SMM Security Mitigations Table
  *        Version 1
  *
- * Conforms to "Windows SMM Security Migrations Table",
+ * Conforms to "Windows SMM Security Mitigations Table",
  * Version 1.0, April 18, 2016
  *
  ******************************************************************************/
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 08/10] ACPICA: Add NHLT table signature
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (6 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 07/10] ACPICA: WSMT: Fix typo, no functional change Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 09/10] ACPICA: Fixes for acpiExec namespace init file Erik Kaneda
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Cezary Rojewski, Bob Moore, Erik Kaneda

From: Cezary Rojewski <cezary.rojewski@intel.com>

ACPICA commit 422166b656565d180bb3aac712009bdce5e70cdd

NHLT (Non-HDAudio Link Table) provides configuration of audio
endpoints for Intel SST (Smart Sound Technology) DSP products.
Similarly to other ACPI tables, data provided by BIOS may not
describe it correctly, thus overriding is required.

ACPI override mechanism checks for unknown signature before
proceeding. Update known signatures array to support NHLT.

Link: https://github.com/acpica/acpica/commit/422166b6
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 drivers/acpi/tables.c | 2 +-
 include/acpi/actbl2.h | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 180ac4329763..0e905c3d1645 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -501,7 +501,7 @@ static const char * const table_sigs[] = {
 	ACPI_SIG_WDDT, ACPI_SIG_WDRT, ACPI_SIG_DSDT, ACPI_SIG_FADT,
 	ACPI_SIG_PSDT, ACPI_SIG_RSDT, ACPI_SIG_XSDT, ACPI_SIG_SSDT,
 	ACPI_SIG_IORT, ACPI_SIG_NFIT, ACPI_SIG_HMAT, ACPI_SIG_PPTT,
-	NULL };
+	ACPI_SIG_NHLT, NULL };
 
 #define ACPI_HEADER_SIZE sizeof(struct acpi_table_header)
 
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index 2175b3f84f02..ec66779cb193 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -43,6 +43,7 @@
 #define ACPI_SIG_SBST           "SBST"	/* Smart Battery Specification Table */
 #define ACPI_SIG_SDEI           "SDEI"	/* Software Delegated Exception Interface Table */
 #define ACPI_SIG_SDEV           "SDEV"	/* Secure Devices table */
+#define ACPI_SIG_NHLT           "NHLT"	/* Non-HDAudio Link Table */
 
 /*
  * All tables must be byte-packed to match the ACPI specification, since
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 09/10] ACPICA: Fixes for acpiExec namespace init file
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (7 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 08/10] ACPICA: Add NHLT table signature Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-27 22:21 ` [PATCH 10/10] ACPICA: Update version 20200326 Erik Kaneda
  2020-03-28 12:34 ` [PATCH 00/10] ACPICA release 20200326 Rafael J. Wysocki
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Bob Moore, Erik Kaneda

From: Bob Moore <robert.moore@intel.com>

This commit is the result of squashing the following ACPICA commit
ID's:
6803997e5b4f3635cea6610b51ff69e29d251de3
f31cdf8bfda22fe265c1a176d0e33d311c82a7f7

This change fixes several problems with the support for the
acpi_exec namespace init file (-fi option). Specifically, it
fixes AE_ALREADY_EXISTS errors, as well as various seg faults.

Link: https://github.com/acpica/acpica/commit/f31cdf8b
Link: https://github.com/acpica/acpica/commit/6803997e
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 drivers/acpi/acpica/acnamesp.h |  2 ++
 drivers/acpi/acpica/dbinput.c  | 16 +++++++--------
 drivers/acpi/acpica/dswexec.c  | 33 +++++++++++++++++++++++++++++++
 drivers/acpi/acpica/dswload.c  |  2 --
 drivers/acpi/acpica/dswload2.c | 36 ++++++++++++++++++++++++++++++++++
 drivers/acpi/acpica/nsnames.c  |  6 +-----
 drivers/acpi/acpica/utdelete.c |  9 +++++----
 7 files changed, 84 insertions(+), 20 deletions(-)

diff --git a/drivers/acpi/acpica/acnamesp.h b/drivers/acpi/acpica/acnamesp.h
index e618ddfab2fd..40f6a3c33a15 100644
--- a/drivers/acpi/acpica/acnamesp.h
+++ b/drivers/acpi/acpica/acnamesp.h
@@ -256,6 +256,8 @@ u32
 acpi_ns_build_normalized_path(struct acpi_namespace_node *node,
 			      char *full_path, u32 path_size, u8 no_trailing);
 
+void acpi_ns_normalize_pathname(char *original_path);
+
 char *acpi_ns_get_normalized_pathname(struct acpi_namespace_node *node,
 				      u8 no_trailing);
 
diff --git a/drivers/acpi/acpica/dbinput.c b/drivers/acpi/acpica/dbinput.c
index aa71f65395d2..ee6a1b77af3f 100644
--- a/drivers/acpi/acpica/dbinput.c
+++ b/drivers/acpi/acpica/dbinput.c
@@ -468,16 +468,14 @@ char *acpi_db_get_next_token(char *string,
 		return (NULL);
 	}
 
-	/* Remove any spaces at the beginning */
+	/* Remove any spaces at the beginning, ignore blank lines */
 
-	if (*string == ' ') {
-		while (*string && (*string == ' ')) {
-			string++;
-		}
+	while (*string && isspace(*string)) {
+		string++;
+	}
 
-		if (!(*string)) {
-			return (NULL);
-		}
+	if (!(*string)) {
+		return (NULL);
 	}
 
 	switch (*string) {
@@ -570,7 +568,7 @@ char *acpi_db_get_next_token(char *string,
 
 		/* Find end of token */
 
-		while (*string && (*string != ' ')) {
+		while (*string && !isspace(*string)) {
 			string++;
 		}
 		break;
diff --git a/drivers/acpi/acpica/dswexec.c b/drivers/acpi/acpica/dswexec.c
index 5e81a1ae44cf..1d4f8c81028c 100644
--- a/drivers/acpi/acpica/dswexec.c
+++ b/drivers/acpi/acpica/dswexec.c
@@ -16,6 +16,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acdebug.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
 ACPI_MODULE_NAME("dswexec")
@@ -329,6 +332,10 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
 	u32 op_class;
 	union acpi_parse_object *next_op;
 	union acpi_parse_object *first_arg;
+#ifdef ACPI_EXEC_APP
+	char *namepath;
+	union acpi_operand_object *obj_desc;
+#endif
 
 	ACPI_FUNCTION_TRACE_PTR(ds_exec_end_op, walk_state);
 
@@ -537,6 +544,32 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
 
 			status =
 			    acpi_ds_eval_buffer_field_operands(walk_state, op);
+			if (ACPI_FAILURE(status)) {
+				break;
+			}
+#ifdef ACPI_EXEC_APP
+			/*
+			 * acpi_exec support for namespace initialization file (initialize
+			 * buffer_fields in this code.)
+			 */
+			namepath =
+			    acpi_ns_get_external_pathname(op->common.node);
+			status = ae_lookup_init_file_entry(namepath, &obj_desc);
+			if (ACPI_SUCCESS(status)) {
+				status =
+				    acpi_ex_write_data_to_field(obj_desc,
+								op->common.
+								node->object,
+								NULL);
+				if ACPI_FAILURE
+					(status) {
+					ACPI_EXCEPTION((AE_INFO, status,
+							"While writing to buffer field"));
+					}
+			}
+			ACPI_FREE(namepath);
+			status = AE_OK;
+#endif
 			break;
 
 		case AML_TYPE_CREATE_OBJECT:
diff --git a/drivers/acpi/acpica/dswload.c b/drivers/acpi/acpica/dswload.c
index 697974e37edf..27069325b6de 100644
--- a/drivers/acpi/acpica/dswload.c
+++ b/drivers/acpi/acpica/dswload.c
@@ -14,7 +14,6 @@
 #include "acdispat.h"
 #include "acinterp.h"
 #include "acnamesp.h"
-
 #ifdef ACPI_ASL_COMPILER
 #include "acdisasm.h"
 #endif
@@ -399,7 +398,6 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state)
 	union acpi_parse_object *op;
 	acpi_object_type object_type;
 	acpi_status status = AE_OK;
-
 #ifdef ACPI_ASL_COMPILER
 	u8 param_count;
 #endif
diff --git a/drivers/acpi/acpica/dswload2.c b/drivers/acpi/acpica/dswload2.c
index b31457ca926c..9747f9d1518d 100644
--- a/drivers/acpi/acpica/dswload2.c
+++ b/drivers/acpi/acpica/dswload2.c
@@ -15,6 +15,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acevents.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
 ACPI_MODULE_NAME("dswload2")
@@ -373,6 +376,10 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
 	struct acpi_namespace_node *new_node;
 	u32 i;
 	u8 region_space;
+#ifdef ACPI_EXEC_APP
+	union acpi_operand_object *obj_desc;
+	char *namepath;
+#endif
 
 	ACPI_FUNCTION_TRACE(ds_load2_end_op);
 
@@ -466,6 +473,12 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
 		 * be evaluated later during the execution phase
 		 */
 		status = acpi_ds_create_buffer_field(op, walk_state);
+		if ACPI_FAILURE
+			(status) {
+			ACPI_EXCEPTION((AE_INFO, status,
+					"CreateBufferField failure"));
+			goto cleanup;
+			}
 		break;
 
 	case AML_TYPE_NAMED_FIELD:
@@ -604,6 +617,29 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
 		case AML_NAME_OP:
 
 			status = acpi_ds_create_node(walk_state, node, op);
+			if (ACPI_FAILURE(status)) {
+				goto cleanup;
+			}
+#ifdef ACPI_EXEC_APP
+			/*
+			 * acpi_exec support for namespace initialization file (initialize
+			 * Name opcodes in this code.)
+			 */
+			namepath = acpi_ns_get_external_pathname(node);
+			status = ae_lookup_init_file_entry(namepath, &obj_desc);
+			if (ACPI_SUCCESS(status)) {
+
+				/* Detach any existing object, attach new object */
+
+				if (node->object) {
+					acpi_ns_detach_object(node);
+				}
+				acpi_ns_attach_object(node, obj_desc,
+						      obj_desc->common.type);
+			}
+			ACPI_FREE(namepath);
+			status = AE_OK;
+#endif
 			break;
 
 		case AML_METHOD_OP:
diff --git a/drivers/acpi/acpica/nsnames.c b/drivers/acpi/acpica/nsnames.c
index d4d26147610e..d91153f65700 100644
--- a/drivers/acpi/acpica/nsnames.c
+++ b/drivers/acpi/acpica/nsnames.c
@@ -13,9 +13,6 @@
 #define _COMPONENT          ACPI_NAMESPACE
 ACPI_MODULE_NAME("nsnames")
 
-/* Local Prototypes */
-static void acpi_ns_normalize_pathname(char *original_path);
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ns_get_external_pathname
@@ -30,7 +27,6 @@ static void acpi_ns_normalize_pathname(char *original_path);
  *              for error and debug statements.
  *
  ******************************************************************************/
-
 char *acpi_ns_get_external_pathname(struct acpi_namespace_node *node)
 {
 	char *name_buffer;
@@ -411,7 +407,7 @@ char *acpi_ns_build_prefixed_pathname(union acpi_generic_state *prefix_scope,
  *
  ******************************************************************************/
 
-static void acpi_ns_normalize_pathname(char *original_path)
+void acpi_ns_normalize_pathname(char *original_path)
 {
 	char *input_path = original_path;
 	char *new_path_buffer;
diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c
index eee263cb7beb..c365faf4e6cd 100644
--- a/drivers/acpi/acpica/utdelete.c
+++ b/drivers/acpi/acpica/utdelete.c
@@ -452,13 +452,13 @@ acpi_ut_update_ref_count(union acpi_operand_object *object, u32 action)
  *
  * FUNCTION:    acpi_ut_update_object_reference
  *
- * PARAMETERS:  object              - Increment ref count for this object
- *                                    and all sub-objects
+ * PARAMETERS:  object              - Increment or decrement the ref count for
+ *                                    this object and all sub-objects
  *              action              - Either REF_INCREMENT or REF_DECREMENT
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Increment the object reference count
+ * DESCRIPTION: Increment or decrement the object reference count
  *
  * Object references are incremented when:
  * 1) An object is attached to a Node (namespace object)
@@ -492,7 +492,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
 		}
 
 		/*
-		 * All sub-objects must have their reference count incremented
+		 * All sub-objects must have their reference count updated
 		 * also. Different object types have different subobjects.
 		 */
 		switch (object->common.type) {
@@ -559,6 +559,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
 					break;
 				}
 			}
+
 			next_object = NULL;
 			break;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 10/10] ACPICA: Update version 20200326
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (8 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 09/10] ACPICA: Fixes for acpiExec namespace init file Erik Kaneda
@ 2020-03-27 22:21 ` Erik Kaneda
  2020-03-28 12:34 ` [PATCH 00/10] ACPICA release 20200326 Rafael J. Wysocki
  10 siblings, 0 replies; 12+ messages in thread
From: Erik Kaneda @ 2020-03-27 22:21 UTC (permalink / raw)
  To: Rafael J . Wysocki, linux-acpi; +Cc: Bob Moore, Erik Kaneda

From: Bob Moore <robert.moore@intel.com>

ACPICA commit 994fe943d93fe18eaaed1b6cd725023399f8a5c6

Version 20200326.

Link: https://github.com/acpica/acpica/commit/994fe943
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
---
 include/acpi/acpixf.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h
index 87fc14e97d2b..49b519f36b69 100644
--- a/include/acpi/acpixf.h
+++ b/include/acpi/acpixf.h
@@ -12,7 +12,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20200214
+#define ACPI_CA_VERSION                 0x20200326
 
 #include <acpi/acconfig.h>
 #include <acpi/actypes.h>
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 00/10] ACPICA release 20200326
  2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
                   ` (9 preceding siblings ...)
  2020-03-27 22:21 ` [PATCH 10/10] ACPICA: Update version 20200326 Erik Kaneda
@ 2020-03-28 12:34 ` Rafael J. Wysocki
  10 siblings, 0 replies; 12+ messages in thread
From: Rafael J. Wysocki @ 2020-03-28 12:34 UTC (permalink / raw)
  To: Erik Kaneda; +Cc: Rafael J . Wysocki, ACPI Devel Maling List

On Fri, Mar 27, 2020 at 11:43 PM Erik Kaneda <erik.kaneda@intel.com> wrote:
>
> This patch set contains the linux-ized patches of the ACPICA release
> version 20200326
>
> This release mostly consists of changes in the iASL compiler and the
> acpiexec utility so linux changes are quite small. The acpiexec
> change is specifically intended for the userspace utility's custom
> initialization feature so there is no functional change in the kernel
> space AML interpreter. Other than that, there were several additions to
> ACPI tables such a new IVRS subtype and NHLT as well as trivial typo
> fixes.
>
> Bob Moore (3):
>   ACPICA: Fix a typo in a comment field
>   ACPICA: Fixes for acpiExec namespace init file
>   ACPICA: Update version 20200326
>
> Cezary Rojewski (1):
>   ACPICA: Add NHLT table signature
>
> Erik Kaneda (3):
>   ACPICA: Change PlatformCommChannel ASL keyword to PCC
>   ACPICA: acpiexec: remove redeclaration of
>     acpi_gbl_db_opt_no_region_support
>   ACPICA: WSMT: Fix typo, no functional change
>
> John Levon (1):
>   ACPICA: utilities: fix sprintf()
>
> Michał Żygowski (2):
>   ACPICA: Implement IVRS IVHD type 11h parsing
>   ACPICA: Fix IVRS IVHD type 10h reserved field name

All applied as 5.7 material, thanks!

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-03-28 12:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-27 22:21 [PATCH 00/10] ACPICA release 20200326 Erik Kaneda
2020-03-27 22:21 ` [PATCH 01/10] ACPICA: Fix a typo in a comment field Erik Kaneda
2020-03-27 22:21 ` [PATCH 02/10] ACPICA: Implement IVRS IVHD type 11h parsing Erik Kaneda
2020-03-27 22:21 ` [PATCH 03/10] ACPICA: Fix IVRS IVHD type 10h reserved field name Erik Kaneda
2020-03-27 22:21 ` [PATCH 04/10] ACPICA: Change PlatformCommChannel ASL keyword to PCC Erik Kaneda
2020-03-27 22:21 ` [PATCH 05/10] ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support Erik Kaneda
2020-03-27 22:21 ` [PATCH 06/10] ACPICA: utilities: fix sprintf() Erik Kaneda
2020-03-27 22:21 ` [PATCH 07/10] ACPICA: WSMT: Fix typo, no functional change Erik Kaneda
2020-03-27 22:21 ` [PATCH 08/10] ACPICA: Add NHLT table signature Erik Kaneda
2020-03-27 22:21 ` [PATCH 09/10] ACPICA: Fixes for acpiExec namespace init file Erik Kaneda
2020-03-27 22:21 ` [PATCH 10/10] ACPICA: Update version 20200326 Erik Kaneda
2020-03-28 12:34 ` [PATCH 00/10] ACPICA release 20200326 Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).