Re: [PATCH v7 10/25] ACPI / APEI: Tell firmware the estatus queue consumed the records
From: Borislav Petkov <bp@alien8.de>
Date: 2018-12-11 18:36:58
Also in:
kvmarm, linux-acpi, linux-mm
On Mon, Dec 03, 2018 at 06:05:58PM +0000, James Morse wrote:
quoted hunk ↗ jump to hunk
ACPI has a GHESv2 which is used on hardware reduced platforms to explicitly acknowledge that the memory for CPER records has been consumed. This lets an external agent know it can re-use this memory for something else. Previously notify_nmi and the estatus queue didn't do this as they were never used on hardware reduced platforms. Once we move notify_sea over to use the estatus queue, it may become necessary. Add the call. This is safe for use in NMI context as the read_ack_register is pre-mapped by ghes_new() before the ghes can be added to an RCU list, and then found by the notification handler. Signed-off-by: James Morse <james.morse@arm.com> --- drivers/acpi/apei/ghes.c | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 366dbdd41ef3..15d94373ba72 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c@@ -926,6 +926,10 @@ static int _in_nmi_notify_one(struct ghes *ghes) __process_error(ghes); ghes_clear_estatus(ghes, buf_paddr); + if (is_hest_type_generic_v2(ghes) && ghes_ack_error(ghes->generic_v2))
Since ghes_ack_error() is always prepended with this check, you could
push it down into the function:
ghes_ack_error(ghes)
...
if (!is_hest_type_generic_v2(ghes))
return 0;
and simplify the two callsites :)
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel