[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v7 04/16] acpi/ghes: better handle source_id and notification
From: |
Mauro Carvalho Chehab |
Subject: |
[PATCH v7 04/16] acpi/ghes: better handle source_id and notification |
Date: |
Wed, 15 Jan 2025 13:50:20 +0100 |
GHES has two fields that are stored on HEST error source
blocks associated with notifications:
- notification type, which is a number defined at the ACPI spec
containing several arch-specific synchronous and assynchronous
types;
- source id, which is a HW/FW defined number, used to distinguish
between different implemented sources.
There could be several sources with the same notification type,
which is dependent of the way each architecture maps notifications.
Right now, build_ghes_v2() hardcodes a 1:1 mapping between such
fields. Move it to two independent parameters, allowing the
caller function to fill both.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
Chenges from v10:
- Some changes got moved to the previous patch.
Changes from v8:
- Non-rename/cleanup changes merged altogether;
- source ID is now more generic, defined per guest target.
That should make easier to add support for 86.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
hw/acpi/ghes.c | 23 +++++++++--------------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/hw/acpi/ghes.c b/hw/acpi/ghes.c
index 4a6c45bcb4be..29cd7e4d8171 100644
--- a/hw/acpi/ghes.c
+++ b/hw/acpi/ghes.c
@@ -284,9 +284,13 @@ static void build_ghes_error_table(GArray
*hardware_errors, BIOSLinker *linker)
}
/* Build Generic Hardware Error Source version 2 (GHESv2) */
-static void build_ghes_v2(GArray *table_data, int source_id, BIOSLinker
*linker)
+static void build_ghes_v2(GArray *table_data,
+ BIOSLinker *linker,
+ enum AcpiGhesNotifyType notify,
+ uint16_t source_id)
{
uint64_t address_offset;
+
/*
* Type:
* Generic Hardware Error Source version 2(GHESv2 - Type 10)
@@ -316,18 +320,8 @@ static void build_ghes_v2(GArray *table_data, int
source_id, BIOSLinker *linker)
address_offset + GAS_ADDR_OFFSET, sizeof(uint64_t),
ACPI_GHES_ERRORS_FW_CFG_FILE, source_id * sizeof(uint64_t));
- switch (source_id) {
- case ACPI_HEST_SRC_ID_SEA:
- /*
- * Notification Structure
- * Now only enable ARMv8 SEA notification type
- */
- build_ghes_hw_error_notification(table_data, ACPI_GHES_NOTIFY_SEA);
- break;
- default:
- error_report("Not support this error source");
- abort();
- }
+ /* Notification Structure */
+ build_ghes_hw_error_notification(table_data, notify);
/* Error Status Block Length */
build_append_int_noprefix(table_data, ACPI_GHES_MAX_RAW_DATA_LENGTH, 4);
@@ -369,7 +363,8 @@ void acpi_build_hest(GArray *table_data, GArray
*hardware_errors,
/* Error Source Count */
build_append_int_noprefix(table_data, ACPI_GHES_ERROR_SOURCE_COUNT, 4);
- build_ghes_v2(table_data, ACPI_HEST_SRC_ID_SEA, linker);
+ build_ghes_v2(table_data, linker,
+ ACPI_GHES_NOTIFY_SEA, ACPI_HEST_SRC_ID_SEA);
acpi_table_end(linker, &table);
}
--
2.47.1
- [PATCH v7 00/16] Prepare GHES driver to support error injection, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 03/16] acpi/ghes: simplify the per-arch caller to build HEST table, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 01/16] acpi/ghes: get rid of ACPI_HEST_SRC_ID_RESERVED, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 13/16] acpi/ghes: better name the offset of the hardware error firmware, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 04/16] acpi/ghes: better handle source_id and notification,
Mauro Carvalho Chehab <=
- [PATCH v7 06/16] acpi/ghes: Remove a duplicated out of bounds check, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 15/16] acpi/ghes: Change ghes fill logic to work with only one source, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 08/16] acpi/ghes: don't check if physical_address is not zero, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 02/16] acpi/ghes: simplify acpi_ghes_record_errors() code, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 12/16] acpi/ghes: rename etc/hardware_error file macros, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 05/16] acpi/ghes: Fix acpi_ghes_record_errors() argument, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 07/16] acpi/ghes: Change the type for source_id, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 16/16] docs: acpi_hest_ghes: fix documentation for CPER size, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 14/16] acpi/ghes: move offset calculus to a separate function, Mauro Carvalho Chehab, 2025/01/15
- [PATCH v7 11/16] acpi/ghes: don't crash QEMU if ghes GED is not found, Mauro Carvalho Chehab, 2025/01/15