22 Aug, 2012

12 commits

  • Commit f0f57b2b1488 ("mm: move hugepage test examples to
    tools/testing/selftests/vm") moved map_hugetlb.c, hugepage-shm.c and
    hugepage-mmap.c tests into tools/testing/selftests/vm/ directory, but it
    didn't update hugetlbpage.txt

    Signed-off-by: Zhouping Liu
    Acked-by: Dave Young
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhouping Liu
     
  • Commit b13edf7ff2dd ("checkpatch: add checks for do {} while (0) macro
    misuses") added a test that is overly simplistic for single statement
    macros.

    Macros that start with control tests should be enclosed in a do {} while
    (0) loop.

    Add the necessary control tests to the check.

    Signed-off-by: Joe Perches
    Acked-by: Andy Whitcroft
    Tested-by: Franz Schrober
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Each page mapped in a process's address space must be correctly
    accounted for in _mapcount. Normally the rules for this are
    straightforward but hugetlbfs page table sharing is different. The page
    table pages at the PMD level are reference counted while the mapcount
    remains the same.

    If this accounting is wrong, it causes bugs like this one reported by
    Larry Woodman:

    kernel BUG at mm/filemap.c:135!
    invalid opcode: 0000 [#1] SMP
    CPU 22
    Modules linked in: bridge stp llc sunrpc binfmt_misc dcdbas microcode pcspkr acpi_pad acpi]
    Pid: 18001, comm: mpitest Tainted: G W 3.3.0+ #4 Dell Inc. PowerEdge R620/07NDJ2
    RIP: 0010:[] [] __delete_from_page_cache+0x15d/0x170
    Process mpitest (pid: 18001, threadinfo ffff880428972000, task ffff880428b5cc20)
    Call Trace:
    delete_from_page_cache+0x40/0x80
    truncate_hugepages+0x115/0x1f0
    hugetlbfs_evict_inode+0x18/0x30
    evict+0x9f/0x1b0
    iput_final+0xe3/0x1e0
    iput+0x3e/0x50
    d_kill+0xf8/0x110
    dput+0xe2/0x1b0
    __fput+0x162/0x240

    During fork(), copy_hugetlb_page_range() detects if huge_pte_alloc()
    shared page tables with the check dst_pte == src_pte. The logic is if
    the PMD page is the same, they must be shared. This assumes that the
    sharing is between the parent and child. However, if the sharing is
    with a different process entirely then this check fails as in this
    diagram:

    parent
    |
    ------------>pmd
    src_pte----------> data page
    ^
    other--------->pmd--------------------|
    ^
    child-----------|
    dst_pte

    For this situation to occur, it must be possible for Parent and Other to
    have faulted and failed to share page tables with each other. This is
    possible due to the following style of race.

    PROC A PROC B
    copy_hugetlb_page_range copy_hugetlb_page_range
    src_pte == huge_pte_offset src_pte == huge_pte_offset
    !src_pte so no sharing !src_pte so no sharing

    (time passes)

    hugetlb_fault hugetlb_fault
    huge_pte_alloc huge_pte_alloc
    huge_pmd_share huge_pmd_share
    LOCK(i_mmap_mutex)
    find nothing, no sharing
    UNLOCK(i_mmap_mutex)
    LOCK(i_mmap_mutex)
    find nothing, no sharing
    UNLOCK(i_mmap_mutex)
    pmd_alloc pmd_alloc
    LOCK(instantiation_mutex)
    fault
    UNLOCK(instantiation_mutex)
    LOCK(instantiation_mutex)
    fault
    UNLOCK(instantiation_mutex)

    These two processes are not poing to the same data page but are not
    sharing page tables because the opportunity was missed. When either
    process later forks, the src_pte == dst pte is potentially insufficient.
    As the check falls through, the wrong PTE information is copied in
    (harmless but wrong) and the mapcount is bumped for a page mapped by a
    shared page table leading to the BUG_ON.

    This patch addresses the issue by moving pmd_alloc into huge_pmd_share
    which guarantees that the shared pud is populated in the same critical
    section as pmd. This also means that huge_pte_offset test in
    huge_pmd_share is serialized correctly now which in turn means that the
    success of the sharing will be higher as the racing tasks see the pud
    and pmd populated together.

    Race identified and changelog written mostly by Mel Gorman.

    {akpm@linux-foundation.org: attempt to make the huge_pmd_share() comment comprehensible, clean up coding style]
    Reported-by: Larry Woodman
    Tested-by: Larry Woodman
    Reviewed-by: Mel Gorman
    Signed-off-by: Michal Hocko
    Reviewed-by: Rik van Riel
    Cc: David Gibson
    Cc: Ken Chen
    Cc: Cong Wang
    Cc: Hillf Danton
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Delete code which sets SCSI status incorrectly as it's already been set
    correctly above this incorrect code. The bug was introduced in 2009 by
    commit b0e15f6db111 ("cciss: fix typo that causes scsi status to be
    lost.")

    Signed-off-by: Stephen M. Cameron
    Reported-by: Roel van Meer
    Tested-by: Roel van Meer
    Cc: Jens Axboe
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen M. Cameron
     
  • Update two mount options(discard, nfs) in vfat.txt.

    Signed-off-by: Namjae Jeon
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Namjae Jeon
     
  • Occasionally an isolated BUG_ON(mm->nr_ptes) gets reported, indicating
    that not all the page tables allocated could be found and freed when
    exit_mmap() tore down the user address space.

    There's usually nothing we can say about it, beyond that it's probably a
    sign of some bad memory or memory corruption; though it might still
    indicate a bug in vma or page table management (and did recently reveal a
    race in THP, fixed a few months ago).

    But one overdue change we can make is from BUG_ON to WARN_ON.

    It's fairly likely that the system will crash shortly afterwards in some
    other way (for example, the BUG_ON(page_mapped(page)) in
    __delete_from_page_cache(), once an inode mapped into the lost page tables
    gets evicted); but might tell us more before that.

    Change the BUG_ON(page_mapped) to WARN_ON too? Later perhaps: I'm less
    eager, since that one has several times led to fixes.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Signed-off-by: Jens Rottmann
    Cc: Thomas Gleixner
    Cc: John Stultz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jens Rottmann
     
  • Pull m68knommu arch fixes from Greg Ungerer:
    "This contains 2 fixes. One fixes compilation of ColdFire clk code,
    the other makes sure we use the generic atomic64 support on all m68k
    targets."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: select CONFIG_GENERIC_ATOMIC64 for all m68k CPU types
    m68knommu: select CONFIG_HAVE_CLK for ColdFire CPU types

    Linus Torvalds
     
  • …git/linusw/linux-pinctrl

    Pull pin control fixes from Linus Walleij:
    - Fixed Nomadik errorpath
    - Fixed documentation spelling errors
    - Forward-declare struct device in a header file
    - Remove some extraneous code lines when getting pinctrl states
    - Correct the i.MX51 configure register number
    - Fix the Nomadik keypad function group list

    * tag 'pinctrl-fixes-v3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl/nomadik: add kp_b_2 keyboard function group list
    pinctrl: imx51: fix .conf_reg of MX51_PAD_SD2_CMD__CSPI_MOSI
    trivial: pinctrl core: remove extraneous code lines
    pinctrl: header: trivial: declare struct device
    Documentation/pinctrl.txt: Fix some misspelled macros
    pinctrl/nomadik: fix null in irqdomain errorpath

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "This update became slightly bigger than usual for rc3, but most of the
    commits are small and trivial. A large chunk is found for HD-audio
    ca0132 codec, which is mostly a clean up of the specific code, to make
    SPDIF working properly, and also in the new ASoC Arizona driver.

    One important fix is for usb-audio Oops fix since 3.5. We still see
    some EHCI related bandwidth problem, but usb-audio should be more
    stabilized now.

    Other than that, a Kconfig fix is spread over files, and various
    HD-audio and ASoC fixes as usual, in addition to Julia's error path
    fixes."

    * tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (42 commits)
    ALSA: snd-als100: fix suspend/resume
    ALSA: hda - Fix leftover codec->power_transition
    ALSA: hda - don't create dysfunctional mixer controls for ca0132
    ALSA: sound/ppc/snd_ps3.c: fix error return code
    ALSA: sound/pci/rme9652/hdspm.c: fix error return code
    ALSA: sound/pci/sis7019.c: fix error return code
    ALSA: sound/pci/ctxfi/ctatc.c: fix error return code
    ALSA: sound/atmel/ac97c.c: fix error return code
    ALSA: sound/atmel/abdac.c: fix error return code
    ALSA: fix pcm.h kernel-doc warning and notation
    sound: oss/sb_audio: prevent divide by zero bug
    ASoC: wm9712: Fix inverted capture volume
    ASoC: wm9712: Fix microphone source selection
    ASoC: wm5102: Remove DRC2
    ALSA: hda - Don't send invalid volume knob command on IDT 92hd75bxx
    ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream
    ALSA: lx6464es: Add a missing error check
    ALSA: hda - Fix 'Beep Playback Switch' with no underlying mute switch
    ASoC: jack: Always notify full jack status
    ASoC: wm5110: Add missing input PGA routes
    ...

    Linus Torvalds
     
  • It seems commit 4a9d4b024a31 ("switch fput to task_work_add") re-
    introduced the problem addressed in 944be0b22472 ("close_files(): add
    scheduling point")

    If a server process with a lot of files (say 2 million tcp sockets) is
    killed, we can spend a lot of time in task_work_run() and trigger a soft
    lockup.

    Signed-off-by: Eric Dumazet
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     
  • So we've had a fair few reports of fbcon handover breakage between
    efi/vesafb and i915 surface recently, so I dedicated a couple of
    days to finding the problem.

    Essentially the last thing we saw was the conflicting framebuffer
    message and that was all.

    So after much tracing with direct netconsole writes (printks
    under console_lock not so useful), I think I found the race.

    Thread A (driver load) Thread B (timer thread)
    unbind_con_driver -> |
    bind_con_driver -> |
    vc->vc_sw->con_deinit -> |
    fbcon_deinit -> |
    console_lock() |
    | |
    | fbcon_flashcursor timer fires
    | console_lock()
    del_timer_sync
    (BOOM)

    Of course because all of this is under the console lock,
    we never see anything, also since we also just unbound the active
    console guess what we never see anything.

    Hopefully this fixes the problem for anyone seeing vesafb->kms
    driver handoff.

    Signed-off-by: David Airlie
    Acked-by: Alan Cox
    Cc: stable@vger.kernel.org
    Tested-by: Josh Boyer
    Signed-off-by: Linus Torvalds

    Dave Airlie
     

21 Aug, 2012

22 commits

  • snd_card_als100_probe() does not set pcm field in struct snd_sb.
    As a result, PCM is not suspended and applications don't know that they need
    to resume the playback.

    Tested with Labway A381-F20 card (ALS120).

    Signed-off-by: Ondrej Zary
    Signed-off-by: Takashi Iwai

    Ondrej Zary
     
  • Pull PCI fixes from Bjorn Helgaas:
    "Here are two patches from Rafael Wysocki.

    One fixes an EHCI-related hibernation crash on ASUS boxes. We fixed a
    similar suspend issue in v3.6-rc1, and this applies the same fix to
    the hibernate path.

    The other fixes D3/D3cold/D4 messages related to the D3cold support we
    merged in v3.6-rc1."

    (Removed redundant top non-fast-forward merge commit from pulled branch)

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: EHCI: Fix crash during hibernation on ASUS computers
    PCI / PM: Fix D3/D3cold/D4 messages printed by acpi_pci_set_power_state()

    Linus Torvalds
     
  • Pull config cleanup for ia64 from Tony Luck:
    "Clean out references to dead CONFIG_MISC_DEVICES option"

    * tag 'please-pull-ia64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] defconfig: Remove CONFIG_MISC_DEVICES

    Linus Torvalds
     
  • Pull more USB patches from Greg Kroah-Hartman:
    "Here are 10 more USB patches for 3.6-rc3. They all fix reported
    problems (build problems for one of them, and easily repeatable oopses
    for the others.)

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'usb-3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    gpu/mfd/usb: Fix USB randconfig problems
    USB: CDC ACM: Fix NULL pointer dereference
    USB: emi62: remove __devinit* from the struct usb_device_id table
    USB: winbond: remove __devinit* from the struct usb_device_id table
    USB: vt6656: remove __devinit* from the struct usb_device_id table
    USB: rtl8187: remove __devinit* from the struct usb_device_id table
    USB: p54usb: remove __devinit* from the struct usb_device_id table
    USB: spca506: remove __devinit* from the struct usb_device_id table
    USB: jl2005bcd: remove __devinit* from the struct usb_device_id table
    USB: smsusb: remove __devinit* from the struct usb_device_id table

    Linus Torvalds
     
  • Pull one more driver core fix from Greg Kroah-Hartman:
    "Here is one fix for the dmesg line corruption problem that the
    previous set of patches caused.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'driver-core-3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    dyndbg: fix for SOH in logging messages

    Linus Torvalds
     
  • Pull x86 platform driver update from Matthew Garrett:
    "Some small updates for a few drivers, and some hardware enablement for
    new Ideapads and the gmux hardware in the latest Macs.

    This code won't run on older devices and has been well tested on new
    ones, so low risk of regressions."

    * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
    ideapad: add Lenovo IdeaPad Z570 support (part 3)
    ideapad: add Lenovo IdeaPad Z570 support (part 2)
    ideapad: add Lenovo IdeaPad Z570 support (part 1)
    classmate-laptop: always call input_sync() after input_report_switch()
    thinkpad-acpi: recognize latest V-Series using DMI_BIOS_VENDOR
    dell-laptop: Fixed typo in touchpad LED quirk
    vga_switcheroo: Don't require handler init callback
    vga_switcheroo: Remove assumptions about registration/unregistration ordering
    apple-gmux: Add display mux support
    apple-gmux: Fix kconfig dependencies
    asus-wmi: record wlan status while controlled by userapp
    apple_gmux: Fix ACPI video unregister
    apple_gmux: Add support for newer hardware
    gmux: Add generic write32 function

    Linus Torvalds
     
  • Pull a hwmon fix from Guenter Roeck:
    "One patch with section conflict fixes."

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    sections: Fix section conflicts in drivers/hwmon

    Linus Torvalds
     
  • Pull spi fixes from Mark Brown:
    "Grant is still away so another pull request with some fairly minor
    fixes, the most notable of which are several fixes for some common
    error patterns with the reference counting spi_master_get/put do."

    * tag 'spi-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc:
    spi/coldfire-qspi: Drop extra calls to spi_master_get in suspend/resume functions
    spi: spi-coldfire-qspi: Drop extra spi_master_put in device remove function
    spi/pl022: fix spi-pl022 pm enable at probe
    spi/bcm63xx: Ensure that memory is freed only after it is no longer used
    spi: omap2-mcspi: Fix the error handling in probe
    spi/s3c64xx: Add missing static storage class specifiers

    Linus Torvalds
     
  • commit 7c5763b845 (drivers:misc: Remove MISC_DEVICES config option) removed
    CONFIG_MISC_DEVICES option, so remove the occurrences from the config files
    as well.

    Signed-off-by: Fabio Estevam
    Signed-off-by: Tony Luck

    Fabio Estevam
     
  • Pull regulator fixes from Mark Brown:
    "A bunch of fixes which are a combination of minor fixes that have been
    shaken down due to greater testing exposure, the biggest block of
    which are for the Palmas driver which hadn't had all the changes
    required for mainline properly tested when it was merged."

    * tag 'regulator-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: twl-regulator: fix up VINTANA1/VINTANA2
    regulator: core: request only valid gpio pins for regulator enable
    regulator: twl: Remove references to the twl4030 regulator
    regulator: gpio-regulator: Split setting of voltages and currents
    regulator: ab3100: add missing voltage table
    regulator: anatop: Fix wrong mask used in anatop_get_voltage_sel
    regulator: tps6586x: correct vin pin for sm0/sm1/sm2
    regulator: palmas: Fix palmas_probe error handling
    regulator: palmas: Call palmas_ldo_[read|write] in palmas_ldo_init
    regulator: palmas: Fix regmap offsets for PALMAS_REG_SMPS10 vsel_reg
    regulator: palmas: Fix calculating selector in palmas_map_voltage_ldo

    Linus Torvalds
     
  • Pull IOMMU fixes from Joerg Roedel:
    "Two fixes are necessary. One patch fixes a boot crash on MacBook Air
    with interrupt remapping enabled and the other patch fixes a
    regression (which causes a boot crash on AMD IOMMUv2 systems too) in
    the init code of the AMD IOMMU driver."

    * tag 'iommu-fixes-v3.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/amd: Fix wrong check for ARRAY_SIZE()
    irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU

    Linus Torvalds
     
  • When the codec turn-on operation is canceled by the immediate
    power-on, the driver left the power_transition flag as is.
    This caused the persistent avoidance of power-save behavior.

    Cc: [v3.5+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • ASoC: Additional updates for 3.6

    A batch more bugfixes, all driver-specific and fairly small and
    unremarkable in a global context. The biggest batch are for the newly
    added Arizona drivers.

    Takashi Iwai
     
  • Fix config warning:

    warning: ( ... && DRM_USB) selects USB which has unmet direct dependencies
    (USB_SUPPORT && USB_ARCH_HAS_HCD)

    and build error:
    ERROR: "usb_speed_string" [drivers/usb/core/usbcore.ko] undefined!

    by adding the missing dependency on USB_ARCH_HAS_HCD to DRM_UDL and DRM_USB.

    This exposes:
    drivers/video/Kconfig:36:error: recursive dependency detected!
    drivers/video/Kconfig:36: symbol FB is selected by DRM_KMS_HELPER
    drivers/gpu/drm/Kconfig:28: symbol DRM_KMS_HELPER is selected by DRM_UDL
    drivers/gpu/drm/udl/Kconfig:1: symbol DRM_UDL depends on USB_ARCH_HAS_HCD
    drivers/usb/Kconfig:78: symbol USB_ARCH_HAS_HCD depends on USB_ARCH_HAS_OHCI
    drivers/usb/Kconfig:16: symbol USB_ARCH_HAS_OHCI depends on I2C
    drivers/i2c/Kconfig:5: symbol I2C is selected by FB_DDC
    drivers/video/Kconfig:86: symbol FB_DDC is selected by FB_CYBER2000_DDC
    drivers/video/Kconfig:385: symbol FB_CYBER2000_DDC depends on FB_CYBER2000
    drivers/video/Kconfig:373: symbol FB_CYBER2000 depends on FB

    which is due to drivers/usb/Kconfig:
    config USB_ARCH_HAS_OHCI
    ...
    default y if ARCH_PNX4008 && I2C

    Fix by dropping I2C from the above dependency; logic is that this is not a
    platform dependency but a configuration dependency: the _architecture_ still
    supports USB even is I2C is not selected.

    This exposes:
    drivers/video/Kconfig:36:error: recursive dependency detected!
    drivers/video/Kconfig:36: symbol FB is selected by DRM_KMS_HELPER
    drivers/gpu/drm/Kconfig:28: symbol DRM_KMS_HELPER is selected by DRM_UDL
    drivers/gpu/drm/udl/Kconfig:1: symbol DRM_UDL depends on USB_ARCH_HAS_HCD
    drivers/usb/Kconfig:78: symbol USB_ARCH_HAS_HCD depends on USB_ARCH_HAS_OHCI
    drivers/usb/Kconfig:17: symbol USB_ARCH_HAS_OHCI depends on MFD_TC6393XB
    drivers/mfd/Kconfig:396: symbol MFD_TC6393XB depends on GPIOLIB
    drivers/gpio/Kconfig:35: symbol GPIOLIB is selected by FB_VIA
    drivers/video/Kconfig:1560: symbol FB_VIA depends on FB

    which can be fixed by having MFD_TC6393XB select GPIOLIB instead of depending on
    it.

    Signed-off-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Guenter Roeck
     
  • Pull x86 fixes from Ingo Molnar.

    A x32 socket ABI fix with a -stable backport tag among other fixes.

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x32: Use compat shims for {g,s}etsockopt
    Revert "x86-64/efi: Use EFI to deal with platform wall clock"
    x86, apic: fix broken legacy interrupts in the logical apic mode
    x86, build: Globally set -fno-pic
    x86, avx: don't use avx instructions with "noxsave" boot param

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar.

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Fix migration thread runtime bogosity
    sched,rt: fix isolated CPUs leaving root_task_group indefinitely throttled
    sched,cgroup: Fix up task_groups list
    sched: fix divide by zero at {thread_group,task}_times
    sched, cgroup: Reduce rq->lock hold times for large cgroup hierarchies

    Linus Torvalds
     
  • Pull x86 perf fixes from Ingo Molnar.

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: disable PEBS on a guest entry.
    perf/x86: Add Intel Westmere-EX uncore support
    perf/x86: Fixes for Nehalem-EX uncore driver
    perf, x86: Fix uncore_types_exit section mismatch

    Linus Torvalds
     
  • Pull a mutex fix from Ingo Molnar.

    Fix the fastpath_lock failure contention flag for xchg-based mutexes.

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    mutex: Place lock in contended state after fastpath_lock failure

    Linus Torvalds
     
  • compat_sys_{read,write}v() need the same "pass a copy of file->f_pos" thing
    as sys_{read,write}{,v}().

    Signed-off-by: Al Viro
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • The patch adds support for Lenovo IdeaPad Z570 laptop. It makes all special
    keys working, adds possibility to control fan like Windows does, controls
    Touchpad Disabled LED, toggles touchpad state via keyboard controller and
    corrects touchpad behavior on resume from suspend. It is new, modified
    version of patch. Now it does not depend on psmouse and does not need patching
    of input subsystem.

    Signed-off-by: Maxim Mikityanskiy

    This is the part 3 for fan control

    Signed-off-by: Ike Panhc
    Signed-off-by: Matthew Garrett

    Maxim Mikityanskiy
     
  • The patch adds support for Lenovo IdeaPad Z570 laptop. It makes all special
    keys working, adds possibility to control fan like Windows does, controls
    Touchpad Disabled LED, toggles touchpad state via keyboard controller and
    corrects touchpad behavior on resume from suspend. It is new, modified
    version of patch. Now it does not depend on psmouse and does not need patching
    of input subsystem.

    Signed-off-by: Maxim Mikityanskiy

    This is part 2 for touchpad toggle

    Signed-off-by: Ike Panhc
    Signed-off-by: Matthew Garrett

    Maxim Mikityanskiy
     
  • The patch adds support for Lenovo IdeaPad Z570 laptop. It makes all special
    keys working, adds possibility to control fan like Windows does, controls
    Touchpad Disabled LED, toggles touchpad state via keyboard controller and
    corrects touchpad behavior on resume from suspend. It is new, modified
    version of patch. Now it does not depend on psmouse and does not need patching
    of input subsystem.

    Signed-off-by: Maxim Mikityanskiy

    This is part 1 for special button handling.

    Signed-off-by: Ike Panhc
    Signed-off-by: Matthew Garrett

    Maxim Mikityanskiy
     

20 Aug, 2012

6 commits

  • This is a series of fixes for CA0132, especially the missing SPDIF I/O
    and the mixer build errors.

    Takashi Iwai
     
  • It's possible that these amps are settable somehow, e g through
    secret codec verbs, but for now, don't create the controls (as
    they won't be working anyway, and cause errors in amixer).

    Cc: stable@kernel.org
    BugLink: https://bugs.launchpad.net/bugs/1038651
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • Initialize ret before returning on failure, as done elsewhere in the
    function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    (
    if@p1 (\(ret < 0\|ret != 0\))
    { ... return ret; }
    |
    ret@p1 = 0
    )
    ... when != ret = e1
    when != &ret
    *if(...)
    {
    ... when != ret = e2
    when forall
    return ret;
    }

    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Takashi Iwai

    Julia Lawall
     
  • Convert a nonnegative error return code to a negative one, as returned
    elsewhere in the function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    (
    if@p1 (\(ret < 0\|ret != 0\))
    { ... return ret; }
    |
    ret@p1 = 0
    )
    ... when != ret = e1
    when != &ret
    *if(...)
    {
    ... when != ret = e2
    when forall
    return ret;
    }

    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Takashi Iwai

    Julia Lawall
     
  • Initialize rc before returning on failure, as done elsewhere in the
    function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    (
    if@p1 (\(ret < 0\|ret != 0\))
    { ... return ret; }
    |
    ret@p1 = 0
    )
    ... when != ret = e1
    when != &ret
    *if(...)
    {
    ... when != ret = e2
    when forall
    return ret;
    }

    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Takashi Iwai

    Julia Lawall
     
  • Initialize err before returning on failure, as done elsewhere in the
    function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    (
    if@p1 (\(ret < 0\|ret != 0\))
    { ... return ret; }
    |
    ret@p1 = 0
    )
    ... when != ret = e1
    when != &ret
    *if(...)
    {
    ... when != ret = e2
    when forall
    return ret;
    }

    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Takashi Iwai

    Julia Lawall