Thread (16 messages) 16 messages, 4 authors, 2017-09-03

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help