1. 12 Sep, 2013 40 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 26935fb0
      Linus Torvalds authored
      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
        ...
      26935fb0
    • Al Viro's avatar
      Merge branch 'for-next' into for-linus · bf2ba3bc
      Al Viro authored
      bf2ba3bc
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 3cc69b63
      Linus Torvalds authored
      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
      3cc69b63
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 0e6a1fb1
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Just two fixes here - one for the recent addition of Neon stuff which
        causes problems when this is built as a module.  The other was one
        spotted by Olof with the fixed-HZ stuff.
      
        Last patch (which is at the very top) is not a fix per-se, but an
        almost-end-of-merge window sorting of the select symbols in
        arch/arm/Kconfig to keep them as akpm would like to reduce unnecessary
        conflicts.  I've also taken the liberty this time to add a comment at
        the end to discourage the endless "add the next select to the bottom
        of a nicely sorted list" syndrome"
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: sort arch/arm/Kconfig
        ARM: fix forced-HZ values
        ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled
      0e6a1fb1
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 1d7b24ff
      Linus Torvalds authored
      Pull NFS client bugfixes (part 2) from Trond Myklebust:
       "Bugfixes:
         - Fix a few credential reference leaks resulting from the
           SP4_MACH_CRED NFSv4.1 state protection code.
         - Fix the SUNRPC bloatometer footprint: convert a 256K hashtable into
           the intended 64 byte structure.
         - Fix a long standing XDR issue with FREE_STATEID
         - Fix a potential WARN_ON spamming issue
         - Fix a missing dprintk() kuid conversion
      
        New features:
         - Enable the NFSv4.1 state protection support for the WRITE and
           COMMIT operations"
      
      * tag 'nfs-for-3.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: No, I did not intend to create a 256KiB hashtable
        sunrpc: Add missing kuids conversion for printing
        NFSv4.1: sp4_mach_cred: WARN_ON -> WARN_ON_ONCE
        NFSv4.1: sp4_mach_cred: no need to ref count creds
        NFSv4.1: fix SECINFO* use of put_rpccred
        NFSv4.1: sp4_mach_cred: ask for WRITE and COMMIT
        NFSv4.1 fix decode_free_stateid
      1d7b24ff
    • Linus Torvalds's avatar
      vfs: make d_path() get the root path under RCU · 68f0d9d9
      Linus Torvalds authored
      This avoids the spinlocks and refcounts in the d_path() sequence too
      (used by /proc and various other entities).  See commit 8b19e341 for
      the equivalent getcwd() system call path.
      
      And unlike getcwd(), d_path() doesn't copy the result to user space, so
      I don't need to fear _that_ particular bug happening again.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      68f0d9d9
    • Russell King's avatar
      ARM: sort arch/arm/Kconfig · 171b3f0d
      Russell King authored
      Keep arch/arm/Kconfig select statements sorted alphabetically.  I've
      added a comment at the bottom of the main bank for CONFIG_ARM to this
      effect so hopefully this will keep things more in order.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      171b3f0d
    • Linus Torvalds's avatar
      vfs: use __getname/__putname for getcwd() system call · 3272c544
      Linus Torvalds authored
      It's a pathname.  It should use the pathname allocators and
      deallocators, and PATH_MAX instead of PAGE_SIZE.  Never mind that the
      two are commonly the same.
      
      With this, the allocations scale up nicely too, and I can do getcwd()
      system calls at a rate of about 300M/s, with no lock contention
      anywhere.
      
      Of course, nobody sane does that, especially since getcwd() is
      traditionally a very slow operation in Unix.  But this was also the
      simplest way to benchmark the prepend_path() improvements by Waiman, and
      once I saw the profiles I couldn't leave it well enough alone.
      
      But apart from being an performance improvement (from using per-cpu slab
      allocators instead of the raw page allocator), it's actually a valid and
      real cleanup.
      Signed-off-by: default avatarLinus "OCD" Torvalds <torvalds@linux-foundation.org>
      3272c544
    • Maxime Ripard's avatar
      ARM: dts: sun7i: olinuxino-micro: Enable the EMAC · f7ec00b3
      Maxime Ripard authored
      The A20-olinuxino-micro has the EMAC wired in. Enable it in the DT so
      that we can use it.
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      f7ec00b3
    • Maxime Ripard's avatar
      ARM: dts: sun7i: cubieboard2: Enable the EMAC · 05474337
      Maxime Ripard authored
      The Cubieboard2, just like its A10 counterpart, has the Ethernet wired
      in. Enable it in the DT.
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      05474337
    • Maxime Ripard's avatar
      ARM: dts: sun7i: Add the muxing options for the EMAC · 756084c5
      Maxime Ripard authored
      The A20 has several muxing options for the EMAC. Yet, the currently
      supported boards only use one set of them. Add that pin set to the DTSI.
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      756084c5
    • Maxime Ripard's avatar
      ARM: dts: sun7i: Enable the Ethernet in the A20 · 2e804d03
      Maxime Ripard authored
      The Allwinner A20 SoC also have the EMAC found on the A10 and A10s.
      Enable the support for it in the DTSI.
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      2e804d03
    • Linus Torvalds's avatar
      vfs: don't copy things to user space holding the rcu readlock · ff812d72
      Linus Torvalds authored
      Oops.  That wasn't very smart.  We don't actually need the RCU lock any
      more by the time we copy the cwd string to user space, but I had
      stupidly surrounded the whole thing with it.
      
      Introduced by commit 8b19e341 ("vfs: make getcwd() get the root and
      pwd path under rcu")
      
      Is-a-big-hairy-idiot: Linus Torvalds <torvalds@linux-foundation.org>
      ff812d72
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 5223161d
      Linus Torvalds authored
      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
        ...
      5223161d
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · e5d0c874
      Linus Torvalds authored
      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)
      e5d0c874
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.12-rc0-tag-three' of... · d5adf7e2
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.12-rc0-tag-three' of git://git.kernel.org/pub/scm/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
      d5adf7e2
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-fixes-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 02b9735c
      Linus Torvalds authored
      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 7c30ed53 (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
        ...
      02b9735c
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 75acebf2
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Various fixes.
      
        The -g perf report lockup you reported is only partially addressed,
        patches that fix the excessive runtime are still being worked on"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86: Fix uncore PCI fixed counter handling
        uprobes: Fix utask->depth accounting in handle_trampoline()
        perf/x86: Add constraint for IVB CYCLE_ACTIVITY:CYCLES_LDM_PENDING
        perf: Fix up MMAP2 buffer space reservation
        perf tools: Add attr->mmap2 support
        perf kvm: Fix sample_type manipulation
        perf evlist: Fix id pos in perf_evlist__open()
        perf trace: Handle perf.data files with no tracepoints
        perf session: Separate progress bar update when processing events
        perf trace: Check if MAP_32BIT is defined
        perf hists: Fix formatting of long symbol names
        perf evlist: Fix parsing with no sample_id_all bit set
        perf tools: Add test for parsing with no sample_id_all bit
        perf trace: Check control+C more often
      75acebf2
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b55ee281
      Linus Torvalds authored
      Pull scheduler fix from Ingo Molnar:
       "Performance regression fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Fix load balancing performance regression in should_we_balance()
      b55ee281
    • Linus Torvalds's avatar
      vfs: make getcwd() get the root and pwd path under rcu · 8b19e341
      Linus Torvalds authored
      This allows us to skip all the crazy spinlocks and reference count
      updates, and instead use the fs sequence read-lock to get an atomic
      snapshot of the root and cwd information.
      
      We might want to make the rule that "prepend_path()" is always called
      with the RCU lock held, but the RCU lock nests fine and this is the
      minimal fix.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8b19e341
    • Linus Torvalds's avatar
      vfs: move get_fs_root_and_pwd() to single caller · 5762482f
      Linus Torvalds authored
      Let's not pollute the include files with inline functions that are only
      used in a single place.  Especially not if we decide we might want to
      change the semantics of said function to make it more efficient..
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5762482f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · b7c09ad4
      Linus Torvalds authored
      Pull btrfs updates from Chris Mason:
       "This is against 3.11-rc7, but was pulled and tested against your tree
        as of yesterday.  We do have two small incrementals queued up, but I
        wanted to get this bunch out the door before I hop on an airplane.
      
        This is a fairly large batch of fixes, performance improvements, and
        cleanups from the usual Btrfs suspects.
      
        We've included Stefan Behren's work to index subvolume UUIDs, which is
        targeted at speeding up send/receive with many subvolumes or snapshots
        in place.  It closes a long standing performance issue that was built
        in to the disk format.
      
        Mark Fasheh's offline dedup work is also here.  In this case offline
        means the FS is mounted and active, but the dedup work is not done
        inline during file IO.  This is a building block where utilities are
        able to ask the FS to dedup a series of extents.  The kernel takes
        care of verifying the data involved really is the same.  Today this
        involves reading both extents, but we'll continue to evolve the
        patches"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)
        Btrfs: optimize key searches in btrfs_search_slot
        Btrfs: don't use an async starter for most of our workers
        Btrfs: only update disk_i_size as we remove extents
        Btrfs: fix deadlock in uuid scan kthread
        Btrfs: stop refusing the relocation of chunk 0
        Btrfs: fix memory leak of uuid_root in free_fs_info
        btrfs: reuse kbasename helper
        btrfs: return btrfs error code for dev excl ops err
        Btrfs: allow partial ordered extent completion
        Btrfs: convert all bug_ons in free-space-cache.c
        Btrfs: add support for asserts
        Btrfs: adjust the fs_devices->missing count on unmount
        Btrf: cleanup: don't check for root_refs == 0 twice
        Btrfs: fix for patch "cleanup: don't check the same thing twice"
        Btrfs: get rid of one BUG() in write_all_supers()
        Btrfs: allocate prelim_ref with a slab allocater
        Btrfs: pass gfp_t to __add_prelim_ref() to avoid always using GFP_ATOMIC
        Btrfs: fix race conditions in BTRFS_IOC_FS_INFO ioctl
        Btrfs: fix race between removing a dev and writing sbs
        Btrfs: remove ourselves from the cluster list under lock
        ...
      b7c09ad4
    • Waiman Long's avatar
      dcache: get/release read lock in read_seqbegin_or_lock() & friend · 18129977
      Waiman Long authored
      This patch modifies read_seqbegin_or_lock() and need_seqretry() to use
      newly introduced read_seqlock_excl() and read_sequnlock_excl()
      primitives so that they won't change the sequence number even if they
      fall back to take the lock.  This is OK as no change to the protected
      data structure is being made.
      
      It will prevent one fallback to lock taking from cascading into a series
      of lock taking reducing performance because of the sequence number
      change.  It will also allow other sequence readers to go forward while
      an exclusive reader lock is taken.
      
      This patch also updates some of the inaccurate comments in the code.
      Signed-off-by: default avatarWaiman Long <Waiman.Long@hp.com>
      To: Alexander Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      18129977
    • Waiman Long's avatar
      seqlock: Add a new locking reader type · 1370e97b
      Waiman Long authored
      The sequence lock (seqlock) was originally designed for the cases where
      the readers do not need to block the writers by making the readers retry
      the read operation when the data change.
      
      Since then, the use cases have been expanded to include situations where
      a thread does not need to change the data (effectively a reader) at all
      but have to take the writer lock because it can't tolerate changes to
      the protected structure.  Some examples are the d_path() function and
      the getcwd() syscall in fs/dcache.c where the functions take the writer
      lock on rename_lock even though they don't need to change anything in
      the protected data structure at all.  This is inefficient as a reader is
      now blocking other sequence number reading readers from moving forward
      by pretending to be a writer.
      
      This patch tries to eliminate this inefficiency by introducing a new
      type of locking reader to the seqlock locking mechanism.  This new
      locking reader will try to take an exclusive lock preventing other
      writers and locking readers from going forward.  However, it won't
      affect the progress of the other sequence number reading readers as the
      sequence number won't be changed.
      Signed-off-by: default avatarWaiman Long <Waiman.Long@hp.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1370e97b
    • Linus Torvalds's avatar
      Merge tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · decf7abc
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A few last-minute fixes for 3.12-rc1.  All patches are driver
        specific.
      
         - HD-audio fixes: MacBook 6,1/6,2 speaker fix, ASUS TX300 dock
           speaker fix, Toshiba Satellite irq fix, Haswell HDMI audio
           cleanups)
      
         - ASoC fixes: atmel irq fix, fsl DT fix, mc13783 spi fix, kirkwood
           compatible string change, etc"
      
      * tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: mc13783: add spi errata fix
        ASoC: rsnd: fixup flag name of rsnd_scu_platform_info
        ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2
        ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist
        ASoC: fsl_spdif: Select regmap-mmio
        ALSA: hda - unmute pin amplifier in infoframe setup for Haswell
        ALSA: hda - define is_haswell() to check if a display audio codec is Haswell
        ALSA: hda - Add dock speaker support for ASUS TX300
        ASoC: kirkwood: change the compatible string of the kirkwood-i2s driver
        ASoC: atmel: disable error interrupt
        ASoC: fsl: imx-audmux: Do not call imx_audmux_parse_dt_defaults() on non-dt kernel
      decf7abc
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 24ba4058
      Linus Torvalds authored
      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
      24ba4058
    • Joerg Roedel's avatar
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · b9b42eeb
      Linus Torvalds authored
      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
        ...
      b9b42eeb
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 7b7a2f0a
      Linus Torvalds authored
      Pull CIFS fixes from Steve French:
       "CIFS update including case insensitive file name matching improvements
        for UTF-8 to Unicode, various small cifs fixes, SMB2/SMB3 leasing
        improvements, support for following SMB2 symlinks, SMB3 packet signing
        improvements"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: (25 commits)
        CIFS: Respect epoch value from create lease context v2
        CIFS: Add create lease v2 context for SMB3
        CIFS: Move parsing lease buffer to ops struct
        CIFS: Move creating lease buffer to ops struct
        CIFS: Store lease state itself rather than a mapped oplock value
        CIFS: Replace clientCanCache* bools with an integer
        [CIFS] quiet sparse compile warning
        cifs: Start using per session key for smb2/3 for signature generation
        cifs: Add a variable specific to NTLMSSP for key exchange.
        cifs: Process post session setup code in respective dialect functions.
        CIFS: convert to use le32_add_cpu()
        CIFS: Fix missing lease break
        CIFS: Fix a memory leak when a lease break comes
        cifs: add winucase_convert.pl to Documentation/ directory
        cifs: convert case-insensitive dentry ops to use new case conversion routines
        cifs: add new case-insensitive conversion routines that are based on wchar_t's
        [CIFS] Add Scott to list of cifs contributors
        cifs: Move and expand MAX_SERVER_SIZE definition
        cifs: Expand max share name length to 256
        cifs: Move string length definitions to uapi
        ...
      7b7a2f0a
    • Noam Camus's avatar
      ARC: SMP failed to boot due to missing IVT setup · c3567f8a
      Noam Camus authored
      Commit 05b016ec "ARC: Setup Vector Table Base in early boot" moved
      the Interrupt vector Table setup out of arc_init_IRQ() which is called
      for all CPUs, to entry point of boot cpu only, breaking booting of others.
      
      Fix by adding the same to entry point of non-boot CPUs too.
      
      read_arc_build_cfg_regs() printing IVT Base Register didn't help the
      casue since it prints a synthetic value if zero which is totally bogus,
      so fix that to print the exact Register.
      
      [vgupta: Remove the now stale comment from header of arc_init_IRQ and
      also added the commentary for halt-on-reset]
      
      Cc: Gilad Ben-Yossef <gilad@benyossef.com>
      Cc: Cc: <stable@vger.kernel.org> #3.11
      Signed-off-by: default avatarNoam Camus <noamc@ezchip.com>
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c3567f8a
    • Trond Myklebust's avatar
      SUNRPC: No, I did not intend to create a 256KiB hashtable · 23c323af
      Trond Myklebust authored
      Fix the declaration of the gss_auth_hash_table so that it creates
      a 16 bucket hashtable, as I had intended.
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      23c323af
    • Geert Uytterhoeven's avatar
      sunrpc: Add missing kuids conversion for printing · 13429305
      Geert Uytterhoeven authored
      m68k/allmodconfig:
      
      net/sunrpc/auth_generic.c: In function ‘generic_key_timeout’:
      net/sunrpc/auth_generic.c:241: warning: format ‘%d’ expects type ‘int’, but
      argument 2 has type ‘kuid_t’
      
      commit cdba321e ("sunrpc: Convert kuids and
      kgids to uids and gids for printing") forgot to convert one instance.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      13429305
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · f1728fd1
      Rafael J. Wysocki authored
      * 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
      f1728fd1
    • Stephane Eranian's avatar
      perf/x86: Fix uncore PCI fixed counter handling · dbc33f70
      Stephane Eranian authored
      There was a bug in the handling of SNB-EP/IVB-EP uncore PCI
      fixed counters, e.g., IMC.
      
      It would cause erratic values to be returned for the IMC
      clockticks event. This was due to a bogus hwc->config value
      which was then written to PCI config space.
      
      The erratic values can be seen via:
      
        $ perf stat -a -C 0 -e uncore_imc_0/clockticks/ -I 1000 sleep 10
      
      The fixed counter has most fields marked as reserved with
      hw reset values of 0. Yet the kernel was defaulting to a
      hwc->config = ~0 and that was causing the issues.
      
      This patch sets the hwc->config values for fixed uncore event
      to 0. Now, the values of IMC clockticks is correct.
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
      Cc: peterz@infradead.org
      Cc: zheng.z.yan@intel.com
      Link: http://lkml.kernel.org/r/20130909195350.GA17643@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      dbc33f70
    • Oleg Nesterov's avatar
      uprobes: Fix utask->depth accounting in handle_trampoline() · 878b5a6e
      Oleg Nesterov authored
      Currently utask->depth is simply the number of allocated/pending
      return_instance's in uprobe_task->return_instances list.
      
      handle_trampoline() should decrement this counter every time we
      handle/free an instance, but due to typo it does this only if
      ->chained == T. This means that in the likely case this counter
      is never decremented and the probed task can't report more than
      MAX_URETPROBE_DEPTH events.
      Reported-by: default avatarMikhail Kulemin <Mikhail.Kulemin@ru.ibm.com>
      Reported-by: default avatarHemant Kumar Shaw <hkshaw@linux.vnet.ibm.com>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarAnton Arapov <anton@redhat.com>
      Cc: masami.hiramatsu.pt@hitachi.com
      Cc: srikar@linux.vnet.ibm.com
      Cc: systemtap@sourceware.org
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/20130911154726.GA8093@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      878b5a6e
    • Stephane Eranian's avatar
      perf/x86: Add constraint for IVB CYCLE_ACTIVITY:CYCLES_LDM_PENDING · 6113af14
      Stephane Eranian authored
      The IvyBridge event CYCLE_ACTIVITY:CYCLES_LDM_PENDING can only
      be measured on counters 0-3 when HT is off. When HT is on, you
      only have counters 0-3.
      
      If you program it on the eight counters for 1s on a 3GHz
      IVB laptop running a noploop, you see:
      
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
      
      Clearly the last 4 values are bogus.
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Cc: peterz@infradead.org
      Cc: ak@linux.intel.com
      Cc: zheng.z.yan@intel.com
      Cc: dhsharp@google.com
      Link: http://lkml.kernel.org/r/20130911152222.GA28761@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      6113af14
    • Ingo Molnar's avatar
      Merge tag 'perf-urgent-for-mingo' of... · e6d38183
      Ingo Molnar authored
      Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
       * Handle perf.data files with no tracepoints in 'perf trace', fixing a
         segfault.
      
       * Fix up MMAP2 buffer space reservation, a problem that was caught via
         'perf test' consistency tests.
      
       * Add attr->mmap2 support in the tools, a patch that should've been merged
         together with the kernel counterpart:
      
           13d7a241 "perf: Add attr->mmap2 attribute to an event".
      
         Merging it allowed us to catch the MMAP buffer space reservation problem via
         'perf test'. From Stephane Eranian.
      
         The tools deals with older kernels by disabling this feature, resetting the
         perf_event_attr.mmap2 bit, when -EINVAL is returned by perf_event_open, just
         like with perf_event_attr.{sample_id_all,exclude_{guest,host}}.
      
         When such fallback happens the perf_missing_features.mmap2 flag is set to
         true and can be used by tooling that strictly needs this feature to check
         for its availability on the running kernel.
      
       * Make sure we can find PERF_SAMPLE_ID in the variable part of PERF_RECORD_
         ring buffer records in 'perf kvm', where direct manipulation of sample_type
         was being done.
      
         Fixed by making use of the perf_evlist__set_sample_bit() helper and by
         setting the evlist->id_pos in perf_evlist__open(), from Adrian Hunter.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      e6d38183
    • Linus Torvalds's avatar
      Bye, bye, WfW flag · d5d04bb4
      Linus Torvalds authored
      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: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d5d04bb4
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-3.12-rc1-crypt-ctx' of... · 1ae276a9
      Linus Torvalds authored
      Merge tag 'ecryptfs-3.12-rc1-crypt-ctx' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull eCryptfs fixes from Tyler Hicks:
       "Two small fixes to the code that initializes the per-file crypto
        contexts"
      
      * tag 'ecryptfs-3.12-rc1-crypt-ctx' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        ecryptfs: avoid ctx initialization race
        ecryptfs: remove check for if an array is NULL
      1ae276a9
    • Linus Torvalds's avatar
      Merge branch 'for-v3.12-fix' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 3b38f56c
      Linus Torvalds authored
      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
      3b38f56c