24 Sep, 2009

5 commits

  • Module edac_core.ko uses call_rcu() callbacks in edac_device.c, edac_mc.c
    and edac_pci.c.

    They all use a wait_for_completion() scheme, but this scheme it not 100%
    safe on multiple CPUs. See the _rcu_barrier() implementation which
    explains why extra precausion is needed.

    The patch adds a comment about rcu_barrier() and as a precausion calls
    rcu_barrier(). A maintainer needs to look at removing the
    wait_for_completion code.

    [dougthompson@xmission.com: remove the wait_for_completion code]
    Signed-off-by Jesper Dangaard Brouer
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Dangaard Brouer
     
  • A driver for the Intel 3200 and 3210 memory controllers. It has only had
    light testing so far, and currently makes no attempt to decode error
    addresses at anything finer than csrow granularity.

    Signed-off-by: Jason Uhlenkott
    Signed-off-by: Doug Thompson
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Uhlenkott
     
  • Use the function resource_size, which reduces the chance of introducing
    off-by-one errors in calculating the resource size.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    struct resource *res;
    @@

    - (res->end - res->start) + 1
    + resource_size(res)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • Add support for the Freescale MPC83xx memory controller to the existing
    driver for the Freescale MPC85xx memory controller. The only difference
    between the two processors are in the CS_BNDS register parsing code, which
    has been changed so it will work on both processors.

    The L2 cache controller does not exist on the MPC83xx, but the OF
    subsystem will not use the driver if the device is not present in the OF
    device tree.

    I had to change the nr_pages calculation to make the math work out. I
    checked it on my board and did the math by hand for a 64GB 85xx using 64K
    pages. In both cases, nr_pages * PAGE_SIZE comes out to the correct
    value.

    Signed-off-by: Ira W. Snyder
    Signed-off-by: Doug Thompson
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ira W. Snyder
     
  • Based on Kumar's new compatible types patch, add P2020 into MPC85xx EDAC
    compatible lists so that EDAC can recognize P2020 meomry controller and L2
    cache controller and export the relevant fields to sysfs.

    EDAC MPC85xx DDR3 support is needed if DDR3 memory stick is installed on a
    P2020DS board so that EDAC core can recognize DDR3 memory type.

    Signed-off-by: Yang Shi
    Acked-by: Dave Jiang
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yang Shi
     

21 Sep, 2009

1 commit


16 Sep, 2009

5 commits

  • The old code was using smp_call_function_many which skips the current
    cpu if it is in the supplied cpumask. Switch to the rdmsr_on_cpus()
    interface which takes care of that.

    In addition, add get_cpus_on_this_dct_cpumask helper which computes a
    cpumask of all the cores on a node and thus on a DCT.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • Simplify the procedure by checking if there is any DIMM in each channel.
    This patch will fix the bugs such as when there is no DIMMs under
    certain node, two DIMMs in the same channel, and only one DIMM in each
    channel of the node.

    Borislav: minor fixups

    Signed-off-by: Wan Wei
    Signed-off-by: Borislav Petkov

    Wan Wei
     
  • Simplify code flow and make sure return value is always valid since
    further driver init depends on it. Carve out long warning string and
    make code more readable. Shorten some names, while at it.

    There should be no functional change resulting from this patch.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • Signed-off-by: Andreas Herrmann
    Signed-off-by: Borislav Petkov
    Acked-by: H. Peter Anvin

    Andreas Herrmann
     
  • -tip testing found the following build failure (config attached):

    drivers/built-in.o: In function `amd64_check':
    amd64_edac.c:(.text+0x3e9491): undefined reference to `amd_decode_nb_mce'
    drivers/built-in.o: In function `amd64_init_2nd_stage':
    amd64_edac.c:(.text+0x3e9b46): undefined reference to `amd_report_gart_errors'
    amd64_edac.c:(.text+0x3e9b55): undefined reference to `amd_register_ecc_decoder'
    drivers/built-in.o: In function `amd64_nbea_store':
    amd64_edac_dbg.c:(.text+0x3ea22e): undefined reference to `amd_decode_nb_mce'
    drivers/built-in.o: In function `amd64_remove_one_instance':
    amd64_edac.c:(.devexit.text+0x3eea): undefined reference to `amd_report_gart_errors'
    amd64_edac.c:(.devexit.text+0x3ef6): undefined reference to `amd_unregister_ecc_decoder'

    the AMD EDAC code has a dependency on CONFIG_CPU_SUP_AMD facilities. The
    patch below solves the problem here.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Borislav Petkov

    Ingo Molnar
     

15 Sep, 2009

14 commits


04 Aug, 2009

1 commit


03 Aug, 2009

1 commit

  • On the good path of BIOS enabled ECC and no override, the value returned
    is 1 by omission and thus is deemed failing by the probe-function.

    Allow proper module initialization by clearing the retval explicitly.

    Signed-off-by: Doug Thompson
    Signed-off-by: Borislav Petkov

    Doug Thompson
     

30 Jul, 2009

1 commit


27 Jul, 2009

1 commit


01 Jul, 2009

1 commit


26 Jun, 2009

3 commits


19 Jun, 2009

4 commits

  • Fix the meaning of EDAC(Error Detection And Correction) correctly.

    [akpm@linux-foundation.org: add missing space]
    Signed-off-by: GeunSik Lim
    Cc: Alan Cox
    Acked-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    GeunSik Lim
     
  • The remove function uses __devexit, so the .remove assignment needs
    __devexit_p() to fix a build error with hotplug disabled.

    Signed-off-by: Mike Frysinger
    Cc: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • Add edac_device_alloc_index(), because for MAPLE platform there may
    exist several EDAC driver modules that could make use of
    edac_device_ctl_info structure at the same time. The index allocation
    for these structures should be taken care of by EDAC core.

    [akpm@linux-foundation.org: cleanups]
    Signed-off-by: Harry Ciao
    Cc: Doug Thompson
    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Kumar Gala
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harry Ciao
     
  • Introduce IBM CPC925 EDAC driver, which makes use of ECC, CPU and
    HyperTransport Link error detections and corrections on the IBM
    CPC925 Bridge and Memory Controller.

    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Harry Ciao
    Cc: Doug Thompson
    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Kumar Gala
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harry Ciao
     

13 Jun, 2009

1 commit


10 Jun, 2009

2 commits