aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpi_extlog.c14
-rw-r--r--drivers/acpi/apei/apei-internal.h10
-rw-r--r--drivers/acpi/apei/ghes.c32
-rw-r--r--drivers/firmware/efi/cper.c20
-rw-r--r--include/acpi/actbl1.h14
-rw-r--r--include/acpi/ghes.h2
6 files changed, 46 insertions, 46 deletions
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
index 185334114d71..340d09518f8e 100644
--- a/drivers/acpi/acpi_extlog.c
+++ b/drivers/acpi/acpi_extlog.c
@@ -69,11 +69,11 @@ static u32 l1_percpu_entry;
69#define ELOG_ENTRY_ADDR(phyaddr) \ 69#define ELOG_ENTRY_ADDR(phyaddr) \
70 (phyaddr - elog_base + (u8 *)elog_addr) 70 (phyaddr - elog_base + (u8 *)elog_addr)
71 71
72static struct acpi_generic_status *extlog_elog_entry_check(int cpu, int bank) 72static struct acpi_hest_generic_status *extlog_elog_entry_check(int cpu, int bank)
73{ 73{
74 int idx; 74 int idx;
75 u64 data; 75 u64 data;
76 struct acpi_generic_status *estatus; 76 struct acpi_hest_generic_status *estatus;
77 77
78 WARN_ON(cpu < 0); 78 WARN_ON(cpu < 0);
79 idx = ELOG_IDX(cpu, bank); 79 idx = ELOG_IDX(cpu, bank);
@@ -82,7 +82,7 @@ static struct acpi_generic_status *extlog_elog_entry_check(int cpu, int bank)
82 return NULL; 82 return NULL;
83 83
84 data &= EXT_ELOG_ENTRY_MASK; 84 data &= EXT_ELOG_ENTRY_MASK;
85 estatus = (struct acpi_generic_status *)ELOG_ENTRY_ADDR(data); 85 estatus = (struct acpi_hest_generic_status *)ELOG_ENTRY_ADDR(data);
86 86
87 /* if no valid data in elog entry, just return */ 87 /* if no valid data in elog entry, just return */
88 if (estatus->block_status == 0) 88 if (estatus->block_status == 0)
@@ -92,7 +92,7 @@ static struct acpi_generic_status *extlog_elog_entry_check(int cpu, int bank)
92} 92}
93 93
94static void __print_extlog_rcd(const char *pfx, 94static void __print_extlog_rcd(const char *pfx,
95 struct acpi_generic_status *estatus, int cpu) 95 struct acpi_hest_generic_status *estatus, int cpu)
96{ 96{
97 static atomic_t seqno; 97 static atomic_t seqno;
98 unsigned int curr_seqno; 98 unsigned int curr_seqno;
@@ -111,7 +111,7 @@ static void __print_extlog_rcd(const char *pfx,
111} 111}
112 112
113static int print_extlog_rcd(const char *pfx, 113static int print_extlog_rcd(const char *pfx,
114 struct acpi_generic_status *estatus, int cpu) 114 struct acpi_hest_generic_status *estatus, int cpu)
115{ 115{
116 /* Not more than 2 messages every 5 seconds */ 116 /* Not more than 2 messages every 5 seconds */
117 static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2); 117 static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2);
@@ -137,7 +137,7 @@ static int extlog_print(struct notifier_block *nb, unsigned long val,
137 struct mce *mce = (struct mce *)data; 137 struct mce *mce = (struct mce *)data;
138 int bank = mce->bank; 138 int bank = mce->bank;
139 int cpu = mce->extcpu; 139 int cpu = mce->extcpu;
140 struct acpi_generic_status *estatus; 140 struct acpi_hest_generic_status *estatus;
141 int rc; 141 int rc;
142 142
143 estatus = extlog_elog_entry_check(cpu, bank); 143 estatus = extlog_elog_entry_check(cpu, bank);
@@ -148,7 +148,7 @@ static int extlog_print(struct notifier_block *nb, unsigned long val,
148 /* clear record status to enable BIOS to update it again */ 148 /* clear record status to enable BIOS to update it again */
149 estatus->block_status = 0; 149 estatus->block_status = 0;
150 150
151 rc = print_extlog_rcd(NULL, (struct acpi_generic_status *)elog_buf, cpu); 151 rc = print_extlog_rcd(NULL, (struct acpi_hest_generic_status *)elog_buf, cpu);
152 152
153 return NOTIFY_STOP; 153 return NOTIFY_STOP;
154} 154}
diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
index e5bcd919d4e6..16129c78b489 100644
--- a/drivers/acpi/apei/apei-internal.h
+++ b/drivers/acpi/apei/apei-internal.h
@@ -121,11 +121,11 @@ struct dentry;
121struct dentry *apei_get_debugfs_dir(void); 121struct dentry *apei_get_debugfs_dir(void);
122 122
123#define apei_estatus_for_each_section(estatus, section) \ 123#define apei_estatus_for_each_section(estatus, section) \
124 for (section = (struct acpi_generic_data *)(estatus + 1); \ 124 for (section = (struct acpi_hest_generic_data *)(estatus + 1); \
125 (void *)section - (void *)estatus < estatus->data_length; \ 125 (void *)section - (void *)estatus < estatus->data_length; \
126 section = (void *)(section+1) + section->error_data_length) 126 section = (void *)(section+1) + section->error_data_length)
127 127
128static inline u32 cper_estatus_len(struct acpi_generic_status *estatus) 128static inline u32 cper_estatus_len(struct acpi_hest_generic_status *estatus)
129{ 129{
130 if (estatus->raw_data_length) 130 if (estatus->raw_data_length)
131 return estatus->raw_data_offset + \ 131 return estatus->raw_data_offset + \
@@ -135,9 +135,9 @@ static inline u32 cper_estatus_len(struct acpi_generic_status *estatus)
135} 135}
136 136
137void cper_estatus_print(const char *pfx, 137void cper_estatus_print(const char *pfx,
138 const struct acpi_generic_status *estatus); 138 const struct acpi_hest_generic_status *estatus);
139int cper_estatus_check_header(const struct acpi_generic_status *estatus); 139int cper_estatus_check_header(const struct acpi_hest_generic_status *estatus);
140int cper_estatus_check(const struct acpi_generic_status *estatus); 140int cper_estatus_check(const struct acpi_hest_generic_status *estatus);
141 141
142int apei_osc_setup(void); 142int apei_osc_setup(void);
143#endif 143#endif
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index dab7cb7349df..7a38d1465b61 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -74,13 +74,13 @@
74#define GHES_ESTATUS_CACHE_LEN(estatus_len) \ 74#define GHES_ESTATUS_CACHE_LEN(estatus_len) \
75 (sizeof(struct ghes_estatus_cache) + (estatus_len)) 75 (sizeof(struct ghes_estatus_cache) + (estatus_len))
76#define GHES_ESTATUS_FROM_CACHE(estatus_cache) \ 76#define GHES_ESTATUS_FROM_CACHE(estatus_cache) \
77 ((struct acpi_generic_status *) \ 77 ((struct acpi_hest_generic_status *) \
78 ((struct ghes_estatus_cache *)(estatus_cache) + 1)) 78 ((struct ghes_estatus_cache *)(estatus_cache) + 1))
79 79
80#define GHES_ESTATUS_NODE_LEN(estatus_len) \ 80#define GHES_ESTATUS_NODE_LEN(estatus_len) \
81 (sizeof(struct ghes_estatus_node) + (estatus_len)) 81 (sizeof(struct ghes_estatus_node) + (estatus_len))
82#define GHES_ESTATUS_FROM_NODE(estatus_node) \ 82#define GHES_ESTATUS_FROM_NODE(estatus_node) \
83 ((struct acpi_generic_status *) \ 83 ((struct acpi_hest_generic_status *) \
84 ((struct ghes_estatus_node *)(estatus_node) + 1)) 84 ((struct ghes_estatus_node *)(estatus_node) + 1))
85 85
86bool ghes_disable; 86bool ghes_disable;
@@ -408,7 +408,7 @@ static void ghes_clear_estatus(struct ghes *ghes)
408 ghes->flags &= ~GHES_TO_CLEAR; 408 ghes->flags &= ~GHES_TO_CLEAR;
409} 409}
410 410
411static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int sev) 411static void ghes_handle_memory_failure(struct acpi_hest_generic_data *gdata, int sev)
412{ 412{
413#ifdef CONFIG_ACPI_APEI_MEMORY_FAILURE 413#ifdef CONFIG_ACPI_APEI_MEMORY_FAILURE
414 unsigned long pfn; 414 unsigned long pfn;
@@ -441,10 +441,10 @@ static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int sev)
441} 441}
442 442
443static void ghes_do_proc(struct ghes *ghes, 443static void ghes_do_proc(struct ghes *ghes,
444 const struct acpi_generic_status *estatus) 444 const struct acpi_hest_generic_status *estatus)
445{ 445{
446 int sev, sec_sev; 446 int sev, sec_sev;
447 struct acpi_generic_data *gdata; 447 struct acpi_hest_generic_data *gdata;
448 448
449 sev = ghes_severity(estatus->error_severity); 449 sev = ghes_severity(estatus->error_severity);
450 apei_estatus_for_each_section(estatus, gdata) { 450 apei_estatus_for_each_section(estatus, gdata) {
@@ -498,7 +498,7 @@ static void ghes_do_proc(struct ghes *ghes,
498 498
499static void __ghes_print_estatus(const char *pfx, 499static void __ghes_print_estatus(const char *pfx,
500 const struct acpi_hest_generic *generic, 500 const struct acpi_hest_generic *generic,
501 const struct acpi_generic_status *estatus) 501 const struct acpi_hest_generic_status *estatus)
502{ 502{
503 static atomic_t seqno; 503 static atomic_t seqno;
504 unsigned int curr_seqno; 504 unsigned int curr_seqno;
@@ -520,7 +520,7 @@ static void __ghes_print_estatus(const char *pfx,
520 520
521static int ghes_print_estatus(const char *pfx, 521static int ghes_print_estatus(const char *pfx,
522 const struct acpi_hest_generic *generic, 522 const struct acpi_hest_generic *generic,
523 const struct acpi_generic_status *estatus) 523 const struct acpi_hest_generic_status *estatus)
524{ 524{
525 /* Not more than 2 messages every 5 seconds */ 525 /* Not more than 2 messages every 5 seconds */
526 static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2); 526 static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2);
@@ -542,13 +542,13 @@ static int ghes_print_estatus(const char *pfx,
542 * GHES error status reporting throttle, to report more kinds of 542 * GHES error status reporting throttle, to report more kinds of
543 * errors, instead of just most frequently occurred errors. 543 * errors, instead of just most frequently occurred errors.
544 */ 544 */
545static int ghes_estatus_cached(struct acpi_generic_status *estatus) 545static int ghes_estatus_cached(struct acpi_hest_generic_status *estatus)
546{ 546{
547 u32 len; 547 u32 len;
548 int i, cached = 0; 548 int i, cached = 0;
549 unsigned long long now; 549 unsigned long long now;
550 struct ghes_estatus_cache *cache; 550 struct ghes_estatus_cache *cache;
551 struct acpi_generic_status *cache_estatus; 551 struct acpi_hest_generic_status *cache_estatus;
552 552
553 len = cper_estatus_len(estatus); 553 len = cper_estatus_len(estatus);
554 rcu_read_lock(); 554 rcu_read_lock();
@@ -573,12 +573,12 @@ static int ghes_estatus_cached(struct acpi_generic_status *estatus)
573 573
574static struct ghes_estatus_cache *ghes_estatus_cache_alloc( 574static struct ghes_estatus_cache *ghes_estatus_cache_alloc(
575 struct acpi_hest_generic *generic, 575 struct acpi_hest_generic *generic,
576 struct acpi_generic_status *estatus) 576 struct acpi_hest_generic_status *estatus)
577{ 577{
578 int alloced; 578 int alloced;
579 u32 len, cache_len; 579 u32 len, cache_len;
580 struct ghes_estatus_cache *cache; 580 struct ghes_estatus_cache *cache;
581 struct acpi_generic_status *cache_estatus; 581 struct acpi_hest_generic_status *cache_estatus;
582 582
583 alloced = atomic_add_return(1, &ghes_estatus_cache_alloced); 583 alloced = atomic_add_return(1, &ghes_estatus_cache_alloced);
584 if (alloced > GHES_ESTATUS_CACHE_ALLOCED_MAX) { 584 if (alloced > GHES_ESTATUS_CACHE_ALLOCED_MAX) {
@@ -621,7 +621,7 @@ static void ghes_estatus_cache_rcu_free(struct rcu_head *head)
621 621
622static void ghes_estatus_cache_add( 622static void ghes_estatus_cache_add(
623 struct acpi_hest_generic *generic, 623 struct acpi_hest_generic *generic,
624 struct acpi_generic_status *estatus) 624 struct acpi_hest_generic_status *estatus)
625{ 625{
626 int i, slot = -1, count; 626 int i, slot = -1, count;
627 unsigned long long now, duration, period, max_period = 0; 627 unsigned long long now, duration, period, max_period = 0;
@@ -753,7 +753,7 @@ static void ghes_proc_in_irq(struct irq_work *irq_work)
753 struct llist_node *llnode, *next; 753 struct llist_node *llnode, *next;
754 struct ghes_estatus_node *estatus_node; 754 struct ghes_estatus_node *estatus_node;
755 struct acpi_hest_generic *generic; 755 struct acpi_hest_generic *generic;
756 struct acpi_generic_status *estatus; 756 struct acpi_hest_generic_status *estatus;
757 u32 len, node_len; 757 u32 len, node_len;
758 758
759 llnode = llist_del_all(&ghes_estatus_llist); 759 llnode = llist_del_all(&ghes_estatus_llist);
@@ -786,7 +786,7 @@ static void ghes_print_queued_estatus(void)
786 struct llist_node *llnode; 786 struct llist_node *llnode;
787 struct ghes_estatus_node *estatus_node; 787 struct ghes_estatus_node *estatus_node;
788 struct acpi_hest_generic *generic; 788 struct acpi_hest_generic *generic;
789 struct acpi_generic_status *estatus; 789 struct acpi_hest_generic_status *estatus;
790 u32 len, node_len; 790 u32 len, node_len;
791 791
792 llnode = llist_del_all(&ghes_estatus_llist); 792 llnode = llist_del_all(&ghes_estatus_llist);
@@ -845,7 +845,7 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs)
845#ifdef CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG 845#ifdef CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG
846 u32 len, node_len; 846 u32 len, node_len;
847 struct ghes_estatus_node *estatus_node; 847 struct ghes_estatus_node *estatus_node;
848 struct acpi_generic_status *estatus; 848 struct acpi_hest_generic_status *estatus;
849#endif 849#endif
850 if (!(ghes->flags & GHES_TO_CLEAR)) 850 if (!(ghes->flags & GHES_TO_CLEAR))
851 continue; 851 continue;
@@ -925,7 +925,7 @@ static int ghes_probe(struct platform_device *ghes_dev)
925 925
926 rc = -EIO; 926 rc = -EIO;
927 if (generic->error_block_length < 927 if (generic->error_block_length <
928 sizeof(struct acpi_generic_status)) { 928 sizeof(struct acpi_hest_generic_status)) {
929 pr_warning(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n", 929 pr_warning(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n",
930 generic->error_block_length, 930 generic->error_block_length,
931 generic->header.source_id); 931 generic->header.source_id);
diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
index 1491dd4f08f9..65f2f3fdde24 100644
--- a/drivers/firmware/efi/cper.c
+++ b/drivers/firmware/efi/cper.c
@@ -262,7 +262,7 @@ static const char *cper_pcie_port_type_strs[] = {
262}; 262};
263 263
264static void cper_print_pcie(const char *pfx, const struct cper_sec_pcie *pcie, 264static void cper_print_pcie(const char *pfx, const struct cper_sec_pcie *pcie,
265 const struct acpi_generic_data *gdata) 265 const struct acpi_hest_generic_data *gdata)
266{ 266{
267 if (pcie->validation_bits & CPER_PCIE_VALID_PORT_TYPE) 267 if (pcie->validation_bits & CPER_PCIE_VALID_PORT_TYPE)
268 printk("%s""port_type: %d, %s\n", pfx, pcie->port_type, 268 printk("%s""port_type: %d, %s\n", pfx, pcie->port_type,
@@ -298,7 +298,7 @@ static void cper_print_pcie(const char *pfx, const struct cper_sec_pcie *pcie,
298} 298}
299 299
300static void cper_estatus_print_section( 300static void cper_estatus_print_section(
301 const char *pfx, const struct acpi_generic_data *gdata, int sec_no) 301 const char *pfx, const struct acpi_hest_generic_data *gdata, int sec_no)
302{ 302{
303 uuid_le *sec_type = (uuid_le *)gdata->section_type; 303 uuid_le *sec_type = (uuid_le *)gdata->section_type;
304 __u16 severity; 304 __u16 severity;
@@ -344,9 +344,9 @@ err_section_too_small:
344} 344}
345 345
346void cper_estatus_print(const char *pfx, 346void cper_estatus_print(const char *pfx,
347 const struct acpi_generic_status *estatus) 347 const struct acpi_hest_generic_status *estatus)
348{ 348{
349 struct acpi_generic_data *gdata; 349 struct acpi_hest_generic_data *gdata;
350 unsigned int data_len, gedata_len; 350 unsigned int data_len, gedata_len;
351 int sec_no = 0; 351 int sec_no = 0;
352 char newpfx[64]; 352 char newpfx[64];
@@ -359,7 +359,7 @@ void cper_estatus_print(const char *pfx,
359 "and requires no further action"); 359 "and requires no further action");
360 printk("%s""event severity: %s\n", pfx, cper_severity_str(severity)); 360 printk("%s""event severity: %s\n", pfx, cper_severity_str(severity));
361 data_len = estatus->data_length; 361 data_len = estatus->data_length;
362 gdata = (struct acpi_generic_data *)(estatus + 1); 362 gdata = (struct acpi_hest_generic_data *)(estatus + 1);
363 snprintf(newpfx, sizeof(newpfx), "%s%s", pfx, INDENT_SP); 363 snprintf(newpfx, sizeof(newpfx), "%s%s", pfx, INDENT_SP);
364 while (data_len >= sizeof(*gdata)) { 364 while (data_len >= sizeof(*gdata)) {
365 gedata_len = gdata->error_data_length; 365 gedata_len = gdata->error_data_length;
@@ -371,10 +371,10 @@ void cper_estatus_print(const char *pfx,
371} 371}
372EXPORT_SYMBOL_GPL(cper_estatus_print); 372EXPORT_SYMBOL_GPL(cper_estatus_print);
373 373
374int cper_estatus_check_header(const struct acpi_generic_status *estatus) 374int cper_estatus_check_header(const struct acpi_hest_generic_status *estatus)
375{ 375{
376 if (estatus->data_length && 376 if (estatus->data_length &&
377 estatus->data_length < sizeof(struct acpi_generic_data)) 377 estatus->data_length < sizeof(struct acpi_hest_generic_data))
378 return -EINVAL; 378 return -EINVAL;
379 if (estatus->raw_data_length && 379 if (estatus->raw_data_length &&
380 estatus->raw_data_offset < sizeof(*estatus) + estatus->data_length) 380 estatus->raw_data_offset < sizeof(*estatus) + estatus->data_length)
@@ -384,9 +384,9 @@ int cper_estatus_check_header(const struct acpi_generic_status *estatus)
384} 384}
385EXPORT_SYMBOL_GPL(cper_estatus_check_header); 385EXPORT_SYMBOL_GPL(cper_estatus_check_header);
386 386
387int cper_estatus_check(const struct acpi_generic_status *estatus) 387int cper_estatus_check(const struct acpi_hest_generic_status *estatus)
388{ 388{
389 struct acpi_generic_data *gdata; 389 struct acpi_hest_generic_data *gdata;
390 unsigned int data_len, gedata_len; 390 unsigned int data_len, gedata_len;
391 int rc; 391 int rc;
392 392
@@ -394,7 +394,7 @@ int cper_estatus_check(const struct acpi_generic_status *estatus)
394 if (rc) 394 if (rc)
395 return rc; 395 return rc;
396 data_len = estatus->data_length; 396 data_len = estatus->data_length;
397 gdata = (struct acpi_generic_data *)(estatus + 1); 397 gdata = (struct acpi_hest_generic_data *)(estatus + 1);
398 while (data_len >= sizeof(*gdata)) { 398 while (data_len >= sizeof(*gdata)) {
399 gedata_len = gdata->error_data_length; 399 gedata_len = gdata->error_data_length;
400 if (gedata_len > data_len - sizeof(*gdata)) 400 if (gedata_len > data_len - sizeof(*gdata))
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h
index 4ad7da805180..9613e8e97960 100644
--- a/include/acpi/actbl1.h
+++ b/include/acpi/actbl1.h
@@ -604,7 +604,7 @@ struct acpi_hest_generic {
604 604
605/* Generic Error Status block */ 605/* Generic Error Status block */
606 606
607struct acpi_generic_status { 607struct acpi_hest_generic_status {
608 u32 block_status; 608 u32 block_status;
609 u32 raw_data_offset; 609 u32 raw_data_offset;
610 u32 raw_data_length; 610 u32 raw_data_length;
@@ -614,15 +614,15 @@ struct acpi_generic_status {
614 614
615/* Values for block_status flags above */ 615/* Values for block_status flags above */
616 616
617#define ACPI_GEN_ERR_UC BIT(0) 617#define ACPI_HEST_UNCORRECTABLE (1)
618#define ACPI_GEN_ERR_CE BIT(1) 618#define ACPI_HEST_CORRECTABLE (1<<1)
619#define ACPI_GEN_ERR_MULTI_UC BIT(2) 619#define ACPI_HEST_MULTIPLE_UNCORRECTABLE (1<<2)
620#define ACPI_GEN_ERR_MULTI_CE BIT(3) 620#define ACPI_HEST_MULTIPLE_CORRECTABLE (1<<3)
621#define ACPI_GEN_ERR_COUNT_SHIFT (0xFF<<4) /* 8 bits, error count */ 621#define ACPI_HEST_ERROR_ENTRY_COUNT (0xFF<<4) /* 8 bits, error count */
622 622
623/* Generic Error Data entry */ 623/* Generic Error Data entry */
624 624
625struct acpi_generic_data { 625struct acpi_hest_generic_data {
626 u8 section_type[16]; 626 u8 section_type[16];
627 u32 error_severity; 627 u32 error_severity;
628 u16 revision; 628 u16 revision;
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h
index dfd60d0bfd27..720446cb243e 100644
--- a/include/acpi/ghes.h
+++ b/include/acpi/ghes.h
@@ -14,7 +14,7 @@
14 14
15struct ghes { 15struct ghes {
16 struct acpi_hest_generic *generic; 16 struct acpi_hest_generic *generic;
17 struct acpi_generic_status *estatus; 17 struct acpi_hest_generic_status *estatus;
18 u64 buffer_paddr; 18 u64 buffer_paddr;
19 unsigned long flags; 19 unsigned long flags;
20 union { 20 union {