lkml.org 
[lkml]   [2017]   [Aug]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 4/7] ghes_edac: avoid multiple calls to dmi_walk()
    Date
    ghes_edac_register() is called for each GHES platform device
    instantiated per a GHES entry in ACPI HEST table. dmi_walk()
    counts the number of DIMMs on the system, and there is no need
    to call it multiple times.

    Change ghes_edac_register() to call dmi_walk() only when
    'num_dimm' is uninitialized.

    Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
    Suggested-by: Borislav Petkov <bp@alien8.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    ---
    drivers/edac/ghes_edac.c | 9 ++++++---
    1 file changed, 6 insertions(+), 3 deletions(-)

    diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
    index 4e61a62..2e9ce9c 100644
    --- a/drivers/edac/ghes_edac.c
    +++ b/drivers/edac/ghes_edac.c
    @@ -407,15 +407,18 @@ EXPORT_SYMBOL_GPL(ghes_edac_report_mem_error);

    int ghes_edac_register(struct ghes *ghes, struct device *dev)
    {
    - bool fake = false;
    - int rc, num_dimm = 0;
    struct mem_ctl_info *mci;
    struct edac_mc_layer layers[1];
    struct ghes_edac_pvt *pvt;
    struct ghes_edac_dimm_fill dimm_fill;
    + int rc;
    +
    + static int num_dimm;
    + static bool fake;

    /* Get the number of DIMMs */
    - dmi_walk(ghes_edac_count_dimms, &num_dimm);
    + if (num_dimm == 0)
    + dmi_walk(ghes_edac_count_dimms, &num_dimm);

    /* Check if we've got a bogus BIOS */
    if (num_dimm == 0) {
    \
     
     \ /
      Last update: 2017-08-04 00:10    [W:4.196 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site