lkml.org 
[lkml]   [2017]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] acpi: apei: fix the wrongly parse generic error status block
    From
    Date
    may be directly remove the macro apei_estatus_for_each_section is not better, if other place code also
    needs to iterate through the GHES estatus blocks, it will be repeated written again.


    On 2017/8/11 5:31, gengdongjiu wrote:
    > 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@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)
    >>> {
    >>

    \
     
     \ /
      Last update: 2017-08-10 23:38    [W:4.420 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site