19 Nov, 2013

2 commits

  • Pull EDAC driver updates from Mauro Carvalho Chehab:
    - sb_edac: add support for Ivy Bridge support
    - cell_edac: add a missing of_node_put() call

    * 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
    cell_edac: fix missing of_node_put
    sb_edac: add support for Ivy Bridge
    sb_edac: avoid decoding the same error multiple times
    sb_edac: rename mci_bind_devs()
    sb_edac: enable multiple PCI id tables to be used
    sb_edac: rework sad_pkg
    sb_edac: allow different interleave lists
    sb_edac: allow different dram_rule arrays
    sb_edac: isolate TOHM retrieval
    sb_edac: rename pci_br
    sb_edac: isolate TOLM retrieval
    sb_edac: make RANK_CFG_A value part of sbridge_info

    Linus Torvalds
     
  • Pull EDAC updates from Borislav Petkov:
    "Following up on last week's discussion, here's my part of the EDAC
    pile, highlights in the signed tag.

    The last two patches have a date from just now because I've just
    applied them to the tree after Johannes sent them to me earlier. I
    decided to forward them now because they're trivial.

    There's a third one for MPC85xx which adds PCIe error interrupt
    support but since it is not so trivial and hasn't seen any linux-next
    time, I'm deferring it to 3.14

    EDAC update highlights:
    - Support for Calxeda ECX-2000 memory controller, from Robert Richter
    - Misc Calxeda Highbank drivers and EDAC core cleanups, from Rob
    Herring and Robert Richter
    - New maintainer for Freescale's MPC85xx EDAC driver: Johannes
    Thumshirn"

    * tag 'edac_for_3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    edac/85xx: Remove mpc85xx_pci_err_remove
    EDAC: Add edac-mpc85xx driver to MAINTAINERS
    edac, highbank: Moving error injection to sysfs for edac
    edac, highbank: Add MAINTAINERS entry
    edac: Unify reporting of device info for device, mc and pci
    edac, highbank: Improve and unify naming
    edac, highbank: Add Calxeda ECX-2000 support
    ARM: dts: calxeda: move memory-controller node out of ecx-common.dtsi
    edac, highbank: Fix interrupt setup of mem and l2 controller

    Linus Torvalds
     

18 Nov, 2013

1 commit

  • Remove mpc85xx_pci_err_remove(...) which is obsolete, this removes the
    compiler warning which can be seen when building the driver either
    statically or as a module.

    Signed-off-by: Johannes Thumshirn
    Link: https://lkml.kernel.org/r/20131112161901.GA15637@jtlinux
    Signed-off-by: Johannes Thumshirn
    Signed-off-by: Borislav Petkov

    Johannes Thumshirn
     

15 Nov, 2013

12 commits


12 Nov, 2013

1 commit

  • Pull devicetree updates from Rob Herring:
    "DeviceTree updates for 3.13. This is a bit larger pull request than
    usual for this cycle with lots of clean-up.

    - Cross arch clean-up and consolidation of early DT scanning code.
    - Clean-up and removal of arch prom.h headers. Makes arch specific
    prom.h optional on all but Sparc.
    - Addition of interrupts-extended property for devices connected to
    multiple interrupt controllers.
    - Refactoring of DT interrupt parsing code in preparation for
    deferred probe of interrupts.
    - ARM cpu and cpu topology bindings documentation.
    - Various DT vendor binding documentation updates"

    * tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (82 commits)
    powerpc: add missing explicit OF includes for ppc
    dt/irq: add empty of_irq_count for !OF_IRQ
    dt: disable self-tests for !OF_IRQ
    of: irq: Fix interrupt-map entry matching
    MIPS: Netlogic: replace early_init_devtree() call
    of: Add Panasonic Corporation vendor prefix
    of: Add Chunghwa Picture Tubes Ltd. vendor prefix
    of: Add AU Optronics Corporation vendor prefix
    of/irq: Fix potential buffer overflow
    of/irq: Fix bug in interrupt parsing refactor.
    of: set dma_mask to point to coherent_dma_mask
    of: add vendor prefix for PHYTEC Messtechnik GmbH
    DT: sort vendor-prefixes.txt
    of: Add vendor prefix for Cadence
    of: Add empty for_each_available_child_of_node() macro definition
    arm/versatile: Fix versatile irq specifications.
    of/irq: create interrupts-extended property
    microblaze/pci: Drop PowerPC-ism from irq parsing
    of/irq: Create of_irq_parse_and_map_pci() to consolidate arch code.
    of/irq: Use irq_of_parse_and_map()
    ...

    Linus Torvalds
     

05 Nov, 2013

