19 Apr, 2011

1 commit

  • The kernel already prints its build timestamp during boot, no need to
    repeat it in random drivers and produce different object files each
    time.

    Cc: Doug Thompson
    Cc: bluesmoke-devel@lists.sourceforge.net
    Cc: linux-edac@vger.kernel.org
    Acked-by: Mauro Carvalho Chehab
    Signed-off-by: Michal Marek

    Michal Marek
     

07 Jan, 2011

1 commit

  • Make the ->{get|set}_sdram_scrub_rate return the actual scrub rate
    bandwidth it succeeded setting and remove superfluous arg pointer used
    for that. A negative value returned still means that an error occurred
    while setting the scrubrate. Document this for future reference.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

03 Aug, 2010

1 commit

  • Fortify the interface to not accept negative values, remove
    memctrl_int_store() as a result. Also, sanitize bandwidth setting by
    making the argument a simple u32 instead of strange u32 pointer being
    passed around for no obvious reason. Then, fix error handling and teach
    it to return proper error values. Finally, make code more readable,
    simplify debug messages.

    Cc: Mauro Carvalho Chehab
    Cc: Arthur Jones
    Signed-off-by: Borislav Petkov
    Acked-by: Doug Thompson

    Borislav Petkov
     

30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

13 Mar, 2010

2 commits

  • Add support to scrub DRAM using the e752x integrated memory scrubbing
    engine. The e7320/7520/e7525 chipsets support scrubbing at one rate while
    the i3100 chipset supports a normal and fast rate.

    A similar patch was originally sent back in 2008:
    http://sourceforge.net/mailarchive/forum.php?thread_name=1204835866.25206.70.camel@localhost.localdomain&forum_name=bluesmoke-devel

    This version has the following updates:
    - Use 16-bit PCI config cycles to access MCHSCRB register
    e7320/7520/e7525 docs say register is 16bits wide, i3100 says 8. I
    tested 16bits on the i3100 to be safe.
    - Recalcuate and round actual scrub rates

    The changes have been tested on an i3100-based board.

    Signed-off-by: Peter Tyser
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Tyser
     
  • FSB parity is only supported on the Xeon processor. Previously it was
    incorrectly enabled for the Celeron as well.

    Signed-off-by: Konstantin Olifer
    Signed-off-by: Doug Thompson
    Cc: Peter Tyser
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Olifer
     

13 Jun, 2009

1 commit


26 Jul, 2008

1 commit

  • This module harvests more than just memory errors, it also harvests
    various bus and dma errors that the Chipset detects. Previously, it would
    report all such errors, which would cause output to be TOO loud.

    This patches therefore adds a parameter which is used to turn off
    NON-MEMORY error reports by default. Or the reporting can be enabled via
    the parameter

    Also did code style cleanup: less than 80 characters per line rule

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

    Doug Thompson
     

29 Apr, 2008

3 commits

  • I implemented opstate_init() as a inline function in linux/edac.h.

    added calling opstate_init() to:
    i82443bxgx_edac.c
    i82860_edac.c
    i82875p_edac.c
    i82975x_edac.c

    I wrote a fixed patch of
    edac-fix-module-initialization-on-several-modules.patch,
    and tested building 2.6.25-rc7 with applying this. It was succeed.
    I think the patch is now correct.

    Cc: Alan Cox
    Signed-off-by: Hitoshi Mitake
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hitoshi Mitake
     
  • Add a module parameter "sysbus_parity" to allow forcing system bus parity
    error checking on or off. Also add support to automatically disable system
    bus parity errors for processors which do not support it.

    If the sysbus_parity parameter is specified, sysbus parity detection will be
    forced on or off. If it is not specified, the driver will attempt to look at
    the CPU identifier string and determine if the CPU supports system bus parity.
    A blacklist was used instead of a whitelist so that system bus parity would
    be enabled by default and to minimize the chances of breaking things for those
    people already using the driver which for some reason have a processor that
    does not have a valid CPU identifier string.

    [akpm@linux-foundation.org: coding-style fixes]
    Cc: Alan Cox
    Signed-off-by: Peter Tyser
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Tyser
     
  • Add Intel 3100 chipset support to e752x EDAC driver.

    Cc: Alan Cox
    Signed-off-by: Andrei Konovalov
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrei Konovalov
     

12 Sep, 2007

1 commit


20 Jul, 2007

