commit 0617859f504df3a9f3b8d8765be98eae066621c8
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Aug 7 16:53:58 2014 -0700

    Linux 3.15.9

commit 8f0d9e956f8000880cb0fce47c25e7bc16d79d41
Author: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Date:   Wed Jul 9 13:18:18 2014 -0400

    x86/espfix/xen: Fix allocation of pages for paravirt page tables
    
    commit 8762e5092828c4dc0f49da5a47a644c670df77f3 upstream.
    
    init_espfix_ap() is currently off by one level when informing hypervisor
    that allocated pages will be used for ministacks' page tables.
    
    The most immediate effect of this on a PV guest is that if
    'stack_page = __get_free_page()' returns a non-zeroed-out page the hypervisor
    will refuse to use it for a page table (which it shouldn't be anyway). This will
    result in warnings by both Xen and Linux.
    
    More importantly, a subsequent write to that page (again, by a PV guest) is
    likely to result in fatal page fault.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Link: http://lkml.kernel.org/r/1404926298-5565-1-git-send-email-boris.ostrovsky@oracle.com
    Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 849c177302db129212c3c5432191fc3c88f75620
Author: Minfei Huang <huangminfei@ucloud.cn>
Date:   Wed Jun 4 16:11:53 2014 -0700

    lib/btree.c: fix leak of whole btree nodes
    
    commit c75b53af2f0043aff500af0a6f878497bef41bca upstream.
    
    I use btree from 3.14-rc2 in my own module.  When the btree module is
    removed, a warning arises:
    
     kmem_cache_destroy btree_node: Slab cache still has objects
     CPU: 13 PID: 9150 Comm: rmmod Tainted: GF          O 3.14.0-rc2 #1
     Hardware name: Inspur NF5270M3/NF5270M3, BIOS CHEETAH_2.1.3 09/10/2013
     Call Trace:
       dump_stack+0x49/0x5d
       kmem_cache_destroy+0xcf/0xe0
       btree_module_exit+0x10/0x12 [btree]
       SyS_delete_module+0x198/0x1f0
       system_call_fastpath+0x16/0x1b
    
    The cause is that it doesn't release the last btree node, when height = 1
    and fill = 1.
    
    [akpm@linux-foundation.org: remove unneeded test of NULL]
    Signed-off-by: Minfei Huang <huangminfei@ucloud.cn>
    Cc: Joern Engel <joern@logfs.org>
    Cc: Johannes Berg <johannes@sipsolutions.net>
    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 9425aebd98c802a40beeae04a5df947a7c76afe6
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Mon Jul 14 17:02:31 2014 -0700

    net/l2tp: don't fall back on UDP [get|set]sockopt
    
    commit 3cf521f7dc87c031617fd47e4b7aa2593c2f3daf upstream.
    
    The l2tp [get|set]sockopt() code has fallen back to the UDP functions
    for socket option levels != SOL_PPPOL2TP since day one, but that has
    never actually worked, since the l2tp socket isn't an inet socket.
    
    As David Miller points out:
    
      "If we wanted this to work, it'd have to look up the tunnel and then
       use tunnel->sk, but I wonder how useful that would be"
    
    Since this can never have worked so nobody could possibly have depended
    on that functionality, just remove the broken code and return -EINVAL.
    
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Acked-by: James Chapman <jchapman@katalix.com>
    Acked-by: David Miller <davem@davemloft.net>
    Cc: Phil Turnbull <phil.turnbull@oracle.com>
    Cc: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 809c61dac354991792eeb910ea3b3962c28f62af
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Sat May 24 21:48:28 2014 +0400

    xtensa: add fixup for double exception raised in window overflow
    
    commit 17290231df16eeee5dfc198dbf5ee4b419996dcd upstream.
    
    There are two FIXMEs in the double exception handler 'for the extremely
    unlikely case'. This case gets hit by gcc during kernel build once in
    a few hours, resulting in an unrecoverable exception condition.
    
    Provide missing fixup routine to handle this case. Double exception
    literals now need 8 more bytes, add them to the linker script.
    
    Also replace bbsi instructions with bbsi.l as we're branching depending
    on 8th and 7th LSB-based bits of exception address.
    
    This may be tested by adding the explicit DTLB invalidation to window
    overflow handlers, like the following:
    
    #    --- a/arch/xtensa/kernel/vectors.S
    #    +++ b/arch/xtensa/kernel/vectors.S
    #    @@ -592,6 +592,14 @@ ENDPROC(_WindowUnderflow4)
    #     ENTRY_ALIGN64(_WindowOverflow8)
    #
    #    	s32e	a0, a9, -16
    #    +	bbsi.l	a9, 31, 1f
    #    +	rsr	a0, ccount
    #    +	bbsi.l	a0, 4, 1f
    #    +	pdtlb	a0, a9
    #    +	idtlb	a0
    #    +	movi	a0, 9
    #    +	idtlb	a0
    #    +1:
    #    	l32e    a0, a1, -12
    #    	s32e    a2, a9,  -8
    #    	s32e    a1, a9, -12
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03b3b027c75bbb243de7d720595bc0c6dab05bd7
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Mon Jun 16 13:07:00 2014 +0200

    x86/xen: no need to explicitly register an NMI callback
    
    commit ea9f9274bf4337ba7cbab241c780487651642d63 upstream.
    
    Remove xen_enable_nmi() to fix a 64-bit guest crash when registering
    the NMI callback on Xen 3.1 and earlier.
    
    It's not needed since the NMI callback is set by a set_trap_table
    hypercall (in xen_load_idt() or xen_write_idt_entry()).
    
    It's also broken since it only set the current VCPU's callback.
    
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Reported-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Tested-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: Steven Noonan <steven@uplinklabs.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e285bbe0c0e065f2602375e75069220211e47f7
Author: Scot Doyle <lkml14@scotdoyle.com>
Date:   Fri Jul 11 22:16:30 2014 +0000

    drm/i915: Ignore VBT backlight presence check on HP Chromebook 14
    
    commit 724cb06fa9b1e1ffd98188275543fdb3b8eaca4f upstream.
    
    commit c675949ec58ca50d5a3ae3c757892f1560f6e896
        drm/i915: do not setup backlight if not available according to VBT
    
    caused a regression on the HP Chromebook 14 (with Celeron 2955U CPU),
    which has a misconfigured VBT. Apply quirk to ignore the VBT backlight
    presence check during backlight setup.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
    Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
    Tested-by: Stefan Nagy <public@stefan-nagy.at>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 124231f18f278bbfebe008711de4120a2ef42982
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Wed Jul 23 21:35:11 2014 +0100

    staging: vt6655: Fix Warning on boot handle_irq_event_percpu.
    
    commit 6cff1f6ad4c615319c1a146b2aa0af1043c5e9f5 upstream.
    
    WARNING: CPU: 0 PID: 929 at /home/apw/COD/linux/kernel/irq/handle.c:147 handle_irq_event_percpu+0x1d1/0x1e0()
    irq 17 handler device_intr+0x0/0xa80 [vt6655_stage] enabled interrupts
    
    Using spin_lock_irqsave appears to fix this.
    
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 710dfba5f0e5241bd614b58ea3242e782938d7b8
Author: Roger Quadros <rogerq@ti.com>
Date:   Fri Jul 4 12:55:43 2014 +0300

    ARM: dts: dra7-evm: Make VDDA_1V8_PHY supply always on
    
    commit e120fb459693bbc1ac3eabdd65c3659d7cfbfd2a upstream.
    
    After clarification from the hardware team it was found that
    this 1.8V PHY supply can't be switched OFF when SoC is Active.
    
    Since the PHY IPs don't contain isolation logic built in the design to
    allow the power rail to be switched off, there is a very high risk
    of IP reliability and additional leakage paths which can result in
    additional power consumption.
    
    The only scenario where this rail can be switched off is part of Power on
    reset sequencing, but it needs to be kept always-on during operation.
    
    This patch is required for proper functionality of USB, SATA
    and PCIe on DRA7-evm.
    
    CC: Rajendra Nayak <rnayak@ti.com>
    CC: Tero Kristo <t-kristo@ti.com>
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a456400382ab4b9e6436182a010cee89e729890
Author: Eric Biggers <ebiggers3@gmail.com>
Date:   Tue Jun 24 23:45:08 2014 -0500

    vfs: fix check for fallocate on active swapfile
    
    commit 6d2b6170c8914c6c69256b687651fb16d7ec3e18 upstream.
    
    Fix the broken check for calling sys_fallocate() on an active swapfile,
    introduced by commit 0790b31b69374ddadefe ("fs: disallow all fallocate
    operation on active swapfile").
    
    Signed-off-by: Eric Biggers <ebiggers3@gmail.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3faa01ff2ef1e26255e5ee575912798fe9c242d
Author: Nishanth Menon <nm@ti.com>
Date:   Tue Jul 22 10:39:54 2014 -0500

    pinctrl: dra: dt-bindings: Fix pull enable/disable
    
    commit 23d9cec07c589276561c13b180577c0b87930140 upstream.
    
    The DRA74/72 control module pins have a weak pull up and pull down.
    This is configured by bit offset 17. if BIT(17) is 1, a pull up is
    selected, else a pull down is selected.
    
    However, this pull resisstor is applied based on BIT(16) -
    PULLUDENABLE - if BIT(18) is *0*, then pull as defined in BIT(17) is
    applied, else no weak pulls are applied. We defined this in reverse.
    
    Reference: Table 18-5 (Description of the pad configuration register
    bits) in Technical Reference Manual Revision (DRA74x revision Q:
    SPRUHI2Q Revised June 2014 and DRA72x revision F: SPRUHP2F - Revised
    June 2014)
    
    Fixes: 6e58b8f1daaf1a ("ARM: dts: DRA7: Add the dts files for dra7 SoC and dra7-evm board")
    Signed-off-by: Nishanth Menon <nm@ti.com>
    Tested-by: Felipe Balbi <balbi@ti.com>
    Acked-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84dd7a67ceb818babfcc6fe16233ede05e9b2590
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Wed Jul 23 08:34:11 2014 -0700

    x86_64/entry/xen: Do not invoke espfix64 on Xen
    
    commit 7209a75d2009dbf7745e2fd354abf25c3deb3ca3 upstream.
    
    This moves the espfix64 logic into native_iret.  To make this work,
    it gets rid of the native patch for INTERRUPT_RETURN:
    INTERRUPT_RETURN on native kernels is now 'jmp native_iret'.
    
    This changes the 16-bit SS behavior on Xen from OOPSing to leaking
    some bits of the Xen hypervisor's RSP (I think).
    
    [ hpa: this is a nonzero cost on native, but probably not enough to
      measure. Xen needs to fix this in their own code, probably doing
      something equivalent to espfix64. ]
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/7b8f1d8ef6597cb16ae004a43c56980a7de3cf94.1406129132.git.luto@amacapital.net
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 639d979e070bd1b8d232e0183e4420bc215d9f14
Author: H. Peter Anvin <hpa@zytor.com>
Date:   Sun May 4 10:36:22 2014 -0700

    x86, espfix: Make it possible to disable 16-bit support
    
    commit 34273f41d57ee8d854dcd2a1d754cbb546cb548f upstream.
    
    Embedded systems, which may be very memory-size-sensitive, are
    extremely unlikely to ever encounter any 16-bit software, so make it
    a CONFIG_EXPERT option to turn off support for any 16-bit software
    whatsoever.
    
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f8002a3bead9cbc8e9e922764bf2b3bcf3a6a63
Author: H. Peter Anvin <hpa@zytor.com>
Date:   Sun May 4 10:00:49 2014 -0700

    x86, espfix: Make espfix64 a Kconfig option, fix UML
    
    commit 197725de65477bc8509b41388157c1a2283542bb upstream.
    
    Make espfix64 a hidden Kconfig option.  This fixes the x86-64 UML
    build which had broken due to the non-existence of init_espfix_bsp()
    in UML: since UML uses its own Kconfig, this option does not appear in
    the UML build.
    
    This also makes it possible to make support for 16-bit segments a
    configuration option, for the people who want to minimize the size of
    the kernel.
    
    Reported-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Cc: Richard Weinberger <richard@nod.at>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit caf3a27f54514eb72745c3dae56fce5e98441839
Author: H. Peter Anvin <hpa@linux.intel.com>
Date:   Fri May 2 11:33:51 2014 -0700

    x86, espfix: Fix broken header guard
    
    commit 20b68535cd27183ebd3651ff313afb2b97dac941 upstream.
    
    Header guard is #ifndef, not #ifdef...
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3faa4ea916c9c30cf1c42891a77495dd54ac78eb
Author: H. Peter Anvin <hpa@linux.intel.com>
Date:   Thu May 1 14:12:23 2014 -0700

    x86, espfix: Move espfix definitions into a separate header file
    
    commit e1fe9ed8d2a4937510d0d60e20705035c2609aea upstream.
    
    Sparse warns that the percpu variables aren't declared before they are
    defined.  Rather than hacking around it, move espfix definitions into
    a proper header file.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fd50a78ae781e15056805b4763d513ddeb3ce02
Author: H. Peter Anvin <hpa@linux.intel.com>
Date:   Tue Apr 29 16:46:09 2014 -0700

    x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack
    
    commit 3891a04aafd668686239349ea58f3314ea2af86b upstream.
    
    The IRET instruction, when returning to a 16-bit segment, only
    restores the bottom 16 bits of the user space stack pointer.  This
    causes some 16-bit software to break, but it also leaks kernel state
    to user space.  We have a software workaround for that ("espfix") for
    the 32-bit kernel, but it relies on a nonzero stack segment base which
    is not available in 64-bit mode.
    
    In checkin:
    
        b3b42ac2cbae x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels
    
    we "solved" this by forbidding 16-bit segments on 64-bit kernels, with
    the logic that 16-bit support is crippled on 64-bit kernels anyway (no
    V86 support), but it turns out that people are doing stuff like
    running old Win16 binaries under Wine and expect it to work.
    
    This works around this by creating percpu "ministacks", each of which
    is mapped 2^16 times 64K apart.  When we detect that the return SS is
    on the LDT, we copy the IRET frame to the ministack and use the
    relevant alias to return to userspace.  The ministacks are mapped
    readonly, so if IRET faults we promote #GP to #DF which is an IST
    vector and thus has its own stack; we then do the fixup in the #DF
    handler.
    
    (Making #GP an IST exception would make the msr_safe functions unsafe
    in NMI/MC context, and quite possibly have other effects.)
    
    Special thanks to:
    
    - Andy Lutomirski, for the suggestion of using very small stack slots
      and copy (as opposed to map) the IRET frame there, and for the
      suggestion to mark them readonly and let the fault promote to #DF.
    - Konrad Wilk for paravirt fixup and testing.
    - Borislav Petkov for testing help and useful comments.
    
    Reported-by: Brian Gerst <brgerst@gmail.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Andrew Lutomriski <amluto@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Dirk Hohndel <dirk@hohndel.org>
    Cc: Arjan van de Ven <arjan.van.de.ven@intel.com>
    Cc: comex <comexk@gmail.com>
    Cc: Alexander van Heukelum <heukelum@fastmail.fm>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a4545cd24e90b942a46c99a7c4f40c60ab54b13
Author: H. Peter Anvin <hpa@zytor.com>
Date:   Wed May 21 10:22:59 2014 -0700

    Revert "x86-64, modify_ldt: Make support for 16-bit segments a runtime option"
    
    commit 7ed6fb9b5a5510e4ef78ab27419184741169978a upstream.
    
    This reverts commit fa81511bb0bbb2b1aace3695ce869da9762624ff in
    preparation of merging in the proper fix (espfix64).
    
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7bbbf4552fc9d1c6483b305839f89d3943ee189
Author: Jan Kara <jack@suse.cz>
Date:   Fri Aug 1 12:20:02 2014 +0200

    timer: Fix lock inversion between hrtimer_bases.lock and scheduler locks
    
    commit 504d58745c9ca28d33572e2d8a9990b43e06075d upstream.
    
    clockevents_increase_min_delta() calls printk() from under
    hrtimer_bases.lock. That causes lock inversion on scheduler locks because
    printk() can call into the scheduler. Lockdep puts it as:
    
    ======================================================
    [ INFO: possible circular locking dependency detected ]
    3.15.0-rc8-06195-g939f04b #2 Not tainted
    -------------------------------------------------------
    trinity-main/74 is trying to acquire lock:
     (&port_lock_key){-.....}, at: [<811c60be>] serial8250_console_write+0x8c/0x10c
    
    but task is already holding lock:
     (hrtimer_bases.lock){-.-...}, at: [<8103caeb>] hrtimer_try_to_cancel+0x13/0x66
    
    which lock already depends on the new lock.
    
    the existing dependency chain (in reverse order) is:
    
    -> #5 (hrtimer_bases.lock){-.-...}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<8103c918>] __hrtimer_start_range_ns+0x1c/0x197
           [<8107ec20>] perf_swevent_start_hrtimer.part.41+0x7a/0x85
           [<81080792>] task_clock_event_start+0x3a/0x3f
           [<810807a4>] task_clock_event_add+0xd/0x14
           [<8108259a>] event_sched_in+0xb6/0x17a
           [<810826a2>] group_sched_in+0x44/0x122
           [<81082885>] ctx_sched_in.isra.67+0x105/0x11f
           [<810828e6>] perf_event_sched_in.isra.70+0x47/0x4b
           [<81082bf6>] __perf_install_in_context+0x8b/0xa3
           [<8107eb8e>] remote_function+0x12/0x2a
           [<8105f5af>] smp_call_function_single+0x2d/0x53
           [<8107e17d>] task_function_call+0x30/0x36
           [<8107fb82>] perf_install_in_context+0x87/0xbb
           [<810852c9>] SYSC_perf_event_open+0x5c6/0x701
           [<810856f9>] SyS_perf_event_open+0x17/0x19
           [<8142f8ee>] syscall_call+0x7/0xb
    
    -> #4 (&ctx->lock){......}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f04c>] _raw_spin_lock+0x21/0x30
           [<81081df3>] __perf_event_task_sched_out+0x1dc/0x34f
           [<8142cacc>] __schedule+0x4c6/0x4cb
           [<8142cae0>] schedule+0xf/0x11
           [<8142f9a6>] work_resched+0x5/0x30
    
    -> #3 (&rq->lock){-.-.-.}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f04c>] _raw_spin_lock+0x21/0x30
           [<81040873>] __task_rq_lock+0x33/0x3a
           [<8104184c>] wake_up_new_task+0x25/0xc2
           [<8102474b>] do_fork+0x15c/0x2a0
           [<810248a9>] kernel_thread+0x1a/0x1f
           [<814232a2>] rest_init+0x1a/0x10e
           [<817af949>] start_kernel+0x303/0x308
           [<817af2ab>] i386_start_kernel+0x79/0x7d
    
    -> #2 (&p->pi_lock){-.-...}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<810413dd>] try_to_wake_up+0x1d/0xd6
           [<810414cd>] default_wake_function+0xb/0xd
           [<810461f3>] __wake_up_common+0x39/0x59
           [<81046346>] __wake_up+0x29/0x3b
           [<811b8733>] tty_wakeup+0x49/0x51
           [<811c3568>] uart_write_wakeup+0x17/0x19
           [<811c5dc1>] serial8250_tx_chars+0xbc/0xfb
           [<811c5f28>] serial8250_handle_irq+0x54/0x6a
           [<811c5f57>] serial8250_default_handle_irq+0x19/0x1c
           [<811c56d8>] serial8250_interrupt+0x38/0x9e
           [<810510e7>] handle_irq_event_percpu+0x5f/0x1e2
           [<81051296>] handle_irq_event+0x2c/0x43
           [<81052cee>] handle_level_irq+0x57/0x80
           [<81002a72>] handle_irq+0x46/0x5c
           [<810027df>] do_IRQ+0x32/0x89
           [<8143036e>] common_interrupt+0x2e/0x33
           [<8142f23c>] _raw_spin_unlock_irqrestore+0x3f/0x49
           [<811c25a4>] uart_start+0x2d/0x32
           [<811c2c04>] uart_write+0xc7/0xd6
           [<811bc6f6>] n_tty_write+0xb8/0x35e
           [<811b9beb>] tty_write+0x163/0x1e4
           [<811b9cd9>] redirected_tty_write+0x6d/0x75
           [<810b6ed6>] vfs_write+0x75/0xb0
           [<810b7265>] SyS_write+0x44/0x77
           [<8142f8ee>] syscall_call+0x7/0xb
    
    -> #1 (&tty->write_wait){-.....}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<81046332>] __wake_up+0x15/0x3b
           [<811b8733>] tty_wakeup+0x49/0x51
           [<811c3568>] uart_write_wakeup+0x17/0x19
           [<811c5dc1>] serial8250_tx_chars+0xbc/0xfb
           [<811c5f28>] serial8250_handle_irq+0x54/0x6a
           [<811c5f57>] serial8250_default_handle_irq+0x19/0x1c
           [<811c56d8>] serial8250_interrupt+0x38/0x9e
           [<810510e7>] handle_irq_event_percpu+0x5f/0x1e2
           [<81051296>] handle_irq_event+0x2c/0x43
           [<81052cee>] handle_level_irq+0x57/0x80
           [<81002a72>] handle_irq+0x46/0x5c
           [<810027df>] do_IRQ+0x32/0x89
           [<8143036e>] common_interrupt+0x2e/0x33
           [<8142f23c>] _raw_spin_unlock_irqrestore+0x3f/0x49
           [<811c25a4>] uart_start+0x2d/0x32
           [<811c2c04>] uart_write+0xc7/0xd6
           [<811bc6f6>] n_tty_write+0xb8/0x35e
           [<811b9beb>] tty_write+0x163/0x1e4
           [<811b9cd9>] redirected_tty_write+0x6d/0x75
           [<810b6ed6>] vfs_write+0x75/0xb0
           [<810b7265>] SyS_write+0x44/0x77
           [<8142f8ee>] syscall_call+0x7/0xb
    
    -> #0 (&port_lock_key){-.....}:
           [<8104a62d>] __lock_acquire+0x9ea/0xc6d
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<811c60be>] serial8250_console_write+0x8c/0x10c
           [<8104e402>] call_console_drivers.constprop.31+0x87/0x118
           [<8104f5d5>] console_unlock+0x1d7/0x398
           [<8104fb70>] vprintk_emit+0x3da/0x3e4
           [<81425f76>] printk+0x17/0x19
           [<8105bfa0>] clockevents_program_min_delta+0x104/0x116
           [<8105c548>] clockevents_program_event+0xe7/0xf3
           [<8105cc1c>] tick_program_event+0x1e/0x23
           [<8103c43c>] hrtimer_force_reprogram+0x88/0x8f
           [<8103c49e>] __remove_hrtimer+0x5b/0x79
           [<8103cb21>] hrtimer_try_to_cancel+0x49/0x66
           [<8103cb4b>] hrtimer_cancel+0xd/0x18
           [<8107f102>] perf_swevent_cancel_hrtimer.part.60+0x2b/0x30
           [<81080705>] task_clock_event_stop+0x20/0x64
           [<81080756>] task_clock_event_del+0xd/0xf
           [<81081350>] event_sched_out+0xab/0x11e
           [<810813e0>] group_sched_out+0x1d/0x66
           [<81081682>] ctx_sched_out+0xaf/0xbf
           [<81081e04>] __perf_event_task_sched_out+0x1ed/0x34f
           [<8142cacc>] __schedule+0x4c6/0x4cb
           [<8142cae0>] schedule+0xf/0x11
           [<8142f9a6>] work_resched+0x5/0x30
    
    other info that might help us debug this:
    
    Chain exists of:
      &port_lock_key --> &ctx->lock --> hrtimer_bases.lock
    
     Possible unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(hrtimer_bases.lock);
                                   lock(&ctx->lock);
                                   lock(hrtimer_bases.lock);
      lock(&port_lock_key);
    
     *** DEADLOCK ***
    
    4 locks held by trinity-main/74:
     #0:  (&rq->lock){-.-.-.}, at: [<8142c6f3>] __schedule+0xed/0x4cb
     #1:  (&ctx->lock){......}, at: [<81081df3>] __perf_event_task_sched_out+0x1dc/0x34f
     #2:  (hrtimer_bases.lock){-.-...}, at: [<8103caeb>] hrtimer_try_to_cancel+0x13/0x66
     #3:  (console_lock){+.+...}, at: [<8104fb5d>] vprintk_emit+0x3c7/0x3e4
    
    stack backtrace:
    CPU: 0 PID: 74 Comm: trinity-main Not tainted 3.15.0-rc8-06195-g939f04b #2
     00000000 81c3a310 8b995c14 81426f69 8b995c44 81425a99 8161f671 8161f570
     8161f538 8161f559 8161f538 8b995c78 8b142bb0 00000004 8b142fdc 8b142bb0
     8b995ca8 8104a62d 8b142fac 000016f2 81c3a310 00000001 00000001 00000003
    Call Trace:
     [<81426f69>] dump_stack+0x16/0x18
     [<81425a99>] print_circular_bug+0x18f/0x19c
     [<8104a62d>] __lock_acquire+0x9ea/0xc6d
     [<8104a942>] lock_acquire+0x92/0x101
     [<811c60be>] ? serial8250_console_write+0x8c/0x10c
     [<811c6032>] ? wait_for_xmitr+0x76/0x76
     [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
     [<811c60be>] ? serial8250_console_write+0x8c/0x10c
     [<811c60be>] serial8250_console_write+0x8c/0x10c
     [<8104af87>] ? lock_release+0x191/0x223
     [<811c6032>] ? wait_for_xmitr+0x76/0x76
     [<8104e402>] call_console_drivers.constprop.31+0x87/0x118
     [<8104f5d5>] console_unlock+0x1d7/0x398
     [<8104fb70>] vprintk_emit+0x3da/0x3e4
     [<81425f76>] printk+0x17/0x19
     [<8105bfa0>] clockevents_program_min_delta+0x104/0x116
     [<8105cc1c>] tick_program_event+0x1e/0x23
     [<8103c43c>] hrtimer_force_reprogram+0x88/0x8f
     [<8103c49e>] __remove_hrtimer+0x5b/0x79
     [<8103cb21>] hrtimer_try_to_cancel+0x49/0x66
     [<8103cb4b>] hrtimer_cancel+0xd/0x18
     [<8107f102>] perf_swevent_cancel_hrtimer.part.60+0x2b/0x30
     [<81080705>] task_clock_event_stop+0x20/0x64
     [<81080756>] task_clock_event_del+0xd/0xf
     [<81081350>] event_sched_out+0xab/0x11e
     [<810813e0>] group_sched_out+0x1d/0x66
     [<81081682>] ctx_sched_out+0xaf/0xbf
     [<81081e04>] __perf_event_task_sched_out+0x1ed/0x34f
     [<8104416d>] ? __dequeue_entity+0x23/0x27
     [<81044505>] ? pick_next_task_fair+0xb1/0x120
     [<8142cacc>] __schedule+0x4c6/0x4cb
     [<81047574>] ? trace_hardirqs_off_caller+0xd7/0x108
     [<810475b0>] ? trace_hardirqs_off+0xb/0xd
     [<81056346>] ? rcu_irq_exit+0x64/0x77
    
    Fix the problem by using printk_deferred() which does not call into the
    scheduler.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c2377944341f78423a20df93c820a983433ed55
Author: Stephen Boyd <sboyd@codeaurora.org>
Date:   Wed Jul 23 21:03:50 2014 -0700

    sched_clock: Avoid corrupting hrtimer tree during suspend
    
    commit f723aa1817dd8f4fe005aab52ba70c8ab0ef9457 upstream.
    
    During suspend we call sched_clock_poll() to update the epoch and
    accumulated time and reprogram the sched_clock_timer to fire
    before the next wrap-around time. Unfortunately,
    sched_clock_poll() doesn't restart the timer, instead it relies
    on the hrtimer layer to do that and during suspend we aren't
    calling that function from the hrtimer layer. Instead, we're
    reprogramming the expires time while the hrtimer is enqueued,
    which can cause the hrtimer tree to be corrupted. Furthermore, we
    restart the timer during suspend but we update the epoch during
    resume which seems counter-intuitive.
    
    Let's fix this by saving the accumulated state and canceling the
    timer during suspend. On resume we can update the epoch and
    restart the timer similar to what we would do if we were starting
    the clock for the first time.
    
    Fixes: a08ca5d1089d "sched_clock: Use an hrtimer instead of timer"
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Link: http://lkml.kernel.org/r/1406174630-23458-1-git-send-email-john.stultz@linaro.org
    Cc: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a5e0137b5d7c58f6eb66a263fc66965b758b76f
Author: John Stultz <john.stultz@linaro.org>
Date:   Wed Jun 4 16:11:40 2014 -0700

    printk: rename printk_sched to printk_deferred
    
    commit aac74dc495456412c4130a1167ce4beb6c1f0b38 upstream.
    
    After learning we'll need some sort of deferred printk functionality in
    the timekeeping core, Peter suggested we rename the printk_sched function
    so it can be reused by needed subsystems.
    
    This only changes the function name. No logic changes.
    
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jiri Bohac <jbohac@suse.cz>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.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 54926c1bcf12470cc96c9b4763bf021ebad3a845
Author: Anssi Hannula <anssi.hannula@iki.fi>
Date:   Fri Aug 1 11:55:47 2014 -0400

    dm cache: fix race affecting dirty block count
    
    commit 44fa816bb778edbab6b6ddaaf24908dd6295937e upstream.
    
    nr_dirty is updated without locking, causing it to drift so that it is
    non-zero (either a small positive integer, or a very large one when an
    underflow occurs) even when there are no actual dirty blocks.  This was
    due to a race between the workqueue and map function accessing nr_dirty
    in parallel without proper protection.
    
    People were seeing under runs due to a race on increment/decrement of
    nr_dirty, see: https://lkml.org/lkml/2014/6/3/648
    
    Fix this by using an atomic_t for nr_dirty.
    
    Reported-by: roma1390@gmail.com
    Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71881a3da0c57eb873317ac0176992cd945b5ca6
Author: Greg Thelen <gthelen@google.com>
Date:   Thu Jul 31 09:07:19 2014 -0700

    dm bufio: fully initialize shrinker
    
    commit d8c712ea471ce7a4fd1734ad2211adf8469ddddc upstream.
    
    1d3d4437eae1 ("vmscan: per-node deferred work") added a flags field to
    struct shrinker assuming that all shrinkers were zero filled.  The dm
    bufio shrinker is not zero filled, which leaves arbitrary kmalloc() data
    in flags.  So far the only defined flags bit is SHRINKER_NUMA_AWARE.
    But there are proposed patches which add other bits to shrinker.flags
    (e.g. memcg awareness).
    
    Rather than simply initializing the shrinker, this patch uses kzalloc()
    when allocating the dm_bufio_client to ensure that the embedded shrinker
    and any other similar structures are zeroed.
    
    This fixes theoretical over aggressive shrinking of dm bufio objects.
    If the uninitialized dm_bufio_client.shrinker.flags contains
    SHRINKER_NUMA_AWARE then shrink_slab() would call the dm shrinker for
    each numa node rather than just once.  This has been broken since 3.12.
    
    Signed-off-by: Greg Thelen <gthelen@google.com>
    Acked-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49ab5de52b88d5e3a06c55aa07594e798c6eb9cc
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Thu Jul 17 16:59:00 2014 +0100

    iio: buffer: Fix demux table creation
    
    commit 61bd55ce1667809f022be88da77db17add90ea4e upstream.
    
    When creating the demux table we need to iterate over the selected scan mask for
    the buffer to get the samples which should be copied to destination buffer.
    Right now the code uses the mask which contains all active channels, which means
    the demux table contains entries which causes it to copy all the samples from
    source to destination buffer one by one without doing any demuxing.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e66a33cf4c92ec182a240d64789abeb968871de4
Author: Peter Meerwald <pmeerw@pmeerw.net>
Date:   Wed Jul 16 19:32:00 2014 +0100

    iio:bma180: Missing check for frequency fractional part
    
    commit 9b2a4d35a6ceaf217be61ed8eb3c16986244f640 upstream.
    
    val2 should be zero
    
    This will make no difference for correct inputs but will reject
    incorrect ones with a decimal part in the value written to the sysfs
    interface.
    
    Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
    Cc: Oleksandr Kravchenko <o.v.kravchenko@globallogic.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e3b94397b34a287bc1c9da207528e975c59a12d
Author: Peter Meerwald <pmeerw@pmeerw.net>
Date:   Wed Jul 16 19:32:00 2014 +0100

    iio:bma180: Fix scale factors to report correct acceleration units
    
    commit 381676d5e86596b11e22a62f196e192df6091373 upstream.
    
    The userspace interface for acceleration sensors is documented as using
    m/s^2 units [Documentation/ABI/testing/sysfs-bus-iio]
    
    The fullscale raw values for the BMA80 corresponds to -/+ 1, 1.5, 2, etc G
    depending on the selected mode.
    
    The scale table was converting to G rather than m/s^2.
    Change the scaling table to match the documented interface.
    
    See commit 71702e6e, iio: mma8452: Use correct acceleration units,
    for a related fix.
    
    Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
    Cc: Oleksandr Kravchenko <o.v.kravchenko@globallogic.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d815092d244e8ce22b50215b99531a69a11467a
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Wed Jul 30 00:23:09 2014 +0200

    ACPI / PNP: Fix acpi_pnp_match()
    
    commit b6328a07bd6b3d31b64f85864fe74f3b08c010ca upstream.
    
    The acpi_pnp_match() function is used for finding the ACPI device
    object that should be associated with the given PNP device.
    Unfortunately, the check used by that function is not strict enough
    and may cause success to be returned for a wrong ACPI device object.
    
    To fix that, use the observation that the pointer to the ACPI
    device object in question is already stored in the data field
    in struct pnp_dev, so acpi_pnp_match() can simply use that
    field to do its job.
    
    This problem was uncovered in 3.14 by commit 202317a573b2 (ACPI / scan:
    Add acpi_device objects for all device nodes in the namespace).
    
    Fixes: 202317a573b2 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace)
    Reported-and-tested-by: Vinson Lee <vlee@twopensource.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dbb306f85a0f85883403bd04f52e97f0da75b5ab
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Wed Jul 23 21:35:12 2014 +0100

    staging: vt6655: Fix disassociated messages every 10 seconds
    
    commit 4aa0abed3a2a11b7d71ad560c1a3e7631c5a31cd upstream.
    
    byReAssocCount is incremented every second resulting in
    disassociated message being send every 10 seconds whether
    connection or not.
    
    byReAssocCount should only advance while eCommandState
    is in WLAN_ASSOCIATE_WAIT
    
    Change existing scope to if condition.
    
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d585bc422a025b4e43421b87786b34b02c866cc
Author: Michal Hocko <mhocko@suse.cz>
Date:   Wed Jul 30 16:08:33 2014 -0700

    memcg: oom_notify use-after-free fix
    
    commit 2bcf2e92c3918ce62ab4e934256e47e9a16d19c3 upstream.
    
    Paul Furtado has reported the following GPF:
    
      general protection fault: 0000 [#1] SMP
      Modules linked in: ipv6 dm_mod xen_netfront coretemp hwmon x86_pkg_temp_thermal crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel ablk_helper cryptd lrw gf128mul glue_helper aes_x86_64 microcode pcspkr ext4 jbd2 mbcache raid0 xen_blkfront
      CPU: 3 PID: 3062 Comm: java Not tainted 3.16.0-rc5 #1
      task: ffff8801cfe8f170 ti: ffff8801d2ec4000 task.ti: ffff8801d2ec4000
      RIP: e030:mem_cgroup_oom_synchronize+0x140/0x240
      RSP: e02b:ffff8801d2ec7d48  EFLAGS: 00010283
      RAX: 0000000000000001 RBX: ffff88009d633800 RCX: 000000000000000e
      RDX: fffffffffffffffe RSI: ffff88009d630200 RDI: ffff88009d630200
      RBP: ffff8801d2ec7da8 R08: 0000000000000012 R09: 00000000fffffffe
      R10: 0000000000000000 R11: 0000000000000000 R12: ffff88009d633800
      R13: ffff8801d2ec7d48 R14: dead000000100100 R15: ffff88009d633a30
      FS:  00007f1748bb4700(0000) GS:ffff8801def80000(0000) knlGS:0000000000000000
      CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 00007f4110300308 CR3: 00000000c05f7000 CR4: 0000000000002660
      Call Trace:
        pagefault_out_of_memory+0x18/0x90
        mm_fault_error+0xa9/0x1a0
        __do_page_fault+0x478/0x4c0
        do_page_fault+0x2c/0x40
        page_fault+0x28/0x30
      Code: 44 00 00 48 89 df e8 40 ca ff ff 48 85 c0 49 89 c4 74 35 4c 8b b0 30 02 00 00 4c 8d b8 30 02 00 00 4d 39 fe 74 1b 0f 1f 44 00 00 <49> 8b 7e 10 be 01 00 00 00 e8 42 d2 04 00 4d 8b 36 4d 39 fe 75
      RIP  mem_cgroup_oom_synchronize+0x140/0x240
    
    Commit fb2a6fc56be6 ("mm: memcg: rework and document OOM waiting and
    wakeup") has moved mem_cgroup_oom_notify outside of memcg_oom_lock
    assuming it is protected by the hierarchical OOM-lock.
    
    Although this is true for the notification part the protection doesn't
    cover unregistration of event which can happen in parallel now so
    mem_cgroup_oom_notify can see already unlinked and/or freed
    mem_cgroup_eventfd_list.
    
    Fix this by using memcg_oom_lock also in mem_cgroup_oom_notify.
    
    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=80881
    
    Fixes: fb2a6fc56be6 (mm: memcg: rework and document OOM waiting and wakeup)
    Signed-off-by: Michal Hocko <mhocko@suse.cz>
    Reported-by: Paul Furtado <paulfurtado91@gmail.com>
    Tested-by: Paul Furtado <paulfurtado91@gmail.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    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 5269f331fdd72202b1eee22bbf9156d4b88ab897
Author: David Rientjes <rientjes@google.com>
Date:   Wed Jul 30 16:08:24 2014 -0700

    mm, thp: do not allow thp faults to avoid cpuset restrictions
    
    commit b104a35d32025ca740539db2808aa3385d0f30eb upstream.
    
    The page allocator relies on __GFP_WAIT to determine if ALLOC_CPUSET
    should be set in allocflags.  ALLOC_CPUSET controls if a page allocation
    should be restricted only to the set of allowed cpuset mems.
    
    Transparent hugepages clears __GFP_WAIT when defrag is disabled to prevent
    the fault path from using memory compaction or direct reclaim.  Thus, it
    is unfairly able to allocate outside of its cpuset mems restriction as a
    side-effect.
    
    This patch ensures that ALLOC_CPUSET is only cleared when the gfp mask is
    truly GFP_ATOMIC by verifying it is also not a thp allocation.
    
    Signed-off-by: David Rientjes <rientjes@google.com>
    Reported-by: Alex Thorlton <athorlton@sgi.com>
    Tested-by: Alex Thorlton <athorlton@sgi.com>
    Cc: Bob Liu <lliubbo@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Hedi Berriche <hedi@sgi.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.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 3f7d325fbbe12e5ade71a1f90759c06ed2d27e3c
Author: Maxim Patlasov <MPatlasov@parallels.com>
Date:   Wed Jul 30 16:08:21 2014 -0700

    mm/page-writeback.c: fix divide by zero in bdi_dirty_limits()
    
    commit f6789593d5cea42a4ecb1cbeab6a23ade5ebbba7 upstream.
    
    Under memory pressure, it is possible for dirty_thresh, calculated by
    global_dirty_limits() in balance_dirty_pages(), to equal zero.  Then, if
    strictlimit is true, bdi_dirty_limits() tries to resolve the proportion:
    
      bdi_bg_thresh : bdi_thresh = background_thresh : dirty_thresh
    
    by dividing by zero.
    
    Signed-off-by: Maxim Patlasov <mpatlasov@parallels.com>
    Acked-by: Rik van Riel <riel@redhat.com>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Wu Fengguang <fengguang.wu@intel.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    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 019c805ef259da95d563a562d5696ca4cd334177
Author: James Bottomley <JBottomley@Parallels.com>
Date:   Thu Jul 3 19:17:34 2014 +0200

    scsi: handle flush errors properly
    
    commit 89fb4cd1f717a871ef79fa7debbe840e3225cd54 upstream.
    
    Flush commands don't transfer data and thus need to be special cased
    in the I/O completion handler so that we can propagate errors to
    the block layer and filesystem.
    
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Reported-by: Steven Haber <steven@qumulo.com>
    Tested-by: Steven Haber <steven@qumulo.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad8c82fdabd3cb1d0bb9c5f4ec24be29ee174383
Author: Alexandre Bounine <alexandre.bounine@idt.com>
Date:   Wed Jul 30 16:08:26 2014 -0700

    rapidio/tsi721_dma: fix failure to obtain transaction descriptor
    
    commit 0193ed8225e1a79ed64632106ec3cc81798cb13c upstream.
    
    This is a bug fix for the situation when function tsi721_desc_get() fails
    to obtain a free transaction descriptor.
    
    The bug usually results in a memory access crash dump when data transfer
    scatter-gather list has more entries than size of hardware buffer
    descriptors ring.  This fix ensures that error is properly returned to a
    caller instead of an invalid entry.
    
    This patch is applicable to kernel versions starting from v3.5.
    
    Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Andre van Herk <andre.van.herk@prodrive-technologies.com>
    Cc: Stef van Os <stef.van.os@prodrive-technologies.com>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.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 8c0414e0272172f383b6daa4398f0b3a42e3ea0f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jul 7 12:01:11 2014 +0200

    Revert "mac80211: move "bufferable MMPDU" check to fix AP mode scan"
    
    commit 08b9939997df30e42a228e1ecb97f99e9c8ea84e upstream.
    
    This reverts commit 277d916fc2e959c3f106904116bb4f7b1148d47a as it was
    at least breaking iwlwifi by setting the IEEE80211_TX_CTL_NO_PS_BUFFER
    flag in all kinds of interface modes, not only for AP mode where it is
    appropriate.
    
    To avoid reintroducing the original problem, explicitly check for probe
    request frames in the multicast buffering code.
    
    Fixes: 277d916fc2e9 ("mac80211: move "bufferable MMPDU" check to fix AP mode scan")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c479a8748ab69398fc0587d9ee575c5d0431cef4
Author: Eliad Peller <eliad@wizery.com>
Date:   Thu Jul 17 15:00:56 2014 +0300

    cfg80211: fix mic_failure tracing
    
    commit 8c26d458394be44e135d1c6bd4557e1c4e1a0535 upstream.
    
    tsc can be NULL (mac80211 currently always passes NULL),
    resulting in NULL-dereference. check before copying it.
    
    Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0eda5106e9b2adef0f801a57ae7c60b158aed9d
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Wed Jul 23 15:40:54 2014 +0200

    ath9k: fix aggregation session lockup
    
    commit c01fac1c77a00227f706a1654317023e3f4ac7f0 upstream.
    
    If an aggregation session fails, frames still end up in the driver queue
    with IEEE80211_TX_CTL_AMPDU set.
    This causes tx for the affected station/tid to stall, since
    ath_tx_get_tid_subframe returning packets to send.
    
    Fix this by clearing IEEE80211_TX_CTL_AMPDU as long as no aggregation
    session is running.
    
    Reported-by: Antonio Quartulli <antonio@open-mesh.com>
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0010fee8b54d40078c5cfa313cc818a6548be034
Author: Konstantin Khlebnikov <k.khlebnikov@samsung.com>
Date:   Fri Jul 25 09:17:12 2014 +0100

    ARM: 8115/1: LPAE: reduce damage caused by idmap to virtual memory layout
    
    commit 811a2407a3cf7bbd027fbe92d73416f17485a3d8 upstream.
    
    On LPAE, each level 1 (pgd) page table entry maps 1GiB, and the level 2
    (pmd) entries map 2MiB.
    
    When the identity mapping is created on LPAE, the pgd pointers are copied
    from the swapper_pg_dir.  If we find that we need to modify the contents
    of a pmd, we allocate a new empty pmd table and insert it into the
    appropriate 1GB slot, before then filling it with the identity mapping.
    
    However, if the 1GB slot covers the kernel lowmem mappings, we obliterate
    those mappings.
    
    When replacing a PMD, first copy the old PMD contents to the new PMD, so
    that we preserve the existing mappings, particularly the mappings of the
    kernel itself.
    
    [rewrote commit message and added code comment -- rmk]
    
    Fixes: ae2de101739c ("ARM: LPAE: Add identity mapping support for the 3-level page table format")
    Signed-off-by: Konstantin Khlebnikov <k.khlebnikov@samsung.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ecf0db5d976dbbe1a7105876ca99ce5ffb4ec71
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Tue Jul 29 09:24:47 2014 +0100

    ARM: fix alignment of keystone page table fixup
    
    commit 823a19cd3b91b0729d7417f1848413846be61712 upstream.
    
    If init_mm.brk is not section aligned, the LPAE fixup code will miss
    updating the final PMD.  Fix this by aligning map_end.
    
    Fixes: a77e0c7b2774 ("ARM: mm: Recreate kernel mappings in early_paging_init()")
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48959fb92669fd77d46b59ef742b61ab97870291
Author: Christoph Fritz <chf.fritz@googlemail.com>
Date:   Mon Jul 14 03:36:18 2014 +0200

    ARM: OMAP2+: gpmc: fix gpmc_hwecc_bch_capable()
    
    commit 33753cd2ba41c72a0756edc5dc094d91602deda5 upstream.
    
    This patch adds bch8 ecc software fallback which is mostly used by
    omap3s because they lack hardware elm support.
    
    Fixes: 0611c41934ab35ce84dea34ab291897ad3cbc7be (ARM: OMAP2+: gpmc:
    update gpmc_hwecc_bch_capable() for new platforms and ECC schemes)
    Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
    Reviewed-by: Pekon Gupta <pekon@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08d1a02a49585e93066f27c97ff2f22917e594d1
Author: Haojian Zhuang <haojian.zhuang@linaro.org>
Date:   Wed Apr 2 21:31:50 2014 +0800

    ARM: dts: fix L2 address in Hi3620
    
    commit 28c9770bcbd2b6dbab99669825a2f8fa69e6d35b upstream.
    
    Fix the address of L2 controler register in hi3620 SoC.
    This has been wrong from the point that the file was merged
    in v3.14.
    
    Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
    Acked-by: Wei Xu <xuwei5@hisilicon.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb4217f7590ac80b63c09a4261c452db4f5b37a3
Author: Milan Broz <gmazyland@gmail.com>
Date:   Tue Jul 29 18:41:09 2014 +0000

    crypto: af_alg - properly label AF_ALG socket
    
    commit 4c63f83c2c2e16a13ce274ee678e28246bd33645 upstream.
    
    Th AF_ALG socket was missing a security label (e.g. SELinux)
    which means that socket was in "unlabeled" state.
    
    This was recently demonstrated in the cryptsetup package
    (cryptsetup v1.6.5 and later.)
    See https://bugzilla.redhat.com/show_bug.cgi?id=1115120
    
    This patch clones the sock's label from the parent sock
    and resolves the issue (similar to AF_BLUETOOTH protocol family).
    
    Signed-off-by: Milan Broz <gmazyland@gmail.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba593e6f9fef8588fa6c6a7e35a9f623c2b5c7f3
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Fri Jul 25 19:42:30 2014 -0400

    crypto: arm-aes - fix encryption of unaligned data
    
    commit f3c400ef473e00c680ea713a66196b05870b3710 upstream.
    
    Fix the same alignment bug as in arm64 - we need to pass residue
    unprocessed bytes as the last argument to blkcipher_walk_done.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71ac1bd8f8fa581c59308c99131e77fd2f605543
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Wed Jul 23 17:20:04 2014 +1000

    powerpc/perf: Fix MMCR2 handling for EBB
    
    commit 8903461c9bc56fcb041fb92d054e2529951770b6 upstream.
    
    In the recent commit b50a6c584bb4 "Clear MMCR2 when enabling PMU", I
    screwed up the handling of MMCR2 for tasks using EBB.
    
    We must make sure we set MMCR2 *before* ebb_switch_in(), otherwise we
    overwrite the value of MMCR2 that userspace may have written. That
    potentially breaks a task that uses EBB and manually uses MMCR2 for
    event freezing.
    
    Fixes: b50a6c584bb4 ("powerpc/perf: Clear MMCR2 when enabling PMU")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>