12 Jan, 2011

1 commit

  • Generic Hardware Error Source provides a way to report platform
    hardware errors (such as that from chipset). It works in so called
    "Firmware First" mode, that is, hardware errors are reported to
    firmware firstly, then reported to Linux by firmware. This way, some
    non-standard hardware error registers or non-standard hardware link
    can be checked by firmware to produce more valuable hardware error
    information for Linux.

    This patch adds POLL/IRQ/NMI notification types support.

    Because the memory area used to transfer hardware error information
    from BIOS to Linux can be determined only in NMI, IRQ or timer
    handler, but general ioremap can not be used in atomic context, so a
    special version of atomic ioremap is implemented for that.

    Known issue:

    - Error information can not be printed for recoverable errors notified
    via NMI, because printk is not NMI-safe. Will fix this via delay
    printing to IRQ context via irq_work or make printk NMI-safe.

    v2:

    - adjust printk format per comments.

    Signed-off-by: Huang Ying
    Reviewed-by: Andi Kleen
    Signed-off-by: Len Brown

    Huang Ying
     

14 Dec, 2010

2 commits

  • printk is one of the methods to report hardware errors to user space.
    This patch implements hardware error reporting for GHES via printk.

    Signed-off-by: Huang Ying
    Signed-off-by: Len Brown

    Huang Ying
     
  • In APEI, Hardware error information reported by firmware to Linux
    kernel is in the data structure of APEI generic error status (struct
    acpi_hes_generic_status). While now printk is used by Linux kernel to
    report hardware error information to user space.

    So, this patch adds printing support for the data structure, so that
    the corresponding hardware error information can be reported to user
    space via printk.

    PCIe AER information printing is not implemented yet. Will refactor the
    original PCIe AER information printing code to avoid code duplicating.

    The output format is as follow:

    :=
    APEI generic hardware error status
    severity: ,
    section: , severity: ,
    flags:

    fru_id:
    fru_text:
    section_type:

    * := recoverable | fatal | corrected | info

    # :=
    [primary][, containment warning][, reset][, threshold exceeded]\
    [, resource not accessible][, latent error]

    := generic processor error | memory error | \
    PCIe error | unknown,

    :=
    | | \
    |

    :=
    [processor_type: , ]
    [processor_isa: , ]
    [error_type:
    ]
    [operation: , ]
    [flags:
    ]
    [level: ]
    [version_info: ]
    [processor_id: ]
    [target_address: ]
    [requestor_id: ]
    [responder_id: ]
    [IP: ]

    * := IA32/X64 | IA64

    * := IA32 | IA64 | X64

    # :=
    [cache error][, TLB error][, bus error][, micro-architectural error]

    * := unknown or generic | data read | data write | \
    instruction execution

    # :=
    [restartable][, precise IP][, overflow][, corrected]

    :=
    [error_status: ]
    [physical_address: ]
    [physical_address_mask: ]
    [node: ]
    [card: ]
    [module: ]
    [bank: ]
    [device: ]
    [row: ]
    [column: ]
    [bit_position: ]
    [requestor_id: ]
    [responder_id: ]
    [target_id: ]
    [error_type: , ]

    * :=
    unknown | no error | single-bit ECC | multi-bit ECC | \
    single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
    target abort | parity error | watchdog timeout | invalid address | \
    mirror Broken | memory sparing | scrub corrected error | \
    scrub uncorrected error

    :=
    [port_type: , ]
    [version: .]
    [command: , status: ]
    [device_id: ::.
    slot:
    secondary_bus:
    vendor_id: , device_id:
    class_code: ]
    [serial number: , ]
    [bridge: secondary_status: , control: ]

    * := PCIe end point | legacy PCI end point | \
    unknown | unknown | root port | upstream switch port | \
    downstream switch port | PCIe to PCI/PCI-X bridge | \
    PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
    root complex event collector

    Where, [] designate corresponding content is optional

    All description with * has the following format:

    field: ,

    Where value of should be the position of "string" in description. Otherwise, will be "unknown".

    All description with # has the following format:

    field:

    Where each string in corresponding to one set bit of
    . The bit position is the position of "string" in description.

    For more detailed explanation of every field, please refer to UEFI
    specification version 2.3 or later, section Appendix N: Common
    Platform Error Record.

    Signed-off-by: Huang Ying
    Signed-off-by: Len Brown

    Huang Ying
     

07 Dec, 2010

