mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
acpi/ghes: simplify the per-arch caller to build HEST table
The GHES driver requires not only a HEST table, but also a separate firmware file to store Error Structure records. It can't do one without the other. Simplify the caller logic for it to require one function. No functional changes. 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> Message-Id: <9584bb8953385e165681d5d185c503f8df8ef42f.1736945236.git.mchehab+huawei@kernel.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
872b69f21f
commit
606a42c4c1
3 changed files with 9 additions and 7 deletions
|
@ -233,7 +233,7 @@ static int acpi_ghes_record_mem_error(uint64_t error_block_address,
|
||||||
* Initialize "etc/hardware_errors" and "etc/hardware_errors_addr" fw_cfg blobs.
|
* Initialize "etc/hardware_errors" and "etc/hardware_errors_addr" fw_cfg blobs.
|
||||||
* See docs/specs/acpi_hest_ghes.rst for blobs format.
|
* See docs/specs/acpi_hest_ghes.rst for blobs format.
|
||||||
*/
|
*/
|
||||||
void build_ghes_error_table(GArray *hardware_errors, BIOSLinker *linker)
|
static void build_ghes_error_table(GArray *hardware_errors, BIOSLinker *linker)
|
||||||
{
|
{
|
||||||
int i, error_status_block_offset;
|
int i, error_status_block_offset;
|
||||||
|
|
||||||
|
@ -356,12 +356,15 @@ static void build_ghes_v2(GArray *table_data, int source_id, BIOSLinker *linker)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Build Hardware Error Source Table */
|
/* Build Hardware Error Source Table */
|
||||||
void acpi_build_hest(GArray *table_data, BIOSLinker *linker,
|
void acpi_build_hest(GArray *table_data, GArray *hardware_errors,
|
||||||
|
BIOSLinker *linker,
|
||||||
const char *oem_id, const char *oem_table_id)
|
const char *oem_id, const char *oem_table_id)
|
||||||
{
|
{
|
||||||
AcpiTable table = { .sig = "HEST", .rev = 1,
|
AcpiTable table = { .sig = "HEST", .rev = 1,
|
||||||
.oem_id = oem_id, .oem_table_id = oem_table_id };
|
.oem_id = oem_id, .oem_table_id = oem_table_id };
|
||||||
|
|
||||||
|
build_ghes_error_table(hardware_errors, linker);
|
||||||
|
|
||||||
acpi_table_begin(&table, table_data);
|
acpi_table_begin(&table, table_data);
|
||||||
|
|
||||||
/* Error Source Count */
|
/* Error Source Count */
|
||||||
|
|
|
@ -946,10 +946,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
|
||||||
build_dbg2(tables_blob, tables->linker, vms);
|
build_dbg2(tables_blob, tables->linker, vms);
|
||||||
|
|
||||||
if (vms->ras) {
|
if (vms->ras) {
|
||||||
build_ghes_error_table(tables->hardware_errors, tables->linker);
|
|
||||||
acpi_add_table(table_offsets, tables_blob);
|
acpi_add_table(table_offsets, tables_blob);
|
||||||
acpi_build_hest(tables_blob, tables->linker, vms->oem_id,
|
acpi_build_hest(tables_blob, tables->hardware_errors, tables->linker,
|
||||||
vms->oem_table_id);
|
vms->oem_id, vms->oem_table_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ms->numa_state->num_nodes > 0) {
|
if (ms->numa_state->num_nodes > 0) {
|
||||||
|
|
|
@ -68,8 +68,8 @@ typedef struct AcpiGhesState {
|
||||||
bool present; /* True if GHES is present at all on this board */
|
bool present; /* True if GHES is present at all on this board */
|
||||||
} AcpiGhesState;
|
} AcpiGhesState;
|
||||||
|
|
||||||
void build_ghes_error_table(GArray *hardware_errors, BIOSLinker *linker);
|
void acpi_build_hest(GArray *table_data, GArray *hardware_errors,
|
||||||
void acpi_build_hest(GArray *table_data, BIOSLinker *linker,
|
BIOSLinker *linker,
|
||||||
const char *oem_id, const char *oem_table_id);
|
const char *oem_id, const char *oem_table_id);
|
||||||
void acpi_ghes_add_fw_cfg(AcpiGhesState *vms, FWCfgState *s,
|
void acpi_ghes_add_fw_cfg(AcpiGhesState *vms, FWCfgState *s,
|
||||||
GArray *hardware_errors);
|
GArray *hardware_errors);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue