diff mbox

[V3] acpi: apei: check for pending errors when probing GHES entries

Message ID 1495142562-7318-1-git-send-email-tbaicar@codeaurora.org (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Tyler Baicar May 18, 2017, 9:22 p.m. UTC
Check for pending errors when probing GHES entries. It is possible
that a fatal error is already pending at this point, so we should
handle it as soon as the driver is probed. This also avoids a
potential issue if there was an interrupt that was already
cleared for an error since the GHES driver wasn't present.

V3: Check for pending errors of all GHES types

Signed-off-by: Tyler Baicar <tbaicar@codeaurora.org>
---
 drivers/acpi/apei/ghes.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Borislav Petkov May 21, 2017, 1:39 p.m. UTC | #1
On Thu, May 18, 2017 at 03:22:42PM -0600, Tyler Baicar wrote:
> Check for pending errors when probing GHES entries. It is possible
> that a fatal error is already pending at this point, so we should
> handle it as soon as the driver is probed. This also avoids a
> potential issue if there was an interrupt that was already
> cleared for an error since the GHES driver wasn't present.
> 
> V3: Check for pending errors of all GHES types
> 
> Signed-off-by: Tyler Baicar <tbaicar@codeaurora.org>
> ---
>  drivers/acpi/apei/ghes.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index d0855c0..5347230 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -1039,6 +1039,9 @@ static int ghes_probe(struct platform_device *ghes_dev)
>  	}
>  	platform_set_drvdata(ghes_dev, ghes);
>  
> +	/* Handle any pending errors right away */
> +	ghes_proc(ghes);
> +
>  	return 0;
>  err_edac_unreg:
>  	ghes_edac_unregister(ghes);

Reviewed-by: Borislav Petkov <bp@suse.de>
diff mbox

Patch

diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index d0855c0..5347230 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -1039,6 +1039,9 @@  static int ghes_probe(struct platform_device *ghes_dev)
 	}
 	platform_set_drvdata(ghes_dev, ghes);
 
+	/* Handle any pending errors right away */
+	ghes_proc(ghes);
+
 	return 0;
 err_edac_unreg:
 	ghes_edac_unregister(ghes);