mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
acpi/ghes: simplify acpi_ghes_record_errors() code
Reduce the ident of the function and prepares it for the next changes. No functional changes. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-Id: <19af4188535217213486d169e0501e592bc78a95.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
239c3f7ed4
commit
872b69f21f
1 changed files with 29 additions and 27 deletions
|
@ -402,40 +402,42 @@ int acpi_ghes_record_errors(uint8_t source_id, uint64_t physical_address)
|
||||||
|
|
||||||
start_addr = le64_to_cpu(ags->ghes_addr_le);
|
start_addr = le64_to_cpu(ags->ghes_addr_le);
|
||||||
|
|
||||||
if (physical_address) {
|
if (!physical_address) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (source_id < ACPI_GHES_ERROR_SOURCE_COUNT) {
|
if (source_id < ACPI_GHES_ERROR_SOURCE_COUNT) {
|
||||||
start_addr += source_id * sizeof(uint64_t);
|
start_addr += source_id * sizeof(uint64_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
cpu_physical_memory_read(start_addr, &error_block_addr,
|
cpu_physical_memory_read(start_addr, &error_block_addr,
|
||||||
sizeof(error_block_addr));
|
sizeof(error_block_addr));
|
||||||
|
|
||||||
error_block_addr = le64_to_cpu(error_block_addr);
|
error_block_addr = le64_to_cpu(error_block_addr);
|
||||||
|
|
||||||
read_ack_register_addr = start_addr +
|
read_ack_register_addr = start_addr +
|
||||||
ACPI_GHES_ERROR_SOURCE_COUNT * sizeof(uint64_t);
|
ACPI_GHES_ERROR_SOURCE_COUNT * sizeof(uint64_t);
|
||||||
|
|
||||||
cpu_physical_memory_read(read_ack_register_addr,
|
cpu_physical_memory_read(read_ack_register_addr,
|
||||||
&read_ack_register, sizeof(read_ack_register));
|
&read_ack_register, sizeof(read_ack_register));
|
||||||
|
|
||||||
/* zero means OSPM does not acknowledge the error */
|
/* zero means OSPM does not acknowledge the error */
|
||||||
if (!read_ack_register) {
|
if (!read_ack_register) {
|
||||||
error_report("OSPM does not acknowledge previous error,"
|
error_report("OSPM does not acknowledge previous error,"
|
||||||
" so can not record CPER for current error anymore");
|
" so can not record CPER for current error anymore");
|
||||||
} else if (error_block_addr) {
|
} else if (error_block_addr) {
|
||||||
read_ack_register = cpu_to_le64(0);
|
read_ack_register = cpu_to_le64(0);
|
||||||
/*
|
/*
|
||||||
* Clear the Read Ack Register, OSPM will write it to 1 when
|
* Clear the Read Ack Register, OSPM will write it to 1 when
|
||||||
* it acknowledges this error.
|
* it acknowledges this error.
|
||||||
*/
|
*/
|
||||||
cpu_physical_memory_write(read_ack_register_addr,
|
cpu_physical_memory_write(read_ack_register_addr,
|
||||||
&read_ack_register, sizeof(uint64_t));
|
&read_ack_register, sizeof(uint64_t));
|
||||||
|
|
||||||
ret = acpi_ghes_record_mem_error(error_block_addr,
|
ret = acpi_ghes_record_mem_error(error_block_addr,
|
||||||
physical_address);
|
physical_address);
|
||||||
} else
|
} else {
|
||||||
error_report("can not find Generic Error Status Block");
|
error_report("can not find Generic Error Status Block");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue