18 Sep, 2013

2 commits

  • Pull HID updates from Jiri Kosina:
    "Fixes for CVE-2013-2897, CVE-2013-2895, CVE-2013-2897, CVE-2013-2894,
    CVE-2013-2893, CVE-2013-2891, CVE-2013-2890, CVE-2013-2889.

    All the bugs are triggerable only by specially crafted evil-on-purpose
    HW devices. Fixes by Kees Cook and Benjamin Tissoires"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: lenovo-tpkbd: fix leak if tpkbd_probe_tp fails
    HID: multitouch: validate indexes details
    HID: logitech-dj: validate output report details
    HID: validate feature and input report details
    HID: lenovo-tpkbd: validate output report details
    HID: LG: validate HID output report details
    HID: steelseries: validate output report details
    HID: sony: validate HID output report details
    HID: zeroplus: validate output report details
    HID: provide a helper for validating hid reports

    Linus Torvalds
     
  • Starting from v3.10 (probably commit f91e2590410b: "tty: Signal
    foreground group processes in hangup") disassociate_ctty() sends SIGCONT
    if tty && on_exit. This breaks LSB test-suite, in particular test8 in
    _exit.c and test40 in sigcon5.c.

    Put the "!on_exit" check back to restore the old behaviour.

    Review by Peter Hurley:
    "Yes, this regression was introduced by me in that commit. The effect
    of the regression is that ptys will receive a SIGCONT when, in similar
    circumstances, ttys would not.

    The fact that two test vectors accidentally tripped over this
    regression suggests that some other apps may as well.

    Thanks for catching this"

    Cc: stable@vger.kernel.org # v3.10+
    Signed-off-by: Oleg Nesterov
    Reported-by: Karel Srot
    Reviewed-by: Peter Hurley
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     

17 Sep, 2013

2 commits

  • Pull timer code update from Thomas Gleixner:
    - armada SoC clocksource overhaul with a trivial merge conflict
    - Minor improvements to various SoC clocksource drivers

    * 'timers/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: armada-370-xp: Add detailed clock requirements in devicetree binding
    clocksource: armada-370-xp: Get reference fixed-clock by name
    clocksource: armada-370-xp: Replace WARN_ON with BUG_ON
    clocksource: armada-370-xp: Fix device-tree binding
    clocksource: armada-370-xp: Introduce new compatibles
    clocksource: armada-370-xp: Use CLOCKSOURCE_OF_DECLARE
    clocksource: armada-370-xp: Simplify TIMER_CTRL register access
    clocksource: armada-370-xp: Use BIT()
    ARM: timer-sp: Set dynamic irq affinity
    ARM: nomadik: add dynamic irq flag to the timer
    clocksource: sh_cmt: 32-bit control register support
    clocksource: em_sti: Convert to devm_* managed helpers

    Linus Torvalds
     
  • Pull UBI fixes from Artem Bityutskiy:
    "Just a single fastmap fix plus a regression fix"

    * tag 'upstream-3.12-rc1' of git://git.infradead.org/linux-ubi:
    UBI: Fix invalidate_fastmap()
    UBI: Fix PEB leak in wear_leveling_worker()

    Linus Torvalds
     

16 Sep, 2013

3 commits

  • Pull MIPS fixes from Ralf Baechle:
    "These are four patches for three construction sites:

    - Fix register decoding for the combination of multi-core processors
    and multi-threading.

    - Two more fixes that are part of the ongoing DECstation resurrection
    work. One of these touches a DECstation-only network driver.

    - Finally Markos' trivial build fix for the AP/SP support.

    (With this applied now all MIPS defconfigs are building again)"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: kernel: vpe: Make vpe_attrs an array of pointers.
    MIPS: Fix SMP core calculations when using MT support.
    MIPS: DECstation I/O ASIC DMA interrupt handling fix
    MIPS: DECstation HRT initialization rearrangement

    Linus Torvalds
     
  • Pull x86 platform updates from Matthew Garrett:
    "Nothing amazing here, almost entirely cleanups and minor bugfixes and
    one bit of hardware enablement in the amilo-rfkill driver"

    * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
    platform/x86: panasonic-laptop: reuse module_acpi_driver
    samsung-laptop: fix config build error
    platform: x86: remove unnecessary platform_set_drvdata()
    amilo-rfkill: Enable using amilo-rfkill with the FSC Amilo L1310.
    wmi: parse_wdg() should return kernel error codes
    hp_wmi: Fix unregister order in hp_wmi_rfkill_setup()
    platform: replace strict_strto*() with kstrto*()
    x86: irst: use module_acpi_driver to simplify the code
    x86: smartconnect: use module_acpi_driver to simplify the code
    platform samsung-q10: use ACPI instead of direct EC calls
    thinkpad_acpi: add the ability setting TPACPI_LED_NONE by quirk
    thinkpad_acpi: return -NODEV while operating uninitialized LEDs

    Linus Torvalds
     
  • Pull misc SCSI driver updates from James Bottomley:
    "This patch set is a set of driver updates (megaraid_sas, fnic, lpfc,
    ufs, hpsa) we also have a couple of bug fixes (sd out of bounds and
    ibmvfc error handling) and the first round of esas2r checker fixes and
    finally the much anticipated big endian additions for megaraid_sas"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (47 commits)
    [SCSI] fnic: fnic Driver Tuneables Exposed through CLI
    [SCSI] fnic: Kernel panic while running sh/nosh with max lun cfg
    [SCSI] fnic: Hitting BUG_ON(io_req->abts_done) in fnic_rport_exch_reset
    [SCSI] fnic: Remove QUEUE_FULL handling code
    [SCSI] fnic: On system with >1.1TB RAM, VIC fails multipath after boot up
    [SCSI] fnic: FC stat param seconds_since_last_reset not getting updated
    [SCSI] sd: Fix potential out-of-bounds access
    [SCSI] lpfc 8.3.42: Update lpfc version to driver version 8.3.42
    [SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout
    [SCSI] lpfc 8.3.42: Fixed inconsistent spin lock usage.
    [SCSI] lpfc 8.3.42: Fix driver's abort loop functionality to skip IOs already getting aborted
    [SCSI] lpfc 8.3.42: Fixed failure to allocate SCSI buffer on PPC64 platform for SLI4 devices
    [SCSI] lpfc 8.3.42: Fix WARN_ON when driver unloads
    [SCSI] lpfc 8.3.42: Avoided making pci bar ioremap call during dual-chute WQ/RQ pci bar selection
    [SCSI] lpfc 8.3.42: Fixed driver iocbq structure's iocb_flag field running out of space
    [SCSI] lpfc 8.3.42: Fix crash on driver load due to cpu affinity logic
    [SCSI] lpfc 8.3.42: Fixed logging format of setting driver sysfs attributes hard to interpret
    [SCSI] lpfc 8.3.42: Fixed back to back RSCNs discovery failure.
    [SCSI] lpfc 8.3.42: Fixed race condition between BSG I/O dispatch and timeout handling
    [SCSI] lpfc 8.3.42: Fixed function mode field defined too small for not recognizing dual-chute mode
    ...

    Linus Torvalds
     

15 Sep, 2013

1 commit

  • Pull input update from Dmitry Torokhov:
    "The only change is David Hermann's new EVIOCREVOKE evdev ioctl that
    allows safely passing file descriptors to input devices to session
    processes and later being able to stop delivery of events through
    these fds so that inactive sessions will no longer receive user input
    that does not belong to them"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: evdev - add EVIOCREVOKE ioctl

    Linus Torvalds
     

14 Sep, 2013

2 commits

  • Pull hwmon fixes from Guenter Roeck:
    "Some more low risk cleanup patches:

    - Remove unnecessary pci_set_drvdata in k10temp driver from Jingoo Han
    - Fix return values in several drivers from Sachin Kamat
    - Remove redundant break in amc6821 driver from Sachin Kamat"

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (k10temp) remove unnecessary pci_set_drvdata()
    hwmon: (tmp421) Fix return value
    hwmon: (amc6821) Remove redundant break
    hwmon: (amc6821) Fix return value
    hwmon: (ibmaem) Fix return value
    hwmon: (emc2103) Fix return value

    Linus Torvalds
     
  • Pull aio changes from Ben LaHaise:
    "First off, sorry for this pull request being late in the merge window.
    Al had raised a couple of concerns about 2 items in the series below.
    I addressed the first issue (the race introduced by Gu's use of
    mm_populate()), but he has not provided any further details on how he
    wants to rework the anon_inode.c changes (which were sent out months
    ago but have yet to be commented on).

    The bulk of the changes have been sitting in the -next tree for a few
    months, with all the issues raised being addressed"

    * git://git.kvack.org/~bcrl/aio-next: (22 commits)
    aio: rcu_read_lock protection for new rcu_dereference calls
    aio: fix race in ring buffer page lookup introduced by page migration support
    aio: fix rcu sparse warnings introduced by ioctx table lookup patch
    aio: remove unnecessary debugging from aio_free_ring()
    aio: table lookup: verify ctx pointer
    staging/lustre: kiocb->ki_left is removed
    aio: fix error handling and rcu usage in "convert the ioctx list to table lookup v3"
    aio: be defensive to ensure request batching is non-zero instead of BUG_ON()
    aio: convert the ioctx list to table lookup v3
    aio: double aio_max_nr in calculations
    aio: Kill ki_dtor
    aio: Kill ki_users
    aio: Kill unneeded kiocb members
    aio: Kill aio_rw_vect_retry()
    aio: Don't use ctx->tail unnecessarily
    aio: io_cancel() no longer returns the io_event
    aio: percpu ioctx refcount
    aio: percpu reqs_available
    aio: reqs_active -> reqs_available
    aio: fix build when migration is disabled
    ...

    Linus Torvalds
     

13 Sep, 2013

22 commits

  • If tpkbd_probe_tp() bails out, the probe() function return an error,
    but hid_hw_stop() is never called.

    fixes:
    https://bugzilla.redhat.com/show_bug.cgi?id=1003998

    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • When working on report indexes, always validate that they are in bounds.
    Without this, a HID device could report a malicious feature report that
    could trick the driver into a heap overflow:

    [ 634.885003] usb 1-1: New USB device found, idVendor=0596, idProduct=0500
    ...
    [ 676.469629] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten

    Note that we need to change the indexes from s8 to s16 as they can
    be between -1 and 255.

    CVE-2013-2897

    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires
    Acked-by: Kees Cook
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • A HID device could send a malicious output report that would cause the
    logitech-dj HID driver to leak kernel memory contents to the device, or
    trigger a NULL dereference during initialization:

    [ 304.424553] usb 1-1: New USB device found, idVendor=046d, idProduct=c52b
    ...
    [ 304.780467] BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
    [ 304.781409] IP: [] logi_dj_recv_send_report.isra.11+0x1a/0x90

    CVE-2013-2895

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • When dealing with usage_index, be sure to properly use unsigned instead of
    int to avoid overflows.

    When working on report fields, always validate that their report_counts are
    in bounds.
    Without this, a HID device could report a malicious feature report that
    could trick the driver into a heap overflow:

    [ 634.885003] usb 1-1: New USB device found, idVendor=0596, idProduct=0500
    ...
    [ 676.469629] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten

    CVE-2013-2897

    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires
    Acked-by: Kees Cook
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • A HID device could send a malicious output report that would cause the
    lenovo-tpkbd HID driver to write just beyond the output report allocation
    during initialization, causing a heap overflow:

    [ 76.109807] usb 1-1: New USB device found, idVendor=17ef, idProduct=6009
    ...
    [ 80.462540] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten

    CVE-2013-2894

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • A HID device could send a malicious output report that would cause the
    lg, lg3, and lg4 HID drivers to write beyond the output report allocation
    during an event, causing a heap overflow:

    [ 325.245240] usb 1-1: New USB device found, idVendor=046d, idProduct=c287
    ...
    [ 414.518960] BUG kmalloc-4096 (Not tainted): Redzone overwritten

    Additionally, while lg2 did correctly validate the report details, it was
    cleaned up and shortened.

    CVE-2013-2893

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • A HID device could send a malicious output report that would cause the
    steelseries HID driver to write beyond the output report allocation
    during initialization, causing a heap overflow:

    [ 167.981534] usb 1-1: New USB device found, idVendor=1038, idProduct=1410
    ...
    [ 182.050547] BUG kmalloc-256 (Tainted: G W ): Redzone overwritten

    CVE-2013-2891

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • This driver must validate the availability of the HID output report and
    its size before it can write LED states via buzz_set_leds(). This stops
    a heap overflow that is possible if a device provides a malicious HID
    output report:

    [ 108.171280] usb 1-1: New USB device found, idVendor=054c, idProduct=0002
    ...
    [ 117.507877] BUG kmalloc-192 (Not tainted): Redzone overwritten

    CVE-2013-2890

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org #3.11
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • The zeroplus HID driver was not checking the size of allocated values
    in fields it used. A HID device could send a malicious output report
    that would cause the driver to write beyond the output report allocation
    during initialization, causing a heap overflow:

    [ 1442.728680] usb 1-1: New USB device found, idVendor=0c12, idProduct=0005
    ...
    [ 1466.243173] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten

    CVE-2013-2889

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • Many drivers need to validate the characteristics of their HID report
    during initialization to avoid misusing the reports. This adds a common
    helper to perform validation of the report exisitng, the field existing,
    and the expected number of values within the field.

    Signed-off-by: Kees Cook
    Cc: stable@vger.kernel.org
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Kees Cook
     
  • After the last architecture switched to generic hard irqs the config
    options HAVE_GENERIC_HARDIRQS & GENERIC_HARDIRQS and the related code
    for !CONFIG_GENERIC_HARDIRQS can be removed.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • This change complements commit d0da7c002f7b2a93582187a9e3f73891a01d8ee4
    and brings clear_ioasic_irq back, renaming it to clear_ioasic_dma_irq at
    the same time, to make I/O ASIC DMA interrupts functional.

    Unlike ordinary I/O ASIC interrupts DMA interrupts need to be deasserted
    by software by writing 0 to the respective bit in I/O ASIC's System
    Interrupt Register (SIR), similarly to how CP0.Cause.IP0 and CP0.Cause.IP1
    bits are handled in the CPU (the difference is SIR DMA interrupt bits are
    R/W0C so there's no need for an RMW cycle). Otherwise the handler is
    reentered over and over again.

    The only current user is the DEC LANCE Ethernet driver and its extremely
    uncommon DMA memory error handler that does not care when exactly the
    interrupt is cleared. Anticipating the use of DMA interrupts by the Zilog
    SCC driver this change however exports clear_ioasic_dma_irq for device
    drivers to choose the right application-specific sequence to clear the
    request explicitly rather than calling it implicitly in the .irq_eoi
    handler of `struct irq_chip'. Previously these interrupts were cleared in
    the .end handler of the said structure, before it was removed.

    Signed-off-by: Maciej W. Rozycki
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5826/
    Signed-off-by: Ralf Baechle

    Maciej W. Rozycki
     
  • Pull MIPS updates from Ralf Baechle:
    "This has been sitting in -next for a while with no objections and all
    MIPS defconfigs except one are building fine; that one platform got
    broken by another patch in your tree and I'm going to submit a patch
    separately.

    - a handful of fixes that didn't make 3.11
    - a few bits of Octeon 3 support with more to come for a later
    release
    - platform enhancements for Octeon, ath79, Lantiq, Netlogic and
    Ralink SOCs
    - a GPIO driver for the Octeon
    - some dusting off of the DECstation code
    - the usual dose of cleanups"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (65 commits)
    MIPS: DMA: Fix BUG due to smp_processor_id() in preemptible code
    MIPS: kexec: Fix random crashes while loading crashkernel
    MIPS: kdump: Skip walking indirection page for crashkernels
    MIPS: DECstation HRT calibration bug fixes
    MIPS: Export copy_from_user_page() (needed by lustre)
    MIPS: Add driver for the built-in PCI controller of the RT3883 SoC
    MIPS: DMA: For BMIPS5000 cores flush region just like non-coherent R10000
    MIPS: ralink: Add support for reset-controller API
    MIPS: ralink: mt7620: Add cpu-feature-override header
    MIPS: ralink: mt7620: Add spi clock definition
    MIPS: ralink: mt7620: Add wdt clock definition
    MIPS: ralink: mt7620: Improve clock frequency detection
    MIPS: ralink: mt7620: This SoC has EHCI and OHCI hosts
    MIPS: ralink: mt7620: Add verbose ram info
    MIPS: ralink: Probe clocksources from OF
    MIPS: ralink: Add support for systick timer found on newer ralink SoC
    MIPS: ralink: Add support for periodic timer irq
    MIPS: Netlogic: Built-in DTB for XLP2xx SoC boards
    MIPS: Netlogic: Add support for USB on XLP2xx
    MIPS: Netlogic: XLP2xx update for I2C controller
    ...

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "Lots of activity again this round for I/O performance optimizations
    (per-cpu IDA pre-allocation for vhost + iscsi/target), and the
    addition of new fabric independent features to target-core
    (COMPARE_AND_WRITE + EXTENDED_COPY).

    The main highlights include:

    - Support for iscsi-target login multiplexing across individual
    network portals
    - Generic Per-cpu IDA logic (kent + akpm + clameter)
    - Conversion of vhost to use per-cpu IDA pre-allocation for
    descriptors, SGLs and userspace page pointer list
    - Conversion of iscsi-target + iser-target to use per-cpu IDA
    pre-allocation for descriptors
    - Add support for generic COMPARE_AND_WRITE (AtomicTestandSet)
    emulation for virtual backend drivers
    - Add support for generic EXTENDED_COPY (CopyOffload) emulation for
    virtual backend drivers.
    - Add support for fast memory registration mode to iser-target (Vu)

    The patches to add COMPARE_AND_WRITE and EXTENDED_COPY support are of
    particular significance, which make us the first and only open source
    target to support the full set of VAAI primitives.

    Currently Linux clients are lacking upstream support to actually
    utilize these primitives. However, with server side support now in
    place for folks like MKP + ZAB working on the client, this logic once
    reserved for the highest end of storage arrays, can now be run in VMs
    on their laptops"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits)
    target/iscsi: Bump versions to v4.1.0
    target: Update copyright ownership/year information to 2013
    iscsi-target: Bump default TCP listen backlog to 256
    target: Fix >= v3.9+ regression in PR APTPL + ALUA metadata write-out
    iscsi-target; Bump default CmdSN Depth to 64
    iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set
    iscsi-target: Add thread_set->ts_activate_sem + use common deallocate
    iscsi-target: Fix race with thread_pre_handler flush_signals + ISCSI_THREAD_SET_DIE
    target: remove unused including
    iser-target: introduce fast memory registration mode (FRWR)
    iser-target: generalize rdma memory registration and cleanup
    iser-target: move rdma wr processing to a shared function
    target: Enable global EXTENDED_COPY setup/release
    target: Add Third Party Copy (3PC) bit in INQUIRY response
    target: Enable EXTENDED_COPY setup in spc_parse_cdb
    target: Add support for EXTENDED_COPY copy offload emulation
    target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check
    target: Add global device list for EXTENDED_COPY
    target: Make helpers non static for EXTENDED_COPY command setup
    target: Make spc_parse_naa_6h_vendor_specific non static
    ...

    Linus Torvalds
     
  • Merge more patches from Andrew Morton:
    "The rest of MM. Plus one misc cleanup"

    * emailed patches from Andrew Morton : (35 commits)
    mm/Kconfig: add MMU dependency for MIGRATION.
    kernel: replace strict_strto*() with kstrto*()
    mm, thp: count thp_fault_fallback anytime thp fault fails
    thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()
    thp: do_huge_pmd_anonymous_page() cleanup
    thp: move maybe_pmd_mkwrite() out of mk_huge_pmd()
    mm: cleanup add_to_page_cache_locked()
    thp: account anon transparent huge pages into NR_ANON_PAGES
    truncate: drop 'oldsize' truncate_pagecache() parameter
    mm: make lru_add_drain_all() selective
    memcg: document cgroup dirty/writeback memory statistics
    memcg: add per cgroup writeback pages accounting
    memcg: check for proper lock held in mem_cgroup_update_page_stat
    memcg: remove MEMCG_NR_FILE_MAPPED
    memcg: reduce function dereference
    memcg: avoid overflow caused by PAGE_ALIGN
    memcg: rename RESOURCE_MAX to RES_COUNTER_MAX
    memcg: correct RESOURCE_MAX to ULLONG_MAX
    mm: memcg: do not trap chargers with full callstack on OOM
    mm: memcg: rework and document OOM waiting and wakeup
    ...

    Linus Torvalds
     
  • We use NR_ANON_PAGES as base for reporting AnonPages to user. There's
    not much sense in not accounting transparent huge pages there, but add
    them on printing to user.

    Let's account transparent huge pages in NR_ANON_PAGES in the first place.

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Dave Hansen
    Cc: Andrea Arcangeli
    Cc: Al Viro
    Cc: Hugh Dickins
    Cc: Wu Fengguang
    Cc: Jan Kara
    Cc: Mel Gorman
    Cc: Andi Kleen
    Cc: Matthew Wilcox
    Cc: Hillf Danton
    Cc: Ning Qu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Pull vfs pile 4 from Al Viro:
    "list_lru pile, mostly"

    This came out of Andrew's pile, Al ended up doing the merge work so that
    Andrew didn't have to.

    Additionally, a few fixes.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (42 commits)
    super: fix for destroy lrus
    list_lru: dynamically adjust node arrays
    shrinker: Kill old ->shrink API.
    shrinker: convert remaining shrinkers to count/scan API
    staging/lustre/libcfs: cleanup linux-mem.h
    staging/lustre/ptlrpc: convert to new shrinker API
    staging/lustre/obdclass: convert lu_object shrinker to count/scan API
    staging/lustre/ldlm: convert to shrinkers to count/scan API
    hugepage: convert huge zero page shrinker to new shrinker API
    i915: bail out earlier when shrinker cannot acquire mutex
    drivers: convert shrinkers to new count/scan API
    fs: convert fs shrinkers to new scan/count API
    xfs: fix dquot isolation hang
    xfs-convert-dquot-cache-lru-to-list_lru-fix
    xfs: convert dquot cache lru to list_lru
    xfs: rework buffer dispose list tracking
    xfs-convert-buftarg-lru-to-generic-code-fix
    xfs: convert buftarg LRU to generic code
    fs: convert inode and dentry shrinking to be node aware
    vmscan: per-node deferred work
    ...

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "A small batch of fixes that have trickled in over the last week of the
    merge window.

    Also included are few small devicetree updates for sunxi, since it
    enables me to use one of their newer boards (cubieboard2) for
    additional test coverage. The support for that SoC is new for 3.12,
    so there's no exposure to new regressions due to it"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: sun7i: olinuxino-micro: Enable the EMAC
    ARM: dts: sun7i: cubieboard2: Enable the EMAC
    ARM: dts: sun7i: Add the muxing options for the EMAC
    ARM: dts: sun7i: Enable the Ethernet in the A20
    i2c: davinci: Fix bad dev_get_platdata() conversion
    ARM: vexpress: allow dcscb and tc2_pm in a combined ARMv6+v7 build
    ARM: shmobile: lager: Do not use register_type field of struct sh_eth_plat_data
    ARM: pxa: ssp: Check return values from phandle lookups
    ARM: PCI: versatile: Fix SMAP register offsets
    ARM: PCI: versatile: Fix PCI I/O
    ARM: PCI: versatile: Fix map_irq function to match hardware
    ARM: ep93xx: Don't use modem interface on the second UART
    ARM: shmobile: r8a7779: Update early timer initialisation order

    Linus Torvalds
     
  • Pull led updates from Bryan Wu:
    "Sorry for the late pull request, since I'm just back from vacation.

    LED subsystem updates for 3.12:
    - pca9633 driver DT supporting and pca9634 chip supporting
    - restore legacy device attributes for lp5521
    - other fixing and updates"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (28 commits)
    leds: wm831x-status: Request a REG resource
    leds: trigger: ledtrig-backlight: Fix invalid memory access in fb_event notification callback
    leds-pca963x: Fix device tree parsing
    leds-pca9633: Rename to leds-pca963x
    leds-pca9633: Add mutex to the ledout register
    leds-pca9633: Unique naming of the LEDs
    leds-pca9633: Add support for PCA9634
    leds: lp5562: use LP55xx common macros for device attributes
    Documentation: leds-lp5521,lp5523: update device attribute information
    leds: lp5523: remove unnecessary writing commands
    leds: lp5523: restore legacy device attributes
    leds: lp5523: LED MUX configuration on initializing
    leds: lp5523: make separate API for loading engine
    leds: lp5521: remove unnecessary writing commands
    leds: lp5521: restore legacy device attributes
    leds: lp55xx: add common macros for device attributes
    leds: lp55xx: add common data structure for program
    Documentation: leds: Fix a typo
    leds: ss4200: Fix incorrect placement of __initdata
    leds: clevo-mail: Fix incorrect placement of __initdata
    ...

    Linus Torvalds
     
  • Pull IOMMU Updates from Joerg Roedel:
    "This round the updates contain:

    - A new driver for the Freescale PAMU IOMMU from Varun Sethi.

    This driver has cooked for a while and required changes to the
    IOMMU-API and infrastructure that were already merged before.

    - Updates for the ARM-SMMU driver from Will Deacon

    - Various fixes, the most important one is probably a fix from Alex
    Williamson for a memory leak in the VT-d page-table freeing code

    In summary not all that much. The biggest part in the diffstat is the
    new PAMU driver"

    * tag 'iommu-updates-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    intel-iommu: Fix leaks in pagetable freeing
    iommu/amd: Fix resource leak in iommu_init_device()
    iommu/amd: Clean up unnecessary MSI/MSI-X capability find
    iommu/arm-smmu: Simplify VMID and ASID allocation
    iommu/arm-smmu: Don't use VMIDs for stage-1 translations
    iommu/arm-smmu: Tighten up global fault reporting
    iommu/arm-smmu: Remove broken big-endian check
    iommu/fsl: Remove unnecessary 'fsl-pamu' prefixes
    iommu/fsl: Fix whitespace problems noticed by git-am
    iommu/fsl: Freescale PAMU driver and iommu implementation.
    iommu/fsl: Add additional iommu attributes required by the PAMU driver.
    powerpc: Add iommu domain pointer to device archdata
    iommu/exynos: Remove dead code (set_prefbuf)

    Linus Torvalds
     
  • …linux/kernel/git/xen/tip

    Pull Xen balloon driver bug-fixes from Stefano Stabellini:
    - fix a preemption bug in xen/balloon.c;
    - remove an harmful BUG_ON in xen/balloon.c that can trigger in
    non-erroneous situations.

    * tag 'stable/for-linus-3.12-rc0-tag-three' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/balloon: remove BUG_ON in increase_reservation
    xen/balloon: ensure preemption is disabled when using a scratch page

    Linus Torvalds
     
  • Pull ACPI and power management fixes from Rafael Wysocki:
    "All of these commits are fixes that have emerged recently and some of
    them fix bugs introduced during this merge window.

    Specifics:

    1) ACPI-based PCI hotplug (ACPIPHP) fixes related to spurious events

    After the recent ACPIPHP changes we've seen some interesting
    breakage on a system that triggers device check notifications
    during boot for non-existing devices. Although those
    notifications are really spurious, we should be able to deal with
    them nevertheless and that shouldn't introduce too much overhead.
    Four commits to make that work properly.

    2) Memory hotplug and hibernation mutual exclusion rework

    This was maent to be a cleanup, but it happens to fix a classical
    ABBA deadlock between system suspend/hibernation and ACPI memory
    hotplug which is possible if they are started roughly at the same
    time. Three commits rework memory hotplug so that it doesn't
    acquire pm_mutex and make hibernation use device_hotplug_lock
    which prevents it from racing with memory hotplug.

    3) ACPI Intel LPSS (Low-Power Subsystem) driver crash fix

    The ACPI LPSS driver crashes during boot on Apple Macbook Air with
    Haswell that has slightly unusual BIOS configuration in which one
    of the LPSS device's _CRS method doesn't return all of the
    information expected by the driver. Fix from Mika Westerberg, for
    stable.

    4) ACPICA fix related to Store->ArgX operation

    AML interpreter fix for obscure breakage that causes AML to be
    executed incorrectly on some machines (observed in practice).
    From Bob Moore.

    5) ACPI core fix for PCI ACPI device objects lookup

    There still are cases in which there is more than one ACPI device
    object matching a given PCI device and we don't choose the one
    that the BIOS expects us to choose, so this makes the lookup take
    more criteria into account in those cases.

    6) Fix to prevent cpuidle from crashing in some rare cases

    If the result of cpuidle_get_driver() is NULL, which can happen on
    some systems, cpuidle_driver_ref() will crash trying to use that
    pointer and the Daniel Fu's fix prevents that from happening.

    7) cpufreq fixes related to CPU hotplug

    Stephen Boyd reported a number of concurrency problems with
    cpufreq related to CPU hotplug which are addressed by a series of
    fixes from Srivatsa S Bhat and Viresh Kumar.

    8) cpufreq fix for time conversion in time_in_state attribute

    Time conversion carried out by cpufreq when user space attempts to
    read /sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state
    won't work correcty if cputime_t doesn't map directly to jiffies.
    Fix from Andreas Schwab.

    9) Revert of a troublesome cpufreq commit

    Commit 7c30ed5 (cpufreq: make sure frequency transitions are
    serialized) was intended to address some known concurrency
    problems in cpufreq related to the ordering of transitions, but
    unfortunately it introduced several problems of its own, so I
    decided to revert it now and address the original problems later
    in a more robust way.

    10) Intel Haswell CPU models for intel_pstate from Nell Hardcastle.

    11) cpufreq fixes related to system suspend/resume

    The recent cpufreq changes that made it preserve CPU sysfs
    attributes over suspend/resume cycles introduced a possible NULL
    pointer dereference that caused it to crash during the second
    attempt to suspend. Three commits from Srivatsa S Bhat fix that
    problem and a couple of related issues.

    12) cpufreq locking fix

    cpufreq_policy_restore() should acquire the lock for reading, but
    it acquires it for writing. Fix from Lan Tianyu"

    * tag 'pm+acpi-fixes-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)
    cpufreq: Acquire the lock in cpufreq_policy_restore() for reading
    cpufreq: Prevent problems in update_policy_cpu() if last_cpu == new_cpu
    cpufreq: Restructure if/else block to avoid unintended behavior
    cpufreq: Fix crash in cpufreq-stats during suspend/resume
    intel_pstate: Add Haswell CPU models
    Revert "cpufreq: make sure frequency transitions are serialized"
    cpufreq: Use signed type for 'ret' variable, to store negative error values
    cpufreq: Remove temporary fix for race between CPU hotplug and sysfs-writes
    cpufreq: Synchronize the cpufreq store_*() routines with CPU hotplug
    cpufreq: Invoke __cpufreq_remove_dev_finish() after releasing cpu_hotplug.lock
    cpufreq: Split __cpufreq_remove_dev() into two parts
    cpufreq: Fix wrong time unit conversion
    cpufreq: serialize calls to __cpufreq_governor()
    cpufreq: don't allow governor limits to be changed when it is disabled
    ACPI / bind: Prefer device objects with _STA to those without it
    ACPI / hotplug / PCI: Avoid parent bus rescans on spurious device checks
    ACPI / hotplug / PCI: Use _OST to notify firmware about notify status
    ACPI / hotplug / PCI: Avoid doing too much for spurious notifies
    ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a field.
    ACPI / hotplug / PCI: Don't trim devices before scanning the namespace
    ...

    Linus Torvalds
     

12 Sep, 2013

8 commits

  • Pull watchdog updates from Wim Van Sebroeck:
    - New watchdog driver for Allwinner A10/A13
    - some devm_ioremap_resource simplifications
    - a s3c2410_wdt change that removes the global variables

    * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: s3c2410_wdt: simplify use of devm_ioremap_resource
    watchdog: simplify platform_get_resource_byname/devm_ioremap_resource
    watchdog: ts72xx_wdt: simplify use of devm_ioremap_resource
    watchdog: nuc900_wdt.c: simplify use of devm_ioremap_resource
    watchdog: sunxi: New watchdog driver for Allwinner A10/A13
    watchdog: s3c2410_wdt: remove the global variables

    Linus Torvalds
     
  • The driver core clears the driver data to NULL after device_release
    or on probe failure. Thus, it is not needed to manually clear the
    device driver data to NULL.

    Signed-off-by: Jingoo Han
    Acked-by: Clemens Ladisch
    Signed-off-by: Guenter Roeck

    Jingoo Han
     
  • Joerg Roedel
     
  • Pull thermal management updates from Zhang Rui:
    "We have a lot of SOC changes and a few thermal core fixes this time.

    The biggest change is about exynos thermal driver restructure. The
    patch set adds TMU (Thermal management Unit) driver support for
    exynos5440 platform. There are 3 instances of the TMU controllers so
    necessary cleanup/re-structure is done to handle multiple thermal
    zone.

    The next biggest change is the introduction of the imx thermal driver.
    It adds the imx thermal support using Temperature Monitor (TEMPMON)
    block found on some Freescale i.MX SoCs. The driver uses syscon
    regmap interface to access TEMPMON control registers and calibration
    data, and supports cpufreq as the cooling device.

    Highlights:

    - restructure exynos thermal driver.

    - introduce new imx thermal driver.

    - fix a bug in thermal core, which powers on the fans unexpectedly
    after resume from suspend"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (46 commits)
    drivers: thermal: add check when unregistering cpu cooling
    thermal: thermal_core: allow binding with limits on bind_params
    drivers: thermal: make usage of CONFIG_THERMAL_HWMON optional
    drivers: thermal: parent virtual hwmon with thermal zone
    thermal: hwmon: move hwmon support to single file
    thermal: exynos: Clean up non-DT remnants
    thermal: exynos: Fix potential NULL pointer dereference
    thermal: exynos: Fix typos in Kconfig
    thermal: ti-soc-thermal: Ensure to compute thermal trend
    thermal: ti-soc-thermal: Set the bandgap mask counter delay value
    thermal: ti-soc-thermal: Initialize counter_delay field for TI DRA752 sensors
    thermal: step_wise: return instance->target by default
    thermal: step_wise: cdev only needs update on a new target state
    Thermal/cpu_cooling: Return directly for the cpu out of allowed_cpus in the cpufreq_thermal_notifier()
    thermal: exynos_tmu: fix wrong error check for mapped memory
    thermal: imx: implement thermal alarm interrupt handling
    thermal: imx: dynamic passive and SoC specific critical trip points
    Documentation: thermal: Explain the exynos thermal driver model
    ARM: dts: thermal: exynos: Add documentation for Exynos SoC thermal bindings
    thermal: exynos: Support for TMU regulator defined at device tree
    ...

    Linus Torvalds
     
  • * pm-cpufreq:
    cpufreq: Acquire the lock in cpufreq_policy_restore() for reading
    cpufreq: Prevent problems in update_policy_cpu() if last_cpu == new_cpu
    cpufreq: Restructure if/else block to avoid unintended behavior
    cpufreq: Fix crash in cpufreq-stats during suspend/resume

    Rafael J. Wysocki
     
  • This reverts the Linux for Workgroups thing. And no, before somebody
    asks, we're not doing Linux95. Not for a few years, at least.

    Sure, the flag added some color to the logo, and could have remained as
    a testament to my leet gimp skills. But no. And I'll do this early, to
    avoid the chance of forgetting when I'm doing the actual rc1 release on
    the road.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull DMA-mapping fix from Marek Szyprowski:
    "A build bugfix for the device tree support for reserved memory
    regions. Due to superfluous include the common code failed to build
    on ARM64 and MIPS architectures.

    The patch that caused the build break has lived at linux-next for
    about two weeks and noone noticed the issue, what convinced me that
    everything was ok"

    * 'for-v3.12-fix' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
    drivers: of: fix build break if asm/dma-contiguous.h is missing

    Linus Torvalds
     
  • Pull dma-buf updates from Sumit Semwal:
    "Yet another small one - dma-buf framework now supports size discovery
    of the buffer via llseek"

    * tag 'for-3.12' of git://git.linaro.org/people/sumitsemwal/linux-dma-buf:
    dma-buf: Expose buffer size to userspace (v2)
    dma-buf: Check return value of anon_inode_getfile

    Linus Torvalds