[PATCH 2/2] ACPI / APEI: clear error status before acknowledging the error
Paolo Pisati
paolo.pisati at canonical.com
Thu Jan 18 15:15:23 UTC 2018
Acked-by: Paolo Pisati <paolo.pisati at canonical.com>
On Wed, Jan 17, 2018 at 12:14 AM, Manoj Iyer <manoj.iyer at canonical.com> wrote:
> From: Tyler Baicar <tbaicar at codeaurora.org>
>
> Currently we acknowledge errors before clearing the error status.
> This could cause a new error to be populated by firmware in-between
> the error acknowledgment and the error status clearing which would
> cause the second error's status to be cleared without being handled.
> So, clear the error status before acknowledging the errors.
>
> Also, make sure to acknowledge the error if the error status read
> fails.
>
> BugLink: https://launchpad.net/bugs/1732990
>
> Signed-off-by: Tyler Baicar <tbaicar at codeaurora.org>
> Reviewed-by: Borislav Petkov <bp at suse.de>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
> (cherry picked from commit aaf2c2fb0f51f91c699039440862b6ae9c25c10e)
> Signed-off-by: Manoj Iyer <manoj.iyer at canonical.com>
> ---
> drivers/acpi/apei/ghes.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index f9f106e62e74..3784897c2f66 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -728,17 +728,19 @@ static int ghes_proc(struct ghes *ghes)
> }
> ghes_do_proc(ghes, ghes->estatus);
>
> +out:
> + ghes_clear_estatus(ghes);
> +
> + if (rc == -ENOENT)
> + return rc;
> +
> /*
> * GHESv2 type HEST entries introduce support for error acknowledgment,
> * so only acknowledge the error if this support is present.
> */
> - if (is_hest_type_generic_v2(ghes)) {
> - rc = ghes_ack_error(ghes->generic_v2);
> - if (rc)
> - return rc;
> - }
> -out:
> - ghes_clear_estatus(ghes);
> + if (is_hest_type_generic_v2(ghes))
> + return ghes_ack_error(ghes->generic_v2);
> +
> return rc;
> }
>
> --
> 2.14.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
--
bye,
p.
More information about the kernel-team
mailing list