lkml.org 
[lkml]   [2014]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/7] apei, mce: Call MCE-specific code only for X86 architecture.
    On 05.05.2014 13:44, Borislav Petkov wrote:
    > On Wed, Apr 09, 2014 at 05:14:29PM +0200, Tomasz Nowicki wrote:
    >> This commit is dealing with MCE code in:
    >> - hest.c
    >> Move acpi_disable_cmcff flag to hest_parse_cmc() and makes
    >> that depend on CONFIG_X86_MCE so that we do not have to maintain
    >> acpi_disable_cmcff for architectures which do not support MCE.
    >> Also, wrap architectural MCE header inside #ifdef CONFIG_X86_MCE.
    >>
    >> - ghes.c
    >> Wrap architectural MCE header inside #ifdef CONFIG_X86_MCE similar to rest
    >> of the MCE code in this file.
    >>
    >> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
    >> ---
    >> drivers/acpi/apei/ghes.c | 2 ++
    >> drivers/acpi/apei/hest.c | 8 ++++++--
    >> 2 files changed, 8 insertions(+), 2 deletions(-)
    >>
    >> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
    >> index dab7cb7..f7edffc 100644
    >> --- a/drivers/acpi/apei/ghes.c
    >> +++ b/drivers/acpi/apei/ghes.c
    >> @@ -49,7 +49,9 @@
    >> #include <linux/aer.h>
    >>
    >> #include <acpi/ghes.h>
    >> +#ifdef CONFIG_X86_MCE
    >> #include <asm/mce.h>
    >> +#endif
    >> #include <asm/tlbflush.h>
    >> #include <asm/nmi.h>
    >>
    >> diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
    >> index f5e37f3..98db702 100644
    >> --- a/drivers/acpi/apei/hest.c
    >> +++ b/drivers/acpi/apei/hest.c
    >> @@ -36,7 +36,9 @@
    >> #include <linux/io.h>
    >> #include <linux/platform_device.h>
    >> #include <acpi/apei.h>
    >> +#ifdef CONFIG_X86_MCE
    >> #include <asm/mce.h>
    >> +#endif
    >
    > Actually, I would prefer if you wrapped all the arch-specific calls into
    > arch-specific functions, say, convert
    >
    > apei_mce_report_mem_error -> apei_arch_report_mem_error
    >
    > and have default empty functions for arches which don't use that
    > functionality.
    >
    > This way you can save yourself the ugly ifdeffery around the place.
    >
    True, this can be improved as you suggested.

    >>
    >> #include "apei-internal.h"
    >>
    >> @@ -133,6 +135,9 @@ static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data)
    >> struct acpi_hest_ia_corrected *cmc;
    >> struct acpi_hest_ia_error_bank *mc_bank;
    >>
    >> + if (acpi_disable_cmcff)
    >> + return 1;
    >
    > This could be
    >
    > if (arch_disable_cmcff())
    > return 1;
    >
    > with the default stub being
    >
    > static inline bool arch_disable_cmcff(void)
    > {
    > return false;
    > }
    >
    > and so on, like it is done in many other places in the kernel.

    acpi_disable_cmcff as global value can switch off/on MC entries
    analysing via kernel args. This glob value resides in x86 ACPI code and
    has meaning only for MCE related mechanism, that is why I have moved it
    under hest_parse_cmc.

    Thanks.

    Tomasz


    \
     
     \ /
      Last update: 2014-05-05 17:01    [W:3.509 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site