ACPI: PRM: Deal with table not present or no module found
authorAubrey Li <aubrey.li@intel.com>
Fri, 6 Aug 2021 00:46:24 +0000 (08:46 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 16 Aug 2021 15:06:40 +0000 (17:06 +0200)
On the system PRMT table is not present, dmesg output:

$ dmesg | grep PRM
[    1.532237] ACPI: PRMT not present
[    1.532237] PRM: found 4294967277 modules

The result of acpi_table_parse_entries need to be checked and return
immediately if PRMT table is not present or no PRM module found.

Signed-off-by: Aubrey Li <aubrey.li@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/prmt.c

index 31cf9aee5edd4ccb2973d6b5bdcdd62af1048747..1f6007abcf18eda3259ae274d08a6b1f48cc5dde 100644 (file)
@@ -292,6 +292,12 @@ void __init init_prmt(void)
        int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
                                          sizeof (struct acpi_table_prmt_header),
                                          0, acpi_parse_prmt, 0);
+       /*
+        * Return immediately if PRMT table is not present or no PRM module found.
+        */
+       if (mc <= 0)
+               return;
+
        pr_info("PRM: found %u modules\n", mc);
 
        status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT,