[v3,1/5] ACPI / blacklist: add acpi_match_platform_list()
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2017-08-21 12:25:05
Also in:
linux-acpi, lkml
On Mon, Aug 21, 2017 at 1:27 PM, Borislav Petkov [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On Fri, Aug 18, 2017 at 01:46:40PM -0600, Toshi Kani wrote:quoted
ACPI OEM ID / OEM Table ID / Revision can be used to identify a platform based on ACPI firmware info. acpi_blacklisted(), intel_pstate_platform_pwr_mgmt_exists(), and some other funcs, have been using similar check to detect a list of platforms that require special handlings. Move the platform check in acpi_blacklisted() to a new common utility function, acpi_match_platform_list(), so that other drivers do not have to implement their own version. There is no change in functionality. Signed-off-by: Toshi Kani <redacted> Cc: "Rafael J. Wysocki" <redacted> Cc: Borislav Petkov <bp@alien8.de> --- drivers/acpi/blacklist.c | 83 ++++++++-------------------------------------- drivers/acpi/utils.c | 40 ++++++++++++++++++++++ include/linux/acpi.h | 19 +++++++++++ 3 files changed, 73 insertions(+), 69 deletions(-)...quoted
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c index b9d956c..998aaf5 100644 --- a/drivers/acpi/utils.c +++ b/drivers/acpi/utils.c@@ -816,3 +816,43 @@ static int __init acpi_backlight(char *str) return 1; } __setup("acpi_backlight=", acpi_backlight); + +/** + * acpi_match_platform_list - Check if the system matches with a given list + * @plat: pointer to acpi_platform_list table terminated by a NULL entry + * + * Return the matched index if the system is found in the platform list. + * Otherwise, return a negative error code. + */ +int acpi_match_platform_list(const struct acpi_platform_list *plat) +{ + struct acpi_table_header hdr; + int idx = 0; + + if (acpi_disabled) + return -ENODEV;Btw, Rafael, should we do something like this:diff --git a/drivers/acpi/acpica/tbxface.c b/drivers/acpi/acpica/tbxface.c index 010b1c43df92..881b0d5b2838 100644 --- a/drivers/acpi/acpica/tbxface.c +++ b/drivers/acpi/acpica/tbxface.c@@ -226,6 +226,9 @@ acpi_get_table_header(char *signature, u32 j; struct acpi_table_header *header; + if (acpi_disabled) + return (AE_ERROR); + /* Parameter validation */ if (!signature || !out_table_header) { ---in order to avoid that sprinkling of if (acpi_disabled) everywhere?
Yes, let's catch this as early as possible. Thanks, Rafael --- To unsubscribe from this list: send the line "unsubscribe linux-edac" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html