1 commit

  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 6524/1: GIC irq desciptor bug fix
    ARM: 6523/1: iop: ensure sched_clock() is notrace
    ARM: 6456/1: Fix for building DEBUG with sa11xx_base.c as a module.
    ARM: 6519/1: kuser: Fix incorrect cmpxchg syscall in kuser helpers
    ARM: 6505/1: kprobes: Don't HAVE_KPROBES when CONFIG_THUMB2_KERNEL is selected
    ARM: 6508/1: vexpress: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
    ARM: 6507/1: RealView: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
    ARM: 6504/1: Thumb-2: Fix long-distance conditional branches in head.S for Thumb-2.
    ARM: 6503/1: Thumb-2: Restore sensible zImage header layout for CONFIG_THUMB2_KERNEL
    ARM: 6502/1: Thumb-2: Fix CONFIG_THUMB2_KERNEL breakage in compressed/head.S
    ARM: 6501/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in mm/proc-v7.S
    ARM: 6500/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in kernel/head.S
    ARM: 6499/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in bootp/init.S
    ARM: 6498/1: vfp: Correct data alignment for CONFIG_THUMB2_KERNEL
    ARM: 6497/1: kexec: Correct data alignment for CONFIG_THUMB2_KERNEL
    ARM: 6496/1: GIC: Do not try to register more then NR_IRQS interrupts
    ARM: cns3xxx: Fix build with CONFIG_PCI=y

    Linus Torvalds
     

06 Dec, 2010

2 commits


05 Dec, 2010

3 commits

  • Fix kernel warnings caused by the driver name of GSC PS/2 containing '/'.

    The following warnings are observed on a K410 system :

    [ 10.700000] name 'GSC PS/2 keyboard'
    [ 10.732000] ------------[ cut here ]------------
    [ 10.772000] WARNING: at fs/proc/generic.c:323
    [ 10.828000] Modules linked in:
    [ 10.916000]
    [ 10.916000] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
    [ 10.936000] PSW: 00000000000001000000000000001111 Not tainted
    [ 10.992000] r00-03 0004000f 104fe3e0 10201ea0 00000000
    [ 11.060000] r04-07 4fc405c8 00000006 4fc405c8 4fc40694
    [ 11.124000] r08-11 4fc40708 10438aa0 00000001 1043bfc8
    [ 11.184000] r12-15 104ff2a0 104ff2a0 4fc38634 104ff2a0
    [ 11.248000] r16-19 f0001570 10479af0 f000006c 1044fe50
    [ 11.308000] r20-23 00000000 00000028 104cd858 00000000
    [ 11.372000] r24-27 ffffffff 0000000e 1044fe10 1043bbe0
    [ 11.436000] r28-31 0000002b 00000078 4fc40800 0000000d
    [ 11.496000] sr00-03 00000000 00000000 00000000 00000000
    [ 11.560000] sr04-07 00000000 00000000 00000000 00000000
    [ 11.624000]
    [ 11.688000] IASQ: 00000000 00000000 IAOQ: 10201ea0 10201ea4
    [ 11.704000] IIR: 03ffe01f ISR: 00000000 IOR: 0000000d
    [ 11.772000] CPU: 0 CR30: 4fc40000 CR31: f01043b0
    [ 11.836000] ORIG_R28: 4fc40940
    [ 11.904000] IAOQ[0]: __xlate_proc_name+0x90/0xd0
    [ 11.940000] IAOQ[1]: __xlate_proc_name+0x94/0xd0
    [ 11.996000] RP(r2): __xlate_proc_name+0x90/0xd0
    [ 12.052000] Backtrace:
    [ 12.108000] [] vsnprintf+0x290/0x4f4
    [ 12.136000]
    [ 12.188000] ---[ end trace 91bf6ece17e322dd ]---
    [ 12.208000] serio: GSC PS/2 keyboard port at 0x0001c000 irq 19 @ 10:12:7
    [ 12.264000] name 'GSC PS/2 mouse'
    [ 12.344000] ------------[ cut here ]------------
    [ 12.384000] WARNING: at fs/proc/generic.c:323
    [ 12.436000] Modules linked in:
    [ 12.524000]
    [ 12.528000] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
    [ 12.544000] PSW: 00000000000001000000000000001111 Tainted: G W
    [ 12.600000] r00-03 0004000f 104fe3e0 10201ea0 00000000
    [ 12.680000] r04-07 4fc405c8 00000006 4fc405c8 4fc40694
    [ 12.740000] r08-11 4fc40708 10438aa0 00000001 1043bfc8
    [ 12.804000] r12-15 104ff2a0 104ff2a0 4fc38634 104ff2a0
    [ 12.868000] r16-19 f0001570 10479af0 f000006c 1044fe50
    [ 12.928000] r20-23 00000000 00000025 104cd858 00000000
    [ 12.992000] r24-27 ffffffff 0000000e 1044fe10 1043bbe0
    [ 13.056000] r28-31 00000028 00000078 4fc40800 0000000d
    [ 13.116000] sr00-03 00000000 00000000 00000000 00000000
    [ 13.180000] sr04-07 00000000 00000000 00000000 00000000
    [ 13.244000]
    [ 13.308000] IASQ: 00000000 00000000 IAOQ: 10201ea0 10201ea4
    [ 13.324000] IIR: 03ffe01f ISR: 00000000 IOR: 0000000d
    [ 13.392000] CPU: 0 CR30: 4fc40000 CR31: f01043b0
    [ 13.456000] ORIG_R28: 4fc40940
    [ 13.524000] IAOQ[0]: __xlate_proc_name+0x90/0xd0
    [ 13.560000] IAOQ[1]: __xlate_proc_name+0x94/0xd0
    [ 13.616000] RP(r2): __xlate_proc_name+0x90/0xd0
    [ 13.672000] Backtrace:
    [ 13.728000] [] vsnprintf+0x290/0x4f4
    [ 13.756000]
    [ 13.808000] ---[ end trace 91bf6ece17e322de ]---
    [ 13.828000] serio: GSC PS/2 mouse port at 0x00020100 irq 19 @ 10:12:8

    Signed-off-by: Guy Martin
    Acked-by: Helge Deller
    Signed-off-by: Kyle McMartin

    Guy Martin
     
  • K class aka KittyHawk don't have LED support on their LCD. Installing
    HP-UX confirmed this. The current led_wq fills the LCD with black
    characters each time it runs.

    The patch prevents the led_wq workqueue and its proc entry to be
    created for KittyHawk machines.

    It also increase min_cmd_delay as currently, one character out of two
    is lost when a string is sent to the LCD.

    Signed-off-by: Guy Martin
    Signed-off-by: Kyle McMartin

    Guy Martin
     
  • The generic conversion eliminates the spurious no_ack and no_end
    routines, converts all the cascaded handlers to handle_simple_irq() and
    makes iosapic use a modified handle_percpu_irq() to become the same as
    the CPU irq's. This isn't an essential change, but it eliminates the
    mask/unmask overhead of handle_level_irq().

    Signed-off-by: James Bottomley
    Tested-by: Helge Deller
    Signed-off-by: Kyle McMartin

    James Bottomley
     