8 commits

  • Refactoring of sysfs code necessitated the refactoring of the edac_mc_alloc()
    and edac_mc_add_mc() apis, of moving the index value to the alloc() function.
    This patch alters the in tree drivers to utilize this new api signature.

    Having the index value performed later created a chicken-and-the-egg issue.
    Moving it to the alloc() function allows for creating the necessary sysfs
    entries with the proper index number

    Cc: Alan Cox alan@lxorguk.ukuu.org.uk
    Signed-off-by: Doug Thompson
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Doug Thompson
     
  • Found a 'reversal' decoding bug in the driver. This patch fixes that mapping
    to correctly display the CSROW entries in their proper order. Users will be
    enable to correctly identifiy the failing DIMM with this fix.

    [akpm@linux-foundation.org: unneeded (and undesirable) cast of void*]
    Cc: Alan Cox alan@lxorguk.ukuu.org.uk
    Signed-off-by: Mark Grondona
    Signed-off-by: Doug Thompson
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Grondona
     
  • This patch fixes some remnant spaces inserted by the use of Lindent.
    Seems Lindent adds some spaces when it shoulded. These have been fixed.
    In addition, goto targets have issues, these have been fixed
    in this patch.

    Signed-off-by: Douglas Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Douglas Thompson
     
  • Run e752x_edac.c file through Lindent for cleanup

    Signed-off-by: Dave Jiang
    Signed-off-by: Douglas Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     
  • Moving PCI to a per-instance device model

    This should include the correct sysfs setup as well. Please review.

    Signed-off-by: Dave Jiang
    Signed-off-by: Douglas Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     
  • Move dev_name() macro to a more generic interface since it's not possible
    to determine whether a device is pci, platform, or of_device easily.

    Now each low level driver sets the name into the control structure, and
    the EDAC core references the control structure for the information.

    Better abstraction.

    Signed-off-by: Dave Jiang
    Signed-off-by: Douglas Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     
  • In the refactoring of edac_mc.c into several subsystem files,
    the header file edac_mc.h became meaningless. A new header file
    edac_core.h was created. All the files that previously included
    "edac_mc.h" are changed to include "edac_core.h".

    Signed-off-by: Douglas Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Douglas Thompson
     
  • Provides a way for NMI reported errors on x86 to notify the EDAC
    subsystem pending ECC errors by writing to a software state variable.

    Here's the reworked patch. I added an EDAC stub to the kernel so we can
    have variables that are in the kernel even if EDAC is a module. I also
    implemented the idea of using the chip driver to select error detection
    mode via module parameter and eliminate the kernel compile option.
    Please review/test. Thx!

    Also, I only made changes to some of the chipset drivers since I am
    unfamiliar with the other ones. We can add similar changes as we go.

    Signed-off-by: Dave Jiang
    Signed-off-by: Douglas Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     

13 Feb, 2007

3 commits

  • This fix/change returns the offset into the page for the ce/ue error, instead
    of just 0. The e752x dram controller reads 34:6 of the linear address with
    the error.

    Signed-off-by: Mike Chan
    Signed-off-by: doug thompson
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Chan
     
  • The reading of the DRA registers should be a byte at a time (one register at a
    time) instead of 4 bytes at a time (four registers). Reading a dword at a
    time retrieves erroneous information from all but the first register. A
    change was made to read in each register in a loop prior to using the data in
    those registers.

    Signed-off-by: Brian Pomerantz
    Signed-off-by: Dave Jiang
    Signed-off-by: Doug Thompson
    Cc: Alan Cox
    Cc: Andi Kleen
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brian Pomerantz
     
  • The fatal vs. non-fatal mask for the sysbus FERR status is incorrect
    according to the E7520 datasheet. This patch corrects the mask to correctly
    handle fatal and non-fatal errors.

    Signed-off-by: Brian Pomerantz
    Signed-off-by: Dave Jiang
    Signed-off-by: Doug Thompson
    Cc: Alan Cox
    Cc: Andi Kleen
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brian Pomerantz
     

02 Jul, 2006

1 commit

  • Fix the quoted module name in the sysfs for EDAC modules and reported by several
    people.

    Instead of ../_edac_e752x_/ now the following will be presented, like other
    modules: ../edac_e752x/

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

    Doug Thompson
     

01 Jul, 2006

