To prepare for the following patches and make related
definition more clear, update some definitions about CPER.

v2 -> v1: Update some more definitions suggested by Boris

Signed-off-by: Chen, Gong <gong.c...@linux.intel.com>
---
 drivers/acpi/apei/apei-internal.h | 12 ++++----
 drivers/acpi/apei/cper.c          | 58 +++++++++++++++++++--------------------
 drivers/acpi/apei/ghes.c          | 54 ++++++++++++++++++------------------
 include/acpi/actbl1.h             | 14 +++++-----
 include/acpi/ghes.h               |  2 +-
 include/linux/cper.h              |  2 +-
 6 files changed, 71 insertions(+), 71 deletions(-)

diff --git a/drivers/acpi/apei/apei-internal.h 
b/drivers/acpi/apei/apei-internal.h
index f220d64..21ba34a 100644
--- a/drivers/acpi/apei/apei-internal.h
+++ b/drivers/acpi/apei/apei-internal.h
@@ -122,11 +122,11 @@ struct dentry;
 struct dentry *apei_get_debugfs_dir(void);
 
 #define apei_estatus_for_each_section(estatus, section)                        
\
-       for (section = (struct acpi_hest_generic_data *)(estatus + 1);  \
+       for (section = (struct acpi_generic_data *)(estatus + 1);       \
             (void *)section - (void *)estatus < estatus->data_length;  \
             section = (void *)(section+1) + section->error_data_length)
 
-static inline u32 apei_estatus_len(struct acpi_hest_generic_status *estatus)
+static inline u32 cper_estatus_len(struct acpi_generic_status *estatus)
 {
        if (estatus->raw_data_length)
                return estatus->raw_data_offset + \
@@ -135,10 +135,10 @@ static inline u32 apei_estatus_len(struct 
acpi_hest_generic_status *estatus)
                return sizeof(*estatus) + estatus->data_length;
 }
 
-void apei_estatus_print(const char *pfx,
-                       const struct acpi_hest_generic_status *estatus);
-int apei_estatus_check_header(const struct acpi_hest_generic_status *estatus);
-int apei_estatus_check(const struct acpi_hest_generic_status *estatus);
+void cper_estatus_print(const char *pfx,
+                       const struct acpi_generic_status *estatus);
+int cper_estatus_check_header(const struct acpi_generic_status *estatus);
+int cper_estatus_check(const struct acpi_generic_status *estatus);
 
 int apei_osc_setup(void);
 #endif
diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
index f827f02..eb5f6d6 100644
--- a/drivers/acpi/apei/cper.c
+++ b/drivers/acpi/apei/cper.c
@@ -5,7 +5,7 @@
  *     Author: Huang Ying <ying.hu...@intel.com>
  *
  * CPER is the format used to describe platform hardware error by
- * various APEI tables, such as ERST, BERT and HEST etc.
+ * various tables, such as ERST, BERT and HEST etc.
  *
  * For more information about CPER, please refer to Appendix N of UEFI
  * Specification version 2.3.
@@ -73,7 +73,7 @@ static const char *cper_severity_str(unsigned int severity)
  * printed, with @pfx is printed at the beginning of each line.
  */
 void cper_print_bits(const char *pfx, unsigned int bits,
-                    const char *strs[], unsigned int strs_size)
+                    const char * const strs[], unsigned int strs_size)
 {
        int i, len = 0;
        const char *str;
@@ -98,32 +98,32 @@ void cper_print_bits(const char *pfx, unsigned int bits,
                printk("%s\n", buf);
 }
 
-static const char *cper_proc_type_strs[] = {
+static const char * const cper_proc_type_strs[] = {
        "IA32/X64",
        "IA64",
 };
 
-static const char *cper_proc_isa_strs[] = {
+static const char * const cper_proc_isa_strs[] = {
        "IA32",
        "IA64",
        "X64",
 };
 
-static const char *cper_proc_error_type_strs[] = {
+static const char * const cper_proc_error_type_strs[] = {
        "cache error",
        "TLB error",
        "bus error",
        "micro-architectural error",
 };
 
-static const char *cper_proc_op_strs[] = {
+static const char * const cper_proc_op_strs[] = {
        "unknown or generic",
        "data read",
        "data write",
        "instruction execution",
 };
 
-static const char *cper_proc_flag_strs[] = {
+static const char * const cper_proc_flag_strs[] = {
        "restartable",
        "precise IP",
        "overflow",
@@ -248,7 +248,7 @@ static const char *cper_pcie_port_type_strs[] = {
 };
 
 static void cper_print_pcie(const char *pfx, const struct cper_sec_pcie *pcie,
-                           const struct acpi_hest_generic_data *gdata)
+                           const struct acpi_generic_data *gdata)
 {
        if (pcie->validation_bits & CPER_PCIE_VALID_PORT_TYPE)
                printk("%s""port_type: %d, %s\n", pfx, pcie->port_type,
@@ -283,17 +283,17 @@ static void cper_print_pcie(const char *pfx, const struct 
cper_sec_pcie *pcie,
        pfx, pcie->bridge.secondary_status, pcie->bridge.control);
 }
 
-static const char *apei_estatus_section_flag_strs[] = {
+static const char * const cper_estatus_section_flag_strs[] = {
        "primary",
        "containment warning",
        "reset",
-       "threshold exceeded",
+       "error threshold exceeded",
        "resource not accessible",
        "latent error",
 };
 
-static void apei_estatus_print_section(
-       const char *pfx, const struct acpi_hest_generic_data *gdata, int sec_no)
+static void cper_estatus_print_section(
+       const char *pfx, const struct acpi_generic_data *gdata, int sec_no)
 {
        uuid_le *sec_type = (uuid_le *)gdata->section_type;
        __u16 severity;
@@ -302,8 +302,8 @@ static void apei_estatus_print_section(
        printk("%s""section: %d, severity: %d, %s\n", pfx, sec_no, severity,
               cper_severity_str(severity));
        printk("%s""flags: 0x%02x\n", pfx, gdata->flags);
-       cper_print_bits(pfx, gdata->flags, apei_estatus_section_flag_strs,
-                       ARRAY_SIZE(apei_estatus_section_flag_strs));
+       cper_print_bits(pfx, gdata->flags, cper_estatus_section_flag_strs,
+                       ARRAY_SIZE(cper_estatus_section_flag_strs));
        if (gdata->validation_bits & CPER_SEC_VALID_FRU_ID)
                printk("%s""fru_id: %pUl\n", pfx, (uuid_le *)gdata->fru_id);
        if (gdata->validation_bits & CPER_SEC_VALID_FRU_TEXT)
@@ -339,34 +339,34 @@ err_section_too_small:
        pr_err(FW_WARN "error section length is too small\n");
 }
 
-void apei_estatus_print(const char *pfx,
-                       const struct acpi_hest_generic_status *estatus)
+void cper_estatus_print(const char *pfx,
+                       const struct acpi_generic_status *estatus)
 {
-       struct acpi_hest_generic_data *gdata;
+       struct acpi_generic_data *gdata;
        unsigned int data_len, gedata_len;
        int sec_no = 0;
        __u16 severity;
 
-       printk("%s""APEI generic hardware error status\n", pfx);
+       printk("%s""Generic Hardware Error Status\n", pfx);
        severity = estatus->error_severity;
        printk("%s""severity: %d, %s\n", pfx, severity,
               cper_severity_str(severity));
        data_len = estatus->data_length;
-       gdata = (struct acpi_hest_generic_data *)(estatus + 1);
+       gdata = (struct acpi_generic_data *)(estatus + 1);
        while (data_len >= sizeof(*gdata)) {
                gedata_len = gdata->error_data_length;
-               apei_estatus_print_section(pfx, gdata, sec_no);
+               cper_estatus_print_section(pfx, gdata, sec_no);
                data_len -= gedata_len + sizeof(*gdata);
                gdata = (void *)(gdata + 1) + gedata_len;
                sec_no++;
        }
 }
-EXPORT_SYMBOL_GPL(apei_estatus_print);
+EXPORT_SYMBOL_GPL(cper_estatus_print);
 
-int apei_estatus_check_header(const struct acpi_hest_generic_status *estatus)
+int cper_estatus_check_header(const struct acpi_generic_status *estatus)
 {
        if (estatus->data_length &&
-           estatus->data_length < sizeof(struct acpi_hest_generic_data))
+           estatus->data_length < sizeof(struct acpi_generic_data))
                return -EINVAL;
        if (estatus->raw_data_length &&
            estatus->raw_data_offset < sizeof(*estatus) + estatus->data_length)
@@ -374,19 +374,19 @@ int apei_estatus_check_header(const struct 
acpi_hest_generic_status *estatus)
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(apei_estatus_check_header);
+EXPORT_SYMBOL_GPL(cper_estatus_check_header);
 
-int apei_estatus_check(const struct acpi_hest_generic_status *estatus)
+int cper_estatus_check(const struct acpi_generic_status *estatus)
 {
-       struct acpi_hest_generic_data *gdata;
+       struct acpi_generic_data *gdata;
        unsigned int data_len, gedata_len;
        int rc;
 
-       rc = apei_estatus_check_header(estatus);
+       rc = cper_estatus_check_header(estatus);
        if (rc)
                return rc;
        data_len = estatus->data_length;
-       gdata = (struct acpi_hest_generic_data *)(estatus + 1);
+       gdata = (struct acpi_generic_data *)(estatus + 1);
        while (data_len >= sizeof(*gdata)) {
                gedata_len = gdata->error_data_length;
                if (gedata_len > data_len - sizeof(*gdata))
@@ -399,4 +399,4 @@ int apei_estatus_check(const struct 
acpi_hest_generic_status *estatus)
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(apei_estatus_check);
+EXPORT_SYMBOL_GPL(cper_estatus_check);
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index 8ec37bb..0db6e4f 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -75,13 +75,13 @@
 #define GHES_ESTATUS_CACHE_LEN(estatus_len)                    \
        (sizeof(struct ghes_estatus_cache) + (estatus_len))
 #define GHES_ESTATUS_FROM_CACHE(estatus_cache)                 \
-       ((struct acpi_hest_generic_status *)                    \
+       ((struct acpi_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_hest_generic_status *)                            \
+#define GHES_ESTATUS_FROM_NODE(estatus_node)                   \
+       ((struct acpi_generic_status *)                         \
         ((struct ghes_estatus_node *)(estatus_node) + 1))
 
 bool ghes_disable;
@@ -378,17 +378,17 @@ static int ghes_read_estatus(struct ghes *ghes, int 
silent)
        ghes->flags |= GHES_TO_CLEAR;
 
        rc = -EIO;
-       len = apei_estatus_len(ghes->estatus);
+       len = cper_estatus_len(ghes->estatus);
        if (len < sizeof(*ghes->estatus))
                goto err_read_block;
        if (len > ghes->generic->error_block_length)
                goto err_read_block;
-       if (apei_estatus_check_header(ghes->estatus))
+       if (cper_estatus_check_header(ghes->estatus))
                goto err_read_block;
        ghes_copy_tofrom_phys(ghes->estatus + 1,
                              buf_paddr + sizeof(*ghes->estatus),
                              len - sizeof(*ghes->estatus), 1);
-       if (apei_estatus_check(ghes->estatus))
+       if (cper_estatus_check(ghes->estatus))
                goto err_read_block;
        rc = 0;
 
@@ -409,7 +409,7 @@ static void ghes_clear_estatus(struct ghes *ghes)
        ghes->flags &= ~GHES_TO_CLEAR;
 }
 
-static void ghes_handle_memory_failure(struct acpi_hest_generic_data *gdata, 
int sev)
+static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int 
sev)
 {
 #ifdef CONFIG_ACPI_APEI_MEMORY_FAILURE
        unsigned long pfn;
@@ -438,10 +438,10 @@ static void ghes_handle_memory_failure(struct 
acpi_hest_generic_data *gdata, int
 }
 
 static void ghes_do_proc(struct ghes *ghes,
-                        const struct acpi_hest_generic_status *estatus)
+                        const struct acpi_generic_status *estatus)
 {
        int sev, sec_sev;
-       struct acpi_hest_generic_data *gdata;
+       struct acpi_generic_data *gdata;
 
        sev = ghes_severity(estatus->error_severity);
        apei_estatus_for_each_section(estatus, gdata) {
@@ -496,7 +496,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_hest_generic_status *estatus)
+                                const struct acpi_generic_status *estatus)
 {
        static atomic_t seqno;
        unsigned int curr_seqno;
@@ -513,12 +513,12 @@ static void __ghes_print_estatus(const char *pfx,
        snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}" HW_ERR, pfx, curr_seqno);
        printk("%s""Hardware error from APEI Generic Hardware Error Source: 
%d\n",
               pfx_seq, generic->header.source_id);
-       apei_estatus_print(pfx_seq, estatus);
+       cper_estatus_print(pfx_seq, estatus);
 }
 
 static int ghes_print_estatus(const char *pfx,
                              const struct acpi_hest_generic *generic,
-                             const struct acpi_hest_generic_status *estatus)
+                             const struct acpi_generic_status *estatus)
 {
        /* Not more than 2 messages every 5 seconds */
        static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2);
@@ -540,15 +540,15 @@ 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_hest_generic_status *estatus)
+static int ghes_estatus_cached(struct acpi_generic_status *estatus)
 {
        u32 len;
        int i, cached = 0;
        unsigned long long now;
        struct ghes_estatus_cache *cache;
-       struct acpi_hest_generic_status *cache_estatus;
+       struct acpi_generic_status *cache_estatus;
 
-       len = apei_estatus_len(estatus);
+       len = cper_estatus_len(estatus);
        rcu_read_lock();
        for (i = 0; i < GHES_ESTATUS_CACHES_SIZE; i++) {
                cache = rcu_dereference(ghes_estatus_caches[i]);
@@ -571,19 +571,19 @@ static int ghes_estatus_cached(struct 
acpi_hest_generic_status *estatus)
 
 static struct ghes_estatus_cache *ghes_estatus_cache_alloc(
        struct acpi_hest_generic *generic,
-       struct acpi_hest_generic_status *estatus)
+       struct acpi_generic_status *estatus)
 {
        int alloced;
        u32 len, cache_len;
        struct ghes_estatus_cache *cache;
-       struct acpi_hest_generic_status *cache_estatus;
+       struct acpi_generic_status *cache_estatus;
 
        alloced = atomic_add_return(1, &ghes_estatus_cache_alloced);
        if (alloced > GHES_ESTATUS_CACHE_ALLOCED_MAX) {
                atomic_dec(&ghes_estatus_cache_alloced);
                return NULL;
        }
-       len = apei_estatus_len(estatus);
+       len = cper_estatus_len(estatus);
        cache_len = GHES_ESTATUS_CACHE_LEN(len);
        cache = (void *)gen_pool_alloc(ghes_estatus_pool, cache_len);
        if (!cache) {
@@ -603,7 +603,7 @@ static void ghes_estatus_cache_free(struct 
ghes_estatus_cache *cache)
 {
        u32 len;
 
-       len = apei_estatus_len(GHES_ESTATUS_FROM_CACHE(cache));
+       len = cper_estatus_len(GHES_ESTATUS_FROM_CACHE(cache));
        len = GHES_ESTATUS_CACHE_LEN(len);
        gen_pool_free(ghes_estatus_pool, (unsigned long)cache, len);
        atomic_dec(&ghes_estatus_cache_alloced);
@@ -619,7 +619,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_hest_generic_status *estatus)
+       struct acpi_generic_status *estatus)
 {
        int i, slot = -1, count;
        unsigned long long now, duration, period, max_period = 0;
@@ -751,7 +751,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_hest_generic_status *estatus;
+       struct acpi_generic_status *estatus;
        u32 len, node_len;
 
        llnode = llist_del_all(&ghes_estatus_llist);
@@ -765,7 +765,7 @@ static void ghes_proc_in_irq(struct irq_work *irq_work)
                estatus_node = llist_entry(llnode, struct ghes_estatus_node,
                                           llnode);
                estatus = GHES_ESTATUS_FROM_NODE(estatus_node);
-               len = apei_estatus_len(estatus);
+               len = cper_estatus_len(estatus);
                node_len = GHES_ESTATUS_NODE_LEN(len);
                ghes_do_proc(estatus_node->ghes, estatus);
                if (!ghes_estatus_cached(estatus)) {
@@ -784,7 +784,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_hest_generic_status *estatus;
+       struct acpi_generic_status *estatus;
        u32 len, node_len;
 
        llnode = llist_del_all(&ghes_estatus_llist);
@@ -797,7 +797,7 @@ static void ghes_print_queued_estatus(void)
                estatus_node = llist_entry(llnode, struct ghes_estatus_node,
                                           llnode);
                estatus = GHES_ESTATUS_FROM_NODE(estatus_node);
-               len = apei_estatus_len(estatus);
+               len = cper_estatus_len(estatus);
                node_len = GHES_ESTATUS_NODE_LEN(len);
                generic = estatus_node->generic;
                ghes_print_estatus(NULL, generic, estatus);
@@ -843,7 +843,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_hest_generic_status *estatus;
+               struct acpi_generic_status *estatus;
 #endif
                if (!(ghes->flags & GHES_TO_CLEAR))
                        continue;
@@ -851,7 +851,7 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs 
*regs)
                if (ghes_estatus_cached(ghes->estatus))
                        goto next;
                /* Save estatus for further processing in IRQ context */
-               len = apei_estatus_len(ghes->estatus);
+               len = cper_estatus_len(ghes->estatus);
                node_len = GHES_ESTATUS_NODE_LEN(len);
                estatus_node = (void *)gen_pool_alloc(ghes_estatus_pool,
                                                      node_len);
@@ -923,7 +923,7 @@ static int ghes_probe(struct platform_device *ghes_dev)
 
        rc = -EIO;
        if (generic->error_block_length <
-           sizeof(struct acpi_hest_generic_status)) {
+           sizeof(struct acpi_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);
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h
index 0bd750e..556c83ee 100644
--- a/include/acpi/actbl1.h
+++ b/include/acpi/actbl1.h
@@ -596,7 +596,7 @@ struct acpi_hest_generic {
 
 /* Generic Error Status block */
 
-struct acpi_hest_generic_status {
+struct acpi_generic_status {
        u32 block_status;
        u32 raw_data_offset;
        u32 raw_data_length;
@@ -606,15 +606,15 @@ struct acpi_hest_generic_status {
 
 /* Values for block_status flags above */
 
-#define ACPI_HEST_UNCORRECTABLE             (1)
-#define ACPI_HEST_CORRECTABLE               (1<<1)
-#define ACPI_HEST_MULTIPLE_UNCORRECTABLE    (1<<2)
-#define ACPI_HEST_MULTIPLE_CORRECTABLE      (1<<3)
-#define ACPI_HEST_ERROR_ENTRY_COUNT         (0xFF<<4)  /* 8 bits, error count 
*/
+#define ACPI_GEN_ERR_UC                        BIT(0)
+#define ACPI_GEN_ERR_CE                        BIT(1)
+#define ACPI_GEN_ERR_MULTI_UC          BIT(2)
+#define ACPI_GEN_ERR_MULTI_CE          BIT(3)
+#define ACPI_GEN_ERR_COUNT_SHIFT       (0xFF<<4) /* 8 bits, error count */
 
 /* Generic Error Data entry */
 
-struct acpi_hest_generic_data {
+struct acpi_generic_data {
        u8 section_type[16];
        u32 error_severity;
        u16 revision;
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h
index 720446c..dfd60d0 100644
--- a/include/acpi/ghes.h
+++ b/include/acpi/ghes.h
@@ -14,7 +14,7 @@
 
 struct ghes {
        struct acpi_hest_generic *generic;
-       struct acpi_hest_generic_status *estatus;
+       struct acpi_generic_status *estatus;
        u64 buffer_paddr;
        unsigned long flags;
        union {
diff --git a/include/linux/cper.h b/include/linux/cper.h
index c230494..09ebe21 100644
--- a/include/linux/cper.h
+++ b/include/linux/cper.h
@@ -389,6 +389,6 @@ struct cper_sec_pcie {
 
 u64 cper_next_record_id(void);
 void cper_print_bits(const char *prefix, unsigned int bits,
-                    const char *strs[], unsigned int strs_size);
+                    const char * const strs[], unsigned int strs_size);
 
 #endif
-- 
1.8.4.rc3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to