commit 6969595f011b46b49c3f1b9e0bd7da27768c1fd9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Mar 6 21:58:45 2014 -0800

    Linux 3.10.33

commit e9ba61f0ddacaa5efd7dd4619d828d2466638913
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Wed Feb 19 16:19:35 2014 -0800

    ioat: fix tasklet tear down
    
    commit da87ca4d4ca101f177fffd84f1f0a5e4c0343557 upstream.
    
    Since commit 77873803363c "net_dma: mark broken" we no longer pin dma
    engines active for the network-receive-offload use case.  As a result
    the ->free_chan_resources() that occurs after the driver self test no
    longer has a NET_DMA induced ->alloc_chan_resources() to back it up.  A
    late firing irq can lead to ksoftirqd spinning indefinitely due to the
    tasklet_disable() performed by ->free_chan_resources().  Only
    ->alloc_chan_resources() can clear this condition in affected kernels.
    
    This problem has been present since commit 3e037454bcfa "I/OAT: Add
    support for MSI and MSI-X" in 2.6.24, but is now exposed. Given the
    NET_DMA use case is deprecated we can revisit moving the driver to use
    threaded irqs.  For now, just tear down the irq and tasklet properly by:
    
    1/ Disable the irq from triggering the tasklet
    
    2/ Disable the irq from re-arming
    
    3/ Flush inflight interrupts
    
    4/ Flush the timer
    
    5/ Flush inflight tasklets
    
    References:
    https://lkml.org/lkml/2014/1/27/282
    https://lkml.org/lkml/2014/2/19/672
    
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Reported-by: Mike Galbraith <bitbucket@online.de>
    Reported-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
    Tested-by: Mike Galbraith <bitbucket@online.de>
    Tested-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4cd4961cf9c455d1299c21a353ae3e81a23b872
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Feb 25 10:21:43 2014 -0500

    drm/radeon: disable pll sharing for DP on DCE4.1
    
    commit 9ef4e1d000a5b335fcebfcf8aef3405e59574c89 upstream.
    
    Causes display problems.  We had already disabled
    sharing for non-DP displays.
    
    Based on a patch from:
    Niels Ole Salscheider <niels_ole@salscheider-online.de>
    
    bug:
    https://bugzilla.kernel.org/show_bug.cgi?id=58121
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b82a80b1d53114105c849887182a2b74c64d638
Author: Christian König <christian.koenig@amd.com>
Date:   Thu Feb 20 18:47:14 2014 +0100

    drm/radeon: fix missing bo reservation
    
    commit 5e386b574cf7e1593e1296e5b0feea4108ed6ad8 upstream.
    
    Otherwise we might get a crash here.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a57734917e302a9bd8c78290d7c23b0cb713989
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Feb 20 09:16:01 2014 -0500

    drm/radeon: print the supported atpx function mask
    
    commit 9f050c7f9738ffa746c63415136645ad231b1348 upstream.
    
    Print the supported functions mask in addition to
    the version.  This is useful in debugging PX
    problems since we can see what functions are available.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe8ee730af52255cde67dc134e4500cfe4025f83
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Wed Feb 19 20:32:33 2014 -0500

    dm thin: fix the error path for the thin device constructor
    
    commit 1acacc0784aab45627b6009e0e9224886279ac0b upstream.
    
    dm_pool_close_thin_device() must be called if dm_set_target_max_io_len()
    fails in thin_ctr().  Otherwise __pool_destroy() will fail because the
    pool will still have an open thin device:
    
     device-mapper: thin metadata: attempt to close pmd when 1 device(s) are still open
     device-mapper: thin: __pool_destroy: dm_pool_metadata_close() failed.
    
    Also, must establish error code if failing thin_ctr() because the pool
    is in fail_io mode.
    
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Acked-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f48d3328e128896f3d22ca5f8c4825108e55e30
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Thu Feb 6 06:08:56 2014 -0500

    dm thin: avoid metadata commit if a pool's thin devices haven't changed
    
    commit 4d1662a30dde6e545086fe0e8fd7e474c4e0b639 upstream.
    
    Commit 905e51b ("dm thin: commit outstanding data every second")
    introduced a periodic commit.  This commit occurs regardless of whether
    any thin devices have made changes.
    
    Fix the periodic commit to check if any of a pool's thin devices have
    changed using dm_pool_changed_this_transaction().
    
    Reported-by: Alexander Larsson <alexl@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Acked-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4124bc34fe3a9f6c5fa3910ca0cc573708eb3b6
Author: Hannes Reinecke <hare@suse.de>
Date:   Wed Feb 26 10:07:04 2014 +0100

    dm mpath: fix stalls when handling invalid ioctls
    
    commit a1989b330093578ea5470bea0a00f940c444c466 upstream.
    
    An invalid ioctl will never be valid, irrespective of whether multipath
    has active paths or not.  So for invalid ioctls we do not have to wait
    for multipath to activate any paths, but can rather return an error
    code immediately.  This fix resolves numerous instances of:
    
     udevd[]: worker [] unexpectedly returned with status 0x0100
    
    that have been seen during testing.
    
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 102544b7f13be7023db6f6447bf67cdafc239f24
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Thu Feb 13 10:39:01 2014 +0100

    dma: ste_dma40: don't dereference free:d descriptor
    
    commit e9baa9d9d520fb0e24cca671e430689de2d4a4b2 upstream.
    
    It appears that in the DMA40 driver the DMA tasklet will very
    often dereference memory for a descriptor just free:d from the
    DMA40 slab. Nothing happens because no other part of the driver
    has yet had a chance to claim this memory, but it's really
    nasty to dereference free:d memory, so let's check the flag
    before the descriptor is free and store it in a bool variable.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7caf9429406422de57e1b65284f47d8e5cbf7ae
Author: Jean Delvare <jdelvare@suse.de>
Date:   Tue Feb 25 09:43:13 2014 +0100

    i7300_edac: Fix device reference count
    
    commit 75135da0d68419ef8a925f4c1d5f63d8046e314d upstream.
    
    pci_get_device() decrements the reference count of "from" (last
    argument) so when we break off the loop successfully we have only one
    device reference - and we don't know which device we have. If we want
    a reference to each device, we must take them explicitly and let
    the pci_get_device() walk complete to avoid duplicate references.
    
    This is serious, as over-putting device references will cause
    the device to eventually disappear. Without this fix, the kernel
    crashes after a few insmod/rmmod cycles.
    
    Tested on an Intel S7000FC4UR system with a 7300 chipset.
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Link: http://lkml.kernel.org/r/20140224111656.09bbb7ed@endymion.delvare
    Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Cc: Doug Thompson <dougthompson@xmission.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31ccf35d556f2018744e9d5dd2b172872cec0818
Author: Dr. Greg Wettstein <greg@enjellic.com>
Date:   Mon Feb 24 13:59:53 2014 -0600

    qla2xxx: Fix kernel panic on selective retransmission request
    
    commit 6f58c780e5a5b43a6d2121e0d43cdcba1d3cc5fc upstream.
    
    A selective retransmission request (SRR) is a fibre-channel
    protocol control request which provides support for requesting
    retransmission of a data sequence in response to an issue such as
    frame loss or corruption.  These events are experienced
    infrequently in fibre-channel based networks which makes
    it difficult to test and assess codepaths which handle these
    events.
    
    We were fortunate enough, for some definition of fortunate, to
    have a metro-area single-mode SAN link which, at 10 GBPS
    sustained load levels, would consistently generate SRR's in
    a SCST based target implementation using our SCST/in-kernel
    Qlogic target interface driver.  In response to an SRR the
    in-kernel Qlogic target driver immediately panics resulting
    in a catastrophic storage failure for serviced initiators.
    
    The culprit was a debug statement in the qla_target.c file which
    does not verify that a pointer to the SCSI CDB is not null.
    The unchecked pointer dereference results in the kernel panic
    and resultant system failure.
    
    The other two references to the SCSI CDB by the SRR handling code
    use a ternary operator to verify a non-null pointer is being
    acted on.  This patch simply adds a similar test to the implicated
    debug statement.
    
    This patch is a candidate for any stable kernel being maintained
    since it addresses a potentially catastrophic event with
    minimal downside.
    
    Signed-off-by: Dr. Greg Wettstein <greg@enjellic.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fed783a535fe9cf3068977562235cf334fbff0b3
