[PATCH v5 00/16] Prepare GHES driver to support error injection

From: Mauro Carvalho Chehab
Date: Wed Dec 04 2024 - 02:42:54 EST


During the development of a patch series meant to allow GHESv2 error injections,
it was requested a change on how CPER offsets are calculated, by adding a new
BIOS pointer and reworking the GHES logic. See:

https://lore.kernel.org/qemu-devel/cover.1726293808.git.mchehab+huawei@xxxxxxxxxx/

Such change ended being a big patch, so several intermediate steps are needed,
together with several cleanups and renames.

As agreed during v10 review, I'll be splitting the big patch series into separate pull
requests, starting with the cleanup series. This is the first patch set, containing
only such preparation patches.

The next series will contain the shift to use offsets from the location of the
HEST table, together with a migration logic to make it compatible with 9.1.

---

v5:
- added a new patch:
acpi/ghes: don't check if physical_address is not zero
- removed a duplicated le64_to_cpu();
- changed a comment about writing 1 to read ack register.

v4:
- merged a patch renaming the function which calculate offsets to:
get_hw_error_offsets(), to avoid the need of such change at the next
patch series;
- removed a functional change at the logic which makes
the GHES record generation more generic;
- a couple of trivial changes on patch descriptions and line break cleanups.

v3:
- improved some patch descriptions;
- some patches got reordered to better reflect the changes;
- patch v2 08/15: acpi/ghes: Prepare to support multiple sources on ghes
was split on two patches. The first one is in this cleanup series:
acpi/ghes: Change ghes fill logic to work with only one source
contains just the simplification logic. The actual preparation will
be moved to this series:
https://lore.kernel.org/qemu-devel/cover.1727782588.git.mchehab+huawei@xxxxxxxxxx/

v2:
- some indentation fixes;
- some description improvements;
- fixed a badly-solved merge conflict that ended renaming a parameter.

Mauro Carvalho Chehab (16):
acpi/ghes: get rid of ACPI_HEST_SRC_ID_RESERVED
acpi/ghes: simplify acpi_ghes_record_errors() code
acpi/ghes: simplify the per-arch caller to build HEST table
acpi/ghes: better handle source_id and notification
acpi/ghes: Fix acpi_ghes_record_errors() argument
acpi/ghes: Remove a duplicated out of bounds check
acpi/ghes: Change the type for source_id
acpi/ghes: don't check if physical_address is not zero
acpi/ghes: make the GHES record generation more generic
acpi/ghes: better name GHES memory error function
acpi/ghes: don't crash QEMU if ghes GED is not found
acpi/ghes: rename etc/hardware_error file macros
acpi/ghes: better name the offset of the hardware error firmware
acpi/ghes: move offset calculus to a separate function
acpi/ghes: Change ghes fill logic to work with only one source
docs: acpi_hest_ghes: fix documentation for CPER size

docs/specs/acpi_hest_ghes.rst | 6 +-
hw/acpi/generic_event_device.c | 4 +-
hw/acpi/ghes-stub.c | 2 +-
hw/acpi/ghes.c | 259 +++++++++++++++++++--------------
hw/arm/virt-acpi-build.c | 5 +-
include/hw/acpi/ghes.h | 16 +-
target/arm/kvm.c | 2 +-
7 files changed, 169 insertions(+), 125 deletions(-)

--
2.47.1