04 Dec, 2010

6 commits


03 Dec, 2010

15 commits

  • My new shiny code for corrupted PEB detection has NOR specific bug.
    We tread PEB as corrupted and preserve it, if

    1. EC header is OK.
    2. VID header is corrupted.
    3. data area is not "all 0xFFs"

    In case of NOR we have 'nor_erase_prepare()' quirk, which invalidates
    the headers before erasing the PEB. And we invalidate first the VID
    header, and then the EC header. So if a power cut happens after we have
    invalidated the VID header, but before we have invalidated the EC
    header, we end up with a PEB which satisfies the above 3 conditions,
    and the scanning code will treat it as corrupted, and will print
    scary warnings, wrongly.

    This patch fixes the issue by firt invalidating the EC header, then
    invalidating the VID header. In case of power cut inbetween, we still
    just lose the EC header, and UBI can deal with this situation gracefully.

    Thanks to Anatolij Gustschin for tracking this down.

    Signed-off-by: Artem Bityutskiy
    Reported-by: Anatolij Gustschin
    Tested-by: Anatolij Gustschin

    Artem Bityutskiy
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: length resolution should be reported units/mm
    HID: add support for F430 Force Feedback Wheel
    HID: egalax: Use kzalloc
    HID: Remove KERN_DEBUG from dbg_hid use

    Manually fixed trivial conflict in drivers/hid/hid-input.c (due to
    removal of KERN_DEBUG from dbg_hid use clashing with new keycode
    interface switch)

    Linus Torvalds
     
  • Allocate irq descs on any NUMA node (we don't care) rather than
    specifically node 0, which may not exist.

    (At the moment NUMA is meaningless within a domain, so any info
    the kernel has is just from an SRAT table we haven't suppressed/disabled.)

    Signed-off-by: Jeremy Fitzhardinge

    Jeremy Fitzhardinge
     
  • If this is a non-HIGHMEM 32-bit kernel, then the page structures only go
    up to the limit of addressable memory, even if more memory is physically
    present. Don't try to add that extra memory to the balloon.

    Signed-off-by: Jeremy Fitzhardinge

    Jeremy Fitzhardinge
     
  • The AMD Geode CS5536 Companion Device Silicon Revision B1 Specification
    Update mentions the follow as issue #36:

    "Atomic write transactions to the atomic GPIO High Bank Feature Bit
    registers should only affect the bits selected [...]"

    "after Suspend, an atomic write transaction [...] will clear all
    non-selected bits of the accessed register."

    In other words, writing to the high bank for a single GPIO bit will
    clear every other GPIO bit (but only sometimes after a suspend).

    The workaround described is obvious and simple; do a read-modify-write.
    This patch does that, and documents why we're doing it.

    Signed-off-by: Andres Salomon
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • It's not useful to build LED triggers when there's no LEDs that can be
    triggered by them. Therefore, fix up the dependencies so that this
    cannot happen, and fix a few users that select triggers to depend on
    LEDS_CLASS as well (there is also one user that also selects LEDS_CLASS,
    which is OK).

    Signed-off-by: Johannes Berg
    Reported-by: Randy Dunlap
    Acked-by: Randy Dunlap
    Tested-by: Ingo Molnar
    Cc: Arnd Hannemann
    Cc: Michal Hocko
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Berg
     
  • * 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (27 commits)
    Staging: rt2870: Add USB ID for Buffalo Airstation WLI-UC-GN
    staging: easycap needs smp_lock.h, fixes build error
    Staging: batman-adv: ensure that eth_type_trans gets linear memory
    Staging: batman-adv: Don't remove interface with spinlock held
    staging: brcm80211: updated maintainers contact information
    staging: fix winbond build, needs delay.h
    Staging: line6: fix up my fixup for some sysfs attribute permissions
    Staging: zram: fix up my fixup for some sysfs attribute permissions
    Staging: udlfb: fix up my fixup for some sysfs attribute permissions
    Staging: samsung-laptop: fix up my fixup for some sysfs attribute permissions
    Staging: iio: adis16220: fix up my fixup for some sysfs attribute permissions
    Staging: frontier: fix up my fixup for some sysfs attribute permissions
    Staging: asus_oled: fix up my fixup for some sysfs attribute permissions
    staging: spectra: fix build error
    Staging: intel_sst: fix memory leak
    Staging: rtl8712: signedness bug in init
    staging: rtl8187se: Change panic to warn when RF switch turned off
    staging: comedi: fix memory leak
    Staging: quickstart: free after input_unregister_device()
    Staging: speakup: free after input_unregister_device()
    ...

    Linus Torvalds
     
  • …t/gregkh/driver-core-2.6

    * 'driver-core-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
    uio: Change mail address of Hans J. Koch
    driver core: prune docs about device_interface
    driver core: the development tree has switched to git

    Linus Torvalds
     
  • * 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    serial: mfd: adjust the baud rate setting
    TTY: open/hangup race fixup
    TTY: don't allow reopen when ldisc is changing
    NET: wan/x25, fix ldisc->open retval
    TTY: ldisc, fix open flag handling
    serial8250: Mark console as CON_ANYTIME

    Linus Torvalds
     
  • * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: fix autosuspend bug in usb-serial
    USB: ehci: disable LPM and PPCD for nVidia MCP89 chips
    USB: serial: ftdi_sio: Vardaan USB RS422/485 converter PID added
    USB: yurex: add .llseek fop to file_operations
    USB: ftdi_sio: Add ID for RT Systems USB-29B radio cable
    usb: musb: do not use dma for control transfers
    usb: musb: gadget: fix compilation warning
    usb: musb: clear RXCSR_AUTOCLEAR before PIO read
    usb: musb: unmap dma buffer when switching to PIO
    xhci: Don't let the USB core disable SuperSpeed ports.
    xhci: Setup array of USB 2.0 and USB 3.0 ports.
    xhci: Fix reset-device and configure-endpoint commands

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
    watchdog: it8712f_wdt: add note to Kconfig
    watchdog: gef_wdt: include fs.h
    watchdog: bcm63xx_wdt: improve platform part.
    watchdog: iTCO_wdt: TCO Watchdog patch for Intel Patsburg PCH

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB: Fix information leak in marshalling code
    IB/pack: Remove some unused code added by the IBoE patches
    IB/mlx4: Fix IBoE link state
    IB/mlx4: Fix IBoE reported link rate
    mlx4_core: Workaround firmware bug in query dev cap
    IB/mlx4: Fix memory ordering of VLAN insertion control bits
    MAINTAINERS: Update NetEffect entry

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    regulator: fix kernel-doc for set_consumer_device_supply
    regulator: enable supply regulator only when use count is zero
    regulator: twl-regulator - fix twlreg_set_mode
    regulator: lock supply in regulator enable
    regulator: Return proper error for regulator_register()
    regulator: Ensure enough delay time for enabling regulator
    regulator: Remove a redundant device_remove_file call in create_regulator
    regulator: Staticise mc13783_powermisc_rmw()
    regulator: regulator disable supply fix

    Linus Torvalds
     
  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
    [media] v4l: Remove module_name argument to the v4l2_i2c_new_subdev* functions
    [media] v4l: Remove hardcoded module names passed to v4l2_i2c_new_subdev* (2)

    Linus Torvalds
     
  • * 'rbd-sysfs' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    rbd: replace the rbd sysfs interface

    Linus Torvalds
     

02 Dec, 2010

10 commits