Skip to content
  1. Dec 14, 2014
    • Davidlohr Bueso's avatar
      mm: use new helper functions around the i_mmap_mutex · 83cde9e8
      Davidlohr Bueso authored
      
      
      Convert all open coded mutex_lock/unlock calls to the
      i_mmap_[lock/unlock]_write() helpers.
      
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatar"Kirill A. Shutemov" <kirill@shutemov.name>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Acked-by: default avatarMel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      83cde9e8
    • Davidlohr Bueso's avatar
      mm,fs: introduce helpers around the i_mmap_mutex · 8b28f621
      Davidlohr Bueso authored
      
      
      This series is a continuation of the conversion of the i_mmap_mutex to
      rwsem, following what we have for the anon memory counterpart.  With
      Hugh's feedback from the first iteration.
      
      Ultimately, the most obvious paths that require exclusive ownership of the
      lock is when we modify the VMA interval tree, via
      vma_interval_tree_insert() and vma_interval_tree_remove() families.  Cases
      such as unmapping, where the ptes content is changed but the tree remains
      untouched should make it safe to share the i_mmap_rwsem.
      
      As such, the code of course is straightforward, however the devil is very
      much in the details.  While its been tested on a number of workloads
      without anything exploding, I would not be surprised if there are some
      less documented/known assumptions about the lock that could suffer from
      these changes.  Or maybe I'm just missing something, but either way I
      believe its at the point where it could use more eyes and hopefully some
      time in linux-next.
      
      Because the lock type conversion is the heart of this patchset,
      its worth noting a few comparisons between mutex vs rwsem (xadd):
      
        (i) Same size, no extra footprint.
      
        (ii) Both have CONFIG_XXX_SPIN_ON_OWNER capabilities for
             exclusive lock ownership.
      
        (iii) Both can be slightly unfair wrt exclusive ownership, with
              writer lock stealing properties, not necessarily respecting
              FIFO order for granting the lock when contended.
      
        (iv) Mutexes can be slightly faster than rwsems when
             the lock is non-contended.
      
        (v) Both suck at performance for debug (slowpaths), which
            shouldn't matter anyway.
      
      Sharing the lock is obviously beneficial, and sem writer ownership is
      close enough to mutexes.  The biggest winner of these changes is
      migration.
      
      As for concrete numbers, the following performance results are for a
      4-socket 60-core IvyBridge-EX with 130Gb of RAM.
      
      Both alltests and disk (xfs+ramdisk) workloads of aim7 suite do quite well
      with this set, with a steady ~60% throughput (jpm) increase for alltests
      and up to ~30% for disk for high amounts of concurrency.  Lower counts of
      workload users (< 100) does not show much difference at all, so at least
      no regressions.
      
                          3.18-rc1            3.18-rc1-i_mmap_rwsem
      alltests-100     17918.72 (  0.00%)    28417.97 ( 58.59%)
      alltests-200     16529.39 (  0.00%)    26807.92 ( 62.18%)
      alltests-300     16591.17 (  0.00%)    26878.08 ( 62.00%)
      alltests-400     16490.37 (  0.00%)    26664.63 ( 61.70%)
      alltests-500     16593.17 (  0.00%)    26433.72 ( 59.30%)
      alltests-600     16508.56 (  0.00%)    26409.20 ( 59.97%)
      alltests-700     16508.19 (  0.00%)    26298.58 ( 59.31%)
      alltests-800     16437.58 (  0.00%)    26433.02 ( 60.81%)
      alltests-900     16418.35 (  0.00%)    26241.61 ( 59.83%)
      alltests-1000    16369.00 (  0.00%)    26195.76 ( 60.03%)
      alltests-1100    16330.11 (  0.00%)    26133.46 ( 60.03%)
      alltests-1200    16341.30 (  0.00%)    26084.03 ( 59.62%)
      alltests-1300    16304.75 (  0.00%)    26024.74 ( 59.61%)
      alltests-1400    16231.08 (  0.00%)    25952.35 ( 59.89%)
      alltests-1500    16168.06 (  0.00%)    25850.58 ( 59.89%)
      alltests-1600    16142.56 (  0.00%)    25767.42 ( 59.62%)
      alltests-1700    16118.91 (  0.00%)    25689.58 ( 59.38%)
      alltests-1800    16068.06 (  0.00%)    25599.71 ( 59.32%)
      alltests-1900    16046.94 (  0.00%)    25525.92 ( 59.07%)
      alltests-2000    16007.26 (  0.00%)    25513.07 ( 59.38%)
      
      disk-100          7582.14 (  0.00%)     7257.48 ( -4.28%)
      disk-200          6962.44 (  0.00%)     7109.15 (  2.11%)
      disk-300          6435.93 (  0.00%)     6904.75 (  7.28%)
      disk-400          6370.84 (  0.00%)     6861.26 (  7.70%)
      disk-500          6353.42 (  0.00%)     6846.71 (  7.76%)
      disk-600          6368.82 (  0.00%)     6806.75 (  6.88%)
      disk-700          6331.37 (  0.00%)     6796.01 (  7.34%)
      disk-800          6324.22 (  0.00%)     6788.00 (  7.33%)
      disk-900          6253.52 (  0.00%)     6750.43 (  7.95%)
      disk-1000         6242.53 (  0.00%)     6855.11 (  9.81%)
      disk-1100         6234.75 (  0.00%)     6858.47 ( 10.00%)
      disk-1200         6312.76 (  0.00%)     6845.13 (  8.43%)
      disk-1300         6309.95 (  0.00%)     6834.51 (  8.31%)
      disk-1400         6171.76 (  0.00%)     6787.09 (  9.97%)
      disk-1500         6139.81 (  0.00%)     6761.09 ( 10.12%)
      disk-1600         4807.12 (  0.00%)     6725.33 ( 39.90%)
      disk-1700         4669.50 (  0.00%)     5985.38 ( 28.18%)
      disk-1800         4663.51 (  0.00%)     5972.99 ( 28.08%)
      disk-1900         4674.31 (  0.00%)     5949.94 ( 27.29%)
      disk-2000         4668.36 (  0.00%)     5834.93 ( 24.99%)
      
      In addition, a 67.5% increase in successfully migrated NUMA pages, thus
      improving node locality.
      
      The patch layout is simple but designed for bisection (in case reversion
      is needed if the changes break upstream) and easier review:
      
      o Patches 1-4 convert the i_mmap lock from mutex to rwsem.
      o Patches 5-10 share the lock in specific paths, each patch
        details the rationale behind why it should be safe.
      
      This patchset has been tested with: postgres 9.4 (with brand new hugetlb
      support), hugetlbfs test suite (all tests pass, in fact more tests pass
      with these changes than with an upstream kernel), ltp, aim7 benchmarks,
      memcached and iozone with the -B option for mmap'ing.  *Untested* paths
      are nommu, memory-failure, uprobes and xip.
      
      This patch (of 8):
      
      Various parts of the kernel acquire and release this mutex, so add
      i_mmap_lock_write() and immap_unlock_write() helper functions that will
      encapsulate this logic.  The next patch will make use of these.
      
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatar"Kirill A. Shutemov" <kirill@shutemov.name>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Acked-by: default avatarMel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8b28f621
    • Xiubo Li's avatar
      MAINTAINERS: update Xiubo's email address · b4b98297
      Xiubo Li authored
      
      
      My current email address will be gone shortly, update my email to be a
      gmail one.
      
      Signed-off-by: default avatarXiubo Li <Li.Xiubo@freescale.com>
      Cc: Timur Tabi <timur@tabi.org>
      Cc: Takashi Iwai <tiwai@suse.de>
      Acked-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b4b98297
    • Guenter Roeck's avatar
      rtc: snvs: fix build with CONFIG_PM_SLEEP disabled · 88221c32
      Guenter Roeck authored
      Commit 7654e9d4 ("drivers/rtc/rtc-snvs: fix suspend/resume")
      replaces SIMPLE_DEV_PM_OPS with direct declaration of snvs_rtc_pm_ops,
      but does so outside #ifdef CONFIG_PM_SLEEP.  This causes the driver
      build to fail if CONFIG_PM_SLEEP is not configured.
      
      Fixes: 7654e9d4
      
       ("drivers/rtc/rtc-snvs: fix suspend/resume")
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Cc: Sanchayan Maity <maitysanchayan@gmail.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      88221c32
  2. Dec 13, 2014
    • Linus Torvalds's avatar
      Merge tag 'please-pull-morepstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 6ce4436c
      Linus Torvalds authored
      Pull pstore update #2 from Tony Luck:
       "Couple of pstore-ram enhancements to allow use of different memory
        attributes"
      
      * tag 'please-pull-morepstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        pstore-ram: Allow optional mapping with pgprot_noncached
        pstore-ram: Fix hangs by using write-combine mappings
      6ce4436c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · bdeb03ca
      Linus Torvalds authored
      Pull btrfs update from Chris Mason:
       "From a feature point of view, most of the code here comes from Miao
        Xie and others at Fujitsu to implement scrubbing and replacing devices
        on raid56.  This has been in development for a while, and it's a big
        improvement.
      
        Filipe and Josef have a great assortment of fixes, many of which solve
        problems corruptions either after a crash or in error conditions.  I
        still have a round two from Filipe for next week that solves
        corruptions with discard and block group removal"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (62 commits)
        Btrfs: make get_caching_control unconditionally return the ctl
        Btrfs: fix unprotected deletion from pending_chunks list
        Btrfs: fix fs mapping extent map leak
        Btrfs: fix memory leak after block remove + trimming
        Btrfs: make btrfs_abort_transaction consider existence of new block groups
        Btrfs: fix race between writing free space cache and trimming
        Btrfs: fix race between fs trimming and block group remove/allocation
        Btrfs, replace: enable dev-replace for raid56
        Btrfs: fix freeing used extents after removing empty block group
        Btrfs: fix crash caused by block group removal
        Btrfs: fix invalid block group rbtree access after bg is removed
        Btrfs, raid56: fix use-after-free problem in the final device replace procedure on raid56
        Btrfs, replace: write raid56 parity into the replace target device
        Btrfs, replace: write dirty pages into the replace target device
        Btrfs, raid56: support parity scrub on raid56
        Btrfs, raid56: use a variant to record the operation type
        Btrfs, scrub: repair the common data on RAID5/6 if it is corrupted
        Btrfs, raid56: don't change bbio and raid_map
        Btrfs: remove unnecessary code of stripe_index assignment in __btrfs_map_block
        Btrfs: remove noused bbio_ret in __btrfs_map_block in condition
        ...
      bdeb03ca
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 0349678c
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
       - i2c-hid race condition fix from Jean-Baptiste Maneyrol
       - Logitech driver now supports vendor-specific HID++ protocol, allowing
         us to deliver a full multitouch support on wider range of Logitech
         touchpads.  Written by Benjamin Tissoires
       - MS Surface Pro 3 Type Cover support added by Alan Wu
       - RMI touchpad support improvements from Andrew Duggan
       - a lot of updates to Wacom driver from Jason Gerecke and Ping Cheng
       - various small fixes all over the place
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (56 commits)
        HID: rmi: The address of query8 must be calculated based on which query registers are present
        HID: rmi: Check for additional ACM registers appended to F11 data report
        HID: i2c-hid: prevent buffer overflow in early IRQ
        HID: logitech-hidpp: disable io in probe error path
        HID: logitech-hidpp: add boundary check for name retrieval
        HID: logitech-hidpp: check name retrieval return code
        HID: logitech-hidpp: do not return the name length
        HID: wacom: Report input events for each finger on generic devices
        HID: wacom: Initialize MT slots for generic devices at post_parse_hid
        HID: wacom: Update maximum X/Y accounding to outbound offset
        HID: wacom: Add support for DTU-1031X
        HID: wacom: add defines for new Cintiq and DTU outbound tracking
        HID: wacom: fix freeze on open when autosuspend is on
        HID: wacom: re-add accidentally dropped Lenovo PID
        HID: make hid_report_len as a static inline function in hid.h
        HID: wacom: Consult the application usage when determining field type
        HID: wacom: PAD is independent with pen/touch
        HID: multitouch: Add quirk for VTL touch panels
        HID: i2c-hid: fix race condition reading reports
        HID: wacom: Add angular resolution data to some ABS axes
        ...
      0349678c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · a7cb7bb6
      Linus Torvalds authored
      Pull trivial tree update from Jiri Kosina:
       "Usual stuff: documentation updates, printk() fixes, etc"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)
        intel_ips: fix a type in error message
        cpufreq: cpufreq-dt: Move newline to end of error message
        ps3rom: fix error return code
        treewide: fix typo in printk and Kconfig
        ARM: dts: bcm63138: change "interupts" to "interrupts"
        Replace mentions of "list_struct" to "list_head"
        kernel: trace: fix printk message
        scsi: mpt2sas: fix ioctl in comment
        zbud, zswap: change module author email
        clocksource: Fix 'clcoksource' typo in comment
        arm: fix wording of "Crotex" in CONFIG_ARCH_EXYNOS3 help
        gpio: msm-v1: make boolean argument more obvious
        usb: Fix typo in usb-serial-simple.c
        PCI: Fix comment typo 'COMFIG_PM_OPS'
        powerpc: Fix comment typo 'CONIFG_8xx'
        powerpc: Fix comment typos 'CONFiG_ALTIVEC'
        clk: st: Spelling s/stucture/structure/
        isci: Spelling s/stucture/structure/
        usb: gadget: zero: Spelling s/infrastucture/infrastructure/
        treewide: Fix company name in module descriptions
        ...
      a7cb7bb6
    • Linus Torvalds's avatar
      Merge tag 'upstream-3.19-rc1' of git://git.infradead.org/linux-ubifs · ccb5a491
      Linus Torvalds authored
      Pull UBI/UBIFS updates from Artem Bityutskiy:
       "This includes the following UBI/UBIFS changes:
         - UBI debug messages now include the UBI device number.  This change
           is responsible for the big diffstat since it touched every
           debugging print statement.
         - An Xattr bug-fix which fixes SELinux support
         - Several error path fixes in UBI/UBIFS"
      
      * tag 'upstream-3.19-rc1' of git://git.infradead.org/linux-ubifs:
        UBI: Fix invalid vfree()
        UBI: Fix double free after do_sync_erase()
        UBIFS: fix a couple bugs in UBIFS xattr length calculation
        UBI: vtbl: Use ubi_eba_atomic_leb_change()
        UBI: Extend UBI layer debug/messaging capabilities
        UBIFS: fix budget leak in error path
      ccb5a491
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · c05e14f7
      Linus Torvalds authored
      Pull xfs update from Dave Chinner:
       "There's relatively little change in this update; it is mainly bug
        fixes, cleanups and more of the on-going libxfs restructuring and
        on-disk format header consolidation work.
      
        Details:
         - more on-disk format header consolidation
         - move some structures shared with userspace to libxfs
         - new per-mount workqueue to fix for deadlocks between nested loop
           mounted filesystems
         - various bug fixes for ENOSPC, stats, quota off and preallocation
         - a bunch of compiler warning fixes for set-but-unused variables
         - various code cleanups"
      
      * tag 'xfs-for-linus-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (24 commits)
        xfs: split metadata and log buffer completion to separate workqueues
        xfs: fix set-but-unused warnings
        xfs: move type conversion functions to xfs_dir.h
        xfs: move ftype conversion functions to libxfs
        xfs: lobotomise xfs_trans_read_buf_map()
        xfs: active inodes stat is broken
        xfs: cleanup xfs_bmse_merge returns
        xfs: cleanup xfs_bmse_shift_one goto mess
        xfs: fix premature enospc on inode allocation
        xfs: overflow in xfs_iomap_eof_align_last_fsb
        xfs: fix simple_return.cocci warning in xfs_bmse_shift_one
        xfs: fix simple_return.cocci warning in xfs_file_readdir
        libxfs: fix simple_return.cocci warnings
        xfs: remove unnecessary null checks
        xfs: merge xfs_inum.h into xfs_format.h
        xfs: move most of xfs_sb.h to xfs_format.h
        xfs: merge xfs_ag.h into xfs_format.h
        xfs: move acl structures to xfs_format.h
        xfs: merge xfs_dinode.h into xfs_format.h
        xfs: catch invalid negative blknos in _xfs_buf_find()
        ...
      c05e14f7
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 9bfccec2
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Lots of bugs fixes, including Zheng and Jan's extent status shrinker
        fixes, which should improve CPU utilization and potential soft lockups
        under heavy memory pressure, and Eric Whitney's bigalloc fixes"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (26 commits)
        ext4: ext4_da_convert_inline_data_to_extent drop locked page after error
        ext4: fix suboptimal seek_{data,hole} extents traversial
        ext4: ext4_inline_data_fiemap should respect callers argument
        ext4: prevent fsreentrance deadlock for inline_data
        ext4: forbid journal_async_commit in data=ordered mode
        jbd2: remove unnecessary NULL check before iput()
        ext4: Remove an unnecessary check for NULL before iput()
        ext4: remove unneeded code in ext4_unlink
        ext4: don't count external journal blocks as overhead
        ext4: remove never taken branch from ext4_ext_shift_path_extents()
        ext4: create nojournal_checksum mount option
        ext4: update comments regarding ext4_delete_inode()
        ext4: cleanup GFP flags inside resize path
        ext4: introduce aging to extent status tree
        ext4: cleanup flag definitions for extent status tree
        ext4: limit number of scanned extents in status tree shrinker
        ext4: move handling of list of shrinkable inodes into extent status code
        ext4: change LRU to round-robin in extent status tree shrinker
        ext4: cache extent hole in extent status tree for ext4_da_map_blocks()
        ext4: fix block reservation for bigalloc filesystems
        ...
      9bfccec2
  3. Dec 12, 2014
    • Jiri Kosina's avatar
      Merge branches 'for-3.19/hid-report-len', 'for-3.19/i2c-hid',... · 019e129f
      Jiri Kosina authored
      Merge branches 'for-3.19/hid-report-len', 'for-3.19/i2c-hid', 'for-3.19/lenovo', 'for-3.19/logitech', 'for-3.19/microsoft', 'for-3.19/plantronics', 'for-3.19/rmi', 'for-3.19/sony' and 'for-3.19/wacom' into for-linus
      019e129f
    • Andrew Duggan's avatar
      HID: rmi: The address of query8 must be calculated based on which query registers are present · cabd9b5f
      Andrew Duggan authored
      
      
      If a touchpad does not report relative data then query 6 will not be present and the address
      of query 8 will be one less. This patches calculates the location of query 8 instead of
      hardcoding the offset.
      
      Signed-off-by: default avatarAndrew Duggan <aduggan@synaptics.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      cabd9b5f
    • Andrew Duggan's avatar
      HID: rmi: Check for additional ACM registers appended to F11 data report · 8414947a
      Andrew Duggan authored
      If a touchpad reports the F11 data40 register then this indicates that the touchpad reports
      additional ACM (Accidental Contact Mitigation) data after the F11 data in the HID attention
      report. These additional bytes shift the position of the F30 button data causing the driver
      to incorrectly report button state when this functionality is present. This patch accounts
      for the additional data in the report.
      
      Fixes:
      https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1398533
      
      
      
      Signed-off-by: default avatarAndrew Duggan <aduggan@synaptics.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      8414947a
    • Jiri Kosina's avatar
      Merge branches 'for-3.18/upstream-fixes' and 'for-3.19/upstream' into for-linus · 3ee420ba
      Jiri Kosina authored
      Conflicts:
      	drivers/hid/hid-input.c
      3ee420ba
    • Gwendal Grignou's avatar
      HID: i2c-hid: prevent buffer overflow in early IRQ · d1c7e29e
      Gwendal Grignou authored
      
      
      Before ->start() is called, bufsize size is set to HID_MIN_BUFFER_SIZE,
      64 bytes. While processing the IRQ, we were asking to receive up to
      wMaxInputLength bytes, which can be bigger than 64 bytes.
      
      Later, when ->start is run, a proper bufsize will be calculated.
      
      Given wMaxInputLength is said to be unreliable in other part of the
      code, set to receive only what we can even if it results in truncated
      reports.
      
      Signed-off-by: default avatarGwendal Grignou <gwendal@chromium.org>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      d1c7e29e
    • Linus Torvalds's avatar
      Merge branch 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 2756d373
      Linus Torvalds authored
      Pull cgroup update from Tejun Heo:
       "cpuset got simplified a bit.  cgroup core got a fix on unified
        hierarchy and grew some effective css related interfaces which will be
        used for blkio support for writeback IO traffic which is currently
        being worked on"
      
      * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: implement cgroup_get_e_css()
        cgroup: add cgroup_subsys->css_e_css_changed()
        cgroup: add cgroup_subsys->css_released()
        cgroup: fix the async css offline wait logic in cgroup_subtree_control_write()
        cgroup: restructure child_subsys_mask handling in cgroup_subtree_control_write()
        cgroup: separate out cgroup_calc_child_subsys_mask() from cgroup_refresh_child_subsys_mask()
        cpuset: lock vs unlock typo
        cpuset: simplify cpuset_node_allowed API
        cpuset: convert callback_mutex to a spinlock
      2756d373
    • Linus Torvalds's avatar
      Merge branch 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 4e8790f7
      Linus Torvalds authored
      Pull libata changes from Tejun Heo:
       "The only interesting piece is the support for shingled drives.  The
        changes in libata layer are minimal.  All it does is identifying the
        new class of device and report upwards accordingly"
      
      * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libata: Remove FIXME comment in atapi_request_sense()
        sata_rcar: Document deprecated "renesas,rcar-sata"
        sata_rcar: Add clocks to sata_rcar bindings
        ahci_sunxi: Make AHCI_HFLAG_NO_PMP flag configurable with a module option
        libata-scsi: Update SATL for ZAC drives
        libata: Implement ATA_DEV_ZAC
        libsas: use ata_dev_classify()
      4e8790f7
    • Linus Torvalds's avatar
      Merge branch 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 0a27044c
      Linus Torvalds authored
      Pull workqueue update from Tejun Heo:
       "Work items which may be involved in memory reclaim path may be
        executed by the rescuer under memory pressure.  When a rescuer gets
        activated, it processes whatever are on the pending list and then goes
        back to sleep until the manager kicks it again which involves 100ms
        delay.
      
        This is problematic for self-requeueing work items or the ones running
        on ordered workqueues as there always is only one work item on the
        pending list when the rescuer kicks in.  The execution of that work
        item produces more to execute but the rescuer won't see them until
        after the said 100ms has passed, so such workqueues would only execute
        one work item every 100ms under prolonged memory pressure, which BTW
        may be being prolonged due to the slow execution.
      
        Neil wrote up a patch which fixes this issue by keeping the rescuer
        working as long as the target workqueue is busy but doesn't have
        enough workers"
      
      * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: allow rescuer thread to do more work.
        workqueue: invert the order between pool->lock and wq_mayday_lock
        workqueue: cosmetic update in rescuer_thread()
      0a27044c
    • Linus Torvalds's avatar
      Merge branch 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · eedb3d33
      Linus Torvalds authored
      Pull percpu updates from Tejun Heo:
       "Nothing interesting.  A patch to convert the remaining __get_cpu_var()
        users, another to fix non-critical off-by-one in an assertion and a
        cosmetic conversion to lockless_dereference() in percpu-ref.
      
        The back-merge from mainline is to receive lockless_dereference()"
      
      * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: Replace smp_read_barrier_depends() with lockless_dereference()
        percpu: Convert remaining __get_cpu_var uses in 3.18-rcX
        percpu: off by one in BUG_ON()
      eedb3d33
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 9d050966
      Linus Torvalds authored
      Pull xen features and fixes from David Vrabel:
      
       - Fully support non-coherent devices on ARM by introducing the
         mechanisms to request the hypervisor to perform the required cache
         maintainance operations.
      
       - A number of pciback bug fixes and cleanups.  Notably a deadlock fix
         if a PCI device was manually uunbound and a fix for incorrectly
         restoring state after a function reset.
      
       - In x86 PVHVM guests, use the APIC for interrupts if this has been
         virtualized by the hardware.  This reduces the number of interrupt-
         related VM exits on such hardware.
      
      * tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (26 commits)
        Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
        xen/pci: Use APIC directly when APIC virtualization hardware is available
        xen/pci: Defer initialization of MSI ops on HVM guests
        xen-pciback: drop SR-IOV VFs when PF driver unloads
        xen/pciback: Restore configuration space when detaching from a guest.
        PCI: Expose pci_load_saved_state for public consumption.
        xen/pciback: Remove tons of dereferences
        xen/pciback: Print out the domain owning the device.
        xen/pciback: Include the domain id if removing the device whilst still in use
        driver core: Provide an wrapper around the mutex to do lockdep warnings
        xen/pciback: Don't deadlock when unbinding.
        swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single
        swiotlb-xen: call xen_dma_sync_single_for_device when appropriate
        swiotlb-xen: remove BUG_ON in xen_bus_to_phys
        swiotlb-xen: pass dev_addr to xen_dma_unmap_page and xen_dma_sync_single_for_cpu
        xen/arm: introduce GNTTABOP_cache_flush
        xen/arm/arm64: introduce xen_arch_need_swiotlb
        xen/arm/arm64: merge xen/mm32.c into xen/mm.c
        xen/arm: use hypercall to flush caches in map_page
        xen: add a dma_addr_t dev_addr argument to xen_dma_map_page
        ...
      9d050966
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · c0222ac0
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is an unusually large pull request for MIPS - in parts because
        lots of patches missed the 3.18 deadline but primarily because some
        folks opened the flood gates.
      
         - Retire the MIPS-specific phys_t with the generic phys_addr_t.
         - Improvments for the backtrace code used by oprofile.
         - Better backtraces on SMP systems.
         - Cleanups for the Octeon platform code.
         - Cleanups and fixes for the Loongson platform code.
         - Cleanups and fixes to the firmware library.
         - Switch ATH79 platform to use the firmware library.
         - Grand overhault to the SEAD3 and Malta interrupt code.
         - Move the GIC interrupt code to drivers/irqchip
         - Lots of GIC cleanups and updates to the GIC code to use modern IRQ
           infrastructures and features of the kernel.
         - OF documentation updates for the GIC bindings
         - Move GIC clocksource driver to drivers/clocksource
         - Merge GIC clocksource driver with clockevent driver.
         - Further updates to bring the GIC clocksource driver up to date.
         - R3000 TLB code cleanups
         - Improvments to the Loongson 3 platform code.
         - Convert pr_warning to pr_warn.
         - Merge a bunch of small lantiq and ralink fixes that have been
           staged/lingering inside the openwrt tree for a while.
         - Update archhelp for IP22/IP32
         - Fix a number of issues for Loongson 1B.
         - New clocksource and clockevent driver for Loongson 1B.
         - Further work on clk handling for Loongson 1B.
         - Platform work for Broadcom BMIPS.
         - Error handling cleanups for TurboChannel.
         - Fixes and optimization to the microMIPS support.
         - Option to disable the FTLB.
         - Dump more relevant information on machine check exception
         - Change binfmt to allow arch to examine PT_*PROC headers
         - Support for new style FPU register model in O32
         - VDSO randomization.
         - BCM47xx cleanups
         - BCM47xx reimplement the way the kernel accesses NVRAM information.
         - Random cleanups
         - Add support for ATH25 platforms
         - Remove pointless locking code in some PCI platforms.
         - Some improvments to EVA support
         - Minor Alchemy cleanup"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (185 commits)
        MIPS: Add MFHC0 and MTHC0 instructions to uasm.
        MIPS: Cosmetic cleanups of page table headers.
        MIPS: Add CP0 macros for extended EntryLo registers
        MIPS: Remove now unused definition of phys_t.
        MIPS: Replace use of phys_t with phys_addr_t.
        MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT
        PCMCIA: Alchemy Don't select 64BIT_PHYS_ADDR in Kconfig.
        MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery
        MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO
        MIPS: <asm/types.h> fix indentation.
        MAINTAINERS: Add entry for BMIPS multiplatform kernel
        MIPS: Enable VDSO randomization
        MIPS: Remove a temporary hack for debugging cache flushes in SMTC configuration
        MIPS: Remove declaration of obsolete arch_init_clk_ops()
        MIPS: atomic.h: Reformat to fit in 79 columns
        MIPS: Apply `.insn' to fixup labels throughout
        MIPS: Fix microMIPS LL/SC immediate offsets
        MIPS: Kconfig: Only allow 32-bit microMIPS builds
        MIPS: signal.c: Fix an invalid cast in ISA mode bit handling
        MIPS: mm: Only build one microassembler that is suitable
        ...
      c0222ac0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux · 140cd7fb
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Some nice cleanups like removing bootmem, and removal of
        __get_cpu_var().
      
        There is one patch to mm/gup.c.  This is the generic GUP
        implementation, but is only used by us and arm(64).  We have an ack
        from Steve Capper, and although we didn't get an ack from Andrew he
        told us to take the patch through the powerpc tree.
      
        There's one cxl patch.  This is in drivers/misc, but Greg said he was
        happy for us to manage fixes for it.
      
        There is an infrastructure patch to support an IPMI driver for OPAL.
      
        There is also an RTC driver for OPAL.  We weren't able to get any
        response from the RTC maintainer, Alessandro Zummo, so in the end we
        just merged the driver.
      
        The usual batch of Freescale updates from Scott"
      
      * tag 'powerpc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (101 commits)
        powerpc/powernv: Return to cpu offline loop when finished in KVM guest
        powerpc/book3s: Fix partial invalidation of TLBs in MCE code.
        powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault
        powerpc/xmon: Cleanup the breakpoint flags
        powerpc/xmon: Enable HW instruction breakpoint on POWER8
        powerpc/mm/thp: Use tlbiel if possible
        powerpc/mm/thp: Remove code duplication
        powerpc/mm/hugetlb: Sanity check gigantic hugepage count
        powerpc/oprofile: Disable pagefaults during user stack read
        powerpc/mm: Check for matching hpte without taking hpte lock
        powerpc: Drop useless warning in eeh_init()
        powerpc/powernv: Cleanup unused MCE definitions/declarations.
        powerpc/eeh: Dump PHB diag-data early
        powerpc/eeh: Recover EEH error on ownership change for BCM5719
        powerpc/eeh: Set EEH_PE_RESET on PE reset
        powerpc/eeh: Refactor eeh_reset_pe()
        powerpc: Remove more traces of bootmem
        powerpc/pseries: Initialise nvram_pstore_info's buf_lock
        cxl: Name interrupts in /proc/interrupt
        cxl: Return error to PSL if IRQ demultiplexing fails & print clearer warning
        ...
      140cd7fb
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 27afc5db
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "The most notable change for this pull request is the ftrace rework
        from Heiko.  It brings a small performance improvement and the ground
        work to support a new gcc option to replace the mcount blocks with a
        single nop.
      
        Two new s390 specific system calls are added to emulate user space
        mmio for PCI, an artifact of the how PCI memory is accessed.
      
        Two patches for the memory management with changes to common code.
        For KVM mm_forbids_zeropage is added which disables the empty zero
        page for an mm that is used by a KVM process.  And an optimization,
        pmdp_get_and_clear_full is added analog to ptep_get_and_clear_full.
      
        Some micro optimization for the cmpxchg and the spinlock code.
      
        And as usual bug fixes and cleanups"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits)
        s390/cputime: fix 31-bit compile
        s390/scm_block: make the number of reqs per HW req configurable
        s390/scm_block: handle multiple requests in one HW request
        s390/scm_block: allocate aidaw pages only when necessary
        s390/scm_block: use mempool to manage aidaw requests
        s390/eadm: change timeout value
        s390/mm: fix memory leak of ptlock in pmd_free_tlb
        s390: use local symbol names in entry[64].S
        s390/ptrace: always include vector registers in core files
        s390/simd: clear vector register pointer on fork/clone
        s390: translate cputime magic constants to macros
        s390/idle: convert open coded idle time seqcount
        s390/idle: add missing irq off lockdep annotation
        s390/debug: avoid function call for debug_sprintf_*
        s390/kprobes: fix instruction copy for out of line execution
        s390: remove diag 44 calls from cpu_relax()
        s390/dasd: retry partition detection
        s390/dasd: fix list corruption for sleep_on requests
        s390/dasd: fix infinite term I/O loop
        s390/dasd: remove unused code
        ...
      27afc5db
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 70e71ca0
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) New offloading infrastructure and example 'rocker' driver for
          offloading of switching and routing to hardware.
      
          This work was done by a large group of dedicated individuals, not
          limited to: Scott Feldman, Jiri Pirko, Thomas Graf, John Fastabend,
          Jamal Hadi Salim, Andy Gospodarek, Florian Fainelli, Roopa Prabhu
      
       2) Start making the networking operate on IOV iterators instead of
          modifying iov objects in-situ during transfers.  Thanks to Al Viro
          and Herbert Xu.
      
       3) A set of new netlink interfaces for the TIPC stack, from Richard
          Alpe.
      
       4) Remove unnecessary looping during ipv6 routing lookups, from Martin
          KaFai Lau.
      
       5) Add PAUSE frame generation support to gianfar driver, from Matei
          Pavaluca.
      
       6) Allow for larger reordering levels in TCP, which are easily
          achievable in the real world right now, from Eric Dumazet.
      
       7) Add a variable of napi_schedule that doesn't need to disable cpu
          interrupts, from Eric Dumazet.
      
       8) Use a doubly linked list to optimize neigh_parms_release(), from
          Nicolas Dichtel.
      
       9) Various enhancements to the kernel BPF verifier, and allow eBPF
          programs to actually be attached to sockets.  From Alexei
          Starovoitov.
      
      10) Support TSO/LSO in sunvnet driver, from David L Stevens.
      
      11) Allow controlling ECN usage via routing metrics, from Florian
          Westphal.
      
      12) Remote checksum offload, from Tom Herbert.
      
      13) Add split-header receive, BQL, and xmit_more support to amd-xgbe
          driver, from Thomas Lendacky.
      
      14) Add MPLS support to openvswitch, from Simon Horman.
      
      15) Support wildcard tunnel endpoints in ipv6 tunnels, from Steffen
          Klassert.
      
      16) Do gro flushes on a per-device basis using a timer, from Eric
          Dumazet.  This tries to resolve the conflicting goals between the
          desired handling of bulk vs.  RPC-like traffic.
      
      17) Allow userspace to ask for the CPU upon what a packet was
          received/steered, via SO_INCOMING_CPU.  From Eric Dumazet.
      
      18) Limit GSO packets to half the current congestion window, from Eric
          Dumazet.
      
      19) Add a generic helper so that all drivers set their RSS keys in a
          consistent way, from Eric Dumazet.
      
      20) Add xmit_more support to enic driver, from Govindarajulu
          Varadarajan.
      
      21) Add VLAN packet scheduler action, from Jiri Pirko.
      
      22) Support configurable RSS hash functions via ethtool, from Eyal
          Perry.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1820 commits)
        Fix race condition between vxlan_sock_add and vxlan_sock_release
        net/macb: fix compilation warning for print_hex_dump() called with skb->mac_header
        net/mlx4: Add support for A0 steering
        net/mlx4: Refactor QUERY_PORT
        net/mlx4_core: Add explicit error message when rule doesn't meet configuration
        net/mlx4: Add A0 hybrid steering
        net/mlx4: Add mlx4_bitmap zone allocator
        net/mlx4: Add a check if there are too many reserved QPs
        net/mlx4: Change QP allocation scheme
        net/mlx4_core: Use tasklet for user-space CQ completion events
        net/mlx4_core: Mask out host side virtualization features for guests
        net/mlx4_en: Set csum level for encapsulated packets
        be2net: Export tunnel offloads only when a VxLAN tunnel is created
        gianfar: Fix dma check map error when DMA_API_DEBUG is enabled
        cxgb4/csiostor: Don't use MASTER_MUST for fw_hello call
        net: fec: only enable mdio interrupt before phy device link up
        net: fec: clear all interrupt events to support i.MX6SX
        net: fec: reset fep link status in suspend function
        net: sock: fix access via invalid file descriptor
        net: introduce helper macro for_each_cmsghdr
        ...
      70e71ca0
    • Peter Wu's avatar
      HID: logitech-hidpp: disable io in probe error path · f486d9db
      Peter Wu authored
      
      
      Balance a hid_device_io_start() call with hid_device_io_stop() in the
      error path. This avoids processing of HID reports when the probe fails
      which possibly leads to invalid memory access in hid_device_probe() as
      report_enum->report_id_hash might already be freed via
      hid_close_report().
      
      hid_set_drvdata() is called before wtp_allocate, be consistent and clear
      drvdata too on the error path of wtp_allocate.
      
      Signed-off-by: default avatarPeter Wu <peter@lekensteyn.nl>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      f486d9db
    • Peter Wu's avatar
      HID: logitech-hidpp: add boundary check for name retrieval · 3a034a7a
      Peter Wu authored
      
      
      The HID response has a limited size. Do not trust the value returned by
      hardware, check that it really fits in the message.
      
      Signed-off-by: default avatarPeter Wu <peter@lekensteyn.nl>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      3a034a7a
    • Peter Wu's avatar
      HID: logitech-hidpp: check name retrieval return code · 1430ee73
      Peter Wu authored
      
      
      hidpp_devicenametype_get_device_name() may return a negative value on
      protocol errors (for example, when the device is powered off).
      Explicitly check this condition to avoid a long-running loop.
      
      (0 cannot be returned as __name_length - index > 0, but check for it
      anyway as it would otherwise result in an infinite loop.)
      
      Signed-off-by: default avatarPeter Wu <peter@lekensteyn.nl>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      1430ee73
    • Peter Wu's avatar
      HID: logitech-hidpp: do not return the name length · 02cc097e
      Peter Wu authored
      
      
      We do not make any use of the actual name length get through
      hidpp_get_device_name(). Original patch by Benjamin Tissoires, this
      patch also replaces a (now) unnecessary goto by return NULL.
      
      Signed-off-by: default avatarPeter Wu <peter@lekensteyn.nl>
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      02cc097e
    • Jason Gerecke's avatar
      HID: wacom: Report input events for each finger on generic devices · 601a22f3
      Jason Gerecke authored
      
      
      The existing generic touch code only reports events after reading an
      entire HID report, which practically means that only data about the last
      contact in a report will ever be provided to userspace. This patch uses
      a trick from hid-multitouch.c to discover what type of field is at the
      end of each contact; when such a field is encountered all the stored
      contact data will be reported.
      
      Signed-off-by: default avatarJason Gerecke <killertofu@gmail.com>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      601a22f3
    • Tony Lindgren's avatar
      pstore-ram: Allow optional mapping with pgprot_noncached · 027bc8b0
      Tony Lindgren authored
      
      
      On some ARMs the memory can be mapped pgprot_noncached() and still
      be working for atomic operations. As pointed out by Colin Cross
      <ccross@android.com>, in some cases you do want to use
      pgprot_noncached() if the SoC supports it to see a debug printk
      just before a write hanging the system.
      
      On ARMs, the atomic operations on strongly ordered memory are
      implementation defined. So let's provide an optional kernel parameter
      for configuring pgprot_noncached(), and use pgprot_writecombine() by
      default.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Rob Herring <robherring2@gmail.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Anton Vorontsov <anton@enomsg.org>
      Cc: Colin Cross <ccross@android.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: stable@vger.kernel.org
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      027bc8b0
    • Rob Herring's avatar
      pstore-ram: Fix hangs by using write-combine mappings · 7ae9cb81
      Rob Herring authored
      
      
      Currently trying to use pstore on at least ARMs can hang as we're
      mapping the peristent RAM with pgprot_noncached().
      
      On ARMs, pgprot_noncached() will actually make the memory strongly
      ordered, and as the atomic operations pstore uses are implementation
      defined for strongly ordered memory, they may not work. So basically
      atomic operations have undefined behavior on ARM for device or strongly
      ordered memory types.
      
      Let's fix the issue by using write-combine variants for mappings. This
      corresponds to normal, non-cacheable memory on ARM. For many other
      architectures, this change does not change the mapping type as by
      default we have:
      
      #define pgprot_writecombine pgprot_noncached
      
      The reason why pgprot_noncached() was originaly used for pstore
      is because Colin Cross <ccross@android.com> had observed lost
      debug prints right before a device hanging write operation on some
      systems. For the platforms supporting pgprot_noncached(), we can
      add a an optional configuration option to support that. But let's
      get pstore working first before adding new features.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Anton Vorontsov <cbouatmailru@gmail.com>
      Cc: Colin Cross <ccross@android.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: linux-kernel@vger.kernel.org
      Cc: stable@vger.kernel.org
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarRob Herring <rob.herring@calxeda.com>
      [tony@atomide.com: updated description]
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      7ae9cb81
    • Linus Torvalds's avatar
      Merge tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · bae41e45
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "This became a fairly large pull request.  In addition to the usual
        driver updates / fixes, there have been a high amount of cleanups in
        ASoC area, as well as control API helpers and kernel documentations
        fixes touching through the whole tree.
      
        In the driver side, the biggest changes are the support for new Intel
        SoC found on new x86 machines, and the updates of FireWire dice and
        oxfw drivers.
      
        Some remarkable items are below:
      
        ALSA core:
         - PCM mmap code cleanup, removal of arch-dependent codes
         - PCM xrun injection support
         - PCM hwptr tracepoint support
         - Refactoring of snd_pcm_action(), simplification of PCM locking
         - Robustified sequecner auto-load functionality
         - New control API helpers and lots of cleanups along with them
         - Lots of kerneldoc fixes and cleanups
      
        USB-audio:
         - The mixer resume code was largely rewritten, and the devices with
           quirks are resumed properly.
         - New hardware support: Focusrite Scarlett, Digidesign Mbox1,
           Denon/Marantz DACs, Zoom R16/24
      
        FireWire:
         - DICE driver updates with better duplex and sync support, including
           MIDI support
         - New OXFW driver for Oxford Semiconductor FW970/971 chipset,
           including the previous LaCie Speakers device.  Fullduplex and MIDI
           support included as well as DICE driver.
      
        HD-audio:
         - Refactoring the driver-caps quirk handling in snd-hda-intel
         - More consistent control names representing the topology better
         - Fixups: HP mute LED with ALC268 codec, Ideapad S210 built-in mic
           fix, ASUS Z99He laptop EAPD
      
        ASoC:
         - Conversion of AC'97 drivers to use regmap, bringing us closer to
           the removal of the ASoC level I/O code
         - Clean up a lot of old drivers that were open coding things that
           have subsequently been implemented in the core
         - Some DAPM performance improvements
         - Removal of the now seldom used CODEC mutex
         - Lots of updates for the newer Intel SoC support, including support
           for the DSP and some Cherrytrail and Braswell machine drivers
         - Support for Samsung boards using rt5631 as the CODEC
         - Removal of the obsolete AFEB9260 machine driver
         - Driver support for the TI TS3A227E headset driver used in some
           Chrombeooks
      
        Others:
         - ASIHPI driver update and cleanups
         - Lots of dev_*() printk conversions
         - Lots of trivial cleanups for the codes spotted by Coccinelle"
      
      * tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (594 commits)
        ALSA: pcxhr: NULL dereference on probe failure
        ALSA: lola: NULL dereference on probe failure
        ALSA: hda - Add "eapd" model string for AD1986A codec
        ALSA: hda - Add EAPD fixup for ASUS Z99He laptop
        ALSA: oxfw: Add hwdep interface
        ALSA: oxfw: Add support for capture/playback MIDI messages
        ALSA: oxfw: add support for capturing PCM samples
        ALSA: oxfw: Add support AMDTP in-stream
        ALSA: oxfw: Add support for Behringer/Mackie devices
        ALSA: oxfw: Change the way to start stream
        ALSA: oxfw: Add proc interface for debugging purpose
        ALSA: oxfw: Change the way to make PCM rules/constraints
        ALSA: oxfw: Add support for AV/C stream format command to get/set supported stream formation
        ALSA: oxfw: Change the way to name card
        ALSA: dice: Add support for MIDI capture/playback
        ALSA: dice: Add support for capturing PCM samples
        ALSA: dice: Support for non SYT-Match sampling clock source mode
        ALSA: dice: Add support for duplex streams with synchronization
        ALSA: dice: Change the way to start stream
        ALSA: jack: Add dummy snd_jack_set_key() definition
        ...
      bae41e45
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · 7ef58b32
      Linus Torvalds authored
      Pull devicetree changes from Grant Likely:
       "Lots of activity in the devicetree code for v3.18.  Most of it is
        related to getting all of the overlay support code in place, but there
        are other important things in there.
      
        Highlights:
      
         - OF_RECONFIG notifiers for SPI, I2C and Platform devices.  Those
           subsystems can now respond to live changes to the device tree.
      
         - CONFIG_OF_OVERLAY method for applying live changes to the device
           tree
      
         - Removal of the of_allnodes list.  This used to be used to iterate
           over all the nodes in the device tree, but it is unnecessary
           because the same thing can be done by iterating over the list of
           child pointers.  Getting rid of of_allnodes saves some memory and
           avoids the possibility of of_allnodes being sorted differently from
           the child lists.
      
         - Support for retrieving original DTB blob via sysfs.  Needed by
           kexec.
      
         - More unittests
      
         - Documentation and minor bug fixes"
      
      * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux: (42 commits)
        of: Delete unnecessary check before calling "of_node_put()"
        of: Drop ->next pointer from struct device_node
        spi: Check for spi_of_notifier when CONFIG_OF_DYNAMIC=y
        of: support passing console options with stdout-path
        of: add optional options parameter to of_find_node_by_path()
        of: Add bindings for chosen node, stdout-path
        of: Remove unneeded and incorrect MODULE_DEVICE_TABLE
        ARM: dt: fix up PL011 device tree bindings
        of: base, fix of_property_read_string_helper kernel-doc
        of: remove select of non-existant OF_DEVICE config symbol
        spi/of: Add OF notifier handler
        spi/of: Create new device registration method and accessors
        i2c/of: Add OF_RECONFIG notifier handler
        i2c/of: Factor out Devicetree registration code
        of/overlay: Add overlay unittests
        of/overlay: Introduce DT overlay support
        of/reconfig: Add OF_DYNAMIC notifier for platform_bus_type
        of/reconfig: Always use the same structure for notifiers
        of/reconfig: Add debug output for OF_RECONFIG notifiers
        of/reconfig: Add empty stubs for the of_reconfig methods
        ...
      7ef58b32
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 413fd0e3
      Linus Torvalds authored
      Pull fbdev updates from Tomi Valkeinen:
       - support for mx6sl and mx6sx
       - OMAP HDMI audio rewrite to make it finally work
       - OMAP video PLL work to prepare for new DRA7xx SoCs
       - simplefb DT related improvements
      
      * tag 'fbdev-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (81 commits)
        video: uvesafb: Deletion of an unnecessary check before the function call "platform_device_put"
        video: fbdev-VIA: Deletion of an unnecessary check before the function call "framebuffer_release"
        video: fbdev-MMP: Deletion of an unnecessary check before the function call "mmp_unregister_path"
        video: mx3fb: Deletion of an unnecessary check before the function call "backlight_device_unregister"
        video: fbdev-OMAP2: Deletion of unnecessary checks before the function call "i2c_put_adapter"
        video: fbdev-SIS: Deletion of unnecessary checks before the function call "pci_dev_put"
        video: smscufx: Deletion of unnecessary checks before the function call "vfree"
        video: udlfb: Deletion of unnecessary checks before the function call "vfree"
        video: uvesafb: Deletion of an unnecessary check before the function call "uvesafb_free"
        video: fbdev-LCDC: Deletion of an unnecessary check before the function call "vfree"
        video: fbdev: arkfb: suppress build warning
        video: fbdev: s3fb: suppress build warning
        video: fbdev: vt8623fb: suppress build warning
        OMAPDSS: hdmi5: Fix bit field for IEC958_AES2_CON_SOURCE
        OMAPDSS: hdmi: Remove __exit qualifier from hdmi_uninit_output()
        OMAPDSS: hdmi5: Change hdmi_wp idlemode to to no_idle for audio playback
        OMAPDSS: Remove all references to obsolete HDMI audio callbacks
        ASoC: omap: Remove obsolete HDMI audio code and Kconfig options
        OMAPDSS: hdmi5: Register ASoC platform device for omap hdmi audio
        OMAPDSS: hdmi5: Remove callbacks for the old ASoC DAI driver
        ...
      413fd0e3
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 6b9e2cea
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
       "virtio: virtio 1.0 support, misc patches
      
        This adds a lot of infrastructure for virtio 1.0 support.  Notable
        missing pieces: virtio pci, virtio balloon (needs spec extension),
        vhost scsi.
      
        Plus, there are some minor fixes in a couple of places.
      
        Note: some net drivers are affected by these patches.  David said he's
        fine with merging these patches through my tree.
      
        Rusty's on vacation, he acked using my tree for these, too"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (70 commits)
        virtio_ccw: finalize_features error handling
        virtio_ccw: future-proof finalize_features
        virtio_pci: rename virtio_pci -> virtio_pci_common
        virtio_pci: update file descriptions and copyright
        virtio_pci: split out legacy device support
        virtio_pci: setup config vector indirectly
        virtio_pci: setup vqs indirectly
        virtio_pci: delete vqs indirectly
        virtio_pci: use priv for vq notification
        virtio_pci: free up vq->priv
        virtio_pci: fix coding style for structs
        virtio_pci: add isr field
        virtio: drop legacy_only driver flag
        virtio_balloon: drop legacy_only driver flag
        virtio_ccw: rev 1 devices set VIRTIO_F_VERSION_1
        virtio: allow finalize_features to fail
        virtio_ccw: legacy: don't negotiate rev 1/features
        virtio: add API to detect legacy devices
        virtio_console: fix sparse warnings
        vhost: remove unnecessary forward declarations in vhost.h
        ...
      6b9e2cea
    • Linus Torvalds's avatar
      Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 14ba9a2e
      Linus Torvalds authored
      Pull mailbox framework updates from Jassi Brar.
      
      * 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        Mailbox: Add support for Platform Communication Channel
        mailbox/omap: adapt to the new mailbox framework
        mailbox: add tx_prepare client callback
        mailbox: Don't unnecessarily re-arm the polling timer
      14ba9a2e
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · b859e7d1
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "Not a huge amount going on this release, mainly new drivers (there's a
        couple more waiting that didn't quite make the cut for this release
        too):
      
         - An interface for querying if the current transfer is the last in a
           message, allowing controllers that need special handling for the
           final transfer to use the core message parsing.
         - Support for Amlogic Meson SPIFC, Imagination Technologies SFPI,
           Intel Quark X1000 and Samsung Exynos 7 controllers"
      
      * tag 'spi-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (38 commits)
        spi/s3c64xx: Remove redundant runtime PM management
        spi: fsl-spi: remove unused variable assignment
        spi: spi-fsl-spi: Return an error code in fsl_spi_do_one_msg()
        spi: core: Do not mangle error code from kthread_run()
        spi: fsl-espi: add (un)prepare_transfer_hardware calls to save power if SPI is not in use
        spi: fsl-(e)spi: migrate to generic master queueing
        spi/txx9: Deletion of an unnecessary check before the function call "clk_disable"
        spi: cadence: Fix 3-to-8 mux mode
        spi: cadence: Init HW after reading devicetree attributes
        spi: meson: Select REGMAP_MMIO
        spi: s3c64xx: add support for exynos7 SPI controller
        spi: spi-pxa2xx: SPI support for Intel Quark X1000
        spi: meson: meson_spifc_setup_speed() can be static
        spi: spi-pxa2xx: Add helpers for regiseters' accessing
        spi: spi-mxs: Fix mapping from vmalloc-ed buffer to scatter list
        spi: atmel: introduce probe deferring
        spi: atmel: remove compat for non DT board when requesting dma chan
        spi: meson: Add support for Amlogic Meson SPIFC
        spi: meson: Add device tree bindings documentation for SPIFC
        spi: core: Add spi_transfer_is_last() helper
        ...
      b859e7d1
    • Linus Torvalds's avatar
      Merge tag 'edac/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac · 709d9f09
      Linus Torvalds authored
      Pull edac updates from Mauro Carvalho Chehab:
       - Broadwell-DE support on sb-edac driver
       - Some fixes at sb-edac driver
      
      * tag 'edac/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
        sb_edac: Fix typo computing number of banks
        sb_edac: Add support for Broadwell-DE processor
        sb_edac: Fix discovery of top-of-low-memory for Haswell
        sb_edac: Fix erroneous bytes->gigabytes conversion
        sb_edac: Fix off-by-one error in number of channels
      709d9f09
    • Marcelo Leitner's avatar
      Fix race condition between vxlan_sock_add and vxlan_sock_release · 00c83b01
      Marcelo Leitner authored
      
      
      Currently, when trying to reuse a socket, vxlan_sock_add will grab
      vn->sock_lock, locate a reusable socket, inc refcount and release
      vn->sock_lock.
      
      But vxlan_sock_release() will first decrement refcount, and then grab
      that lock. refcnt operations are atomic but as currently we have
      deferred works which hold vs->refcnt each, this might happen, leading to
      a use after free (specially after vxlan_igmp_leave):
      
        CPU 1                            CPU 2
      
      deferred work                    vxlan_sock_add
        ...                              ...
                                         spin_lock(&vn->sock_lock)
                                         vs = vxlan_find_sock();
        vxlan_sock_release
          dec vs->refcnt, reaches 0
          spin_lock(&vn->sock_lock)
                                         vxlan_sock_hold(vs), refcnt=1
                                         spin_unlock(&vn->sock_lock)
          hlist_del_rcu(&vs->hlist);
          vxlan_notify_del_rx_port(vs)
          spin_unlock(&vn->sock_lock)
      
      So when we look for a reusable socket, we check if it wasn't freed
      already before reusing it.
      
      Signed-off-by: default avatarMarcelo Ricardo Leitner <mleitner@redhat.com>
      Fixes: 7c47cedf
      
       ("vxlan: move IGMP join/leave to work queue")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00c83b01