Skip to content

Commit

Permalink
ACPI / APEI: Suppress message if HEST not present
Browse files Browse the repository at this point in the history
According to the ACPI specification, firmware is not required to provide
the Hardware Error Source Table (HEST). When HEST is not present, the
following superfluous message is printed to the kernel boot log -

[    3.460067] GHES: HEST is not enabled!

Extend hest_disable variable to track whether the firmware provides this
table and if it is not present skip any log output. The existing
behaviour is preserved in all other cases.

Suggested-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Punit Agrawal authored and Rafael J. Wysocki committed Aug 30, 2017
1 parent 1d5d820 commit e931d0d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
7 changes: 6 additions & 1 deletion drivers/acpi/apei/ghes.c
Original file line number Diff line number Diff line change
Expand Up @@ -1266,9 +1266,14 @@ static int __init ghes_init(void)
if (acpi_disabled)
return -ENODEV;

if (hest_disable) {
switch (hest_disable) {
case HEST_NOT_FOUND:
return -ENODEV;
case HEST_DISABLED:
pr_info(GHES_PFX "HEST is not enabled!\n");
return -EINVAL;
default:
break;
}

if (ghes_disable) {
Expand Down
13 changes: 7 additions & 6 deletions drivers/acpi/apei/hest.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

#define HEST_PFX "HEST: "

bool hest_disable;
int hest_disable;
EXPORT_SYMBOL_GPL(hest_disable);

/* HEST table parsing */
Expand Down Expand Up @@ -213,7 +213,7 @@ static int __init hest_ghes_dev_register(unsigned int ghes_count)

static int __init setup_hest_disable(char *str)
{
hest_disable = 1;
hest_disable = HEST_DISABLED;
return 0;
}

Expand All @@ -232,9 +232,10 @@ void __init acpi_hest_init(void)

status = acpi_get_table(ACPI_SIG_HEST, 0,
(struct acpi_table_header **)&hest_tab);
if (status == AE_NOT_FOUND)
goto err;
else if (ACPI_FAILURE(status)) {
if (status == AE_NOT_FOUND) {
hest_disable = HEST_NOT_FOUND;
return;
} else if (ACPI_FAILURE(status)) {
const char *msg = acpi_format_exception(status);
pr_err(HEST_PFX "Failed to get table, %s\n", msg);
rc = -EINVAL;
Expand All @@ -257,5 +258,5 @@ void __init acpi_hest_init(void)
pr_info(HEST_PFX "Table parsing has been initialized.\n");
return;
err:
hest_disable = 1;
hest_disable = HEST_DISABLED;
}
8 changes: 7 additions & 1 deletion include/acpi/apei.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@

#ifdef __KERNEL__

extern bool hest_disable;
enum hest_status {
HEST_ENABLED,
HEST_DISABLED,
HEST_NOT_FOUND,
};

extern int hest_disable;
extern int erst_disable;
#ifdef CONFIG_ACPI_APEI_GHES
extern bool ghes_disable;
Expand Down

0 comments on commit e931d0d

Please sign in to comment.