5 commits

  • Always have the error injection i/f available, even if there is no
    debugfs or EDAC_DEBUG enabled. We need this for testing production
    kernels and environments.

    Thus, the entry moves from:

    /sys/kernel/debug/edac/mc0/inject_ctrl

    to:

    /sys/devices/system/edac/mc/mc0/inject_ctrl

    No other changes of the interface.

    Signed-off-by: Robert Richter
    Signed-off-by: Robert Richter

    Robert Richter
     
  • Log messages slightly differ between edac subsystems. Unifying it.

    Signed-off-by: Robert Richter
    Acked-by: Rob Herring
    Acked-by: Borislav Petkov
    Signed-off-by: Robert Richter

    Robert Richter
     
  • Assinging correct names of the 'hb_mc_edac' and 'hb_l2_edac' edac
    modules for module, controller and device. Reported values for
    Highbank in dmesg are now:

    EDAC MC0: Giving out device to module hb_mc_edac controller
    calxeda,hb-ddr-ctrl: DEV fff00000.memory-controller (INTERRUPT)

    EDAC DEVICE0: Giving out device to module hb_l2_edac controller
    calxeda,hb-sregs-l2-ecc: DEV fff3c200.sregs (INTERRUPT)

    Signed-off-by: Robert Richter
    Acked-by: Rob Herring
    Signed-off-by: Robert Richter

    Robert Richter
     
  • Implement edac support for Calxeda ECX-2000.

    The ECX-2000 memory controller is similar to Highbank but has
    different register bases for error and interrupt registers. There is
    an own device tree name "calxeda,ecx-2000-ddr-ctrl" for identification
    and initialization of the ECX-2000 and its base addresses.

    Signed-off-by: Robert Richter
    Acked-by: Rob Herring
    Signed-off-by: Robert Richter

    Robert Richter
     
  • Register and enable interrupts after the edac registration. Otherwise
    incomming ecc error interrupts lead to crashes during device setup.

    Fixing this in drivers for mc and l2.

    Signed-off-by: Robert Richter
    Acked-by: Rob Herring
    Cc: stable # 3.6+
    Signed-off-by: Robert Richter

    Robert Richter
     

24 Oct, 2013

2 commits

  • In latest UEFI spec(by now it's 2.4) there are some new
    fields for memory error reporting. Add these new fields for
    ghes_edac interface.

    Signed-off-by: Chen, Gong
    Cc: Mauro Carvalho Chehab
    Signed-off-by: Tony Luck

    Chen, Gong
     
  • In latest UEFI spec(by now it is 2.4) memory error definition
    for CPER (UEFI 2.4 Appendix N Common Platform Error Record)
    adds some new fields. These fields help people to locate
    memory error to an actual DIMM location.

    Original-author: Tony Luck
    Signed-off-by: Chen, Gong
    Reviewed-by: Borislav Petkov
    Reviewed-by: Mauro Carvalho Chehab
    Acked-by: Naveen N. Rao
    Signed-off-by: Tony Luck

    Chen, Gong
     

22 Oct, 2013

1 commit

  • GENMASK is used to create a contiguous bitmask([hi:lo]). It is
    implemented twice in current kernel. One is in EDAC driver, the other
    is in SiS/XGI FB driver. Move it to a more generic place for other
    usage.

    Signed-off-by: Chen, Gong
    Cc: Borislav Petkov
    Cc: Thomas Winischhofer
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Tomi Valkeinen
    Acked-by: Borislav Petkov
    Acked-by: Mauro Carvalho Chehab
    Signed-off-by: Tony Luck

    Chen, Gong
     

10 Oct, 2013

1 commit


07 Sep, 2013

1 commit

  • Pull Tile arch updates from Chris Metcalf:
    "These changes bring in a bunch of new functionality that has been
    maintained internally at Tilera over the last year, plus other stray
    bits of work that I've taken into the tile tree from other folks.

    The changes include some PCI root complex work, interrupt-driven
    console support, support for performing fast-path unaligned data
    fixups by kernel-based JIT code generation, CONFIG_PREEMPT support,
    vDSO support for gettimeofday(), a serial driver for the tilegx
    on-chip UART, KGDB support, more optimized string routines, support
    for ftrace and kprobes, improved ASLR, and many bug fixes.

    We also remove support for the old TILE64 chip, which is no longer
    buildable"

    * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (85 commits)
    tile: refresh tile defconfig files
    tile: rework
    tile PCI RC: make default consistent DMA mask 32-bit
    tile: add null check for kzalloc in tile/kernel/setup.c
    tile: make __write_once a synonym for __read_mostly
    tile: remove support for TILE64
    tile: use asm-generic/bitops/builtin-*.h
    tile: eliminate no-op "noatomichash" boot argument
    tile: use standard tile_bundle_bits type in traps.c
    tile: simplify code referencing hypervisor API addresses
    tile: change to in comments
    tile: mark pcibios_init() as __init
    tile: check for correct compiler earlier in asm-offsets.c
    tile: use standard 'generic-y' model for
    tile: use asm-generic version of
    tile PCI RC: add comment about "PCI hole" problem
    tile: remove DEBUG_EXTRA_FLAGS kernel config option
    tile: add virt_to_kpte() API and clean up and document behavior
    tile: support FRAME_POINTER
    tile: support reporting Tilera hypervisor statistics
    ...

    Linus Torvalds
     

27 Aug, 2013

2 commits

  • dct_base and dct_limit obtain 32 bit register values when they read
    their respective pci config space registers. A left shift beyond 32 bits
    will cause them to wrap around. Similar case for chan_addr as can be
    seen from the bug report (link below). In the patch, we rectify this by
    casting chan_addr to u64 and by comparing dct_base and dct_limit against
    properly shifted sys_addr in order to compare the correct bits.

    Reported-by: Dan Carpenter
    Signed-off-by: Aravind Gopalakrishnan
    Link: http://lkml.kernel.org/r/20130819132302.GA12171@elgon.mountain
    Signed-off-by: Borislav Petkov

    Aravind Gopalakrishnan
     
  • Basically we want to cover all 0x0-0xf models, i.e. Orochi and later.

    Cc: Aravind Gopalakrishnan
    Link: http://lkml.kernel.org/r/20130819192321.GF4165@pd.tnic
    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

15 Aug, 2013

1 commit


14 Aug, 2013

1 commit

  • The struct should be terminated by using empty braces in order to
    fix the following sparse warning.

    drivers/edac/cpc925_edac.c:792:10: warning: Using plain integer as NULL pointer

    Signed-off-by: Jingoo Han
    [ drop obvious comment ]
    Signed-off-by: Borislav Petkov

    Jingoo Han
     

12 Aug, 2013

2 commits

  • Now that we cache (family, model, stepping) locally, use them instead of
    boot_cpu_data.

    No functionality change.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • On newer models, support has been included for upto 4 DCT's, however,
    only DCT0 and DCT3 are currently configured (cf BKDG Section 2.10).
    Also, the routing DRAM Requests algorithm is different for F15h M30h.
    Thus it is cleaner to use a brand new function rather than adding quirks
    to the more generic f1x_match_to_this_node(). Refer to "2.10.5 DRAM
    Routing Requests" in the BKDG for further info.

    Tested on Fam15h M30h with ECC turned on using mce_amd_inj facility and
    verified to be functionally correct.

    While at it, verify if erratum workarounds for E505 and E637 still hold.
    From email conversations within AMD, the current status of the errata
    is:

    * Erratum 505: fixed in model 0x1, stepping 0x1 and later.
    * Erratum 637: not fixed.

    Signed-off-by: Aravind Gopalakrishnan
    [ Cleanups, corrections ]
    Signed-off-by: Borislav Petkov

    Aravind Gopalakrishnan
     

09 Aug, 2013

2 commits

  • Make a local function static in order to fix the following sparse
    warning:

    drivers/edac/x38_edac.c:252:14: warning: symbol 'x38_map_mchbar' was not declared. Should it be static?

    Signed-off-by: Jingoo Han
    [ Boris: Correct commit message ]
    Signed-off-by: Borislav Petkov

    Jingoo Han
     
  • This local symbol is used only in this file.
    Fix the following sparse warnings:

    drivers/edac/i3200_edac.c:264:14: warning: symbol 'i3200_map_mchbar' was not declared. Should it be static?

    Signed-off-by: Jingoo Han
    Signed-off-by: Borislav Petkov

    Jingoo Han
     

29 Jul, 2013

1 commit

  • It can happen that configurations are running in a single-channel mode
    even with a dual-channel memory controller, by, say, putting the DIMMs
    only on the one channel and leaving the other empty. This causes a
    problem in init_csrows which implicitly assumes that when the second
    channel is enabled, i.e. channel 1, the struct dimm hierarchy will be
    present. Which is not.

    So always allocate two channels unconditionally.

    This provides for the nice side effect that the data structures are
    initialized so some day, when memory hotplug is supported, it should
    just work out of the box when all of a sudden a second channel appears.

    Reported-and-tested-by: Roger Leigh
    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

24 Jul, 2013

2 commits

  • The usage of strict_strtol() is not preferred, because strict_strtol()
    is obsolete. Thus, kstrtol() should be used.

    Signed-off-by: Jingoo Han
    Signed-off-by: Borislav Petkov

    Jingoo Han
     
  • Fix the following:

    BUG: key ffff88043bdd0330 not in .data!
    ------------[ cut here ]------------
    WARNING: at kernel/lockdep.c:2987 lockdep_init_map+0x565/0x5a0()
    DEBUG_LOCKS_WARN_ON(1)
    Modules linked in: glue_helper sb_edac(+) edac_core snd acpi_cpufreq lrw gf128mul ablk_helper iTCO_wdt evdev i2c_i801 dcdbas button cryptd pcspkr iTCO_vendor_support usb_common lpc_ich mfd_core soundcore mperf processor microcode
    CPU: 2 PID: 599 Comm: modprobe Not tainted 3.10.0 #1
    Hardware name: Dell Inc. Precision T3600/0PTTT9, BIOS A08 01/24/2013
    0000000000000009 ffff880439a1d920 ffffffff8160a9a9 ffff880439a1d958
    ffffffff8103d9e0 ffff88043af4a510 ffffffff81a16e11 0000000000000000
    ffff88043bdd0330 0000000000000000 ffff880439a1d9b8 ffffffff8103dacc
    Call Trace:
    dump_stack
    warn_slowpath_common
    warn_slowpath_fmt
    lockdep_init_map
    ? trace_hardirqs_on_caller
    ? trace_hardirqs_on
    debug_mutex_init
    __mutex_init
    bus_register
    edac_create_sysfs_mci_device
    edac_mc_add_mc
    sbridge_probe
    pci_device_probe
    driver_probe_device
    __driver_attach
    ? driver_probe_device
    bus_for_each_dev
    driver_attach
    bus_add_driver
    driver_register
    __pci_register_driver
    ? 0xffffffffa0010fff
    sbridge_init
    ? 0xffffffffa0010fff
    do_one_initcall
    load_module
    ? unset_module_init_ro_nx
    SyS_init_module
    tracesys
    ---[ end trace d24a70b0d3ddf733 ]---
    EDAC MC0: Giving out device to 'sbridge_edac.c' 'Sandy Bridge Socket#0': DEV 0000:3f:0e.0
    EDAC sbridge: Driver loaded.

    What happens is that bus_register needs a statically allocated lock_key
    because the last is handed in to lockdep. However, struct mem_ctl_info
    embeds struct bus_type (the whole struct, not a pointer to it) and the
    whole thing gets dynamically allocated.

    Fix this by using a statically allocated struct bus_type for the MC bus.

    Signed-off-by: Borislav Petkov
    Acked-by: Mauro Carvalho Chehab
    Cc: Markus Trippelsdorf
    Cc: stable@kernel.org # v3.10
    Signed-off-by: Tony Luck

    Borislav Petkov
     

18 Jul, 2013

1 commit


14 Jul, 2013

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "MIPS updates:

    - All the things that didn't make 3.10.
    - Removes the Windriver PPMC platform. Nobody will miss it.
    - Remove a workaround from kernel/irq/irqdomain.c which was there
    exclusivly for MIPS. Patch by Grant Likely.
    - More small improvments for the SEAD 3 platform
    - Improvments on the BMIPS / SMP support for the BCM63xx series.
    - Various cleanups of dead leftovers.
    - Platform support for the Cavium Octeon-based EdgeRouter Lite.

    Two large KVM patchsets didn't make it for this pull request because
    their respective authors are vacationing"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (124 commits)
    MIPS: Kconfig: Add missing MODULES dependency to VPE_LOADER
    MIPS: BCM63xx: CLK: Add dummy clk_{set,round}_rate() functions
    MIPS: SEAD3: Disable L2 cache on SEAD-3.
    MIPS: BCM63xx: Enable second core SMP on BCM6328 if available
    MIPS: BCM63xx: Add SMP support to prom.c
    MIPS: define write{b,w,l,q}_relaxed
    MIPS: Expose missing pci_io{map,unmap} declarations
    MIPS: Malta: Update GCMP detection.
    Revert "MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET"
    MIPS: APSP: Remove
    SSB: Kconfig: Amend SSB_EMBEDDED dependencies
    MIPS: microMIPS: Fix improper definition of ISA exception bit.
    MIPS: Don't try to decode microMIPS branch instructions where they cannot exist.
    MIPS: Declare emulate_load_store_microMIPS as a static function.
    MIPS: Fix typos and cleanup comment
    MIPS: Cleanup indentation and whitespace
    MIPS: BMIPS: support booting from physical CPU other than 0
    MIPS: Only set cpu_has_mmips if SYS_SUPPORTS_MICROMIPS
    MIPS: GIC: Fix gic_set_affinity infinite loop
    MIPS: Don't save/restore OCTEON wide multiplier state on syscalls.
    ...

    Linus Torvalds
     

04 Jul, 2013

1 commit