|
@@ -74,13 +74,13 @@
|
|
|
#define GHES_ESTATUS_CACHE_LEN(estatus_len) \
|
|
|
(sizeof(struct ghes_estatus_cache) + (estatus_len))
|
|
|
#define GHES_ESTATUS_FROM_CACHE(estatus_cache) \
|
|
|
- ((struct acpi_generic_status *) \
|
|
|
+ ((struct acpi_hest_generic_status *) \
|
|
|
((struct ghes_estatus_cache *)(estatus_cache) + 1))
|
|
|
|
|
|
#define GHES_ESTATUS_NODE_LEN(estatus_len) \
|
|
|
(sizeof(struct ghes_estatus_node) + (estatus_len))
|
|
|
#define GHES_ESTATUS_FROM_NODE(estatus_node) \
|
|
|
- ((struct acpi_generic_status *) \
|
|
|
+ ((struct acpi_hest_generic_status *) \
|
|
|
((struct ghes_estatus_node *)(estatus_node) + 1))
|
|
|
|
|
|
bool ghes_disable;
|
|
@@ -408,7 +408,7 @@ static void ghes_clear_estatus(struct ghes *ghes)
|
|
|
ghes->flags &= ~GHES_TO_CLEAR;
|
|
|
}
|
|
|
|
|
|
-static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int sev)
|
|
|
+static void ghes_handle_memory_failure(struct acpi_hest_generic_data *gdata, int sev)
|
|
|
{
|
|
|
#ifdef CONFIG_ACPI_APEI_MEMORY_FAILURE
|
|
|
unsigned long pfn;
|
|
@@ -441,10 +441,10 @@ static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int sev)
|
|
|
}
|
|
|
|
|
|
static void ghes_do_proc(struct ghes *ghes,
|
|
|
- const struct acpi_generic_status *estatus)
|
|
|
+ const struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
int sev, sec_sev;
|
|
|
- struct acpi_generic_data *gdata;
|
|
|
+ struct acpi_hest_generic_data *gdata;
|
|
|
|
|
|
sev = ghes_severity(estatus->error_severity);
|
|
|
apei_estatus_for_each_section(estatus, gdata) {
|
|
@@ -498,7 +498,7 @@ static void ghes_do_proc(struct ghes *ghes,
|
|
|
|
|
|
static void __ghes_print_estatus(const char *pfx,
|
|
|
const struct acpi_hest_generic *generic,
|
|
|
- const struct acpi_generic_status *estatus)
|
|
|
+ const struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
static atomic_t seqno;
|
|
|
unsigned int curr_seqno;
|
|
@@ -520,7 +520,7 @@ static void __ghes_print_estatus(const char *pfx,
|
|
|
|
|
|
static int ghes_print_estatus(const char *pfx,
|
|
|
const struct acpi_hest_generic *generic,
|
|
|
- const struct acpi_generic_status *estatus)
|
|
|
+ const struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
/* Not more than 2 messages every 5 seconds */
|
|
|
static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2);
|
|
@@ -542,13 +542,13 @@ static int ghes_print_estatus(const char *pfx,
|
|
|
* GHES error status reporting throttle, to report more kinds of
|
|
|
* errors, instead of just most frequently occurred errors.
|
|
|
*/
|
|
|
-static int ghes_estatus_cached(struct acpi_generic_status *estatus)
|
|
|
+static int ghes_estatus_cached(struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
u32 len;
|
|
|
int i, cached = 0;
|
|
|
unsigned long long now;
|
|
|
struct ghes_estatus_cache *cache;
|
|
|
- struct acpi_generic_status *cache_estatus;
|
|
|
+ struct acpi_hest_generic_status *cache_estatus;
|
|
|
|
|
|
len = cper_estatus_len(estatus);
|
|
|
rcu_read_lock();
|
|
@@ -573,12 +573,12 @@ static int ghes_estatus_cached(struct acpi_generic_status *estatus)
|
|
|
|
|
|
static struct ghes_estatus_cache *ghes_estatus_cache_alloc(
|
|
|
struct acpi_hest_generic *generic,
|
|
|
- struct acpi_generic_status *estatus)
|
|
|
+ struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
int alloced;
|
|
|
u32 len, cache_len;
|
|
|
struct ghes_estatus_cache *cache;
|
|
|
- struct acpi_generic_status *cache_estatus;
|
|
|
+ struct acpi_hest_generic_status *cache_estatus;
|
|
|
|
|
|
alloced = atomic_add_return(1, &ghes_estatus_cache_alloced);
|
|
|
if (alloced > GHES_ESTATUS_CACHE_ALLOCED_MAX) {
|
|
@@ -621,7 +621,7 @@ static void ghes_estatus_cache_rcu_free(struct rcu_head *head)
|
|
|
|
|
|
static void ghes_estatus_cache_add(
|
|
|
struct acpi_hest_generic *generic,
|
|
|
- struct acpi_generic_status *estatus)
|
|
|
+ struct acpi_hest_generic_status *estatus)
|
|
|
{
|
|
|
int i, slot = -1, count;
|
|
|
unsigned long long now, duration, period, max_period = 0;
|
|
@@ -753,7 +753,7 @@ static void ghes_proc_in_irq(struct irq_work *irq_work)
|
|
|
struct llist_node *llnode, *next;
|
|
|
struct ghes_estatus_node *estatus_node;
|
|
|
struct acpi_hest_generic *generic;
|
|
|
- struct acpi_generic_status *estatus;
|
|
|
+ struct acpi_hest_generic_status *estatus;
|
|
|
u32 len, node_len;
|
|
|
|
|
|
llnode = llist_del_all(&ghes_estatus_llist);
|
|
@@ -786,7 +786,7 @@ static void ghes_print_queued_estatus(void)
|
|
|
struct llist_node *llnode;
|
|
|
struct ghes_estatus_node *estatus_node;
|
|
|
struct acpi_hest_generic *generic;
|
|
|
- struct acpi_generic_status *estatus;
|
|
|
+ struct acpi_hest_generic_status *estatus;
|
|
|
u32 len, node_len;
|
|
|
|
|
|
llnode = llist_del_all(&ghes_estatus_llist);
|
|
@@ -845,7 +845,7 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs)
|
|
|
#ifdef CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
|
u32 len, node_len;
|
|
|
struct ghes_estatus_node *estatus_node;
|
|
|
- struct acpi_generic_status *estatus;
|
|
|
+ struct acpi_hest_generic_status *estatus;
|
|
|
#endif
|
|
|
if (!(ghes->flags & GHES_TO_CLEAR))
|
|
|
continue;
|
|
@@ -925,7 +925,7 @@ static int ghes_probe(struct platform_device *ghes_dev)
|
|
|
|
|
|
rc = -EIO;
|
|
|
if (generic->error_block_length <
|
|
|
- sizeof(struct acpi_generic_status)) {
|
|
|
+ sizeof(struct acpi_hest_generic_status)) {
|
|
|
pr_warning(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n",
|
|
|
generic->error_block_length,
|
|
|
generic->header.source_id);
|