ACPI / APEI: Remove silent flag from ghes_read_estatus()
authorJames Morse <james.morse@arm.com>
Tue, 29 Jan 2019 18:48:38 +0000 (18:48 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 7 Feb 2019 22:10:44 +0000 (23:10 +0100)
Subsequent patches will split up ghes_read_estatus(), at which
point passing around the 'silent' flag gets annoying. This is to
suppress prink() messages, which prior to commit 42a0bb3f7138
("printk/nmi: generic solution for safe printk in NMI"), were
unsafe in NMI context.

This is no longer necessary, remove the flag. printk() messages
are batched in a per-cpu buffer and printed via irq-work, or a call
back from panic().

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/apei/ghes.c

index 0c46b79..f0a704a 100644 (file)
@@ -324,7 +324,7 @@ static void ghes_copy_tofrom_phys(void *buffer, u64 paddr, u32 len,
        }
 }
 
-static int ghes_read_estatus(struct ghes *ghes, int silent)
+static int ghes_read_estatus(struct ghes *ghes)
 {
        struct acpi_hest_generic *g = ghes->generic;
        u64 buf_paddr;
@@ -333,8 +333,7 @@ static int ghes_read_estatus(struct ghes *ghes, int silent)
 
        rc = apei_read(&buf_paddr, &g->error_status_address);
        if (rc) {
-               if (!silent && printk_ratelimit())
-                       pr_warning(FW_WARN GHES_PFX
+               pr_warn_ratelimited(FW_WARN GHES_PFX
 "Failed to read error status block address for hardware error source: %d.\n",
                                   g->header.source_id);
                return -EIO;
@@ -366,9 +365,9 @@ static int ghes_read_estatus(struct ghes *ghes, int silent)
        rc = 0;
 
 err_read_block:
-       if (rc && !silent && printk_ratelimit())
-               pr_warning(FW_WARN GHES_PFX
-                          "Failed to read error status block!\n");
+       if (rc)
+               pr_warn_ratelimited(FW_WARN GHES_PFX
+                                   "Failed to read error status block!\n");
        return rc;
 }
 
@@ -702,7 +701,7 @@ static int ghes_proc(struct ghes *ghes)
 {
        int rc;
 
-       rc = ghes_read_estatus(ghes, 0);
+       rc = ghes_read_estatus(ghes);
        if (rc)
                goto out;
 
@@ -939,7 +938,7 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs)
                return ret;
 
        list_for_each_entry_rcu(ghes, &ghes_nmi, list) {
-               if (ghes_read_estatus(ghes, 1)) {
+               if (ghes_read_estatus(ghes)) {
                        ghes_clear_estatus(ghes);
                        continue;
                } else {