5 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:
    Remove obsolete #include
    remove obsolete swsusp_encrypt
    arch/arm26/Kconfig typos
    Documentation/IPMI typos
    Kconfig: Typos in net/sched/Kconfig
    v9fs: do not include linux/version.h
    Documentation/DocBook/mtdnand.tmpl: typo fixes
    typo fixes: specfic -> specific
    typo fixes in Documentation/networking/pktgen.txt
    typo fixes: occuring -> occurring
    typo fixes: infomation -> information
    typo fixes: disadvantadge -> disadvantage
    typo fixes: aquire -> acquire
    typo fixes: mecanism -> mechanism
    typo fixes: bandwith -> bandwidth
    fix a typo in the RTC_CLASS help text
    smb is no longer maintained

    Manually merged trivial conflict in arch/um/kernel/vmlinux.lds.S

    Linus Torvalds
     
  • - Add lower-level functions that handle various parts of the initialization
    done by the xxx_probe1() functions. Some of the xxx_probe1() functions are
    much too long and complicated (see "Chapter 5: Functions" in
    Documentation/CodingStyle).

    - Cleanup of probe1() functions in EDAC

    Signed-off-by: Doug Thompson
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Doug Thompson
     
  • Remove add_mc_to_global_list(). In next patch, this function will be
    reimplemented with different semantics.

    1 Reimplement add_mc_to_global_list() with semantics that allow the caller to
    determine the ID number for a mem_ctl_info structure. Then modify
    edac_mc_add_mc() so that the caller specifies the ID number for the new
    mem_ctl_info structure. Platform-specific code should be able to assign the
    ID numbers in a platform-specific manner. For instance, on Opteron it makes
    sense to have the ID of the mem_ctl_info structure match the ID of the node
    that the memory controller belongs to.

    2 Modify callers of edac_mc_add_mc() so they use the new semantics.

    Signed-off-by: Doug Thompson
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Doug Thompson
     
  • Change MC drivers from using CVS revision strings for their version number,
    Now each driver has its own local string.

    Remove some PCI dependencies from the core EDAC module. Made the code 'struct
    device' centric instead of 'struct pci_dev' Most of the code changes here are
    from a patch by Dave Jiang. It may be best to eventually move the
    PCI-specific code into a separate source file.

    Signed-off-by: Doug Thompson
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Doug Thompson
     
  • Signed-off-by: Jörn Engel
    Signed-off-by: Adrian Bunk

    Jörn Engel
     

04 May, 2006

1 commit

  • Address the issue of EDAC/BIOS coexistence for the e752x chip-sets.

    We have found a problem where the BIOS will start the system with the error
    registers (dev0:fun1) hidden and assuming it has exclusive access to them.
    The edac driver violates this assumption.

    The workaround this patch offers is to honor the hidden-ness as an
    indication that it is not safe to use those registers.

    Signed-off-by: Mark Gross
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    mark gross
     

27 Mar, 2006

7 commits

  • Patch from Dave Jiang : Fix EDAC e752x driver so it
    outputs sysbus-specific error message when sysbus error detected.

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     
  • Cosmetic indentation/formatting cleanup for EDAC code. Make sure we
    are using tabs rather than spaces to indent, etc.

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     
  • - Fix code so we always hold mem_ctls_mutex while we are stepping
    through the list of mem_ctl_info structures. Otherwise bad things
    may happen if one task is stepping through the list while another
    task is modifying it. We may eventually want to use reference
    counting to manage the mem_ctl_info structures. In the meantime we
    may as well fix this bug.

    - Don't disable interrupts while we are walking the list of
    mem_ctl_info structures in check_mc_devices(). This is unnecessary.

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     
  • Fix xxx_probe1() functions so they call xxx_get_error_info() functions
    to clear initial errors. This is simpler and cleaner than duplicating
    the low-level code for accessing PCI config space.

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     
  • - Add ctl_dev field to "struct e752x_dev_info". Then we can eliminate
    ugly switch statement from e752x_probe1().

    - Remove code from e752x_probe1() that clears initial PCI bus parity
    errors. The core EDAC module already does this.

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     
  • Perform the following name substitutions on all source files:

    sed 's/BS_MOD_STR/EDAC_MOD_STR/g'
    sed 's/bs_thread_info/edac_thread_info/g'
    sed 's/bs_thread/edac_thread/g'
    sed 's/bs_xstr/edac_xstr/g'
    sed 's/bs_str/edac_str/g'

    The names that start with BS_ or bs_ are artifacts of when the code
    was called "bluesmoke".

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     
  • This implements the following idea:

    On Monday 30 January 2006 19:22, Eric W. Biederman wrote:
    > One piece missing from this conversation is the issue that we need errors
    > in a uniform format. That is why edac_mc has helper functions.
    >
    > However there will always be errors that don't fit any particular model.
    > Could we add a edac_printk(dev, ); That is similar to dev_printk but
    > prints out an EDAC header and the device on which the error was found?
    > Letting the rest of the string be user specified.
    >
    > For actual control that interface may be to blunt, but at least for people
    > looking in the logs it allows all of the errors to be detected and
    > harvested.

    Signed-off-by: David S. Peterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Peterson
     

04 Feb, 2006

1 commit


19 Jan, 2006

2 commits

  • This is a subset of the bluesmoke project core code, stripped of the NMI work
    which isn't ready to merge and some of the "interesting" proc functionality
    that needs reworking or just has no place in kernel. It requires no core
    kernel changes except the added scrub functions already posted.

    The goal is to merge further functionality only after the core code is
    accepted and proven in the base kernel, and only at the point the upstream
    extras are really ready to merge.

    From: doug thompson

    This converts EDAC to sysfs and is the final chunk neccessary before EDAC
    has a stable user space API and can be considered for submission into the
    base kernel.

    Signed-off-by: Alan Cox
    Signed-off-by: Adrian Bunk
    Signed-off-by: Jesper Juhl
    Signed-off-by: doug thompson
    Signed-off-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox