02 Oct, 2010

1 commit

  • Array of udimm sysfs attributes was not ended with NULL marker, leading to
    dereference of random memory.

    EDAC DEBUG: edac_create_mci_instance_attributes: edac_create_mci_instance_attributes() file udimm0
    EDAC DEBUG: edac_create_mci_instance_attributes: edac_create_mci_instance_attributes() file udimm1
    EDAC DEBUG: edac_create_mci_instance_attributes: edac_create_mci_instance_attributes() file udimm2
    BUG: unable to handle kernel NULL pointer dereference at 00000000000001a4
    IP: [] edac_create_mci_instance_attributes+0x148/0x1f1
    Pid: 1, comm: swapper Not tainted 2.6.36-rc3-nv+ #483 P6T SE/System Product Name
    RIP: 0010:[] [] edac_create_mci_instance_attributes+0x148/0x1f1
    (...)
    Call Trace:
    [] edac_create_mci_instance_attributes+0x198/0x1f1
    [] edac_create_sysfs_mci_device+0xbb/0x2b2
    [] edac_mc_add_mc+0x46b/0x557
    [] i7core_probe+0xccf/0xec0
    RIP [] edac_create_mci_instance_attributes+0x148/0x1f1
    ---[ end trace 20de320855b81d78 ]---
    Kernel panic - not syncing: Attempted to kill init!

    Signed-off-by: Marcin Slusarz
    Cc: Mauro Carvalho Chehab
    Acked-by: Doug Thompson
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcin Slusarz
     

27 Sep, 2010

1 commit

  • f4347553b30ec66530bfe63c84530afea3803396 removed the edac polling
    mechanism in favor of using a notifier chain for conveying MCE
    information to edac. However, the module removal path didn't test
    whether the driver had setup the polling function workqueue at all and
    the rmmod process was hanging in the kernel at try_to_del_timer_sync()
    in the cancel_delayed_work() path, trying to cancel an uninitialized
    work struct.

    Fix that by adding a balancing check to the workqueue removal path.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

26 Aug, 2010

1 commit

  • When the Overflow MCi_STATUS bit is set, EDAC reports the lost error
    with a "no information available" message which often puzzles users
    parsing the dmesg. This doesn't make much sense since this error has
    been lost anyway so no need for reporting it separately. Thus, report
    the overflow bit setting in the MCE dump instead. While at it, remove
    reporting of MiscV and ErrorEnable (en) which are superfluous.

    Now it looks like this:

    [ 1501.650024] MC4_STATUS: Corrected error, other errors lost: yes, CPU context corrupt: no, CECC Error
    [ 1501.666887] Northbridge Error, node 2

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

25 Aug, 2010

1 commit


13 Aug, 2010

1 commit


11 Aug, 2010

4 commits


06 Aug, 2010

1 commit

  • of_device is just an alias for platform_device, so remove it entirely. Also
    replace to_of_device() with to_platform_device() and update comment blocks.

    This patch was initially generated from the following semantic patch, and then
    edited by hand to pick up the bits that coccinelle didn't catch.

    @@
    @@
    -struct of_device
    +struct platform_device

    Signed-off-by: Grant Likely
    Reviewed-by: David S. Miller

    Grant Likely
     

04 Aug, 2010

2 commits


03 Aug, 2010

7 commits


28 Jul, 2010

1 commit

  • The MPC85xx EDAC driver is missing module device aliases, so the driver
    won't load automatically on boot. This patch fixes the issue by adding
    proper MODULE_DEVICE_TABLE() macros.

    Signed-off-by: Anton Vorontsov
    Cc: Doug Thompson
    Cc: Peter Tyser
    Cc: Dave Jiang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     

26 Jul, 2010

1 commit


21 Jul, 2010

2 commits

  • Simply add a proper ID into the device table.

    Signed-off-by: Anton Vorontsov
    Cc: Doug Thompson
    Cc: Peter Tyser
    Cc: Dave Jiang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     
  • Since commit 5753c082f66eca5be81f6bda85c1718c5eea6ada ("powerpc/85xx:
    Kconfig cleanup"), there is no MPC85xx Kconfig symbol anymore, so the
    driver became non-selectable.

    This patch fixes the issue by switching to PPC_85xx symbol.

    Signed-off-by: Anton Vorontsov
    Cc: Doug Thompson
    Cc: Peter Tyser
    Cc: Dave Jiang
    Cc: Kumar Gala
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     

05 Jul, 2010

1 commit


03 Jul, 2010

2 commits

  • As Nehalem/Nehalem-EP/Westmere devices uses several devices for the same
    functionality (memory controller), the default way of proping devices doesn't
    work. So, instead of a per-device probe, all devices should be probed at once.

    This means that we should block any new attempt of probe, otherwise, it will
    try to register the same device several times.

    Acked-by: Doug Thompson
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • On Nehalem/Nehalem-EP/Westmere, the first QPI device is the last PCI bus.
    The last bus is generally at 0x3f or 0xff, but there are also other systems
    using different setups. For example, HP Z800 has 0x7f as the last bus.

    This patch adds a logic to discover the last bus, dynamically detecting it
    at runtime.

    Acked-by: Doug Thompson
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

02 Jul, 2010

1 commit

  • When calculating the DCT channel from the syndrome we need to know the
    syndrome type (x4 vs x8). On F10h, this is read out from extended PCI
    cfg space register F3x180 while on K8 we only support x4 syndromes and
    don't have extended PCI config space anyway.

    Make the code accessing F3x180 F10h only and fall back to x4 syndromes
    on everything else.

    Cc: # .33.x .34.x
    Reported-by: Jeffrey Merkey
    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

05 Jun, 2010

1 commit

  • * 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core: (83 commits)
    i7core_edac: Better describe the supported devices
    Add support for Westmere to i7core_edac driver
    i7core_edac: don't free on success
    i7core_edac: Add support for X5670
    Always call i7core_[ur]dimm_check_mc_ecc_err
    i7core_edac: fix memory leak of i7core_dev
    EDAC: add __init to i7core_xeon_pci_fixup
    i7core_edac: Fix wrong device id for channel 1 devices
    i7core: add support for Lynnfield alternate address
    i7core_edac: Add initial support for Lynnfield
    i7core_edac: do not export static functions
    edac: fix i7core build
    edac: i7core_edac produces undefined behaviour on 32bit
    i7core_edac: Use a more generic approach for probing PCI devices
    i7core_edac: PCI device is called NONCORE, instead of NOCORE
    i7core_edac: Fix ringbuffer maxsize
    i7core_edac: First store, then increment
    i7core_edac: Better parse "any" addrmask
    i7core_edac: Use a lockless ringbuffer
    edac: Create an unique instance for each kobj
    ...

    Linus Torvalds
     

03 Jun, 2010

1 commit


28 May, 2010

1 commit


22 May, 2010

2 commits

  • Merging in current state of Linus' tree to deal with merge conflicts and
    build failures in vio.c after merge.

    Conflicts:
    drivers/i2c/busses/i2c-cpm.c
    drivers/i2c/busses/i2c-mpc.c
    drivers/net/gianfar.c

    Also fixed up one line in arch/powerpc/kernel/vio.c to use the
    correct node pointer.

    Signed-off-by: Grant Likely

    Grant Likely
     
  • .name, .match_table and .owner are duplicated in both of_platform_driver
    and device_driver. This patch is a removes the extra copies from struct
    of_platform_driver and converts all users to the device_driver members.

    This patch is a pretty mechanical change. The usage model doesn't change
    and if any drivers have been missed, or if anything has been fixed up
    incorrectly, then it will fail with a compile time error, and the fixup
    will be trivial. This patch looks big and scary because it touches so
    many files, but it should be pretty safe.

    Signed-off-by: Grant Likely
    Acked-by: Sean MacLennan

    Grant Likely
     

19 May, 2010

5 commits

  • Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • This adds new PCI IDs for the Westmere's memory controller
    devices and modifies the i7core_edac driver to be able to
    probe both Nehalem and Westmere processors.

    Signed-off-by: Vernon Mauery
    Signed-off-by: Mauro Carvalho Chehab

    Vernon Mauery
     
  • This fixes all occurrences of pci_enable_device and pci_disable_device
    in all comments. There are no code changes involved.

    Signed-off-by: Roman Fietze
    Signed-off-by: Jesse Barnes

    Roman Fietze
     
  • Signed-off-by: Tony Luck
    Signed-off-by: Mauro Carvalho Chehab

    Tony Luck
     
  • As reported by Vernon Mauery , X5670 (Westmere-EP) uses a
    different register for one of the uncore PCI devices. Add support for
    it.

    Those are the PCI ID's on this new chipset:

    fe:00.0 0600: 8086:2c70 (rev 02)
    fe:00.1 0600: 8086:2d81 (rev 02)
    fe:02.0 0600: 8086:2d90 (rev 02)
    fe:02.1 0600: 8086:2d91 (rev 02)
    fe:02.2 0600: 8086:2d92 (rev 02)
    fe:02.3 0600: 8086:2d93 (rev 02)
    fe:02.4 0600: 8086:2d94 (rev 02)
    fe:02.5 0600: 8086:2d95 (rev 02)
    fe:03.0 0600: 8086:2d98 (rev 02)
    fe:03.1 0600: 8086:2d99 (rev 02)
    fe:03.2 0600: 8086:2d9a (rev 02)
    fe:03.4 0600: 8086:2d9c (rev 02)
    fe:04.0 0600: 8086:2da0 (rev 02)
    fe:04.1 0600: 8086:2da1 (rev 02)
    fe:04.2 0600: 8086:2da2 (rev 02)
    fe:04.3 0600: 8086:2da3 (rev 02)
    fe:05.0 0600: 8086:2da8 (rev 02)
    fe:05.1 0600: 8086:2da9 (rev 02)
    fe:05.2 0600: 8086:2daa (rev 02)
    fe:05.3 0600: 8086:2dab (rev 02)
    fe:06.0 0600: 8086:2db0 (rev 02)
    fe:06.1 0600: 8086:2db1 (rev 02)
    fe:06.2 0600: 8086:2db2 (rev 02)
    fe:06.3 0600: 8086:2db3 (rev 02)
    (as usual, the same PCI devices repeat at ff: bus)

    The PCI device 8086:2c70 is shown as:

    fe:00.0 Host bridge: Intel Corporation QuickPath Architecture Generic
    Non-core Registers (rev 02)

    So, for this device to be recognized, it is only a matter of adding this
    new PCI ID to the driver.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

18 May, 2010

3 commits

  • This fixes an error in function i7core_check_error

    In commit ca9c90ba09ca3c9799319f46a56f397afbf617c2 which converts the
    driver to use double buffering, there is a change in the logic. Before,
    if mce_count was zero, it skipped over a couple of statements and
    finished out with a call to the *check_mc_ecc_err function. The current
    code checks to see if mce_count is 0 and then exits.

    This change reverts the behavior back to the original where if there are
    no errors to report, we skip to the end and call the *check_mc_ecc_err
    function.

    This fix allows the driver to work again on my Nehalem based blades
    again.

    Signed-off-by: Vernon Mauery
    Signed-off-by: Mauro Carvalho Chehab

    Vernon Mauery
     
  • Free already allocated i7core_dev.

    Signed-off-by: Alexander Beregalov
    Signed-off-by: Mauro Carvalho Chehab

    Alexander Beregalov
     
  • It's called only from an __init function and is the only user
    of pcibios_scan_specific_bus which will be marked as __devinit in
    the next patch.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Mauro Carvalho Chehab

    Jiri Slaby