The revision 0x300 generic error data entry is different with the old
version. when ghes_do_proc traverses to get the data entry, it does not
consider this difference. so when error status block has revision 0x300
data entry, it will have issue.

Signed-off-by: Dongjiu Geng <gengdong...@huawei.com>
---
 drivers/acpi/apei/apei-internal.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/apei/apei-internal.h 
b/drivers/acpi/apei/apei-internal.h
index 6e9f14c0a71b..6491f1c4a96e 100644
--- a/drivers/acpi/apei/apei-internal.h
+++ b/drivers/acpi/apei/apei-internal.h
@@ -122,8 +122,8 @@ struct dentry *apei_get_debugfs_dir(void);
 
 #define apei_estatus_for_each_section(estatus, section)                        
\
        for (section = (struct acpi_hest_generic_data *)(estatus + 1);  \
-            (void *)section - (void *)estatus < estatus->data_length;  \
-            section = (void *)(section+1) + section->error_data_length)
+            (void *)section - (void *)(estatus + 1) < estatus->data_length; \
+            section = acpi_hest_get_next(section))
 
 static inline u32 cper_estatus_len(struct acpi_hest_generic_status *estatus)
 {
-- 
2.14.0

Reply via email to