Hello, sorry, I do not see that. Just know I have reviewed your modification, may be my change can be simpleness and reserve the macro of apei_estatus_for_each_section can be used by other place to avoid duplicated code, such as prints the estatus blocks. On 2017/8/11 1:48, Baicar, Tyler wrote: > Hello, > > I have already posted a patch fixing this. Please see: > > https://lkml.org/lkml/2017/8/3/824 > > This makes the loop identical to the CPER code which prints the estatus blocks to the kernel logs. > > Thanks, > > Tyler > > > On 8/10/2017 12:06 PM, Dongjiu Geng wrote: >> 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 <gengdongjiu@xxxxxxxxxx> >> --- >> 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) >> { > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html