Author: Will Deacon <will.deacon@arm.com>
Date:   Mon Aug 12 18:04:05 2013 +0100

    ARM: 7812/1: rwlocks: retry trylock operation if strex fails on free lock
    
    commit 00efaa0250939dc148e2d3104fb3c18395d24a2d upstream.
    
    Commit 15e7e5c1ebf5 ("ARM: 7749/1: spinlock: retry trylock operation if
    strex fails on free lock") modifying our arch_spin_trylock to retry the
    acquisition if the lock appeared uncontended, but the strex failed.
    
    This patch does the same for rwlocks, which were missed by the original
    patch.
    
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Li Zefan <lizefan@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f411a4439b68149518898379d7d537a32becb381
Author: Will Deacon <will.deacon@arm.com>
Date:   Wed Jun 5 11:27:26 2013 +0100

    ARM: 7749/1: spinlock: retry trylock operation if strex fails on free lock
    
    commit 15e7e5c1ebf556cd620c9b091e121091ac760f6d upstream.
    
    An exclusive store instruction may fail for reasons other than lock
    contention (e.g. a cache eviction during the critical section) so, in
    line with other architectures using similar exclusive instructions
    (alpha, mips, powerpc), retry the trylock operation if the lock appears
    to be free but the strex reported failure.
    
    Reported-by: Tony Thompson <anthony.thompson@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Li Zefan <lizefan@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79e43826099dad17a9ff6014b508f2de950099f6
Author: Stephen Warren <swarren@nvidia.com>
Date:   Tue Feb 18 16:51:58 2014 -0700

    ARM: tegra: only run PL310 init on systems with one
    
    commit 8859685785bfafadf9bc922dd3a2278e59886947 upstream.
    
    Fix tegra_init_cache() to check whether the system has a PL310 cache
    before touching the PL310 registers. This prevents access to non-existent
    registers on Tegra114 and later.
    
    Note for stable kernels:
    In <= v3.12, the file to patch is arch/arm/mach-tegra/common.c.
    
    Signed-off-by: Stephen Warren <swarren@nvidia.com>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c56e0dc1b70f1537659acffc6ac8d8d615be2dae
Author: Olof Johansson <olof@lixom.net>
Date:   Fri Feb 14 19:35:15 2014 +0000

    ARM64: unwind: Fix PC calculation
    
    commit e306dfd06fcb44d21c80acb8e5a88d55f3d1cf63 upstream.
    
    The frame PC value in the unwind code used to just take the saved LR
    value and use that.  That's incorrect as a stack trace, since it shows
    the return path stack, not the call path stack.
    
    In particular, it shows faulty information in case the bl is done as
    the very last instruction of one label, since the return point will be
    in the next label. That can easily be seen with tail calls to panic(),
    which is marked __noreturn and thus doesn't have anything useful after it.
    
    Easiest here is to just correct the unwind code and do a -4, to get the
    actual call site for the backtrace instead of the return site.
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b500c0d3edf6c54e34a65c766a7a657b8ca88952
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue Feb 25 22:05:35 2014 +0000

    irq-metag*: stop set_affinity vectoring to offline cpus
    
    commit f229006ec6beabf7b844653d92fa61f025fe3dcf upstream.
    
    Fix irq_set_affinity callbacks in the Meta IRQ chip drivers to AND
    cpu_online_mask into the cpumask when picking a CPU to vector the
    interrupt to.
    
    As Thomas pointed out, the /proc/irq/$N/smp_affinity interface doesn't
    filter out offline CPUs, so without this patch if you offline CPU0 and
    set an IRQ affinity to 0x3 it vectors the interrupt onto CPU0 even
    though it is offline.
    
    Reported-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-metag@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 790cc82a2b2b43f9d47934aab74d892c271fcbed
Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Date:   Tue Feb 18 15:22:12 2014 +0000

    Input - arizona-haptics: Fix double lock of dapm_mutex
    
    commit c4204960e9d0ba99459dbf1db918f99a45e7a62a upstream.
    
    snd_soc_dapm_sync takes the dapm_mutex internally, but we currently take
    it externally as well. This patch fixes this.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3079c1e6efde8ecb954214154253b67cbb6f3dd4
Author: Davidlohr Bueso <davidlohr@hp.com>
Date:   Tue Feb 25 15:01:45 2014 -0800

    ipc,mqueue: remove limits for the amount of system-wide queues
    
    commit f3713fd9cff733d9df83116422d8e4af6e86b2bb upstream.
    
    Commit 93e6f119c0ce ("ipc/mqueue: cleanup definition names and
    locations") added global hardcoded limits to the amount of message
    queues that can be created.  While these limits are per-namespace,
    reality is that it ends up breaking userspace applications.
    Historically users have, at least in theory, been able to create up to
    INT_MAX queues, and limiting it to just 1024 is way too low and dramatic
    for some workloads and use cases.  For instance, Madars reports:
    
     "This update imposes bad limits on our multi-process application.  As
      our app uses approaches that each process opens its own set of queues
      (usually something about 3-5 queues per process).  In some scenarios
      we might run up to 3000 processes or more (which of-course for linux
      is not a problem).  Thus we might need up to 9000 queues or more.  All
      processes run under one user."
    
    Other affected users can be found in launchpad bug #1155695:
      https://bugs.launchpad.net/ubuntu/+source/manpages/+bug/1155695
    
    Instead of increasing this limit, revert it entirely and fallback to the
    original way of dealing queue limits -- where once a user's resource
    limit is reached, and all memory is used, new queues cannot be created.
    
    Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
    Reported-by: Madars Vitolins <m@silodev.com>
    Acked-by: Doug Ledford <dledford@redhat.com>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4480120a6cf3c834cc73431d615bb716be586f2f
Author: Jan Kara <jack@suse.cz>
Date:   Thu Feb 20 17:02:27 2014 +0100

    quota: Fix race between dqput() and dquot_scan_active()
    
    commit 1362f4ea20fa63688ba6026e586d9746ff13a846 upstream.
    
    Currently last dqput() can race with dquot_scan_active() causing it to
    call callback for an already deactivated dquot. The race is as follows:
    
    CPU1					CPU2
      dqput()
        spin_lock(&dq_list_lock);
        if (atomic_read(&dquot->dq_count) > 1) {
         - not taken
        if (test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) {
          spin_unlock(&dq_list_lock);
          ->release_dquot(dquot);
            if (atomic_read(&dquot->dq_count) > 1)
             - not taken
    					  dquot_scan_active()
    					    spin_lock(&dq_list_lock);
    					    if (!test_bit(DQ_ACTIVE_B, &dquot->dq_flags))
    					     - not taken
    					    atomic_inc(&dquot->dq_count);
    					    spin_unlock(&dq_list_lock);
            - proceeds to release dquot
    					    ret = fn(dquot, priv);
    					     - called for inactive dquot
    
    Fix the problem by making sure possible ->release_dquot() is finished by
    the time we call the callback and new calls to it will notice reference
    dquot_scan_active() has taken and bail out.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e66969eabfa905623cd6677c08e523a6b9410da
Author: Eric Paris <eparis@redhat.com>
Date:   Thu Feb 20 10:56:45 2014 -0500

    SELinux: bigendian problems with filename trans rules
    
    commit 9085a6422900092886da8c404e1c5340c4ff1cbf upstream.
    
    When writing policy via /sys/fs/selinux/policy I wrote the type and class
    of filename trans rules in CPU endian instead of little endian.  On
    x86_64 this works just fine, but it means that on big endian arch's like
    ppc64 and s390 userspace reads the policy and converts it from
    le32_to_cpu.  So the values are all screwed up.  Write the values in le
    format like it should have been to start.
    
    Signed-off-by: Eric Paris <eparis@redhat.com>
    Acked-by:  Stephen Smalley <sds@tycho.nsa.gov>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9f87229e114c9aeb7f68b92bd0353c5159a2b3b
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Wed Jan 22 08:04:43 2014 +0400

    xtensa: introduce spill_registers_kernel macro
    
    commit e2fd1374c705abe4661df3fb6fadb3879c7c1846 upstream.
    
    Most in-kernel users want registers spilled on the kernel stack and
    don't require PS.EXCM to be set. That means that they don't need fixup
    routine and could reuse regular window overflow mechanism for that,
    which makes spill routine very simple.
    
    Suggested-by: Chris Zankel <chris@zankel.net>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5556a68da14573d0f4944cdc134034233e96553
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 24 15:23:10 2014 +0100

    ALSA: hda - Add a fixup for HP Folio 13 mute LED
    
    commit 37c367ecdb9a01c9acc980e6e17913570a1788a7 upstream.
    
    HP Folio 13 may have a broken BIOS that doesn't set up the mute LED
    GPIO properly, and the driver guesses it wrongly, too.  Add a new
    fixup entry for setting the GPIO pin statically for this laptop.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70991
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35d1c8332485444fa9e04a13148512951169d275
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Mon Feb 24 12:06:12 2014 +0100

    perf: Fix hotplug splat
    
    commit e3703f8cdfcf39c25c4338c3ad8e68891cca3731 upstream.
    
    Drew Richardson reported that he could make the kernel go *boom* when hotplugging
    while having perf events active.
    
    It turned out that when you have a group event, the code in
    __perf_event_exit_context() fails to remove the group siblings from
    the context.
    
    We then proceed with destroying and freeing the event, and when you
    re-plug the CPU and try and add another event to that CPU, things go
    *boom* because you've still got dead entries there.
    
    Reported-by: Drew Richardson <drew.richardson@arm.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Link: http://lkml.kernel.org/n/tip-k6v5wundvusvcseqj1si0oz0@git.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55c830e876d6604276110ac406802417d443c08b
Author: Denis CIOCCA <denis.ciocca@st.com>
Date:   Fri Feb 14 14:15:00 2014 +0000

    iio:gyro: bug on L3GD20H gyroscope support
    
    commit a0657716416f834ef7710a9044614d50a36c3bdc upstream.
    
    The driver was not able to manage the sensor: during probe function
    and wai check, the driver stops and writes: "device name and WhoAmI mismatch."
    The correct value of L3GD20H wai is 0xd7 instead of 0xd4.
    Dropped support for the sensor.
    
    Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3a59abff46afb06daadec59c80d07dd0b1053cf
Author: Arve Hjønnevåg <arve@android.com>
Date:   Mon Feb 17 13:58:29 2014 -0800

    staging: binder: Fix death notifications
    
    commit e194fd8a5d8e0a7eeed239a8534460724b62fe2d upstream.
    
    The change (008fa749e0fe5b2fffd20b7fe4891bb80d072c6a) that moved the
    node release code to a separate function broke death notifications in
    some cases. When it encountered a reference without a death
    notification request, it would skip looking at the remaining
    references, and therefore fail to send death notifications for them.
    
    Cc: Colin Cross <ccross@android.com>
    Cc: Android Kernel Team <kernel-team@android.com>
    Signed-off-by: Arve Hjønnevåg <arve@android.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4403be9e25c9d9b82f881cec4fe9a126de02fb9b
Author: Lai Jiangshan <laijs@cn.fujitsu.com>
Date:   Sat Feb 15 22:02:28 2014 +0800

    workqueue: ensure @task is valid across kthread_stop()
    
    commit 5bdfff96c69a4d5ab9c49e60abf9e070ecd2acbb upstream.
    
    When a kworker should die, the kworkre is notified through WORKER_DIE
    flag instead of kthread_should_stop().  This, IIRC, is primarily to
    keep the test synchronized inside worker_pool lock.  WORKER_DIE is
    first set while holding pool->lock, the lock is dropped and
    kthread_stop() is called.
    
    Unfortunately, this means that there's a slight chance that the target
    kworker may see WORKER_DIE before kthread_stop() finishes and exits
    and frees the target task before or during kthread_stop().
    
    Fix it by pinning the target task before setting WORKER_DIE and
    putting it after kthread_stop() is done.
    
    tj: Improved patch description and comment.  Moved pinning above
        WORKER_DIE for better signify what it's protecting.
    
    Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 755ac7af96bdc50bf65254ac3699e0279a342440
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sat Feb 15 17:54:06 2014 -0800

    hwmon: (max1668) Fix writing the minimum temperature
    
    commit 500a91571f0a5d0d3242d83802ea2fd1faccc66e upstream.
    
    When trying to set the minimum temperature, the driver was erroneously
    writing the maximum temperature into the chip.
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bc744aa8bb9eaff8facd237c359cf64bf6ec239
Author: Chao Bi <chao.bi@intel.com>
Date:   Wed Feb 12 21:27:25 2014 +0200

    mei: set client's read_cb to NULL when flow control fails
    
    commit accb884b32e82f943340688c9cd30290531e73e0 upstream.
    
    In mei_cl_read_start(), if it fails to send flow control request, it
    will release "cl->read_cb" but forget to set pointer to NULL, leaving
    "cl->read_cb" still pointing to random memory, next time this client is
    operated like mei_release(), it has chance to refer to this wrong pointer.
    
    Fixes:  PANIC at kfree in mei_release()
    
    [228781.826904] Call Trace:
    [228781.829737]  [<c16249b8>] ? mei_cl_unlink+0x48/0xa0
    [228781.835283]  [<c1624487>] mei_io_cb_free+0x17/0x30
    [228781.840733]  [<c16265d8>] mei_release+0xa8/0x180
    [228781.845989]  [<c135c610>] ? __fsnotify_parent+0xa0/0xf0
    [228781.851925]  [<c1325a69>] __fput+0xd9/0x200
    [228781.856696]  [<c1325b9d>] ____fput+0xd/0x10
    [228781.861467]  [<c125cae1>] task_work_run+0x81/0xb0
    [228781.866821]  [<c1242e53>] do_exit+0x283/0xa00
    [228781.871786]  [<c1a82b36>] ? kprobe_flush_task+0x66/0xc0
    [228781.877722]  [<c124eeb8>] ? __dequeue_signal+0x18/0x1a0
    [228781.883657]  [<c124f072>] ? dequeue_signal+0x32/0x190
    [228781.889397]  [<c1243744>] do_group_exit+0x34/0xa0
    [228781.894750]  [<c12517b6>] get_signal_to_deliver+0x206/0x610
    [228781.901075]  [<c12018d8>] do_signal+0x38/0x100
    [228781.906136]  [<c1626d1c>] ? mei_read+0x42c/0x4e0
    [228781.911393]  [<c12600a0>] ? wake_up_bit+0x30/0x30
    [228781.916745]  [<c16268f0>] ? mei_poll+0x120/0x120
    [228781.922001]  [<c1324be9>] ? vfs_read+0x89/0x160
    [228781.927158]  [<c16268f0>] ? mei_poll+0x120/0x120
    [228781.932414]  [<c133ca34>] ? fget_light+0x44/0xe0
    [228781.937670]  [<c1324e58>] ? SyS_read+0x68/0x80
    [228781.942730]  [<c12019f5>] do_notify_resume+0x55/0x70
    [228781.948376]  [<c1a7de5d>] work_notifysig+0x29/0x30
    [228781.953827]  [<c1a70000>] ? bad_area+0x5/0x3e
    
    Signed-off-by: Chao Bi <chao.bi@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4d9fb6ef91f7c942dac9e72d47f790368afb56f
Author: Joerg Dorchain <joerg@dorchain.net>
Date:   Fri Feb 21 20:29:33 2014 +0100

    USB: ftdi_sio: add Cressi Leonardo PID
    
    commit 6dbd46c849e071e6afc1e0cad489b0175bca9318 upstream.
    
    Hello,
    
    the following patch adds an entry for the PID of a Cressi Leonardo
    diving computer interface to kernel 3.13.0.
    It is detected as FT232RL.
    Works with subsurface.
    
    Signed-off-by: Joerg Dorchain <joerg@dorchain.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2efc229a0ec1b247e8c2ca5069d22252e792333a
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Wed Feb 19 10:29:01 2014 +0100

    usb: ehci: fix deadlock when threadirqs option is used
    
    commit a1227f3c1030e96ebc51d677d2f636268845c5fb upstream.
    
    ehci_irq() and ehci_hrtimer_func() can deadlock on ehci->lock when
    threadirqs option is used. To prevent the deadlock use
    spin_lock_irqsave() in ehci_irq().
    
    This change can be reverted when hrtimer callbacks become threaded.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9021ee52db43b0966d04d75b28a8c9e07362df49
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Wed Feb 12 16:04:45 2014 +0100

    USB: serial: option: blacklist interface 4 for Cinterion PHS8 and PXS8
    
    commit 12df84d4a80278a5b1abfec3206795291da52fc9 upstream.
    
    This interface is to be handled by the qmi_wwan driver.
    
    CC: Hans-Christoph Schemmel <hans-christoph.schemmel@gemalto.com>
    CC: Christian Schmiedl <christian.schmiedl@gemalto.com>
    CC: Nicolaus Colberg <nicolaus.colberg@gemalto.com>
    CC: David McCullough <david.mccullough@accelecon.com>
    Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4c937c5b09cf72ad92e7c4110ceec6a6a5a5e3a
Author: Florian Fainelli <florian@openwrt.org>
Date:   Tue Jan 14 15:36:29 2014 -0800

    usb: gadget: bcm63xx_udc: fix build failure on DMA channel code
    
    commit 2d1f7af3d60dd09794e0738a915d272c6c27abc5 upstream.
    
    Commit 3dc6475 ("bcm63xx_enet: add support Broadcom BCM6345 Ethernet")
    changed the ENETDMA[CS] macros such that they are no longer macros, but
    actual register offset definitions. The bcm63xx_udc driver was not
    updated, and as a result, causes the following build error to pop up:
    
     CC      drivers/usb/gadget/u_ether.o
    drivers/usb/gadget/bcm63xx_udc.c: In function 'iudma_write':
    drivers/usb/gadget/bcm63xx_udc.c:642:24: error: called object '0' is not
    a function
    drivers/usb/gadget/bcm63xx_udc.c: In function 'iudma_reset_channel':
    drivers/usb/gadget/bcm63xx_udc.c:698:46: error: called object '0' is not
    a function
    drivers/usb/gadget/bcm63xx_udc.c:700:49: error: called object '0' is not
    a function
    
    Fix this by updating usb_dmac_{read,write}l and usb_dmas_{read,write}l to
    take an extra channel argument, and use the channel width
    (ENETDMA_CHAN_WIDTH) to offset the register we want to access, hence
    doing again what the macro implicitely did for us.
    
    Cc: Kevin Cernekee <cernekee@gmail.com>
    Cc: Jonas Gorski <jogo@openwrt.org>
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ebd08982393e092b7dbcb19b68c7de252c98988
Author: Matthieu CASTET <matthieu.castet@parrot.com>
Date:   Wed Feb 19 13:46:31 2014 +0800

    usb: chipidea: need to mask when writting endptflush and endptprime
    
    commit 5bf5dbeda2454296f1984adfbfc8e6f5965ac389 upstream.
    
    ENDPTFLUSH and ENDPTPRIME registers are set by software and clear
    by hardware. There is a bit for each endpoint. When we are setting
    a bit for an endpoint we should make sure we do not touch other
    endpoint bit. There is a race condition if the hardware clear the
    bit between the read and the write in hw_write.
    
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com>
    Tested-by: Michael Grzeschik <mgrzeschik@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2551dadbe3a4c652d544068c64b540162ffba27b
Author: Olivier Sobrie <olivier@sobrie.be>
Date:   Tue Feb 11 11:01:23 2014 +0100

    can: kvaser_usb: check number of channels returned by HW
    
    commit 862474f8b46f6c1e600d4934e40ba40646c696ec upstream.
    
    It is needed to check the number of channels returned by the HW because it
    cannot be greater than MAX_NET_DEVICES otherwise it will crash.
    
    Signed-off-by: Olivier Sobrie <olivier@sobrie.be>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44ae49aa88441344fcb35a1b0d44b54aa08a6d3d
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Wed Feb 26 21:03:05 2014 +0800

    ACPI / processor: Rework processor throttling with work_on_cpu()
    
    commit f3ca4164529b875374c410193bbbac0ee960895f upstream.
    
    acpi_processor_set_throttling() uses set_cpus_allowed_ptr() to make
    sure that the (struct acpi_processor)->acpi_processor_set_throttling()
    callback will run on the right CPU.  However, the function may be
    called from a worker thread already bound to a different CPU in which
    case that won't work.
    
    Make acpi_processor_set_throttling() use work_on_cpu() as appropriate
    instead of abusing set_cpus_allowed_ptr().
    
    Reported-and-tested-by: Jiri Olsa <jolsa@redhat.com>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    [rjw: Changelog]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cb947fdcff6247559da0b23dc3ed6272cff8372
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Feb 13 16:32:51 2014 +0100

    ACPI / video: Filter the _BCL table for duplicate brightness values
    
    commit bd8ba20597f0cfef3ef65c3fd2aa92ab23d4c8e1 upstream.
    
    Some devices have duplicate entries in there brightness levels table, ie
    on my Dell Latitude E6430 the table looks like this:
    
    [    3.686060] acpi backlight index   0, val 80
    [    3.686095] acpi backlight index   1, val 50
    [    3.686122] acpi backlight index   2, val 5
    [    3.686147] acpi backlight index   3, val 5
    [    3.686172] acpi backlight index   4, val 5
    [    3.686197] acpi backlight index   5, val 5
    [    3.686223] acpi backlight index   6, val 5
    [    3.686248] acpi backlight index   7, val 5
    [    3.686273] acpi backlight index   8, val 6
    [    3.686332] acpi backlight index   9, val 7
    [    3.686356] acpi backlight index  10, val 8
    [    3.686380] acpi backlight index  11, val 9
    etc.
    
    Notice that brightness values 0-5 are all mapped to 5. This means that
    if userspace writes any value between 0 and 5 to the brightness sysfs attribute
    and then reads it, it will always return 0, which is somewhat unexpected.
    
    This is a problem for ie gnome-settings-daemon, which uses read-modify-write
    logic when the users presses the brightness up or down keys. This is done
    this way to take brightness changes from other sources into account.
    
    On this specific laptop what happens once the brightness has been set to 0,
    is that gsd reads 0, adds 5, writes 5, and on the next brightness up key press
    again reads 0, so things get stuck at the lowest brightness setting.
    
    Filtering out the duplicate table entries, makes any write to brightness
    read back as the written value as one would expect, fixing this.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Aaron Lu <aaron.lu@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b96200e1d9cf0fa202418ff07ed3542abace2a9
Author: Jean Delvare <jdelvare@suse.de>
Date:   Mon Feb 24 09:39:27 2014 +0100

    i7core_edac: Fix PCI device reference count
    
    commit c0f5eeed0f4cef4f05b74883a7160e7edde58b6a upstream.
    
    The reference count changes done by pci_get_device can be a little
    misleading when the usage diverges from the most common scheme. The
    reference count of the device passed as the last parameter is always
    decreased, even if the function returns no new device. So if we are
    going to try alternative device IDs, we must manually increment the
    device reference count before each retry. If we don't, we end up
    decreasing the reference count, and after a few modprobe/rmmod cycles
    the PCI devices will vanish.
    
    In other words and as Alan put it: without this fix the EDAC code
    corrupts the PCI device list.
    
    This fixes kernel bug #50491:
    https://bugzilla.kernel.org/show_bug.cgi?id=50491
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Link: http://lkml.kernel.org/r/20140224093927.7659dd9d@endymion.delvare
    Reviewed-by: Alan Cox <alan@linux.intel.com>
    Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Cc: Doug Thompson <dougthompson@xmission.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63b5b009bd51063de66847d3907df6859df4550f
Author: Tomasz Nowicki <tomasz.nowicki@linaro.org>
Date:   Mon Feb 10 14:00:11 2014 +0100

    ACPI / PCI: Fix memory leak in acpi_pci_irq_enable()
    
    commit b685f3b1744061aa9ad822548ba9c674de5be7c6 upstream.
    
    acpi_pci_link_allocate_irq() can return negative gsi even if
    entry != NULL.  For that case we have a memory leak, so free
    entry before returning from acpi_pci_irq_enable() for gsi < 0.
    
    Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
    [rjw: Subject and changelog]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9942fc0221688975f1b9562638e8f27b3304ff19
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Fri Feb 14 13:48:16 2014 -0700

    PCI: Enable INTx if BIOS left them disabled
    
    commit 1f42db786b14a31bf807fc41ee5583a00c08fcb1 upstream.
    
    Some firmware leaves the Interrupt Disable bit set even if the device uses
    INTx interrupts.  Clear Interrupt Disable so we get those interrupts.
    
    Based on the report mentioned below, if the user selects the "EHCI only"
    option in the Intel Baytrail BIOS, the EHCI device is handed off to the OS
    with the PCI_COMMAND_INTX_DISABLE bit set.
    
    Link: http://lkml.kernel.org/r/20140114181721.GC12126@xanatos
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=70601
    Reported-by: Chris Cheng <chris.cheng@atrustcorp.com>
    Reported-and-tested-by: Jamie Chen <jamie.chen@intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    CC: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bcccca64c50147e878f0f8e54acfa3e5554535b
Author: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Date:   Mon Feb 17 16:18:21 2014 +0530

    cpufreq: powernow-k8: Initialize per-cpu data-structures properly
    
    commit c3274763bfc3bf1ececa269ed6e6c4d7ec1c3e5e upstream.
    
    The powernow-k8 driver maintains a per-cpu data-structure called
    powernow_data that is used to perform the frequency transitions.
    It initializes this data structure only for the policy->cpu. So,
    accesses to this data structure by other CPUs results in various
    problems because they would have been uninitialized.
    
    Specifically, if a cpu (!= policy->cpu) invokes the drivers' ->get()
    function, it returns 0 as the KHz value, since its per-cpu memory
    doesn't point to anything valid. This causes problems during
    suspend/resume since cpufreq_update_policy() tries to enforce this
    (0 KHz) as the current frequency of the CPU, and this madness gets
    propagated to adjust_jiffies() as well. Eventually, lots of things
    start breaking down, including the r8169 ethernet card, in one
    particularly interesting case reported by Pierre Ossman.
    
    Fix this by initializing the per-cpu data-structures of all the CPUs
    in the policy appropriately.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=70311
    Reported-by: Pierre Ossman <pierre@ossman.eu>
    Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 599b45bd7f7f8e467d521f4d709bd7af7e8bc132
Author: Tejun Heo <tj@kernel.org>
Date:   Mon Feb 3 10:42:07 2014 -0500

    sata_sil: apply MOD15WRITE quirk to TOSHIBA MK2561GSYN
    
    commit 9f9c47f00ce99329b1a82e2ac4f70f0fe3db549c upstream.
    
    It's a bit odd to see a newer device showing mod15write; however, the
    reported behavior is highly consistent and other factors which could
    contribute seem to have been verified well enough.  Also, both
    sata_sil itself and the drive are fairly outdated at this point making
    the risk of this change fairly low.  It is possible, probably likely,
    that other drive models in the same family have the same problem;
    however, for now, let's just add the specific model which was tested.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: matson <lists-matsonpa@luxsci.me>
    References: http://lkml.kernel.org/g/201401211912.s0LJCk7F015058@rs103.luxsci.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69f554c94a4e0dce7d933358dec416b74b6424a6
Author: Denis V. Lunev <den@openvz.org>
Date:   Thu Jan 30 15:20:30 2014 +0400

    ata: enable quirk from jmicron JMB350 for JMB394
    
    commit efb9e0f4f43780f0ae0c6428d66bd03e805c7539 upstream.
    
    Without the patch the kernel generates the following error.
    
     ata11.15: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
     ata11.15: Port Multiplier vendor mismatch '0x197b' != '0x123'
     ata11.15: PMP revalidation failed (errno=-19)
     ata11.15: failed to recover PMP after 5 tries, giving up
    
    This patch helps to bypass this error and the device becomes
    functional.
    
    Signed-off-by: Denis V. Lunev <den@openvz.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: <linux-ide@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f84d45345aee1ef1f5bd7b021ca474fe019cf388
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Fri Feb 21 16:03:12 2014 +0100

    perf/x86: Fix event scheduling
    
    commit 26e61e8939b1fe8729572dabe9a9e97d930dd4f6 upstream.
    
    Vince "Super Tester" Weaver reported a new round of syscall fuzzing (Trinity) failures,
    with perf WARN_ON()s triggering. He also provided traces of the failures.
    
    This is I think the relevant bit:
    
    	>    pec_1076_warn-2804  [000] d...   147.926153: x86_pmu_disable: x86_pmu_disable
    	>    pec_1076_warn-2804  [000] d...   147.926153: x86_pmu_state: Events: {
    	>    pec_1076_warn-2804  [000] d...   147.926156: x86_pmu_state:   0: state: .R config: ffffffffffffffff (          (null))
    	>    pec_1076_warn-2804  [000] d...   147.926158: x86_pmu_state:   33: state: AR config: 0 (ffff88011ac99800)
    	>    pec_1076_warn-2804  [000] d...   147.926159: x86_pmu_state: }
    	>    pec_1076_warn-2804  [000] d...   147.926160: x86_pmu_state: n_events: 1, n_added: 0, n_txn: 1
    	>    pec_1076_warn-2804  [000] d...   147.926161: x86_pmu_state: Assignment: {
    	>    pec_1076_warn-2804  [000] d...   147.926162: x86_pmu_state:   0->33 tag: 1 config: 0 (ffff88011ac99800)
    	>    pec_1076_warn-2804  [000] d...   147.926163: x86_pmu_state: }
    	>    pec_1076_warn-2804  [000] d...   147.926166: collect_events: Adding event: 1 (ffff880119ec8800)
    
    So we add the insn:p event (fd[23]).
    
    At this point we should have:
    
      n_events = 2, n_added = 1, n_txn = 1
    
    	>    pec_1076_warn-2804  [000] d...   147.926170: collect_events: Adding event: 0 (ffff8800c9e01800)
    	>    pec_1076_warn-2804  [000] d...   147.926172: collect_events: Adding event: 4 (ffff8800cbab2c00)
    
    We try and add the {BP,cycles,br_insn} group (fd[3], fd[4], fd[15]).
    These events are 0:cycles and 4:br_insn, the BP event isn't x86_pmu so
    that's not visible.
    
    	group_sched_in()
    	  pmu->start_txn() /* nop - BP pmu */
    	  event_sched_in()
    	     event->pmu->add()
    
    So here we should end up with:
    
      0: n_events = 3, n_added = 2, n_txn = 2
      4: n_events = 4, n_added = 3, n_txn = 3
    
    But seeing the below state on x86_pmu_enable(), the must have failed,
    because the 0 and 4 events aren't there anymore.
    
    Looking at group_sched_in(), since the BP is the leader, its
    event_sched_in() must have succeeded, for otherwise we would not have
    seen the sibling adds.
    
    But since neither 0 or 4 are in the below state; their event_sched_in()
    must have failed; but I don't see why, the complete state: 0,0,1:p,4
    fits perfectly fine on a core2.
    
    However, since we try and schedule 4 it means the 0 event must have
    succeeded!  Therefore the 4 event must have failed, its failure will
    have put group_sched_in() into the fail path, which will call:
    
    	event_sched_out()
    	  event->pmu->del()
    
    on 0 and the BP event.
    
    Now x86_pmu_del() will reduce n_events; but it will not reduce n_added;
    giving what we see below:
    
     n_event = 2, n_added = 2, n_txn = 2
    
    	>    pec_1076_warn-2804  [000] d...   147.926177: x86_pmu_enable: x86_pmu_enable
    	>    pec_1076_warn-2804  [000] d...   147.926177: x86_pmu_state: Events: {
    	>    pec_1076_warn-2804  [000] d...   147.926179: x86_pmu_state:   0: state: .R config: ffffffffffffffff (          (null))
    	>    pec_1076_warn-2804  [000] d...   147.926181: x86_pmu_state:   33: state: AR config: 0 (ffff88011ac99800)
    	>    pec_1076_warn-2804  [000] d...   147.926182: x86_pmu_state: }
    	>    pec_1076_warn-2804  [000] d...   147.926184: x86_pmu_state: n_events: 2, n_added: 2, n_txn: 2
    	>    pec_1076_warn-2804  [000] d...   147.926184: x86_pmu_state: Assignment: {
    	>    pec_1076_warn-2804  [000] d...   147.926186: x86_pmu_state:   0->33 tag: 1 config: 0 (ffff88011ac99800)
    	>    pec_1076_warn-2804  [000] d...   147.926188: x86_pmu_state:   1->0 tag: 1 config: 1 (ffff880119ec8800)
    	>    pec_1076_warn-2804  [000] d...   147.926188: x86_pmu_state: }
    	>    pec_1076_warn-2804  [000] d...   147.926190: x86_pmu_enable: S0: hwc->idx: 33, hwc->last_cpu: 0, hwc->last_tag: 1 hwc->state: 0
    
    So the problem is that x86_pmu_del(), when called from a
    group_sched_in() that fails (for whatever reason), and without x86_pmu
    TXN support (because the leader is !x86_pmu), will corrupt the n_added
    state.
    
    Reported-and-Tested-by: Vince Weaver <vincent.weaver@maine.edu>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Dave Jones <davej@redhat.com>
    Link: http://lkml.kernel.org/r/20140221150312.GF3104@twins.programming.kicks-ass.net
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9710605da39d67a58ff172b530125d9093d3160
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Fri Jan 24 14:49:58 2014 +0100

    x86: dma-mapping: fix GFP_ATOMIC macro usage
    
    commit c091c71ad2218fc50a07b3d1dab85783f3b77efd upstream.
    
    GFP_ATOMIC is not a single gfp flag, but a macro which expands to the other
    flags, where meaningful is the LACK of __GFP_WAIT flag. To check if caller
    wants to perform an atomic allocation, the code must test for a lack of the
    __GFP_WAIT flag. This patch fixes the issue introduced in v3.5-rc1.
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa5b8c451354afccde1a54326b79e59aa648edf4
Author: Levente Kurusa <levex@linux.com>
Date:   Tue Feb 18 10:22:17 2014 -0500

    ahci: disable NCQ on Samsung pci-e SSDs on macbooks
    
    commit 67809f85d31eac600f6b28defa5386c9d2a13b1d upstream.
    
    Samsung's pci-e SSDs with device ID 0x1600 which are found on some
    macbooks time out on NCQ commands.  Blacklist NCQ on the device so
    that the affected machines can at least boot.
    
    Original-patch-by: Levente Kurusa <levex@linux.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=60731
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb22dbab12b48bb19498df8e796b05be4608bd0d
Author: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Date:   Mon Feb 24 17:30:55 2014 +0100

    powerpc/crashdump : Fix page frame number check in copy_oldmem_page
    
    commit f5295bd8ea8a65dc5eac608b151386314cb978f1 upstream.
    
    In copy_oldmem_page, the current check using max_pfn and min_low_pfn to
    decide if the page is backed or not, is not valid when the memory layout is
    not continuous.
    
    This happens when running as a QEMU/KVM guest, where RTAS is mapped higher
    in the memory. In that case max_pfn points to the end of RTAS, and a hole
    between the end of the kdump kernel and RTAS is not backed by PTEs. As a
    consequence, the kdump kernel is crashing in copy_oldmem_page when accessing
    in a direct way the pages in that hole.
    
    This fix relies on the memblock's service memblock_is_region_memory to
    check if the read page is part or not of the directly accessible memory.
    
    Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
    Tested-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64747d3d2fd4fcf93678ccc785327371e35a752e
Author: Tony Breeds <tony@bakeyournoodle.com>
Date:   Thu Feb 20 21:13:52 2014 +1100

    powerpc/le: Ensure that the 'stop-self' RTAS token is handled correctly
    
    commit 41dd03a94c7d408d2ef32530545097f7d1befe5c upstream.
    
    Currently we're storing a host endian RTAS token in
    rtas_stop_self_args.token.  We then pass that directly to rtas.  This is
    fine on big endian however on little endian the token is not what we
    expect.
    
    This will typically result in hitting:
    	panic("Alas, I survived.\n");
    
    To fix this we always use the stop-self token in host order and always
    convert it to be32 before passing this to rtas.
    
    Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 830d5bd83a895818388f874675d3bd76dc470e01
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Tue Feb 11 09:15:54 2014 -0500

    SUNRPC: Fix races in xs_nospace()
    
    commit 06ea0bfe6e6043cb56a78935a19f6f8ebc636226 upstream.
    
    When a send failure occurs due to the socket being out of buffer space,
    we call xs_nospace() in order to have the RPC task wait until the
    socket has drained enough to make it worth while trying again.
    The current patch fixes a race in which the socket is drained before
    we get round to setting up the machinery in xs_nospace(), and which
    is reported to cause hangs.
    
    Link: http://lkml.kernel.org/r/20140210170315.33dfc621@notabene.brown
    Fixes: a9a6b52ee1ba (SUNRPC: Don't start the retransmission timer...)
    Reported-by: Neil Brown <neilb@suse.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6319b13bb7e47c75e00cb6a5cabfb448983dc233
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Sat Feb 22 18:30:13 2014 +0100

    ASoC: wm8958-dsp: Fix firmware block loading
    
    commit 548da08fc1e245faf9b0d7c41ecd8e07984fc332 upstream.
    
    The codec->control_data contains a pointer to the device's regmap struct. But
    wm8994_bulk_write() expects a pointer to the parent wm8998 device.
    
    The issue was introduced in commit d9a7666f ("ASoC: Remove ASoC-specific
    WM8994 I/O code").
    
    Fixes: d9a7666f ("ASoC: Remove ASoC-specific WM8994 I/O code")
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76a94d6a335caa7b2928d1f73002f4d2a3d66266
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Feb 18 09:24:12 2014 +0100

    ASoC: sta32x: Fix array access overflow
    
    commit 025c3fa9256d4c54506b7a29dc3befac54f5c68d upstream.
    
    Preset EQ enum of sta32x codec driver declares too many number of
    items and it may lead to the access over the actual array size.
    
    Use SOC_ENUM_SINGLE_DECL() helper and it's automatically fixed.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27b5a374da7bc98421a5cf573e35b341caaaa08c
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 27 07:41:32 2014 +0100

    ASoC: sta32x: Fix wrong enum for limiter2 release rate
    
    commit b3619b288b621e63f66908045f48495869a996a6 upstream.
    
    There is a typo in the Limiter2 Release Rate control, a wrong enum for
    Limiter1 is assigned.  It must point to Limiter2.
    Spotted by a compile warning:
    
    In file included from sound/soc/codecs/sta32x.c:34:0:
    sound/soc/codecs/sta32x.c:223:29: warning: ‘sta32x_limiter2_release_rate_enum’ defined but not used [-Wunused-variable]
     static SOC_ENUM_SINGLE_DECL(sta32x_limiter2_release_rate_enum,
                                 ^
    include/sound/soc.h:275:18: note: in definition of macro ‘SOC_ENUM_DOUBLE_DECL’
      struct soc_enum name = SOC_ENUM_DOUBLE(xreg, xshift_l, xshift_r, \
                      ^
    sound/soc/codecs/sta32x.c:223:8: note: in expansion of macro ‘SOC_ENUM_SINGLE_DECL’
     static SOC_ENUM_SINGLE_DECL(sta32x_limiter2_release_rate_enum,
            ^
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df87c8141cde79e6600693468138551a9fd3c674
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Sat Feb 22 18:27:17 2014 +0100

    ASoC: sta32x: Fix cache sync
    
    commit 70ff00f82a6af0ff68f8f7b411738634ce2f20d0 upstream.
    
    codec->control_data contains a pointer to the regmap struct of the device, not
    to the device private data. Use snd_soc_codec_get_drvdata() instead.
    
    The issue was introduced in commit 29fdf4fbbe ("ASoC: sta32x: Convert to
    regmap").
    
    Fixes: 29fdf4fbbe (ASoC: sta32x: Convert to regmap)
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8efd034580964d37aa378089fbe856d1a3963842
Author: Mark Brown <broonie@linaro.org>
Date:   Mon Feb 24 11:59:14 2014 +0900

    ASoC: da732x: Mark DC offset control registers volatile
    
    commit 75306820248e26d15d84acf4e297b9fb27dd3bb2 upstream.
    
    The driver reads from the DC offset control registers during callibration
    but since the registers are marked as volatile and there is a register
    cache the values will not be read from the hardware after the first reading
    rendering the callibration ineffective.
    
    It appears that the driver was originally written for the ASoC level
    register I/O code but converted to regmap prior to merge and this issue
    was missed during the conversion as the framework level volatile register
    functionality was not being used.
    
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Acked-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1276754ca69e9bbd403f0583ea70561e63ead72a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Feb 18 09:37:30 2014 +0100

    ASoC: wm8770: Fix wrong number of enum items
    
    commit 7a6c0a58dc824523966f212c76322d47c5b0e6fe upstream.
    
    wm8770 codec driver defines ain_enum with a wrong number of items.
    
    Use SOC_ENUM_DOUBLE_DECL() macro and it's automatically fixed.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
    Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecbda0477f80d6aba7515f8d32169503c6d490fb
Author: Dylan Reid <dgreid@chromium.org>
Date:   Wed Feb 12 10:24:54 2014 -0800

    ASoC: max98090: sync regcache on entering STANDBY
    
    commit c42c8922c46d33ed769e99618bdfba06866a0c72 upstream.
    
    Sync regcache when entering STANDBY from OFF.  ON isn't entered with
    OFF as the current state, so the registers were not being re-synced
    after suspend/resume.
    
    The 98088 and 98095 already call regcache_sync from STANDBY.
    
    Signed-off-by: Dylan Reid <dgreid@chromium.org>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a03bc087c33d172b46469ffbe669cd071b2cf45
Author: Andrew Honig <ahonig@google.com>
Date:   Thu Feb 27 19:35:14 2014 +0100

    kvm: x86: fix emulator buffer overflow (CVE-2014-0049)
    
    commit a08d3b3b99efd509133946056531cdf8f3a0c09b upstream.
    
    The problem occurs when the guest performs a pusha with the stack
    address pointing to an mmio address (or an invalid guest physical
    address) to start with, but then extending into an ordinary guest
    physical address.  When doing repeated emulated pushes
    emulator_read_write sets mmio_needed to 1 on the first one.  On a
    later push when the stack points to regular memory,
    mmio_nr_fragments is set to 0, but mmio_is_needed is not set to 0.
    
    As a result, KVM exits to userspace, and then returns to
    complete_emulated_mmio.  In complete_emulated_mmio
    vcpu->mmio_cur_fragment is incremented.  The termination condition of
    vcpu->mmio_cur_fragment == vcpu->mmio_nr_fragments is never achieved.
    The code bounces back and fourth to userspace incrementing
    mmio_cur_fragment past it's buffer.  If the guest does nothing else it
    eventually leads to a a crash on a memcpy from invalid memory address.
    
    However if a guest code can cause the vm to be destroyed in another
    vcpu with excellent timing, then kvm_clear_async_pf_completion_queue
    can be used by the guest to control the data that's pointed to by the
    call to cancel_work_item, which can be used to gain execution.
    
    Fixes: f78146b0f9230765c6315b2e14f56112513389ad
    Signed-off-by: Andrew Honig <ahonig@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80c2450409740cabc96d784d1877c21ee3f87779
Author: Hui Wang <hui.wang@canonical.com>
Date:   Thu Feb 20 11:47:21 2014 +0800

    ALSA: hda - Enable front audio jacks on one HP desktop model
    
    commit 1de7ca5e844866f56bebb2fc47fa18e090677e88 upstream.
    
    The front headphone and mic jackes on a HP desktop model (Vendor Id:
    0x111d76c7 Subsystem Id: 0x103c2b17) can not work, the codec on this
    machine has 8 physical ports, 6 of them are routed to rear jackes
    and all of them work very well, while the remaining 2 ports are
    routed to front headphone and mic jackes, but the corresponding
    pin complex node are not defined correctly.
    
    After apply this fix, the front audio jackes can work very well.
    
    [trivial fix of enum definition by tiwai]
    
    BugLink: https://bugs.launchpad.net/bugs/1282369
    Cc: David Henningsson <david.henningsson@canonical.com>
    Tested-by: Gerald Yang <gerald.yang@canonical.com>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d92e99d70e16c6a2eb7b4fad1543cda12c4bdd9
Author: Hsin-Yu Chao <hychao@chromium.org>
Date:   Wed Feb 19 14:30:35 2014 +0800

    ALSA: hda/ca0132 - Fix recording from mode id 0x8
    
    commit 13c12dbe3a2ce17227f7ddef652b6a53c78fa51f upstream.
    
    Incorrect ADC is picked in ca0132_capture_pcm_prepare(),
    where it assumes multiple streams while there is one stream
    per ADC. Note that ca0132_capture_pcm_cleanup() already does
    the right thing.
    
    The Chromebook Pixel has a microphone under the keyboard that
    is attached to node id 0x8. Before this fix, recording would
    always go to the main internal mic (node id 0x7).
    
    Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
    Reviewed-by: Dylan Reid <dgreid@chromium.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e52b4fd38c7ed25200638628921806310f4a657
Author: Hsin-Yu Chao <hychao@chromium.org>
Date:   Wed Feb 19 14:27:07 2014 +0800

    ALSA: hda/ca0132 - setup/cleanup streams
    
    commit 28fba95087a7f3d107a3a6728aef7dbfaf3fd782 upstream.
    
    When a HDMI stream is opened with the same stream tag
    as a following opened stream to ca0132, audio will be
    heard from two ports simultaneously.
    Fix this issue by change to use snd_hda_codec_setup_stream
    and snd_hda_codec_cleanup_stream instead, so that an
    inactive stream can be marked as 'dirty' when found
    with a conflict stream tag, and then get purified.
    
    Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
    Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19ee64e6c202508b3b981e9442b41d7183f5bf64
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Sun Feb 16 17:11:10 2014 +0100

    ALSA: usb-audio: work around KEF X300A firmware bug
    
    commit 624aef494f86ed0c58056361c06347ad62b26806 upstream.
    
    When the driver tries to access Function Unit 10, the KEF X300A
    speakers' firmware apparently locks up, making even PCM streaming
    impossible.  Work around this by ignoring this FU.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5685be1332f2dde176de463b0eebea875118a8a
Author: Christoph Hellwig <hch@infradead.org>
Date:   Tue Nov 19 07:17:07 2013 -0800

    fs: fix iversion handling
    
    commit dff6efc326a4d5f305797d4a6bba14f374fdd633 upstream.
    
    Currently notify_change directly updates i_version for size updates,
    which not only is counter to how all other fields are updated through
    struct iattr, but also breaks XFS, which need inode updates to happen
    under its own lock, and synchronized to the structure that gets written
    to the log.
    
    Remove the update in the common code, and it to btrfs and ext4,
    XFS already does a proper updaste internally and currently gets a
    double update with the existing code.
    
    IMHO this is 3.13 and -stable material and should go in through the XFS
    tree.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Acked-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Ben Myers <bpm@sgi.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fb67b91df96912aead945bce9ad796e755b6c32
Author: Michal Hocko <mhocko@suse.cz>
Date:   Thu Jan 23 15:53:35 2014 -0800

    memcg: fix endless loop caused by mem_cgroup_iter
    
    commit ecc736fc3c71c411a9d201d8588c9e7e049e5d8c upstream.
    
    Hugh has reported an endless loop when the hardlimit reclaim sees the
    same group all the time.  This might happen when the reclaim races with
    the memcg removal.
    
    shrink_zone
                                                    [rmdir root]
      mem_cgroup_iter(root, NULL, reclaim)
        // prev = NULL
        rcu_read_lock()
        mem_cgroup_iter_load
          last_visited = iter->last_visited   // gets root || NULL
          css_tryget(last_visited)            // failed
          last_visited = NULL                 [1]
        memcg = root = __mem_cgroup_iter_next(root, NULL)
        mem_cgroup_iter_update
          iter->last_visited = root;
        reclaim->generation = iter->generation
    
     mem_cgroup_iter(root, root, reclaim)
       // prev = root
       rcu_read_lock
        mem_cgroup_iter_load
          last_visited = iter->last_visited   // gets root
          css_tryget(last_visited)            // failed
        [1]
    
    The issue seemed to be introduced by commit 5f5781619718 ("memcg: relax
    memcg iter caching") which has replaced unconditional css_get/css_put by
    css_tryget/css_put for the cached iterator.
    
    This patch fixes the issue by skipping css_tryget on the root of the
    tree walk in mem_cgroup_iter_load and symmetrically doesn't release it
    in mem_cgroup_iter_update.
    
    Signed-off-by: Michal Hocko <mhocko@suse.cz>
    Reported-by: Hugh Dickins <hughd@google.com>
    Tested-by: Hugh Dickins <hughd@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Greg Thelen <gthelen@google.com>
    Cc: <stable@vger.kernel.org>	[3.10+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9e3d789625eb913a44f2712eda51fdcb8703976
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Feb 6 10:42:42 2014 -0800

    net: use __GFP_NORETRY for high order allocations
    
    [ Upstream commit ed98df3361f059db42786c830ea96e2d18b8d4db ]
    
    sock_alloc_send_pskb() & sk_page_frag_refill()
    have a loop trying high order allocations to prepare
    skb with low number of fragments as this increases performance.
    
    Problem is that under memory pressure/fragmentation, this can
    trigger OOM while the intent was only to try the high order
    allocations, then fallback to order-0 allocations.
    
    We had various reports from unexpected regressions.
    
    According to David, setting __GFP_NORETRY should be fine,
    as the asynchronous compaction is still enabled, and this
    will prevent OOM from kicking as in :
    
    CFSClientEventm invoked oom-killer: gfp_mask=0x42d0, order=3, oom_adj=0,
    oom_score_adj=0, oom_score_badness=2 (enabled),memcg_scoring=disabled
    CFSClientEventm
    
    Call Trace:
     [<ffffffff8043766c>] dump_header+0xe1/0x23e
     [<ffffffff80437a02>] oom_kill_process+0x6a/0x323
     [<ffffffff80438443>] out_of_memory+0x4b3/0x50d
     [<ffffffff8043a4a6>] __alloc_pages_may_oom+0xa2/0xc7
     [<ffffffff80236f42>] __alloc_pages_nodemask+0x1002/0x17f0
     [<ffffffff8024bd23>] alloc_pages_current+0x103/0x2b0
     [<ffffffff8028567f>] sk_page_frag_refill+0x8f/0x160
     [<ffffffff80295fa0>] tcp_sendmsg+0x560/0xee0
     [<ffffffff802a5037>] inet_sendmsg+0x67/0x100
     [<ffffffff80283c9c>] __sock_sendmsg_nosec+0x6c/0x90
     [<ffffffff80283e85>] sock_sendmsg+0xc5/0xf0
     [<ffffffff802847b6>] __sys_sendmsg+0x136/0x430
     [<ffffffff80284ec8>] sys_sendmsg+0x88/0x110
     [<ffffffff80711472>] system_call_fastpath+0x16/0x1b
    Out of Memory: Kill process 2856 (bash) score 9999 or sacrifice child
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d868190cc294408e3169b40c65b284ea9ddfded9
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Feb 22 10:30:19 2014 +0100

    net: ip, ipv6: handle gso skbs in forwarding path
    
    commit fe6cc55f3a9a053482a76f5a6b2257cee51b4663 upstream.
    
    Marcelo Ricardo Leitner reported problems when the forwarding link path
    has a lower mtu than the incoming one if the inbound interface supports GRO.
    
    Given:
    Host <mtu1500> R1 <mtu1200> R2
    
    Host sends tcp stream which is routed via R1 and R2.  R1 performs GRO.
    
    In this case, the kernel will fail to send ICMP fragmentation needed
    messages (or pkt too big for ipv6), as GSO packets currently bypass dstmtu
    checks in forward path. Instead, Linux tries to send out packets exceeding
    the mtu.
    
    When locking route MTU on Host (i.e., no ipv4 DF bit set), R1 does
    not fragment the packets when forwarding, and again tries to send out
    packets exceeding R1-R2 link mtu.
    
    This alters the forwarding dstmtu checks to take the individual gso
    segment lengths into account.
    
    For ipv6, we send out pkt too big error for gso if the individual
    segments are too big.
    
    For ipv4, we either send icmp fragmentation needed, or, if the DF bit
    is not set, perform software segmentation and let the output path
    create fragments when the packet is leaving the machine.
    It is not 100% correct as the error message will contain the headers of
    the GRO skb instead of the original/segmented one, but it seems to
    work fine in my (limited) tests.
    
    Eric Dumazet suggested to simply shrink mss via ->gso_size to avoid
    sofware segmentation.
    
    However it turns out that skb_segment() assumes skb nr_frags is related
    to mss size so we would BUG there.  I don't want to mess with it considering
    Herbert and Eric disagree on what the correct behavior should be.
    
    Hannes Frederic Sowa notes that when we would shrink gso_size
    skb_segment would then also need to deal with the case where
    SKB_MAX_FRAGS would be exceeded.
    
    This uses sofware segmentation in the forward path when we hit ipv4
    non-DF packets and the outgoing link mtu is too small.  Its not perfect,
    but given the lack of bug reports wrt. GRO fwd being broken this is a
    rare case anyway.  Also its not like this could not be improved later
    once the dust settles.
    
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Reported-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a999dd5c186aa28c099a0e1c972c274502bf9f6f
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Feb 22 10:30:18 2014 +0100

    net: core: introduce netif_skb_dev_features
    
    commit d206940319c41df4299db75ed56142177bb2e5f6 upstream.
    
    Will be used by upcoming ipv4 forward path change that needs to
    determine feature mask using skb->dst->dev instead of skb->dev.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3fb03b59b44b2e4216331e398b21754d250ae223
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Feb 22 10:30:17 2014 +0100

    net: add and use skb_gso_transport_seglen()
    
    commit de960aa9ab4decc3304959f69533eef64d05d8e8 upstream.
    
    [ no skb_gso_seglen helper in 3.10, leave tbf alone ]
    
    This moves part of Eric Dumazets skb_gso_seglen helper from tbf sched to
    skbuff core so it may be reused by upcoming ip forwarding path patch.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b306713b6374b184026f3a8a176ac11ee855510a
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Mon Feb 17 12:11:11 2014 +0100

    net: sctp: fix sctp_connectx abi for ia32 emulation/compat mode
    
    [ Upstream commit ffd5939381c609056b33b7585fb05a77b4c695f3 ]
    
    SCTP's sctp_connectx() abi breaks for 64bit kernels compiled with 32bit
    emulation (e.g. ia32 emulation or x86_x32). Due to internal usage of
    'struct sctp_getaddrs_old' which includes a struct sockaddr pointer,
    sizeof(param) check will always fail in kernel as the structure in
    64bit kernel space is 4bytes larger than for user binaries compiled
    in 32bit mode. Thus, applications making use of sctp_connectx() won't
    be able to run under such circumstances.
    
    Introduce a compat interface in the kernel to deal with such
    situations by using a 'struct compat_sctp_getaddrs_old' structure
    where user data is copied into it, and then sucessively transformed
    into a 'struct sctp_getaddrs_old' structure with the help of
    compat_ptr(). That fixes sctp_connectx() abi without any changes
    needed in user space, and lets the SCTP test suite pass when compiled
    in 32bit and run on 64bit kernels.
    
    Fixes: f9c67811ebc0 ("sctp: Fix regression introduced by new sctp_connectx api")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e82a32af9b911ca79db6820eecb806b4984ba6fc
Author: Duan Jiong <duanj.fnst@cn.fujitsu.com>
Date:   Mon Feb 17 15:23:43 2014 +0800

    ipv4: fix counter in_slow_tot
    
    [ Upstream commit a6254864c08109c66a194612585afc0439005286 ]
    
    since commit 89aef8921bf("ipv4: Delete routing cache."), the counter
    in_slow_tot can't work correctly.
    
    The counter in_slow_tot increase by one when fib_lookup() return successfully
    in ip_route_input_slow(), but actually the dst struct maybe not be created and
    cached, so we can increase in_slow_tot after the dst struct is created.
    
    Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4380aafddc80b6905ef8f047af80597ec7705e1e
Author: Jiri Bohac <jiri@boha.cz>
Date:   Fri Feb 14 18:13:50 2014 +0100

    bonding: 802.3ad: make aggregator_identifier bond-private
    
    [ Upstream commit 163c8ff30dbe473abfbb24a7eac5536c87f3baa9 ]
    
    aggregator_identifier is used to assign unique aggregator identifiers
    to aggregators of a bond during device enslaving.
    
    aggregator_identifier is currently a global variable that is zeroed in
    bond_3ad_initialize().
    
    This sequence will lead to duplicate aggregator identifiers for eth1 and eth3:
    
    create bond0
    change bond0 mode to 802.3ad
    enslave eth0 to bond0 		//eth0 gets agg id 1
    enslave eth1 to bond0 		//eth1 gets agg id 2
    create bond1
    change bond1 mode to 802.3ad
    enslave eth2 to bond1		//aggregator_identifier is reset to 0
    				//eth2 gets agg id 1
    enslave eth3 to bond0 		//eth3 gets agg id 2
    
    Fix this by making aggregator_identifier private to the bond.
    
    Signed-off-by: Jiri Bohac <jbohac@suse.cz>
    Acked-by: Veaceslav Falico <vfalico@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07ea875e2edfb8ed79fee4d252ad7141e8dc0174
Author: Emil Goode <emilgoode@gmail.com>
Date:   Thu Feb 13 17:50:19 2014 +0100

    usbnet: remove generic hard_header_len check
    
    [ Upstream commit eb85569fe2d06c2fbf4de7b66c263ca095b397aa ]
    
    This patch removes a generic hard_header_len check from the usbnet
    module that is causing dropped packages under certain circumstances
    for devices that send rx packets that cross urb boundaries.
    
    One example is the AX88772B which occasionally send rx packets that
    cross urb boundaries where the remaining partial packet is sent with
    no hardware header. When the buffer with a partial packet is of less
    number of octets than the value of hard_header_len the buffer is
    discarded by the usbnet module.
    
    With AX88772B this can be reproduced by using ping with a packet
    size between 1965-1976.
    
    The bug has been reported here:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=29082
    
    This patch introduces the following changes:
    - Removes the generic hard_header_len check in the rx_complete
      function in the usbnet module.
    - Introduces a ETH_HLEN check for skbs that are not cloned from
      within a rx_fixup callback.
    - For safety a hard_header_len check is added to each rx_fixup
      callback function that could be affected by this change.
      These extra checks could possibly be removed by someone
      who has the hardware to test.
    - Removes a call to dev_kfree_skb_any() and instead utilizes the
      dev->done list to queue skbs for cleanup.
    
    The changes place full responsibility on the rx_fixup callback
    functions that clone skbs to only pass valid skbs to the
    usbnet_skb_return function.
    
    Signed-off-by: Emil Goode <emilgoode@gmail.com>
    Reported-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89663e7349a26956f972aab424b13088d8806405
Author: Emil Goode <emilgoode@gmail.com>
Date:   Thu Feb 13 19:30:39 2014 +0100

    net: asix: add missing flag to struct driver_info
    
    [ Upstream commit d43ff4cd798911736fb39025ec8004284b1b0bc2 ]
    
    The struct driver_info ax88178_info is assigned the function
    asix_rx_fixup_common as it's rx_fixup callback. This means that
    FLAG_MULTI_PACKET must be set as this function is cloning the
    data and calling usbnet_skb_return. Not setting this flag leads
    to usbnet_skb_return beeing called a second time from within
    the rx_process function in the usbnet module.
    
    Signed-off-by: Emil Goode <emilgoode@gmail.com>
    Reported-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c13ac5531e8a883c2f5404e495c45faf7a88ba6
Author: Nithin Sujir <nsujir@broadcom.com>
Date:   Thu Feb 6 14:13:05 2014 -0800

    tg3: Fix deadlock in tg3_change_mtu()
    
    [ Upstream commit c6993dfd7db9b0c6b7ca7503a56fda9236a4710f ]
    
    Quoting David Vrabel -
    "5780 cards cannot have jumbo frames and TSO enabled together.  When
    jumbo frames are enabled by setting the MTU, the TSO feature must be
    cleared.  This is done indirectly by calling netdev_update_features()
    which will call tg3_fix_features() to actually clear the flags.
    
    netdev_update_features() will also trigger a new netlink message for the
    feature change event which will result in a call to tg3_get_stats64()
    which deadlocks on the tg3 lock."
    
    tg3_set_mtu() does not need to be under the tg3 lock since converting
    the flags to use set_bit(). Move it out to after tg3_netif_stop().
    
    Reported-by: David Vrabel <david.vrabel@citrix.com>
    Tested-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94ee16ae9503d487dfee6967e9a170188b667311
Author: John Ogness <john.ogness@linutronix.de>
Date:   Sun Feb 9 18:40:11 2014 -0800

    tcp: tsq: fix nonagle handling
    
    [ Upstream commit bf06200e732de613a1277984bf34d1a21c2de03d ]
    
    Commit 46d3ceabd8d9 ("tcp: TCP Small Queues") introduced a possible
    regression for applications using TCP_NODELAY.
    
    If TCP session is throttled because of tsq, we should consult
    tp->nonagle when TX completion is done and allow us to send additional
    segment, especially if this segment is not a full MSS.
    Otherwise this segment is sent after an RTO.
    
    [edumazet] : Cooked the changelog, added another fix about testing
    sk_wmem_alloc twice because TX completion can happen right before
    setting TSQ_THROTTLED bit.
    
    This problem is particularly visible with recent auto corking,
    but might also be triggered with low tcp_limit_output_bytes
    values or NIC drivers delaying TX completion by hundred of usec,
    and very low rtt.
    
    Thomas Glanzmann for example reported an iscsi regression, caused
    by tcp auto corking making this bug quite visible.
    
    Fixes: 46d3ceabd8d9 ("tcp: TCP Small Queues")
    Signed-off-by: John Ogness <john.ogness@linutronix.de>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Thomas Glanzmann <thomas@glanzmann.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f1b4122b4b077eadba4b202796f3c9cfd1319fc
Author: Bjørn Mork <bjorn@mork.no>
Date:   Tue Feb 4 13:04:33 2014 +0100

    net: qmi_wwan: add Netgear Aircard 340U
    
    [ Upstream commit fbd3a77d813f211060f86cc7a2f8416caf0e03b1 ]
    
    This device was mentioned in an OpenWRT forum.  Seems to have a "standard"
    Sierra Wireless ifnumber to function layout:
     0: qcdm
     2: nmea
     3: modem
     8: qmi
     9: storage
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ca9995116f49227a19da4cd3518c735ac609528
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Thu Feb 6 18:34:12 2014 +0100

    netpoll: fix netconsole IPv6 setup
    
    [ Upstream commit 00fe11b3c67dc670fe6391d22f1fe64e7c99a8ec ]
    
    Currently, to make netconsole start over IPv6, the source address
    needs to be specified. Without a source address, netpoll_parse_options
    assumes we're setting up over IPv4 and the destination IPv6 address is
    rejected.
    
    Check if the IP version has been forced by a source address before
    checking for a version mismatch when parsing the destination address.
    
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Acked-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14bc205c25fa43583e4ad91f3400ab23db4e3d8a
Author: Maciej Żenczykowski <maze@google.com>
Date:   Fri Feb 7 16:23:48 2014 -0800

    net: fix 'ip rule' iif/oif device rename
    
    [ Upstream commit 946c032e5a53992ea45e062ecb08670ba39b99e3 ]
    
    ip rules with iif/oif references do not update:
    (detach/attach) across interface renames.
    
    Signed-off-by: Maciej Żenczykowski <maze@google.com>
    CC: Willem de Bruijn <willemb@google.com>
    CC: Eric Dumazet <edumazet@google.com>
    CC: Chris Davis <chrismd@google.com>
    CC: Carlo Contavalli <ccontavalli@google.com>
    
    Google-Bug-Id: 12936021
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb58d094a1be1401c62fbc9e38c57d464a246d73
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Wed Feb 5 08:38:25 2014 +0100

    ipv4: Fix runtime WARNING in rtmsg_ifa()
    
    [ Upstream commit 63b5f152eb4a5bb79b9caf7ec37b4201d12f6e66 ]
    
    On m68k/ARAnyM:
    
    WARNING: CPU: 0 PID: 407 at net/ipv4/devinet.c:1599 0x316a99()
    Modules linked in:
    CPU: 0 PID: 407 Comm: ifconfig Not tainted
    3.13.0-atari-09263-g0c71d68014d1 #1378
    Stack from 10c4fdf0:
            10c4fdf0 002ffabb 000243e8 00000000 008ced6c 00024416 00316a99 0000063f
            00316a99 00000009 00000000 002501b4 00316a99 0000063f c0a86117 00000080
            c0a86117 00ad0c90 00250a5a 00000014 00ad0c90 00000000 00000000 00000001
            00b02dd0 00356594 00000000 00356594 c0a86117 eff6c9e4 008ced6c 00000002
            008ced60 0024f9b4 00250b52 00ad0c90 00000000 00000000 00252390 00ad0c90
            eff6c9e4 0000004f 00000000 00000000 eff6c9e4 8000e25c eff6c9e4 80001020
    Call Trace: [<000243e8>] warn_slowpath_common+0x52/0x6c
     [<00024416>] warn_slowpath_null+0x14/0x1a
     [<002501b4>] rtmsg_ifa+0xdc/0xf0
     [<00250a5a>] __inet_insert_ifa+0xd6/0x1c2
     [<0024f9b4>] inet_abc_len+0x0/0x42
     [<00250b52>] inet_insert_ifa+0xc/0x12
     [<00252390>] devinet_ioctl+0x2ae/0x5d6
    
    Adding some debugging code reveals that net_fill_ifaddr() fails in
    
        put_cacheinfo(skb, ifa->ifa_cstamp, ifa->ifa_tstamp,
                                  preferred, valid))
    
    nla_put complains:
    
        lib/nlattr.c:454: skb_tailroom(skb) = 12, nla_total_size(attrlen) = 20
    
    Apparently commit 5c766d642bcaffd0c2a5b354db2068515b3846cf ("ipv4:
    introduce address lifetime") forgot to take into account the addition of
    struct ifa_cacheinfo in inet_nlmsg_size(). Hence add it, like is already
    done for ipv6.
    
    Suggested-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e88041811392a2d9ea989d6dc4a0430bf134700
Author: Oliver Hartkopp <socketcan@hartkopp.net>
Date:   Thu Jan 30 10:11:28 2014 +0100

    can: add destructor for self generated skbs
    
    [ Upstream commit 0ae89beb283a0db5980d1d4781c7d7be2f2810d6 ]
    
    Self generated skbuffs in net/can/bcm.c are setting a skb->sk reference but
    no explicit destructor which is enforced since Linux 3.11 with commit
    376c7311bdb6 (net: add a temporary sanity check in skb_orphan()).
    
    This patch adds some helper functions to make sure that a destructor is
    properly defined when a sock reference is assigned to a CAN related skb.
    To create an unshared skb owned by the original sock a common helper function
    has been introduced to replace open coded functions to create CAN echo skbs.
    
    Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Tested-by: Andre Naujoks <nautsch2@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9776f59637c237b85d493c2cb48bd3e14e4ba7b
Author: Richard Yao <ryao@gentoo.org>
Date:   Sat Feb 8 19:32:01 2014 -0500

    9p/trans_virtio.c: Fix broken zero-copy on vmalloc() buffers
    
    [ Upstream commit b6f52ae2f0d32387bde2b89883e3b64d88b9bfe8 ]
    
    The 9p-virtio transport does zero copy on things larger than 1024 bytes
    in size. It accomplishes this by returning the physical addresses of
    pages to the virtio-pci device. At present, the translation is usually a
    bit shift.
    
    That approach produces an invalid page address when we read/write to
    vmalloc buffers, such as those used for Linux kernel modules. Any
    attempt to load a Linux kernel module from 9p-virtio produces the
    following stack.
    
    [<ffffffff814878ce>] p9_virtio_zc_request+0x45e/0x510
    [<ffffffff814814ed>] p9_client_zc_rpc.constprop.16+0xfd/0x4f0
    [<ffffffff814839dd>] p9_client_read+0x15d/0x240
    [<ffffffff811c8440>] v9fs_fid_readn+0x50/0xa0
    [<ffffffff811c84a0>] v9fs_file_readn+0x10/0x20
    [<ffffffff811c84e7>] v9fs_file_read+0x37/0x70
    [<ffffffff8114e3fb>] vfs_read+0x9b/0x160
    [<ffffffff81153571>] kernel_read+0x41/0x60
    [<ffffffff810c83ab>] copy_module_from_fd.isra.34+0xfb/0x180
    
    Subsequently, QEMU will die printing:
    
    qemu-system-x86_64: virtio: trying to map MMIO memory
    
    This patch enables 9p-virtio to correctly handle this case. This not
    only enables us to load Linux kernel modules off virtfs, but also
    enables ZFS file-based vdevs on virtfs to be used without killing QEMU.
    
    Special thanks to both Avi Kivity and Alexander Graf for their
    interpretation of QEMU backtraces. Without their guidence, tracking down
    this bug would have taken much longer. Also, special thanks to Linus
    Torvalds for his insightful explanation of why this should use
    is_vmalloc_addr() instead of is_vmalloc_or_module_addr():
    
    https://lkml.org/lkml/2014/2/8/272
    
    Signed-off-by: Richard Yao <ryao@gentoo.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66c63ac0465aab86925ed179ed4773e13a5131e8
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Feb 10 11:42:35 2014 -0800

    6lowpan: fix lockdep splats
    
    [ Upstream commit 20e7c4e80dcd01dad5e6c8b32455228b8fe9c619 ]
    
    When a device ndo_start_xmit() calls again dev_queue_xmit(),
    lockdep can complain because dev_queue_xmit() is re-entered and the
    spinlocks protecting tx queues share a common lockdep class.
    
    Same issue was fixed for bonding/l2tp/ppp in commits
    
    0daa2303028a6 ("[PATCH] bonding: lockdep annotation")
    49ee49202b4ac ("bonding: set qdisc_tx_busylock to avoid LOCKDEP splat")
    23d3b8bfb8eb2 ("net: qdisc busylock needs lockdep annotations ")
    303c07db487be ("ppp: set qdisc_tx_busylock to avoid LOCKDEP splat ")
    
    Reported-by: Alexander Aring <alex.aring@gmail.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Tested-by: Alexander Aring <alex.aring@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6af2434c56936bc6a48b6d1e457d266fae032d82
Author: Olivier Langlois <olivier@trillion01.com>
Date:   Sat Feb 1 01:11:09 2014 -0500

    rtlwifi: rtl8192ce: Fix too long disable of IRQs
    
    commit f78bccd79ba3cd9d9664981b501d57bdb81ab8a4 upstream.
    
    rtl8192ce is disabling for too long the local interrupts during hw initiatialisation when performing scans
    
    The observable symptoms in dmesg can be:
    
    - underruns from ALSA playback
    - clock freezes (tstamps do not change for several dmesg entries until irqs are finaly reenabled):
    
    [  250.817669] rtlwifi:rtl_op_config():<0-0-0> 0x100
    [  250.817685] rtl8192ce:_rtl92ce_phy_set_rf_power_state():<0-1-0> IPS Set eRf nic enable
    [  250.817732] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.817796] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.817910] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818024] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818139] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818253] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818367] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818472] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818472] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818472] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818472] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:18051d59:11
    [  250.818472] rtl8192ce:_rtl92ce_init_mac():<0-1-0> reg0xec:98053f15:10
    [  250.818472] rtl8192ce:rtl92ce_sw_led_on():<0-1-0> LedAddr:4E ledpin=1
    [  250.818472] rtl8192c_common:rtl92c_download_fw():<0-1-0> Firmware Version(49), Signature(0x88c1),Size(32)
    [  250.818472] rtl8192ce:rtl92ce_enable_hw_security_config():<0-1-0> PairwiseEncAlgorithm = 0 GroupEncAlgorithm = 0
    [  250.818472] rtl8192ce:rtl92ce_enable_hw_security_config():<0-1-0> The SECR-value cc
    [  250.818472] rtl8192c_common:rtl92c_dm_check_txpower_tracking_thermal_meter():<0-1-0> Schedule TxPowerTracking direct call!!
    [  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():<0-1-0> rtl92c_dm_txpower_tracking_callback_thermalmeter
    [  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():<0-1-0> Readback Thermal Meter = 0xe pre thermal meter 0xf eeprom_thermalmeter 0xf
    [  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():<0-1-0> Initial pathA ele_d reg0xc80 = 0x40000000, ofdm_index=0xc
    [  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():<0-1-0> Initial reg0xa24 = 0x90e1317, cck_index=0xc, ch14 0
    [  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():<0-1-0> Readback Thermal Meter = 0xe pre thermal meter 0xf eeprom_thermalmeter 0xf delta 0x1 delta_lck 0x0 delta_iqk 0x0
    [  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():<0-1-0> <===
    [  250.818472] rtl8192c_common:rtl92c_dm_initialize_txpower_tracking_thermalmeter():<0-1-0> pMgntInfo->txpower_tracking = 1
    [  250.818472] rtl8192ce:rtl92ce_led_control():<0-1-0> ledaction 3
    [  250.818472] rtl8192ce:rtl92ce_sw_led_on():<0-1-0> LedAddr:4E ledpin=1
    [  250.818472] rtlwifi:rtl_ips_nic_on():<0-1-0> before spin_unlock_irqrestore
    [  251.154656] PCM: Lost interrupts? [Q]-0 (stream=0, delta=15903, new_hw_ptr=293408, old_hw_ptr=277505)
    
    The exact code flow that causes that is:
    
    1. wpa_supplicant send a start_scan request to the nl80211 driver
    2. mac80211 module call rtl_op_config with IEEE80211_CONF_CHANGE_IDLE
    3.   rtl_ips_nic_on is called which disable local irqs
    4.     rtl92c_phy_set_rf_power_state() is called
    5.       rtl_ps_enable_nic() is called and hw_init()is executed and then the interrupts on the device are enabled
    
    A good solution could be to refactor the code to avoid calling rtl92ce_hw_init() with the irqs disabled
    but a quick and dirty solution that has proven to work is
    to reenable the irqs during the function rtl92ce_hw_init().
    
    I think that it is safe doing so since the device interrupt will only be enabled after the init function succeed.
    
    Signed-off-by: Olivier Langlois <olivier@trillion01.com>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f93503ede37c814caddc5d3042b16c2decff53fa
Author: Olivier Langlois <olivier@trillion01.com>
Date:   Sat Feb 1 01:11:10 2014 -0500

    rtlwifi: Fix incorrect return from rtl_ps_enable_nic()
    
    commit 2e8c5e56b307271c2dab6f8bfd1d8a3822ca2390 upstream.
    
    rtl_ps_enable_nic() is called from loops that will loop until this function returns true or a
    maximum number of retries is performed.
    
    hw_init() returns non-zero on error. In that situation return false to
    restore the original design intent to retry hw init when it fails.
    
    Signed-off-by: Olivier Langlois <olivier@trillion01.com>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dba4d31d9d093d86decb0d49a1c4a32b488608e
Author: Stanislaw Gruszka <stf_xl@wp.pl>
Date:   Mon Feb 10 22:38:28 2014 +0100

    rtl8187: fix regression on MIPS without coherent DMA
    
    commit b6213e413a4e0c66548153516b074df14f9d08e0 upstream.
    
    This patch fixes regression caused by commit a16dad77634 "MIPS: Fix
    potencial corruption". That commit fixes one corruption scenario in
    cost of adding another one, which actually start to cause crashes
    on Yeeloong laptop when rtl8187 driver is used.
    
    For correct DMA read operation on machines without DMA coherence, kernel
    have to invalidate cache, such it will refill later with new data that
    device wrote to memory, when that data is needed to process. We can only
    invalidate full cache line. Hence when cache line includes both dma
    buffer and some other data (written in cache, but not yet in main
    memory), the other data can not hit memory due to invalidation. That
    happen on rtl8187 where struct rtl8187_priv fields are located just
    before and after small buffers that are passed to USB layer and DMA
    is performed on them.
    
    To fix the problem we align buffers and reserve space after them to make
    them match cache line.
    
    This patch does not resolve all possible MIPS problems entirely, for
    that we have to assure that we always map cache aligned buffers for DMA,
    what can be complex or even not possible. But patch fixes visible and
    reproducible regression and seems other possible corruptions do not
    happen in practice, since Yeeloong laptop works stable without rtl8187
    driver.
    
    Bug report:
    https://bugzilla.kernel.org/show_bug.cgi?id=54391
    
    Reported-by: Petr Pisar <petr.pisar@atlas.cz>
    Bisected-by: Tom Li <biergaizi2009@gmail.com>
    Reported-and-tested-by: Tom Li <biergaizi2009@gmail.com>
    Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.next>
    Acked-by: Hin-Tak Leung <htl10@users.sourceforge.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32c36d8888008fb30c8215d0fc189a288285bc12
Author: Pavel Shilovsky <piastry@etersoft.ru>
Date:   Fri Feb 14 13:31:02 2014 +0400

    CIFS: Fix too big maxBuf size for SMB3 mounts
    
    commit 2365c4eaf077c48574ab6f143960048fc0f31518 upstream.
    
    SMB3 servers can respond with MaxTransactSize of more than 4M
    that can cause a memory allocation error returned from kmalloc
    in a lock codepath. Also the client doesn't support multicredit
    requests now and allows buffer sizes of 65536 bytes only. Set
    MaxTransactSize to this maximum supported value.
    
    Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
    Acked-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f0afafeb7bdd6c2c2b27a93c803fff975a232be
Author: Jeff Layton <jlayton@redhat.com>
Date:   Fri Feb 14 07:20:35 2014 -0500

    cifs: ensure that uncached writes handle unmapped areas correctly
    
    commit 5d81de8e8667da7135d3a32a964087c0faf5483f upstream.
    
    It's possible for userland to pass down an iovec via writev() that has a
    bogus user pointer in it. If that happens and we're doing an uncached
    write, then we can end up getting less bytes than we expect from the
    call to iov_iter_copy_from_user. This is CVE-2014-0069
    
    cifs_iovec_write isn't set up to handle that situation however. It'll
    blindly keep chugging through the page array and not filling those pages
    with anything useful. Worse yet, we'll later end up with a negative
    number in wdata->tailsz, which will confuse the sending routines and
    cause an oops at the very least.
    
    Fix this by having the copy phase of cifs_iovec_write stop copying data
    in this situation and send the last write as a short one. At the same
    time, we want to avoid sending a zero-length write to the server, so
    break out of the loop and set rc to -EFAULT if that happens. This also
    allows us to handle the case where no address in the iovec is valid.
    
    [Note: Marking this for stable on v3.4+ kernels, but kernels as old as
           v2.6.38 may have a similar problem and may need similar fix]
    
    Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru>
    Reported-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f14109420e3144a4d1fca374e4b37232342c9c05
Author: Chen Gang <gang.chen.5i5j@gmail.com>
Date:   Sat Feb 1 20:35:54 2014 +0800

    avr32: Makefile: add '-D__linux__' flag for gcc-4.4.7 use
    
    commit 8d80390cfc9434d5aa4fb9e5f9768a66b30cb8a6 upstream.
    
    For avr32 cross compiler, do not define '__linux__' internally, so it
    will cause issue with allmodconfig.
    
    The related error:
    
        CC [M]  fs/coda/psdev.o
      In file included from include/linux/coda.h:64,
                       from fs/coda/psdev.c:45:
      include/uapi/linux/coda.h:221: error: expected specifier-qualifier-list before 'u_quad_t'
    
    The related toolchain version (which only download, not re-compile):
    
      [root@gchen linux-next]# /upstream/toolchain/download/avr32-gnu-toolchain-linux_x86/bin/avr32-gcc -v
      Using built-in specs.
      Target: avr32
      Configured with: /data2/home/toolsbuild/jenkins-knuth/workspace/avr32-gnu-toolchain/src/gcc/configure --target=avr32 --host=i686-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/home/toolsbuild/jenkins-knuth/workspace/avr32-gnu-toolchain/avr32-gnu-toolchain-linux_x86 --enable-languages=c,c++ --disable-nls --disable-libssp --disable-libstdcxx-pch --with-dwarf2 --enable-version-specific-runtime-libs --disable-shared --enable-doc --with-mpfr-lib=/home/toolsbuild/jenkins-knuth/workspace/avr32-gnu-toolchain/avr32-gnu-toolchain-linux_x86/lib --with-mpfr-include=/home/toolsbuild/jenkins-knuth/workspace/avr32-gnu-toolchain/avr32-gnu-toolchain-linux_x86/include --with-gmp=/home/toolsbuild/jenkins-knuth/workspace/avr32-gnu-toolchain/avr32-gnu-toolchain-linux_x86 --with-mpc=/home/toolsbuild/jenkins-knuth/workspace/avr32-gnu-toolchain/avr32-gnu-toolchain-linux_x86 --enable-__cxa_atexit --disable-shared --with-newlib --with-pkgversion=AVR_32_bit_GNU_Toolchain_3.4.2_435 --with-bugurl=http://www
    .atmel.com/avr
      Thread model: single
      gcc version 4.4.7 (AVR_32_bit_GNU_Toolchain_3.4.2_435)
    
    Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
    Acked-by: Hans-Christian Egtvedt <hegtvedt@cisco.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f390b939d3c12b8d1bff442d9fa37e809c7daa25
Author: Paul Gortmaker <paul.gortmaker@windriver.com>
Date:   Fri Jan 10 09:29:39 2014 -0500

    avr32: fix missing module.h causing build failure in mimc200/fram.c
    
    commit 5745d6a41a4f4aec29e2ccd591c6fb09ed73a955 upstream.
    
    Causing this:
    
    In file included from arch/avr32/boards/mimc200/fram.c:13:
    include/linux/miscdevice.h:51: error: field 'list' has incomplete type
    include/linux/miscdevice.h:55: error: expected specifier-qualifier-list before 'mode_t'
    arch/avr32/boards/mimc200/fram.c:42: error: 'THIS_MODULE' undeclared here (not in a function)
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
    Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
    Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e302a0a566cfda4bce4c7489bc45d0b068fd961
Author: Pekon Gupta <pekon@ti.com>
Date:   Tue Jan 28 11:42:41 2014 +0530

    ARM: OMAP2+: gpmc: fix: DT ONENAND child nodes not probed when MTD_ONENAND is built as module
    
    commit 980386d2d6d49e0b42f48550853ef1ad6aa5d79a upstream.
    
    Fixes: commit 75d3625e0e86b2d8d77b4e9c6f685fd7ea0d5a96
           ARM: OMAP2+: gpmc: add DT bindings for OneNAND
    
    OMAP SoC(s) depend on GPMC controller driver to parse GPMC DT child nodes and
    register them platform_device for ONENAND driver to probe later. However this does
    not happen if generic MTD_ONENAND framework is built as module (CONFIG_MTD_ONENAND=m).
    
    Therefore, when MTD/ONENAND and MTD/ONENAND/OMAP2 modules are loaded, they are unable
    to find any matching platform_device and remain un-binded. This causes on board
    ONENAND flash to remain un-detected.
    
    This patch causes GPMC controller to parse DT nodes when
    CONFIG_MTD_ONENAND=y || CONFIG_MTD_ONENAND=m
    
    Signed-off-by: Pekon Gupta <pekon@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f11840d0ccc43bf0a8f0d06c4a43a8ccce6dd73
Author: Pekon Gupta <pekon@ti.com>
Date:   Tue Jan 28 11:42:40 2014 +0530

    ARM: OMAP2+: gpmc: fix: DT NAND child nodes not probed when MTD_NAND is built as module
    
    commit 6b187b21c92b6e2c7e8ef0b450181c37a3f31681 upstream.
    
    Fixes: commit bc6b1e7b86f5d8e4a6fc1c0189e64bba4077efe0
           ARM: OMAP: gpmc: add DT bindings for GPMC timings and NAND
    
    OMAP SoC(s) depend on GPMC controller driver to parse GPMC DT child nodes and
    register them platform_device for NAND driver to probe later. However this does
    not happen if generic MTD_NAND framework is built as module (CONFIG_MTD_NAND=m).
    
    Therefore, when MTD/NAND and MTD/NAND/OMAP2 modules are loaded, they are unable
    to find any matching platform_device and remain un-binded. This causes on board
    NAND flash to remain un-detected.
    
    This patch causes GPMC controller to parse DT nodes when
    CONFIG_MTD_NAND=y || CONFIG_MTD_NAND=m
    
    Signed-off-by: Pekon Gupta <pekon@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c943f5f92411ccb977e3272615309d3877d435f5
Author: Vinayak Kale <vkale@apm.com>
Date:   Wed Feb 12 07:30:01 2014 +0100

    ARM: 7957/1: add DSB after icache flush in __flush_icache_all()
    
    commit 39544ac9df20f73e49fc6b9ac19ff533388c82c0 upstream.
    
    Add DSB after icache flush to complete the cache maintenance operation.
    
    Signed-off-by: Vinayak Kale <vkale@apm.com>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1266f2d31159a79507aa299defeee54afccf1e15
Author: Will Deacon <will.deacon@arm.com>
Date:   Fri Feb 7 19:12:20 2014 +0100

    ARM: 7953/1: mm: ensure TLB invalidation is complete before enabling MMU
    
    commit bae0ca2bc550d1ec6a118fb8f2696f18c4da3d8e upstream.
    
    During __v{6,7}_setup, we invalidate the TLBs since we are about to
    enable the MMU on return to head.S. Unfortunately, without a subsequent
    dsb instruction, the invalidation is not guaranteed to have completed by
    the time we write to the sctlr, potentially exposing us to junk/stale
    translations cached in the TLB.
    
    This patch reworks the init functions so that the dsb used to ensure
    completion of cache/predictor maintenance is also used to ensure
    completion of the TLB invalidation.
    
    Reported-by: Albin Tonnerre <Albin.Tonnerre@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1dca10b4c8528298fe5cf40cdbf4a480f9b0a429
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Thu Jan 16 15:39:17 2014 +0100

    ARM: dma-mapping: fix GFP_ATOMIC macro usage
    
    commit 10c8562f932d89c030083e15f9279971ed637136 upstream.
    
    GFP_ATOMIC is not a single gfp flag, but a macro which expands to the other
    flags and LACK of __GFP_WAIT flag. To check if caller wanted to perform an
    atomic allocation, the code must test __GFP_WAIT flag presence. This patch
    fixes the issue introduced in v3.6-rc5
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c9f21983490feb5637990d719e729bf77b99bd1
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sun Feb 16 19:29:32 2014 -0500

    ext4: don't leave i_crtime.tv_sec uninitialized
    
    commit 19ea80603715d473600cd993b9987bc97d042e02 upstream.
    
    If the i_crtime field is not present in the inode, don't leave the
    field uninitialized.
    
    Fixes: ef7f38359 ("ext4: Add nanosecond timestamps")
    Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
    Tested-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6b55805ac4ffbcd63bf74ce572cc7a94f15be9e
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Feb 15 22:42:25 2014 -0500

    ext4: fix online resize with a non-standard blocks per group setting
    
    commit 3d2660d0c9c2f296837078c189b68a47f6b2e3b5 upstream.
    
    The set_flexbg_block_bitmap() function assumed that the number of
    blocks in a blockgroup was sb->blocksize * 8, which is normally true,
    but not always!  Use EXT4_BLOCKS_PER_GROUP(sb) instead, to fix block
    bitmap corruption after:
    
    mke2fs -t ext4 -g 3072 -i 4096 /dev/vdd 1G
    mount -t ext4 /dev/vdd /vdd
    resize2fs /dev/vdd 8G
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Reported-by: Jon Bernard <jbernard@tuxion.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94a197c6bc4976fdec2ea37a0612df226839c541
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Feb 15 21:33:13 2014 -0500

    ext4: fix online resize with very large inode tables
    
    commit b93c95353413041a8cebad915a8109619f66bcc6 upstream.
    
    If a file system has a large number of inodes per block group, all of
    the metadata blocks in a flex_bg may be larger than what can fit in a
    single block group.  Unfortunately, ext4_alloc_group_tables() in
    resize.c was never tested to see if it would handle this case
    correctly, and there were a large number of bugs which caused the
    following sequence to result in a BUG_ON:
    
    kernel bug at fs/ext4/resize.c:409!
       ...
    call trace:
     [<ffffffff81256768>] ext4_flex_group_add+0x1448/0x1830
     [<ffffffff81257de2>] ext4_resize_fs+0x7b2/0xe80
     [<ffffffff8123ac50>] ext4_ioctl+0xbf0/0xf00
     [<ffffffff811c111d>] do_vfs_ioctl+0x2dd/0x4b0
     [<ffffffff811b9df2>] ? final_putname+0x22/0x50
     [<ffffffff811c1371>] sys_ioctl+0x81/0xa0
     [<ffffffff81676aa9>] system_call_fastpath+0x16/0x1b
    code: c8 4c 89 df e8 41 96 f8 ff 44 89 e8 49 01 c4 44 29 6d d4 0
    rip  [<ffffffff81254fa1>] set_flexbg_block_bitmap+0x171/0x180
    
    
    This can be reproduced with the following command sequence:
    
       mke2fs -t ext4 -i 4096 /dev/vdd 1G
       mount -t ext4 /dev/vdd /vdd
       resize2fs /dev/vdd 8G
    
    To fix this, we need to make sure the right thing happens when a block
    group's inode table straddles two block groups, which means the
    following bugs had to be fixed:
    
    1) Not clearing the BLOCK_UNINIT flag in the second block group in
       ext4_alloc_group_tables --- the was proximate cause of the BUG_ON.
    
    2) Incorrectly determining how many block groups contained contiguous
       free blocks in ext4_alloc_group_tables().
    
    3) Incorrectly setting the start of the next block range to be marked
       in use after a discontinuity in setup_new_flex_group_blocks().
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f13ea132887a8649cc6d45942e2be27f4362351f
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Wed Feb 12 12:16:04 2014 -0500

    ext4: don't try to modify s_flags if the the file system is read-only
    
    commit 23301410972330c0ae9a8afc379ba2005e249cc6 upstream.
    
    If an ext4 file system is created by some tool other than mke2fs
    (perhaps by someone who has a pathalogical fear of the GPL) that
    doesn't set one or the other of the EXT2_FLAGS_{UN}SIGNED_HASH flags,
    and that file system is then mounted read-only, don't try to modify
    the s_flags field.  Otherwise, if dm_verity is in use, the superblock
    will change, causing an dm_verity failure.
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4687eb1ebf2129cf46e636ec197173b99a4959e2
Author: Zheng Liu <wenqing.lz@taobao.com>
Date:   Wed Feb 12 11:48:31 2014 -0500

    ext4: fix error paths in swap_inode_boot_loader()
    
    commit 30d29b119ef01776e0a301444ab24defe8d8bef3 upstream.
    
    In swap_inode_boot_loader() we forgot to release ->i_mutex and resume
    unlocked dio for inode and inode_bl if there is an error starting the
    journal handle.  This commit fixes this issue.
    
    Reported-by: Ahmed Tamrawi <ahmedtamrawi@gmail.com>
    Cc: Andreas Dilger <adilger.kernel@dilger.ca>
    Cc: Dr. Tilmann Bubeck <t.bubeck@reinform.de>
    Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b85dac35a83f41e88f587b6d9d9b514581d9b034
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Thu Feb 13 21:57:15 2014 -0500

    drm/nv50/disp: use correct register to determine DP display bpp
    
    commit a7f1c1e65b68e1e1ab70898528d5977ed68a0a7d upstream.
    
    Commit 0a0afd282f ("drm/nv50-/disp: move DP link training to core and
    train from supervisor") added code that uses the wrong register for
    computing the display bpp, used for bandwidth calculation. Adjust to use
    the same register as used by exec_clkcmp and nv50_disp_intr_unk20_2_dp.
    
    Reported-by: Torsten Wagner <torsten.wagner@gmail.com>
    Reported-by: Michael Gulick <mgulick@mathworks.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67628
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fa1b5b1364195cc5a42f7e629a1d1863cfff69f
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Wed Jan 29 19:53:00 2014 -0500

    drm/nouveau: set irq_enabled manually
    
    commit 7d3428cd4b2ad51af86fdbdf8284ca38fa95e601 upstream.
    
    Since commit 0fa9061ae8c ("drm/nouveau/mc: handle irq-related setup
    ourselves"), drm_device->irq_enabled remained unset. This is needed in
    order to properly wait for a vblank event in the generic drm code.
    
    See https://bugs.freedesktop.org/show_bug.cgi?id=74195
    
    Reported-by: Jan Janecek <janjanjanx@gmail.com>
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>