ghes_proc() always return 0 even failed to read estatus, so when it is called in interrupt handler ghes_irq_func(), we don't know the interrupt was handled well or not, because the ghes_irq_func() will return only IRQ_HANDLED. Signed-off-by: Ethan Zhao <ethan.kernel@xxxxxxxxx> --- drivers/acpi/apei/ghes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 8ec37bb..9368b73 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -665,7 +665,7 @@ static void ghes_estatus_cache_add( static int ghes_proc(struct ghes *ghes) { - int rc; + int rc = 0; rc = ghes_read_estatus(ghes, 0); if (rc) @@ -677,7 +677,7 @@ static int ghes_proc(struct ghes *ghes) ghes_do_proc(ghes, ghes->estatus); out: ghes_clear_estatus(ghes); - return 0; + return rc; } static void ghes_add_timer(struct ghes *ghes) -- 1.8.3.4 (Apple Git-47) -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html