10 Aug, 2010

29 commits

  • Greg prefers this to go through the trivial tree.
    http://lkml.org/lkml/2010/6/24/1

    There are about 2500 void functions in drivers/usb
    Only a few used return; at end of function.

    Standardize them a bit.

    Moved a statement down a line in drivers/usb/host/u132-hcd.c

    Signed-off-by: Joe Perches
    Signed-off-by: Jiri Kosina

    Joe Perches
     
  • Conflicts:
    arch/arm/mach-omap1/board-nokia770.c

    Jiri Kosina
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (59 commits)
    igbvf.txt: Add igbvf Documentation
    igb.txt: Add igb documentation
    e100/e1000*/igb*/ixgb*: Add missing read memory barrier
    ixgbe: fix build error with FCOE_CONFIG without DCB_CONFIG
    netxen: protect tx timeout recovery by rtnl lock
    isdn: gigaset: use after free
    isdn: gigaset: add missing unlock
    solos-pci: Fix race condition in tasklet RX handling
    pkt_sched: Fix sch_sfq vs tcf_bind_filter oops
    net: disable preemption before call smp_processor_id()
    tcp: no md5sig option size check bug
    iwlwifi: fix locking assertions
    iwlwifi: fix TX tracer
    isdn: fix information leak
    net: Fix napi_gro_frags vs netpoll path
    usbnet: remove noisy and hardly useful printk
    rtl8180: avoid potential NULL deref in rtl8180_beacon_work
    ath9k: Remove myself from the MAINTAINERS list
    libertas: scan before assocation if no BSSID was given
    libertas: fix association with some APs by using extended rates
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
    tx493xide: use min_t() macro instead of min()
    drivers/ide: Use memdup_user
    via82cxxx: fix typo for VT6415 PCIE PATA IDE Host Controller support.
    ide-cd: Do not access completed requests in the irq handler

    Linus Torvalds
     
  • * 'rs485fix' of git://www.jni.nu/cris:
    CRIS: ioctl for getting RS485 information

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc: fix build with make 3.82
    Revert "Input: appletouch - fix integer overflow issue"
    memblock: Fix memblock_is_region_reserved() to return a boolean
    powerpc: Trim defconfigs
    powerpc: fix i8042 module build error
    sound/soc: mpc5200_psc_ac97: Use gpio pins for cold reset
    powerpc/5200: add mpc5200_psc_ac97_gpio_reset

    Linus Torvalds
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (30 commits)
    DMAENGINE: at_hdmac: locking fixlet
    DMAENGINE: pch_dma: kill another usage of __raw_{read|write}l
    dma: dmatest: fix potential sign bug
    ioat2: catch and recover from broken vtd configurations v6
    DMAENGINE: add runtime slave control to COH 901 318 v3
    DMAENGINE: add runtime slave config to DMA40 v3
    DMAENGINE: generic slave channel control v3
    dmaengine: Driver for Topcliff PCH DMA controller
    intel_mid: Add Mrst & Mfld DMA Drivers
    drivers/dma: Eliminate a NULL pointer dereference
    dma/timb_dma: compile warning on 32 bit
    DMAENGINE: ste_dma40: support older silicon
    DMAENGINE: ste_dma40: support disabling physical channels
    DMAENGINE: ste_dma40: no disabled phy channels on ux500
    DMAENGINE: ste_dma40: fix suspend bug
    DMAENGINE: ste_dma40: add DB8500 memcpy channels
    DMAENGINE: ste_dma40: no flow control on memcpy
    DMAENGINE: ste_dma40: arch updates for LCLA and LCPA
    DMAENGINE: ste_dma40: allocate LCLA dynamically
    DMAENGINE: ste_dma40: no premature stop
    ...

    Fix up trivial conflicts in arch/arm/mach-ux500/devices-db8500.c

    Linus Torvalds
     
  • According include/linux/console_struct.h,vc_scr_end is unsigned long.

    struct vc_data {
    unsigned short vc_num; /* Console number */
    unsigned int vc_cols; /* [#] Console size */
    unsigned int vc_rows;
    unsigned int vc_size_row; /* Bytes per row */
    unsigned int vc_scan_lines; /* # of scan lines */
    unsigned long vc_origin; /* [!] Start of real screen */
    unsigned long vc_scr_end; /* [!] End of real screen */
    unsigned long vc_visible_origin; /* [!] Top of visible window */
    unsigned int vc_top, vc_bottom; /* Scrolling region */
    const struct consw *vc_sw;
    unsigned short *vc_screenbuf;
    ...
    }

    Signed-off-by: qiaochong
    Cc: Greg KH
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    qiaochong
     
  • kernel will die on some platform when switch from vga mode to framebuffer
    mode. The reason of this bug is that bind_con_driver reset vc->vc_origin
    to (unsigned long)vc->vc_screenbuf.

    On vgacon vc->vc_origin is not releated to vc->vc_screenbuf,if set
    vc->vc_origin to vc->vc_screenbuf,kernel will die on vc_do_resize.

    static int vc_do_resize(struct tty_struct *tty, struct tty_struct *real_tty,
    struct vc_data *vc, unsigned int cols, unsigned int lines)
    {
    unsigned long old_origin, new_origin, new_scr_end, rlth, rrem, err = 0;
    unsigned int old_cols, old_rows, old_row_size, old_screen_size;
    unsigned int new_cols, new_rows, new_row_size, new_screen_size;
    unsigned int end, user;
    ...
    end = (old_rows > new_rows) ? old_origin +
    (old_row_size * new_rows) :
    vc->vc_scr_end;

    ...
    /*
    here for a test from vgacon to framebuffer:
    old_origin=0x810814a0,end=0xb00b8fa0,vc->vc_origin=0x810814a0
    the code bellow will copy memory from 0x810814a0 to 0xb00b8fa0,
    this will cover kernel code,kernel died here.
    */

    while (old_origin < end) {

    scr_memcpyw((unsigned short *) new_origin,
    (unsigned short *) old_origin, rlth);
    if (rrem)
    scr_memsetw((void *)(new_origin + rlth),
    vc->vc_video_erase_char, rrem);
    old_origin += old_row_size;
    new_origin += new_row_size;
    }

    ...
    }

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: qiaochong
    Cc: Greg KH
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    qiaochong
     
  • Allow device probing to recognise the Fintek F71808E.

    Sysfs interface:
    * Fan/pwm control is the same as for F71889FG
    * Temperature and voltage sensor handling is largely the same as for
    the F71889FG
    - Has one temperature sensor less (doesn't have temp3)
    - Misses one voltage sensor (doesn't have V6, thus in6_input refers to
    what in7_input refers for F71889FG)

    For the purpose of the sysfs interface fxxxx_in_temp_attr[] is split up
    such that it can largely be reused.

    Signed-off-by: Giel van Schijndel
    Cc: Jean Delvare
    Cc: Hans de Goede
    Cc: Jonathan Cameron
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Giel van Schijndel
     
  • register_hotcpu_notifier() is designed to make these ifdefs unnecessary.

    Cc: Chen Gong
    Cc: Rudolf Marek
    Cc: Huaxu Wan
    Cc: Jean Delvare
    Cc: Guenter Roeck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Update coretemp supported CPU TjMax lists and some cleanup work.

    Signed-off-by: Chen Gong
    Cc: Rudolf Marek
    Cc: Huaxu Wan
    Cc: Jean Delvare
    Cc: Guenter Roeck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen Gong
     
  • If one coretemp device can't be added, it should allow subsequent adding
    operation because every new-added device will create a new sysfs group,
    not an additional sensor sys entry.

    Signed-off-by: Chen Gong
    Cc: Rudolf Marek
    Cc: Huaxu Wan
    Cc: Jean Delvare
    Cc: Guenter Roeck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen Gong
     
  • Fix two errors in hotplug. One is for hotplug notifier. The other is
    unnecessary driver unregister. Because even none of online cpus supports
    coretemp, we can't assume new onlined cpu doesn't support it either. If
    related driver is unregistered there we have no chance to use coretemp
    from then on.

    Signed-off-by: Chen Gong
    Cc: Rudolf Marek
    Cc: Huaxu Wan
    Cc: Jean Delvare
    Cc: Guenter Roeck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen Gong
     
  • [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Guenter Roeck
    Cc: Jean Delvare
    Cc: Randy Dunlap
    Cc: Hans de Goede
    Cc: Mark Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guenter Roeck
     
  • This driver adds support for the monitoring features of the Summit
    Microelectronics SMM665 Six-Channel Active DC Output Controller/Monitor.

    Signed-off-by: Guenter Roeck
    Acked-by: Jonathan Cameron
    Cc: Jean Delvare
    Cc: Hans de Goede
    Cc: Mark Brown
    Cc: Samuel Ortiz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guenter Roeck
     
  • This driver will report the heading values in degrees to the sysfs
    interface. The values returned are headings . e.g. 245.6

    Alan: Cleanups requested now all folded in and a sysfs description to keep
    Andrew happy. The sysfs description now resembles hwmon.

    Signed-off-by: Kalhan Trisal
    Reviewed-by: Jean Delvare
    Signed-off-by: Alan Cox
    Cc: Jonathan Cameron
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kalhan Trisal
     
  • Add Lenovo Thinkpad T400. I have done the testing on my laptop. The
    hdaps module detects the device and the hdapsd daemon is able to [un]park
    the disk.

    Signed-off-by: Ritesh Raj Sarraf
    Cc: Frank Seidel
    Cc: Dmitry Torokhov
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ritesh Raj Sarraf
     
  • The error may happen at any iteration of the for loop, this patch properly
    unregisters already registed edd_devices in error path.

    [akpm@linux-foundation.org: remove unneeded NULL test]
    Signed-off-by: Axel Lin
    Cc: Stephen Hemminger
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • The previous change added WARN_ON() in misc_deregister(). So it is not
    necessary to WARN_ON() misc_deregister() failure by callers.

    Signed-off-by: Akinobu Mita
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • misc_deregister() returns an error only when it attempts to unregister
    the device that is not registered. This is the driver's bug.

    Most of the drivers don't check the return value of misc_deregister().
    (It is not bad thing because most of kernel *_unregister() API always
    succeed and do not return value)

    So it is better to indicate the error by WARN_ON() in misc_deregister().

    Signed-off-by: Akinobu Mita
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This driver adds support for the BMP085 digital pressure sensor from Bosch
    Sensortec. It exposes a sysfs api to userspace where pressure and
    temperature measurement results can be read from the pressure0_input and
    temp0_input file. The chip is able to calculate the average of up to
    eight samples to increase the accuracy. This feature can be controlled by
    writing to the oversampling file.

    The BMP085 digital pressure sensor can measure ambient air pressure and
    temperature. Both values can be obtained from sysfs files. The pressure
    is measured by reading from pressure0_input. Valid values range from
    30000 to 110000 pascal with a resolution of 1 pascal (=0.01 millibar).

    temp0_input holds the current temperature in degree celsius, multiplied by
    10. This results in a resolution of a tenth degree celsius. Values range
    from -400 to 850.

    To increase the accuracy, this chip can calculate the average of 1, 2, 4
    or 8 samples. This behavior is controlled through the oversampling sysfs
    file. Two to the power of the value written to that file specifies how
    many samples will be used. Valid values: 0..3.

    [akpm@linux-foundation.org: fix typo]
    [shubhrajyoti@ti.com: optimize the wait time for the pressure sensor, definition of long is arch dependent so make it u32]
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Christoph Mair
    Signed-off-by: Shubhrajyoti D
    Acked-by: Jonathan Cameron
    Cc: Stefan Schmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Mair
     
  • Fix i386 PAE compile warning:

    drivers/misc/hpilo.c: In function `ilo_ccb_setup':
    drivers/misc/hpilo.c:274: warning: cast to pointer from integer of different size

    dma_addr_t is 64 on i386 PAE which causes a size mismatch.

    Signed-off-by: Prarit Bhargava
    Acked-by: David Altobelli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Prarit Bhargava
     
  • Add support for ROHM BH1780GLI Ambient light sensor.

    BH1780 supports I2C interface. Driver supports read/update of power state
    and read of lux value (through SYSFS). Writing value 3 to power_state
    enables the sensor and current lux value could be read.

    Currently this driver follows the same sysfs convention as supported by
    drivers/misc/isl29003.c.

    Signed-off-by: Hemanth V
    Reviewed-by: Daniel Mack
    Acked-by: Jonathan Cameron
    Cc: Jean Delvare
    Cc: Wolfram Sang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hemanth V
     
  • On some SoC chips, HW resources may be in use during any particular idle
    period. As a consequence, the cpuidle states that the SoC is safe to
    enter can change from idle period to idle period. In addition, the
    latency and threshold of each cpuidle state can vary, depending on the
    operating condition when the CPU becomes idle, e.g. the current cpu
    frequency, the current state of the HW blocks, etc.

    cpuidle core and the menu governor, in the current form, are geared
    towards cpuidle states that are static, i.e. the availabiltiy of the
    states, their latencies, their thresholds are non-changing during run
    time. cpuidle does not provide any hook that cpuidle drivers can use to
    adjust those values on the fly for the current idle period before the menu
    governor selects the target cpuidle state.

    This patch extends cpuidle core and the menu governor to handle states
    that are dynamic. There are three additions in the patch and the patch
    maintains backwards-compatibility with existing cpuidle drivers.

    1) add prepare() to struct cpuidle_device. A cpuidle driver can hook
    into the callback and cpuidle will call prepare() before calling the
    governor's select function. The callback gives the cpuidle driver a
    chance to update the dynamic information of the cpuidle states for the
    current idle period, e.g. state availability, latencies, thresholds,
    power values, etc.

    2) add CPUIDLE_FLAG_IGNORE as one of the state flags. In the prepare()
    function, a cpuidle driver can set/clear the flag to indicate to the
    menu governor whether a cpuidle state should be ignored, i.e. not
    available, during the current idle period.

    3) add power_specified bit to struct cpuidle_device. The menu governor
    currently assumes that the cpuidle states are arranged in the order of
    increasing latency, threshold, and power savings. This is true or can
    be made true for static states. Once the state parameters are dynamic,
    the latencies, thresholds, and power savings for the cpuidle states can
    increase or decrease by different amounts from idle period to idle
    period. So the assumption of increasing latency, threshold, and power
    savings from Cn to C(n+1) can no longer be guaranteed.

    It can be straightforward to calculate the power consumption of each
    available state and to specify it in power_usage for the idle period.
    Using the power_usage fields, the menu governor then selects the state
    that has the lowest power consumption and that still satisfies all other
    critieria. The power_specified bit defaults to 0. For existing cpuidle
    drivers, cpuidle detects that power_specified is 0 and fills in a dummy
    set of power_usage values.

    Signed-off-by: Ai Li
    Cc: Len Brown
    Acked-by: Arjan van de Ven
    Cc: Ingo Molnar
    Cc: Venkatesh Pallipadi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ai Li
     
  • drivers/base/node.c: In function 'node_read_meminfo':
    drivers/base/node.c:139: warning: the frame size of 848 bytes is
    larger than 512 bytes

    Fix it by splitting the sprintf() into three parts. It has no functional
    change.

    Signed-off-by: KOSAKI Motohiro
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Fix a build failure "error: void value not ignored as it ought to be"
    by removing an assignment of a void return value. The functionality of
    the code is not changed.

    Signed-off-by: Peter Huewe
    Acked-by: Henrik Kretzschmar
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Huewe
     
  • After the commit that changed ipmi_si detecting sequence from SMBIOS/ACPI
    to ACPI/SMBIOS,

    | commit 754d453185275951d39792865927ec494fa1ebd8
    | Author: Matthew Garrett
    | Date: Wed May 26 14:43:47 2010 -0700
    |
    | ipmi: change device discovery order
    |
    | The ipmi spec provides an ordering for si discovery. Change the driver to
    | match, with the exception of preferring smbios to SPMI as HPs (at least)
    | contain accurate information in the former but not the latter.

    ipmi_si can not be initialized.

    [ 138.799739] calling init_ipmi_devintf+0x0/0x109 @ 1
    [ 138.805050] ipmi device interface
    [ 138.818131] initcall init_ipmi_devintf+0x0/0x109 returned 0 after 12797 usecs
    [ 138.822998] calling init_ipmi_si+0x0/0xa90 @ 1
    [ 138.840276] IPMI System Interface driver.
    [ 138.846137] ipmi_si: probing via ACPI
    [ 138.849225] ipmi_si 00:09: [io 0x0ca2] regsize 1 spacing 1 irq 0
    [ 138.864438] ipmi_si: Adding ACPI-specified kcs state machine
    [ 138.870893] ipmi_si: probing via SMBIOS
    [ 138.880945] ipmi_si: Adding SMBIOS-specified kcs state machineipmi_si: duplicate interface
    [ 138.896511] ipmi_si: probing via SPMI
    [ 138.899861] ipmi_si: Adding SPMI-specified kcs state machineipmi_si: duplicate interface
    [ 138.917095] ipmi_si: Trying ACPI-specified kcs state machine at i/o address 0xca2, slave address 0x0, irq 0
    [ 138.928658] ipmi_si: Interface detection failed
    [ 138.953411] initcall init_ipmi_si+0x0/0xa90 returned 0 after 110847 usecs

    in smbios has
    DMI/SMBIOS
    Handle 0x00C5, DMI type 38, 18 bytes
    IPMI Device Information
    Interface Type: KCS (Keyboard Control Style)
    Specification Version: 2.0
    I2C Slave Address: 0x00
    NV Storage Device: Not Present
    Base Address: 0x0000000000000CA2 (I/O)
    Register Spacing: 32-bit Boundaries
    in DSDT has
    Device (BMC)
    {

    Name (_HID, EisaId ("IPI0001"))
    Method (_STA, 0, NotSerialized)
    {
    If (LEqual (OSN, Zero))
    {
    Return (Zero)
    }

    Return (0x0F)
    }

    Name (_STR, Unicode ("IPMI_KCS"))
    Name (_UID, Zero)
    Name (_CRS, ResourceTemplate ()
    {
    IO (Decode16,
    0x0CA2, // Range Minimum
    0x0CA2, // Range Maximum
    0x00, // Alignment
    0x01, // Length
    )
    IO (Decode16,
    0x0CA6, // Range Minimum
    0x0CA6, // Range Maximum
    0x00, // Alignment
    0x01, // Length
    )
    })
    Method (_IFT, 0, NotSerialized)
    {
    Return (One)
    }

    Method (_SRV, 0, NotSerialized)
    {
    Return (0x0200)
    }
    }

    so the reg spacing should be 4 instead of 1.

    Try to calculate regspacing for this kind of system.

    Observed on a Sun Fire X4800. Other OSes work and pass certification.

    Signed-off-by: Yinghai Lu
    Cc: Bjorn Helgaas
    Acked-by: Matthew Garrett
    Cc: Len Brown
    Cc: Myron Stowe
    Cc: Corey Minyard
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    drm: fix fallouts from slow-work -> wq conversion
    workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier
    workqueue: add missing __percpu markup in kernel/workqueue.c

    Linus Torvalds
     

09 Aug, 2010

11 commits

  • Add ioctl to CRIS serial driver to get RS485 data from user-space.

    Signed-off-by: Claudio Scordino
    Signed-off-by: Jesper Nilsson

    Claudio Scordino
     
  • Commit 991ea75c (drm: use workqueue instead of slow-work), which made
    drm to use wq instead of slow-work, didn't account for the return
    value difference between delayed_slow_work_enqueue() and
    queue_delayed_work(). The former returns 0 on success and -errno on
    failures while the latter never fails and only uses the return value
    to indicate whether the work was already pending or not.

    This misconversion triggered spurious error messages. Remove the now
    unnecessary return value check and error message.

    Markus: caught another incorrect conversion in drm_kms_helper_poll_enable()

    Signed-off-by: Tejun Heo
    Reported-by: Markus Trippelsdorf
    Tested-by: Markus Trippelsdorf
    Cc: David Airlie
    Cc: dri-devel@lists.freedesktop.org

    Tejun Heo
     
  • This fixes a warning ("comparison of distinct pointer types lacks a
    cast") introduced by the commit
    040f6b4f14adb2ca5babb84e9fb2ebc6661e0be2 ("tx493xide: use ->pio_mode
    value to determine pair device speed").

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: David S. Miller

    Atsushi Nemoto
     
  • Use memdup_user when user data is immediately copied into the
    allocated region.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    expression from,to,size,flag;
    position p;
    identifier l1,l2;
    @@

    - to = \(kmalloc@p\|kzalloc@p\)(size,flag);
    + to = memdup_user(from,size);
    if (
    - to==NULL
    + IS_ERR(to)
    || ...) {

    }
    - if (copy_from_user(to, from, size) != 0) {
    -
    - }
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • Without this fix, init of the via82cxxx driver causes a oops with a
    stack resembling the one below, and the boot blocks between init of
    USB devices and launch of init (was easy to bisect by booting with
    init=/bin/sh).

    Pid: 279, comm: work_for_cpu Not tainted 2.6.34.1-00003-ga42ea77 #2
    Call Trace:
    [] ? warn_slowpath_common+0x76/0x8c
    [] ? warn_slowpath_fmt+0x40/0x45
    [] ? printk+0x40/0x47
    [] ? enable_irq+0x3e/0x64
    [] ? ide_probe_port+0x55c/0x589 [ide_core]
    [] ? ide_host_register+0x273/0x628 [ide_core]
    [] ? ide_pci_init_two+0x4da/0x5c5 [ide_core]
    [] ? up+0xe/0x36
    [] ? release_console_sem+0x17e/0x1ae
    [] ? klist_iter_exit+0x14/0x1e
    [] ? bus_find_device+0x75/0x83
    [] ? via_init_one+0x269/0x28a [via82cxxx]
    [] ? init_chipset_via82cxxx+0x0/0x1ea [via82cxxx]
    [] ? do_work_for_cpu+0x0/0x1b
    [] ? local_pci_probe+0x12/0x16
    [] ? do_work_for_cpu+0xb/0x1b
    [] ? kthread+0x75/0x7d
    [] ? kernel_thread_helper+0x4/0x10
    [] ? kthread+0x0/0x7d
    [] ? kernel_thread_helper+0x0/0x10
    ---[ end trace 89c8cb70379b5bda ]---

    The typo was introduced in a354ae8747d0687093ce244e76b15b6174d2f098,
    and affects 2.6.33-rc4 and later.

    Signed-off-by: Yann Dirson
    Signed-off-by: David S. Miller

    Yann Dirson
     
  • ide_cd_error_cmd() can complete an erroneous request with leftover
    buffers. Signal this with its return value so that the request is not
    accessed after its completion in the irq handler and we oops.

    Cc: # 32.x 33.x 34.x
    Signed-off-by: Borislav Petkov
    Signed-off-by: David S. Miller

    Borislav Petkov
     
  • Signed-off-by: Paul Bolle
    Signed-off-by: Jiri Kosina

    Paul Bolle
     
  • To avoid more patches, I also fixed other spelling
    and grammar bugs when they were in the same or
    following line:

    successfull -> successful
    parse -> parses
    controler -> controller
    controlers -> controllers

    Cc: Jiri Kosina
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Stefan Weil
    Signed-off-by: Jiri Kosina

    Stefan Weil
     
  • This reverts commit 04b4b88cca0ebe3813b4b6f014fb6a0db380b137.

    While the original problem only caused a slight disturbance on the
    edge of the touchpad, the commit above to "fix" it completely breaks
    operation on some other models such as mine.

    We'll sort this out separately, revert the patch for now.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • Based on patches from Sonny Rao and Milton Miller...

    Combined the patches to fix up clean_tx_irq and clean_rx_irq.

    The PowerPC architecture does not require loads to independent bytes
    to be ordered without adding an explicit barrier.

    In ixgbe_clean_rx_irq we load the status bit then load the packet data.
    With packet split disabled if these loads go out of order we get a
    stale packet, but we will notice the bad sequence numbers and drop it.

    The problem occurs with packet split enabled where the TCP/IP header
    and data are in different descriptors. If the reads go out of order
    we may have data that doesn't match the TCP/IP header. Since we use
    hardware checksumming this bad data is never verified and it makes it
    all the way to the application.

    This bug was found during stress testing and adding this barrier has
    been shown to fix it. The bug can manifest as a data integrity issue
    (bad payload data) or as a BUG in skb_pull().

    This was a nasty bug to hunt down, if people agree with the fix I think
    it's a candidate for stable.

    Previously Submitted to e1000-devel only for ixgbe

    http://marc.info/?l=e1000-devel&m=126593062701537&w=3

    We've now seen this problem hit with other device drivers (e1000e mostly)
    So I'm resubmitting with fixes for other Intel Device Drivers with
    similar issues.

    CC: Milton Miller
    CC: Anton Blanchard
    CC: Sonny Rao
    CC: stable
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jeff Kirsher
     
  • Building ixgbe without DCB_CONFIG and FCOE_CONFIG will cause
    a build error. This resolves the build error by wrapping
    the fcoe.up in CONFIG_IXGBE_DCB ifdefs.

    Also frames were being priority VLAN tagged even without DCB
    enabled. This fixes this so that 8021Q priority tags are
    only added with DCB actually enabled.

    Reported-by: divya
    Reported-by: Jon Mason
    Signed-off-by: John Fastabend
    Tested-by: Stephen Ko
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    John Fastabend