Merge branches 'acpi-apei', 'acpi-pad' and 'acpi-misc'
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 26 Jun 2023 15:24:19 +0000 (17:24 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 26 Jun 2023 15:24:19 +0000 (17:24 +0200)
Merge ACPI APEI changes, an ACPI PAD driver update and an ACPI FFH
handling cleanup related to ARM64 for 6.5-rc1:

 - Make ghes_get_devices() return NULL to indicate that there are no
   GHES devices so as to allow vendor-specific EDAC drivers to probe
   then (Li Yang).

 - Mark bert_disable() as __initdata and drop an unused function from
   the APEI GHES code (Miaohe Lin).

 - Make the ACPI PAD (Processor Aggregator Device) driver realize that
   Zhaoxin CPUs support nonstop TSC (Tony W Wang-oc).

 - Drop the certainly unnecessary and likely incorrect inclusion of
   linux/arm-smccc.h from acpi_ffh.c (Sudeep Holla).

* acpi-apei:
  APEI: GHES: correctly return NULL for ghes_get_devices()
  ACPI: APEI: mark bert_disable as __initdata
  ACPI: APEI: GHES: Remove unused ghes_estatus_pool_size_request()

* acpi-pad:
  ACPI: PAD: mark Zhaoxin CPUs NONSTOP TSC correctly

* acpi-misc:
  ACPI: FFH: Drop the inclusion of linux/arm-smccc.h

drivers/acpi/acpi_ffh.c
drivers/acpi/acpi_pad.c
drivers/acpi/apei/bert.c
drivers/acpi/apei/ghes.c

index 19aff80..8d51269 100644 (file)
@@ -9,8 +9,6 @@
 #include <linux/idr.h>
 #include <linux/io.h>
 
-#include <linux/arm-smccc.h>
-
 static struct acpi_ffh_info ffh_ctx;
 
 int __weak acpi_ffh_address_space_arch_setup(void *handler_ctxt,
index 02f1a1b..7a453c5 100644 (file)
@@ -66,6 +66,7 @@ static void power_saving_mwait_init(void)
        case X86_VENDOR_AMD:
        case X86_VENDOR_INTEL:
        case X86_VENDOR_ZHAOXIN:
+       case X86_VENDOR_CENTAUR:
                /*
                 * AMD Fam10h TSC will tick in all
                 * C/P/S0/S1 states when this bit is set.
index 7514e38..5427e49 100644 (file)
@@ -34,7 +34,7 @@
 #define ACPI_BERT_PRINT_MAX_RECORDS 5
 #define ACPI_BERT_PRINT_MAX_LEN 1024
 
-static int bert_disable;
+static int bert_disable __initdata;
 
 /*
  * Print "all" the error records in the BERT table, but avoid huge spam to
index 34ad071..ef59d6e 100644 (file)
@@ -152,7 +152,6 @@ struct ghes_vendor_record_entry {
 };
 
 static struct gen_pool *ghes_estatus_pool;
-static unsigned long ghes_estatus_pool_size_request;
 
 static struct ghes_estatus_cache __rcu *ghes_estatus_caches[GHES_ESTATUS_CACHES_SIZE];
 static atomic_t ghes_estatus_cache_alloced;
@@ -191,7 +190,6 @@ int ghes_estatus_pool_init(unsigned int num_ghes)
        len = GHES_ESTATUS_CACHE_AVG_SIZE * GHES_ESTATUS_CACHE_ALLOCED_MAX;
        len += (num_ghes * GHES_ESOURCE_PREALLOC_MAX_SIZE);
 
-       ghes_estatus_pool_size_request = PAGE_ALIGN(len);
        addr = (unsigned long)vmalloc(PAGE_ALIGN(len));
        if (!addr)
                goto err_pool_alloc;
@@ -1544,6 +1542,8 @@ struct list_head *ghes_get_devices(void)
 
                        pr_warn_once("Force-loading ghes_edac on an unsupported platform. You're on your own!\n");
                }
+       } else if (list_empty(&ghes_devs)) {
+               return NULL;
        }
 
        return &ghes_devs;