[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