commit 6a367cd6eec2b9a6fba70a662d907480073bee21
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Dec 14 16:24:02 2014 +0000

    Linux 3.2.65

commit 9b0899aa3d6f6a65ac3af131193be792e29373e9
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:35:00 2014 +1100

    mm: Remove false WARN_ON from pagecache_isize_extended()
    
    commit f55fefd1a5a339b1bd08c120b93312d6eb64a9fb upstream.
    
    The WARN_ON checking whether i_mutex is held in
    pagecache_isize_extended() was wrong because some filesystems (e.g.
    XFS) use different locks for serialization of truncates / writes. So
    just remove the check.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b955a6aa610cc33e208129b3991deaf624b09594
Author: Pawel Moll <pawel.moll@arm.com>
Date:   Fri Jun 13 16:03:32 2014 +0100

    perf: Handle compat ioctl
    
    commit b3f207855f57b9c8f43a547a801340bb5cbc59e5 upstream.
    
    When running a 32-bit userspace on a 64-bit kernel (eg. i386
    application on x86_64 kernel or 32-bit arm userspace on arm64
    kernel) some of the perf ioctls must be treated with special
    care, as they have a pointer size encoded in the command.
    
    For example, PERF_EVENT_IOC_ID in 32-bit world will be encoded
    as 0x80042407, but 64-bit kernel will expect 0x80082407. In
    result the ioctl will fail returning -ENOTTY.
    
    This patch solves the problem by adding code fixing up the
    size as compat_ioctl file operation.
    
    Reported-by: Drew Richardson <drew.richardson@arm.com>
    Signed-off-by: Pawel Moll <pawel.moll@arm.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/r/1402671812-9078-1-git-send-email-pawel.moll@arm.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    [lizf: Backported to 3.4 by David Ahern]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3308bdcc24f3591ace96289137c9411bc2181602
Author: Ondrej Kozina <okozina@redhat.com>
Date:   Mon Aug 25 11:49:54 2014 +0200

    crypto: algif - avoid excessive use of socket buffer in skcipher
    
    commit e2cffb5f493a8b431dc87124388ea59b79f0bccb upstream.
    
    On archs with PAGE_SIZE >= 64 KiB the function skcipher_alloc_sgl()
    fails with -ENOMEM no matter what user space actually requested.
    This is caused by the fact sock_kmalloc call inside the function tried
    to allocate more memory than allowed by the default kernel socket buffer
    size (kernel param net.core.optmem_max).
    
    Signed-off-by: Ondrej Kozina <okozina@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 607d8297d5d78dc84dc8257a60f2c0a5863a07d6
Author: Jeffrey Knockel <jeffk@cs.unm.edu>
Date:   Wed Nov 12 07:47:20 2014 -0700

    Patch for 3.2.x, 3.4.x IP identifier regression
    
    With commits 73f156a6e8c1 ("inetpeer: get rid of ip_id_count") and
    04ca6973f7c1 ("ip: make IP identifiers less predictable"), IP
    identifiers are generated from a counter chosen from an array of
    counters indexed by the hash of the outgoing packet header's source
    address, destination address, and protocol number.  Thus, in
    __ip_make_skb(), we must now call ip_select_ident() only after setting
    these fields in the IP header to prevent IP identifiers from being
    generated from bogus counters.
    
    IP id sequence before fix: 18174, 5789, 5953, 59420, 59637, ...
    After fix: 5967, 6185, 6374, 6600, 6795, 6892, 7051, 7288, ...
    
    Signed-off-by: Jeffrey Knockel <jeffk@cs.unm.edu>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Eric Dumazet <edumazet@google.com>

commit e87cf8149d14c01a665e65029ad76530b228e901
Author: Tomas Henzl <thenzl@redhat.com>
Date:   Thu Aug 1 15:14:00 2013 +0200

    hpsa: fix a race in cmd_free/scsi_done
    
    commit 2cc5bfaf854463d9d1aa52091f60110fbf102a96 upstream.
    
    When the driver calls scsi_done and after that frees it's internal
    preallocated memory it can happen that a new job is enqueud before
    the memory is freed. The allocation fails and the message
    "cmd_alloc returned NULL" is shown.
    Patch below fixes it by moving cmd->scsi_done after cmd_free.
    
    Signed-off-by: Tomas Henzl <thenzl@redhat.com>
    Acked-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Masoud Sharbiani <msharbiani@twopensource.com>

commit 69cff65c8e35c2dc8763249e758ff55538809d27
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri May 4 05:14:02 2012 +0000

    tcp: be more strict before accepting ECN negociation
    
    commit bd14b1b2e29bd6812597f896dde06eaf7c6d2f24 upstream.
    
    It appears some networks play bad games with the two bits reserved for
    ECN. This can trigger false congestion notifications and very slow
    transferts.
    
    Since RFC 3168 (6.1.1) forbids SYN packets to carry CT bits, we can
    disable TCP ECN negociation if it happens we receive mangled CT bits in
    the SYN packet.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Perry Lorier <perryl@google.com>
    Cc: Matt Mathis <mattmathis@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Wilmer van der Gaast <wilmer@google.com>
    Cc: Ankur Jain <jankur@google.com>
    Cc: Tom Herbert <therbert@google.com>
    Cc: Dave Täht <dave.taht@bufferbloat.net>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Florian Westphal <fw@strlen.de>

commit 3d7b5eb99e9ee3317966426e86816d327c910eed
Author: Tomas Winkler <tomas.winkler@intel.com>
Date:   Tue Dec 2 00:29:54 2014 +0200

    mei: limit the number of consecutive resets
    
    commit 6adb8efb024a7e413b93b22848fc13395b1a438a upstream.
    
    give up reseting after 3 unsuccessful tries
    
    [Backported to 3.2: files were moved]
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7250ff7dd18b7a7a650af4079bbf940f20fd4253
Author: Tomas Winkler <tomas.winkler@intel.com>
Date:   Tue Dec 2 00:29:53 2014 +0200

    mei: add mei_quirk_probe function
    
    commit 9a123f19832702753805afe0e93db26799b91b07 upstream.
    
    The main purpose of this function is to exclude ME devices
    without support for MEI/HECI interface from binding
    
    Currently affected systems are C600/X79 based servers
    that expose PCI device even though it doesn't supported ME Interface.
    MEI driver accessing such nonfunctional device can corrupt
    the system.
    
    [Backported to 3.2: files were moved]
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5debff3f190462800f5590682b93bfbe0084cb4a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Nov 25 00:38:17 2014 -0800

    Input: xpad - use proper endpoint type
    
    commit a1f9a4072655843fc03186acbad65990cc05dd2d upstream.
    
    The xpad wireless endpoint is not a bulk endpoint on my devices, but
    rather an interrupt one, so the USB core complains when it is submitted.
    I'm guessing that the author really did mean that this should be an
    interrupt urb, but as there are a zillion different xpad devices out
    there, let's cover out bases and handle both bulk and interrupt
    endpoints just as easily.
    
    Signed-off-by: "Pierre-Loup A. Griffais" <pgriffais@valvesoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7eac65da05f5ae88723a144f9e28de8637c707bc
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Nov 24 11:22:38 2014 +0100

    usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000
    
    commit 263e80b43559a6103e178a9176938ce171b23872 upstream.
    
    This wireless mouse receiver needs a reset-resume quirk to properly come
    out of reset.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1165206
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4d7270bcf1996b5a1e19b82f9575df7f9a603582
Author: Aaro Koskinen <aaro.koskinen@iki.fi>
Date:   Thu Nov 20 01:05:38 2014 +0200

    MIPS: Loongson: Make platform serial setup always built-in.
    
    commit 26927f76499849e095714452b8a4e09350f6a3b9 upstream.
    
    If SERIAL_8250 is compiled as a module, the platform specific setup
    for Loongson will be a module too, and it will not work very well.
    At least on Loongson 3 it will trigger a build failure,
    since loongson_sysconf is not exported to modules.
    
    Fix by making the platform specific serial code always built-in.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Reported-by: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: Markos Chandras <Markos.Chandras@imgtec.com>
    Patchwork: https://patchwork.linux-mips.org/patch/8533/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3f56e727c711f9c9d5bd3e77f8f01c4bcdcbdf64
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 1 10:30:53 2014 +0200

    ALSA: hda - Limit 40bit DMA for AMD HDMI controllers
    
    commit 413cbf469a19e7662ba5025695bf5a573927105a upstream.
    
    AMD/ATI HDMI controller chip models, we already have a filter to lower
    to 32bit DMA, but the rest are supposed to be working with 64bit
    although the hardware doesn't really work with 63bit but only with 40
    or 48bit DMA.  In this patch, we take 40bit DMA for safety for the
    AMD/ATI controllers as the graphics drivers does.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [bwh: Backported to 3.2:
     - Adjust context
     - s/AZX_GCAP_64OK/ICH6_GCAP_64OK/]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8ea4c465ecb59846abed3d000d64b21b8e31aeb0
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Mon Nov 24 17:39:06 2014 -0800

    x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs
    
    commit 7ddc6a2199f1da405a2fb68c40db8899b1a8cd87 upstream.
    
    These functions can be executed on the int3 stack, so kprobes
    are dangerous. Tracing is probably a bad idea, too.
    
    Fixes: b645af2d5905 ("x86_64, traps: Rework bad_iret")
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/50e33d26adca60816f3ba968875801652507d0c4.1416870125.git.luto@amacapital.net
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.2:
     - Use __kprobes instead of NOKPROBE_SYMBOL()
     - Don't use __visible]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0f90e98164550a2382273802c6564d0122bfa785
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Sat Nov 22 18:00:33 2014 -0800

    x86_64, traps: Rework bad_iret
    
    commit b645af2d5905c4e32399005b867987919cbfc3ae upstream.
    
    It's possible for iretq to userspace to fail.  This can happen because
    of a bad CS, SS, or RIP.
    
    Historically, we've handled it by fixing up an exception from iretq to
    land at bad_iret, which pretends that the failed iret frame was really
    the hardware part of #GP(0) from userspace.  To make this work, there's
    an extra fixup to fudge the gs base into a usable state.
    
    This is suboptimal because it loses the original exception.  It's also
    buggy because there's no guarantee that we were on the kernel stack to
    begin with.  For example, if the failing iret happened on return from an
    NMI, then we'll end up executing general_protection on the NMI stack.
    This is bad for several reasons, the most immediate of which is that
    general_protection, as a non-paranoid idtentry, will try to deliver
    signals and/or schedule from the wrong stack.
    
    This patch throws out bad_iret entirely.  As a replacement, it augments
    the existing swapgs fudge into a full-blown iret fixup, mostly written
    in C.  It's should be clearer and more correct.
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2:
     - We didn't use the _ASM_EXTABLE macro
     - Don't use __visible]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a6ac298db86a1add225ca7e655176bb5249f9a9d
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Sat Nov 22 18:00:31 2014 -0800

    x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C
    
    commit af726f21ed8af2cdaa4e93098dc211521218ae65 upstream.
    
    There's nothing special enough about the espfix64 double fault fixup to
    justify writing it in assembly.  Move it to C.
    
    This also fixes a bug: if the double fault came from an IST stack, the
    old asm code would return to a partially uninitialized stack frame.
    
    Fixes: 3891a04aafd668686239349ea58f3314ea2af86b
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2:
     - Keep using the paranoiderrorentry macro to generate the asm code
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4c414592a79b82ddca76945c7afb4843684aa9a8
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Sat Nov 22 18:00:32 2014 -0800

    x86_64, traps: Stop using IST for #SS
    
    commit 6f442be2fb22be02cafa606f1769fa1e6f894441 upstream.
    
    On a 32-bit kernel, this has no effect, since there are no IST stacks.
    
    On a 64-bit kernel, #SS can only happen in user code, on a failed iret
    to user space, a canonical violation on access via RSP or RBP, or a
    genuine stack segment violation in 32-bit kernel code.  The first two
    cases don't need IST, and the latter two cases are unlikely fatal bugs,
    and promoting them to double faults would be fine.
    
    This fixes a bug in which the espfix64 code mishandles a stack segment
    violation.
    
    This saves 4k of memory per CPU and a tiny bit of code.
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2:
     - No need to define trace_stack_segment
     - Use the errorentry macro to generate #SS asm code
     - Adjust context
     - Checked that this matches Luis's backport for Ubuntu]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 33496741750c17f2f1b769808f3c228323f27ffa
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Nov 18 11:27:14 2014 +0200

    usb: xhci: rework root port wake bits if controller isn't allowed to wakeup
    
    commit a1377e5397ab321e21b793ec8cd2b6f12bd3c718 upstream.
    
    When system is being suspended, if host device is not allowed to do wakeup,
    xhci_suspend() needs to clear all root port wake on bits. Otherwise, some
    platforms may generate spurious wakeup, even if PCI PME# is disabled.
    
    The initial commit ff8cbf250b44 ("xhci: clear root port wake on bits"),
    which also got into stable, turned out to not work correctly and had to
    be reverted, and is now rewritten.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Suggested-by: Alan Stern <stern@rowland.harvard.edu>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    [Mathias Nyman: reword commit message]
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context; drop xhci-plat changes]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 01bb4fded2b69d606ad1f04905102dade83193be
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Nov 18 11:27:12 2014 +0200

    USB: xhci: Reset a halted endpoint immediately when we encounter a stall.
    
    commit 8e71a322fdb127814bcba423a512914ca5bc6cf5 upstream.
    
    If a device is halted and reuturns a STALL, then the halted endpoint
    needs to be cleared both on the host and device side. The host
    side halt is cleared by issueing a xhci reset endpoint command. The device side
    is cleared with a ClearFeature(ENDPOINT_HALT) request, which should
    be issued by the device driver if a URB reruen -EPIPE.
    
    Previously we cleared the host side halt after the device side was cleared.
    To make sure the host side halt is cleared in time we want to issue the
    reset endpoint command immedialtely when a STALL status is encountered.
    
    Otherwise we end up not following the specs and not returning -EPIPE
    several times in a row when trying to transfer data to a halted endpoint.
    
    Fixes: bcef3fd (USB: xhci: Handle errors that cause endpoint halts.)
    Tested-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: xhci_endpoint_reset() looked a little different]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fcd751b7ecdf627a0279f753f21ba7e39f1a7d46
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Nov 18 11:27:13 2014 +0200

    Revert "xhci: clear root port wake on bits if controller isn't wake-up capable"
    
    commit 9b41ebd3cf0f68d8cad779d3eeba336f78262e43 upstream.
    
    commit ff8cbf250b44 ("xhci: clear root port wake on bits if controller isn't")
    can cause device detection error if runtime PM is enabled, and S3 wake
    is disabled. Revert it.
    https://bugzilla.kernel.org/show_bug.cgi?id=85701
    
    This commit got into stable and should be reverted from there as well.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reported-by: Dmitry Nezhevenko <dion@inhex.net>
    [Mathias Nyman: reword commit message]
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit aba14f8ea6cb108e0ed1e938f24d26cd29bd02b4
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Nov 18 11:27:11 2014 +0200

    USB: xhci: don't start a halted endpoint before its new dequeue is set
    
    commit c3492dbfa1050debf23a5b5cd2bc7514c5b37896 upstream.
    
    A halted endpoint ring must first be reset, then move the ring
    dequeue pointer past the problematic TRB. If we start the ring too
    early after reset, but before moving the dequeue pointer we
    will end up executing the same problematic TRB again.
    
    As we always issue a set transfer dequeue command after a reset
    endpoint command we can skip starting endpoint rings at reset endpoint
    command completion.
    
    Without this fix we end up trying to handle the same faulty TD for
    contol endpoints. causing timeout, and failing testusb ctrl_out write
    tests.
    
    Fixes: e9df17e (USB: xhci: Correct assumptions about number of rings per endpoint.)
    Tested-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 40f674b67601ebf7772372caea07824e911e5ac8
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Fri Nov 21 15:29:00 2014 +0100

    ARM: 8216/1: xscale: correct auxiliary register in suspend/resume
    
    commit ef59a20ba375aeb97b3150a118318884743452a8 upstream.
    
    According to the manuals I have, XScale auxiliary register should be
    reached with opc_2 = 1 instead of crn = 1. cpu_xscale_proc_init
    correctly uses c1, c0, 1 arguments, but cpu_xscale_do_suspend and
    cpu_xscale_do_resume use c1, c1, 0. Correct suspend/resume functions to
    also use c1, c0, 1.
    
    The issue was primarily noticed thanks to qemu reporing "unsupported
    instruction" on the pxa suspend path. Confirmed in PXA210/250 and PXA255
    XScale Core manuals and in PXA270 and PXA320 Developers Guides.
    
    Harware tested by me on tosa (pxa255). Robert confirmed on pxa270 board.
    
    Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0a3beceba68a5d801197032a9280e79aa1a4ca46
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Thu Nov 20 11:17:33 2014 +0100

    bnx2fc: do not add shared skbs to the fcoe_rx_list
    
    commit 01a4cc4d0cd6a836c7b923760e8eb1cbb6a47258 upstream.
    
    In some cases, the fcoe_rx_list may contains multiple instances
    of the same skb (the so called "shared skbs").
    
    the bnx2fc_l2_rcv thread is a loop that extracts a skb from the list,
    modifies (and destroys) its content and then proceed to the next one.
    The problem is that if the skb is shared, the remaining instances will
    be corrupted.
    
    The solution is to use skb_share_check() before adding the skb to the
    fcoe_rx_list.
    
    [ 6286.808725] ------------[ cut here ]------------
    [ 6286.808729] WARNING: at include/scsi/fc_frame.h:173 bnx2fc_l2_rcv_thread+0x425/0x450 [bnx2fc]()
    [ 6286.808748] Modules linked in: bnx2x(-) mdio dm_service_time bnx2fc cnic uio fcoe libfcoe 8021q garp stp mrp libfc llc scsi_transport_fc scsi_tgt sg iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel e1000e ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper ptp cryptd hpilo serio_raw hpwdt lpc_ich pps_core ipmi_si pcspkr mfd_core ipmi_msghandler shpchp pcc_cpufreq mperf nfsd auth_rpcgss nfs_acl lockd sunrpc dm_multipath xfs libcrc32c ata_generic pata_acpi sd_mod crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit ata_piix drm_kms_helper ttm drm libata i2c_core hpsa dm_mirror dm_region_hash dm_log dm_mod [last unloaded: mdio]
    [ 6286.808750] CPU: 3 PID: 1304 Comm: bnx2fc_l2_threa Not tainted 3.10.0-121.el7.x86_64 #1
    [ 6286.808750] Hardware name: HP ProLiant DL120 G7, BIOS J01 07/01/2013
    [ 6286.808752]  0000000000000000 000000000b36e715 ffff8800deba1e00 ffffffff815ec0ba
    [ 6286.808753]  ffff8800deba1e38 ffffffff8105dee1 ffffffffa05618c0 ffff8801e4c81888
    [ 6286.808754]  ffffe8ffff663868 ffff8801f402b180 ffff8801f56bc000 ffff8800deba1e48
    [ 6286.808754] Call Trace:
    [ 6286.808759]  [<ffffffff815ec0ba>] dump_stack+0x19/0x1b
    [ 6286.808762]  [<ffffffff8105dee1>] warn_slowpath_common+0x61/0x80
    [ 6286.808763]  [<ffffffff8105e00a>] warn_slowpath_null+0x1a/0x20
    [ 6286.808765]  [<ffffffffa054f415>] bnx2fc_l2_rcv_thread+0x425/0x450 [bnx2fc]
    [ 6286.808767]  [<ffffffffa054eff0>] ? bnx2fc_disable+0x90/0x90 [bnx2fc]
    [ 6286.808769]  [<ffffffff81085aef>] kthread+0xcf/0xe0
    [ 6286.808770]  [<ffffffff81085a20>] ? kthread_create_on_node+0x140/0x140
    [ 6286.808772]  [<ffffffff815fc76c>] ret_from_fork+0x7c/0xb0
    [ 6286.808773]  [<ffffffff81085a20>] ? kthread_create_on_node+0x140/0x140
    [ 6286.808774] ---[ end trace c6cdb939184ccb4e ]---
    
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Acked-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d74ea723036699f012b695ebf32e4f3b2c7d1fcc
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Wed Nov 19 12:47:50 2014 -0500

    nfsd: Fix slot wake up race in the nfsv4.1 callback code
    
    commit c6c15e1ed303ffc47e696ea1c9a9df1761c1f603 upstream.
    
    The currect code for nfsd41_cb_get_slot() and nfsd4_cb_done() has no
    locking in order to guarantee atomicity, and so allows for races of
    the form.
    
    Task 1                                  Task 2
    ======                                  ======
    if (test_and_set_bit(0) != 0) {
                                            clear_bit(0)
                                            rpc_wake_up_next(queue)
            rpc_sleep_on(queue)
            return false;
    }
    
    This patch breaks the race condition by adding a retest of the bit
    after the call to rpc_sleep_on().
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8d3e0ea150d43b9085020b6cd72519262503f7c9
Author: Aaro Koskinen <aaro.koskinen@nsn.com>
Date:   Fri Oct 17 18:10:24 2014 +0300

    MIPS: oprofile: Fix backtrace on 64-bit kernel
    
    commit bbaf113a481b6ce32444c125807ad3618643ce57 upstream.
    
    Fix incorrect cast that always results in wrong address for the new
    frame on 64-bit kernels.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/8110/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 680572752413acdc3e277c01f7d9c48c36ee1c54
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Wed Nov 12 18:04:04 2014 -0500

    SUNRPC: Fix locking around callback channel reply receive
    
    commit 093a1468b6edb0e568be7311b8d2228d205702db upstream.
    
    Both xprt_lookup_rqst() and xprt_complete_rqst() require that you
    take the transport lock in order to avoid races with xprt_transmit().
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Reviewed-by: Jeff Layton <jlayton@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5fb2a40b3a04205b97de7e9017be84d3b6d7b7ed
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Aug 22 15:10:50 2014 -0400

    sunrpc: fix byte-swapping of displayed XID
    
    commit 71efecb3f58c8c7a15f6135e3f9b39d1e3d3fae3 upstream.
    
    xprt_lookup_rqst() and bc_send_request() display a byte-swapped XID,
    but receive_cb_reply() does not.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d22659769a8f602e08a6906623f0854dddc2d240
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Nov 18 11:25:21 2014 +0100

    USB: ssu100: fix overrun-error reporting
    
    commit 75bcbf29c284dd0154c3e895a0bd1ef0e796160e upstream.
    
    Fix reporting of overrun errors, which should only be reported once
    using the inserted null character.
    
    Fixes: 6b8f1ca5581b ("USB: ssu100: set tty_flags in ssu100_process_packet")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    [bwh: Backported to 3.2:
     - Use tty_port_tty_get() to look up tty_struct
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1e8d16df963f66009f0453ae2b29a26fb356e285
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Nov 18 11:25:20 2014 +0100

    USB: keyspan: fix overrun-error reporting
    
    commit 855515a6d3731242d85850a206f2ec084c917338 upstream.
    
    Fix reporting of overrun errors, which are not associated with a
    character. Instead insert a null character and report only once.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    [bwh: Backported to 3.2:
     - s/\&port->port/tty/
     - Adjust context, indentation]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 25c5feef23b699c83b9131223b4a726b501f3d25
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Nov 18 11:25:19 2014 +0100

    USB: keyspan: fix tty line-status reporting
    
    commit 5d1678a33c731b56e245e888fdae5e88efce0997 upstream.
    
    Fix handling of TTY error flags, which are not bitmasks and must
    specifically not be ORed together as this prevents the line discipline
    from recognising them.
    
    Also insert null characters when reporting overrun errors as these are
    not associated with the received character.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    [bwh: Backported to 3.2:
     - s/\&port->port/tty/
     - Adjust context, indentation]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit afb8c248e49afe144408741ee51a066d0f4ef75a
Author: Troy Clark <tclark@matrixorbital.ca>
Date:   Mon Nov 17 14:33:17 2014 -0800

    usb: serial: ftdi_sio: add PIDs for Matrix Orbital products
    
    commit 204ec6e07ea7aff863df0f7c53301f9cbbfbb9d3 upstream.
    
    Add PIDs for new Matrix Orbital GTT series products.
    
    Signed-off-by: Troy Clark <tclark@matrixorbital.ca>
    [johan: shorten commit message ]
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f0997a9518145dc5c30963c74f248e8eac10591b
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Fri Nov 14 17:55:03 2014 +1100

    of/base: Fix PowerPC address parsing hack
    
    commit 746c9e9f92dde2789908e51a354ba90a1962a2eb upstream.
    
    We have a historical hack that treats missing ranges properties as the
    equivalent of an empty one. This is needed for ancient PowerMac "bad"
    device-trees, and shouldn't be enabled for any other PowerPC platform,
    otherwise we get some nasty layout of devices in sysfs or even
    duplication when a set of otherwise identically named devices is
    created multiple times under a different parent node with no ranges
    property.
    
    This fix is needed for the PowerNV i2c busses to be exposed properly
    and will fix a number of other embedded cases.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: Grant Likely <grant.likely@linaro.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    [bwh: Backported to 3.2: use #ifdef because IS_ENABLED() only works for
     config symbols that are defined on the current architecture]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a5c187d92d2ce30315f333b9dff33af832e8b443
Author: Kees Cook <keescook@chromium.org>
Date:   Fri Nov 14 11:47:37 2014 -0800

    x86, mm: Set NX across entire PMD at boot
    
    commit 45e2a9d4701d8c624d4a4bcdd1084eae31e92f58 upstream.
    
    When setting up permissions on kernel memory at boot, the end of the
    PMD that was split from bss remained executable. It should be NX like
    the rest. This performs a PMD alignment instead of a PAGE alignment to
    get the correct span of memory.
    
    Before:
    ---[ High Kernel Mapping ]---
    ...
    0xffffffff8202d000-0xffffffff82200000  1868K     RW       GLB NX pte
    0xffffffff82200000-0xffffffff82c00000    10M     RW   PSE GLB NX pmd
    0xffffffff82c00000-0xffffffff82df5000  2004K     RW       GLB NX pte
    0xffffffff82df5000-0xffffffff82e00000    44K     RW       GLB x  pte
    0xffffffff82e00000-0xffffffffc0000000   978M                     pmd
    
    After:
    ---[ High Kernel Mapping ]---
    ...
    0xffffffff8202d000-0xffffffff82200000  1868K     RW       GLB NX pte
    0xffffffff82200000-0xffffffff82e00000    12M     RW   PSE GLB NX pmd
    0xffffffff82e00000-0xffffffffc0000000   978M                     pmd
    
    [ tglx: Changed it to roundup(_brk_end, PMD_SIZE) and added a comment.
            We really should unmap the reminder along with the holes
            caused by init,initdata etc. but thats a different issue ]
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Toshi Kani <toshi.kani@hp.com>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: David Vrabel <david.vrabel@citrix.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/20141114194737.GA3091@www.outflux.net
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: BAckported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e105c8187b7101e8a8a54ac0218c9d9c9463c636
Author: Yinghai Lu <yinghai@kernel.org>
Date:   Thu Jan 24 12:20:13 2013 -0800

    x86, 64bit, mm: Mark data/bss/brk to nx
    
    commit 72212675d1c96f5db8ec6fb35701879911193158 upstream.
    
    HPA said, we should not have RW and +x set at the time.
    
    for kernel layout:
    [    0.000000] Kernel Layout:
    [    0.000000]   .text: [0x01000000-0x021434f8]
    [    0.000000] .rodata: [0x02200000-0x02a13fff]
    [    0.000000]   .data: [0x02c00000-0x02dc763f]
    [    0.000000]   .init: [0x02dc9000-0x0312cfff]
    [    0.000000]    .bss: [0x0313b000-0x03dd6fff]
    [    0.000000]    .brk: [0x03dd7000-0x03dfffff]
    
    before the patch, we have
    ---[ High Kernel Mapping ]---
    0xffffffff80000000-0xffffffff81000000          16M                           pmd
    0xffffffff81000000-0xffffffff82200000          18M     ro         PSE GLB x  pmd
    0xffffffff82200000-0xffffffff82c00000          10M     ro         PSE GLB NX pmd
    0xffffffff82c00000-0xffffffff82dc9000        1828K     RW             GLB x  pte
    0xffffffff82dc9000-0xffffffff82e00000         220K     RW             GLB NX pte
    0xffffffff82e00000-0xffffffff83000000           2M     RW         PSE GLB NX pmd
    0xffffffff83000000-0xffffffff8313a000        1256K     RW             GLB NX pte
    0xffffffff8313a000-0xffffffff83200000         792K     RW             GLB x  pte
    0xffffffff83200000-0xffffffff83e00000          12M     RW         PSE GLB x  pmd
    0xffffffff83e00000-0xffffffffa0000000         450M                           pmd
    
    after patch,, we get
    ---[ High Kernel Mapping ]---
    0xffffffff80000000-0xffffffff81000000          16M                           pmd
    0xffffffff81000000-0xffffffff82200000          18M     ro         PSE GLB x  pmd
    0xffffffff82200000-0xffffffff82c00000          10M     ro         PSE GLB NX pmd
    0xffffffff82c00000-0xffffffff82e00000           2M     RW             GLB NX pte
    0xffffffff82e00000-0xffffffff83000000           2M     RW         PSE GLB NX pmd
    0xffffffff83000000-0xffffffff83200000           2M     RW             GLB NX pte
    0xffffffff83200000-0xffffffff83e00000          12M     RW         PSE GLB NX pmd
    0xffffffff83e00000-0xffffffffa0000000         450M                           pmd
    
    so data, bss, brk get NX ...
    
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/1359058816-7615-33-git-send-email-yinghai@kernel.org
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 923edc8735ff7ac9e16cc4a6bbcb7b9d87e03644
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Sat Oct 11 00:31:07 2014 +0400

    can: esd_usb2: fix memory leak on disconnect
    
    commit efbd50d2f62fc1f69a3dcd153e63ba28cc8eb27f upstream.
    
    It seems struct esd_usb2 dev is not deallocated on disconnect. The patch adds
    the missing deallocation.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 42cccc215d8778b7b1658c93b7d91c6949111a0c
Author: Thomas Körper <thomas.koerper@esd.eu>
Date:   Fri Oct 31 07:33:54 2014 +0100

    can: dev: avoid calling kfree_skb() from interrupt context
    
    commit 5247a589c24022ab34e780039cc8000c48f2035e upstream.
    
    ikfree_skb() is Called in can_free_echo_skb(), which might be called from (TX
    Error) interrupt, which triggers the folloing warning:
    
    [ 1153.360705] ------------[ cut here ]------------
    [ 1153.360715] WARNING: CPU: 0 PID: 31 at net/core/skbuff.c:563 skb_release_head_state+0xb9/0xd0()
    [ 1153.360772] Call Trace:
    [ 1153.360778]  [<c167906f>] dump_stack+0x41/0x52
    [ 1153.360782]  [<c105bb7e>] warn_slowpath_common+0x7e/0xa0
    [ 1153.360784]  [<c158b909>] ? skb_release_head_state+0xb9/0xd0
    [ 1153.360786]  [<c158b909>] ? skb_release_head_state+0xb9/0xd0
    [ 1153.360788]  [<c105bc42>] warn_slowpath_null+0x22/0x30
    [ 1153.360791]  [<c158b909>] skb_release_head_state+0xb9/0xd0
    [ 1153.360793]  [<c158be90>] skb_release_all+0x10/0x30
    [ 1153.360795]  [<c158bf06>] kfree_skb+0x36/0x80
    [ 1153.360799]  [<f8486938>] ? can_free_echo_skb+0x28/0x40 [can_dev]
    [ 1153.360802]  [<f8486938>] can_free_echo_skb+0x28/0x40 [can_dev]
    [ 1153.360805]  [<f849a12c>] esd_pci402_interrupt+0x34c/0x57a [esd402]
    [ 1153.360809]  [<c10a75b5>] handle_irq_event_percpu+0x35/0x180
    [ 1153.360811]  [<c10a7623>] ? handle_irq_event_percpu+0xa3/0x180
    [ 1153.360813]  [<c10a7731>] handle_irq_event+0x31/0x50
    [ 1153.360816]  [<c10a9c7f>] handle_fasteoi_irq+0x6f/0x120
    [ 1153.360818]  [<c10a9c10>] ? handle_edge_irq+0x110/0x110
    [ 1153.360822]  [<c1011b61>] handle_irq+0x71/0x90
    [ 1153.360823]  <IRQ>  [<c168152c>] do_IRQ+0x3c/0xd0
    [ 1153.360829]  [<c1680b6c>] common_interrupt+0x2c/0x34
    [ 1153.360834]  [<c107d277>] ? finish_task_switch+0x47/0xf0
    [ 1153.360836]  [<c167c27b>] __schedule+0x35b/0x7e0
    [ 1153.360839]  [<c10a5334>] ? console_unlock+0x2c4/0x4d0
    [ 1153.360842]  [<c13df500>] ? n_tty_receive_buf_common+0x890/0x890
    [ 1153.360845]  [<c10707b6>] ? process_one_work+0x196/0x370
    [ 1153.360847]  [<c167c723>] schedule+0x23/0x60
    [ 1153.360849]  [<c1070de1>] worker_thread+0x161/0x460
    [ 1153.360852]  [<c1090fcf>] ? __wake_up_locked+0x1f/0x30
    [ 1153.360854]  [<c1070c80>] ? rescuer_thread+0x2f0/0x2f0
    [ 1153.360856]  [<c1074f01>] kthread+0xa1/0xc0
    [ 1153.360859]  [<c1680401>] ret_from_kernel_thread+0x21/0x30
    [ 1153.360861]  [<c1074e60>] ? kthread_create_on_node+0x110/0x110
    [ 1153.360863] ---[ end trace 5ff83639cbb74b35 ]---
    
    This patch replaces the kfree_skb() by dev_kfree_skb_any().
    
    Signed-off-by: Thomas Körper <thomas.koerper@esd.eu>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 888e7ee2648bea71590c05a998ff8b64fbf99e62
Author: Dave Hansen <dave.hansen@linux.intel.com>
Date:   Tue Nov 11 14:01:33 2014 -0800

    x86: Require exact match for 'noxsave' command line option
    
    commit 2cd3949f702692cf4c5d05b463f19cd706a92dd3 upstream.
    
    We have some very similarly named command-line options:
    
    arch/x86/kernel/cpu/common.c:__setup("noxsave", x86_xsave_setup);
    arch/x86/kernel/cpu/common.c:__setup("noxsaveopt", x86_xsaveopt_setup);
    arch/x86/kernel/cpu/common.c:__setup("noxsaves", x86_xsaves_setup);
    
    __setup() is designed to match options that take arguments, like
    "foo=bar" where you would have:
    
    	__setup("foo", x86_foo_func...);
    
    The problem is that "noxsave" actually _matches_ "noxsaves" in
    the same way that "foo" matches "foo=bar".  If you boot an old
    kernel that does not know about "noxsaves" with "noxsaves" on the
    command line, it will interpret the argument as "noxsave", which
    is not what you want at all.
    
    This makes the "noxsave" handler only return success when it finds
    an *exact* match.
    
    [ tglx: We really need to make __setup() more robust. ]
    
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: x86@kernel.org
    Link: http://lkml.kernel.org/r/20141111220133.FE053984@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 07ea3ff92409e8c3ed4ae3f74f02fefb3f6757ca
Author: Cristina Ciocan <cristina.ciocan@intel.com>
Date:   Tue Nov 11 16:07:42 2014 +0200

    iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
    
    commit ccf54555da9a5e91e454b909ca6a5303c7d6b910 upstream.
    
    The direction field is set on 7 bits, thus we need to AND it with 0111 111 mask
    in order to retrieve it, that is 0x7F, not 0xCF as it is now.
    
    Fixes: ade7ef7ba (staging:iio: Differential channel handling)
    Signed-off-by: Cristina Ciocan <cristina.ciocan@intel.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit adfa08f50fa9d50cd6d8d0ddf8a2f68462edcd52
Author: Stefan Richter <stefanr@s5r6.in-berlin.de>
Date:   Tue Nov 11 17:16:44 2014 +0100

    firewire: cdev: prevent kernel stack leaking into ioctl arguments
    
    commit eaca2d8e75e90a70a63a6695c9f61932609db212 upstream.
    
    Found by the UC-KLEE tool:  A user could supply less input to
    firewire-cdev ioctls than write- or write/read-type ioctl handlers
    expect.  The handlers used data from uninitialized kernel stack then.
    
    This could partially leak back to the user if the kernel subsequently
    generated fw_cdev_event_'s (to be read from the firewire-cdev fd)
    which notably would contain the _u64 closure field which many of the
    ioctl argument structures contain.
    
    The fact that the handlers would act on random garbage input is a
    lesser issue since all handlers must check their input anyway.
    
    The fix simply always null-initializes the entire ioctl argument buffer
    regardless of the actual length of expected user input.  That is, a
    runtime overhead of memset(..., 40) is added to each firewirew-cdev
    ioctl() call.  [Comment from Clemens Ladisch:  This part of the stack is
    most likely to be already in the cache.]
    
    Remarks:
      - There was never any leak from kernel stack to the ioctl output
        buffer itself.  IOW, it was not possible to read kernel stack by a
        read-type or write/read-type ioctl alone; the leak could at most
        happen in combination with read()ing subsequent event data.
      - The actual expected minimum user input of each ioctl from
        include/uapi/linux/firewire-cdev.h is, in bytes:
        [0x00] = 32, [0x05] =  4, [0x0a] = 16, [0x0f] = 20, [0x14] = 16,
        [0x01] = 36, [0x06] = 20, [0x0b] =  4, [0x10] = 20, [0x15] = 20,
        [0x02] = 20, [0x07] =  4, [0x0c] =  0, [0x11] =  0, [0x16] =  8,
        [0x03] =  4, [0x08] = 24, [0x0d] = 20, [0x12] = 36, [0x17] = 12,
        [0x04] = 20, [0x09] = 24, [0x0e] =  4, [0x13] = 40, [0x18] =  4.
    
    Reported-by: David Ramos <daramos@stanford.edu>
    Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0718a8021bc418647c032c1438c055d397687a78
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Fri Nov 14 02:14:47 2014 -0200

    ASoC: sgtl5000: Fix SMALL_POP bit definition
    
    commit c251ea7bd7a04f1f2575467e0de76e803cf59149 upstream.
    
    On a mx28evk with a sgtl5000 codec we notice a loud 'click' sound  to happen
    5 seconds after the end of a playback.
    
    The SMALL_POP bit should fix this, but its definition is incorrect:
    according to the sgtl5000 manual it is bit 0 of CHIP_REF_CTRL register, not
    bit 1.
    
    Fix the definition accordingly and enable the bit as intended per the code
    comment.
    
    After applying this change, no loud 'click' sound is heard after playback
    
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 42fdf7a1b541fd34f5b58b7ccf99fbbd6de46013
Author: Ilya Dryomov <idryomov@redhat.com>
Date:   Thu Oct 23 00:25:22 2014 +0400

    libceph: do not crash on large auth tickets
    
    commit aaef31703a0cf6a733e651885bfb49edc3ac6774 upstream.
    
    Large (greater than 32k, the value of PAGE_ALLOC_COSTLY_ORDER) auth
    tickets will have their buffers vmalloc'ed, which leads to the
    following crash in crypto:
    
    [   28.685082] BUG: unable to handle kernel paging request at ffffeb04000032c0
    [   28.686032] IP: [<ffffffff81392b42>] scatterwalk_pagedone+0x22/0x80
    [   28.686032] PGD 0
    [   28.688088] Oops: 0000 [#1] PREEMPT SMP
    [   28.688088] Modules linked in:
    [   28.688088] CPU: 0 PID: 878 Comm: kworker/0:2 Not tainted 3.17.0-vm+ #305
    [   28.688088] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
    [   28.688088] Workqueue: ceph-msgr con_work
    [   28.688088] task: ffff88011a7f9030 ti: ffff8800d903c000 task.ti: ffff8800d903c000
    [   28.688088] RIP: 0010:[<ffffffff81392b42>]  [<ffffffff81392b42>] scatterwalk_pagedone+0x22/0x80
    [   28.688088] RSP: 0018:ffff8800d903f688  EFLAGS: 00010286
    [   28.688088] RAX: ffffeb04000032c0 RBX: ffff8800d903f718 RCX: ffffeb04000032c0
    [   28.688088] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8800d903f750
    [   28.688088] RBP: ffff8800d903f688 R08: 00000000000007de R09: ffff8800d903f880
    [   28.688088] R10: 18df467c72d6257b R11: 0000000000000000 R12: 0000000000000010
    [   28.688088] R13: ffff8800d903f750 R14: ffff8800d903f8a0 R15: 0000000000000000
    [   28.688088] FS:  00007f50a41c7700(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000
    [   28.688088] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [   28.688088] CR2: ffffeb04000032c0 CR3: 00000000da3f3000 CR4: 00000000000006b0
    [   28.688088] Stack:
    [   28.688088]  ffff8800d903f698 ffffffff81392ca8 ffff8800d903f6e8 ffffffff81395d32
    [   28.688088]  ffff8800dac96000 ffff880000000000 ffff8800d903f980 ffff880119b7e020
    [   28.688088]  ffff880119b7e010 0000000000000000 0000000000000010 0000000000000010
    [   28.688088] Call Trace:
    [   28.688088]  [<ffffffff81392ca8>] scatterwalk_done+0x38/0x40
    [   28.688088]  [<ffffffff81392ca8>] scatterwalk_done+0x38/0x40
    [   28.688088]  [<ffffffff81395d32>] blkcipher_walk_done+0x182/0x220
    [   28.688088]  [<ffffffff813990bf>] crypto_cbc_encrypt+0x15f/0x180
    [   28.688088]  [<ffffffff81399780>] ? crypto_aes_set_key+0x30/0x30
    [   28.688088]  [<ffffffff8156c40c>] ceph_aes_encrypt2+0x29c/0x2e0
    [   28.688088]  [<ffffffff8156d2a3>] ceph_encrypt2+0x93/0xb0
    [   28.688088]  [<ffffffff8156d7da>] ceph_x_encrypt+0x4a/0x60
    [   28.688088]  [<ffffffff8155b39d>] ? ceph_buffer_new+0x5d/0xf0
    [   28.688088]  [<ffffffff8156e837>] ceph_x_build_authorizer.isra.6+0x297/0x360
    [   28.688088]  [<ffffffff8112089b>] ? kmem_cache_alloc_trace+0x11b/0x1c0
    [   28.688088]  [<ffffffff8156b496>] ? ceph_auth_create_authorizer+0x36/0x80
    [   28.688088]  [<ffffffff8156ed83>] ceph_x_create_authorizer+0x63/0xd0
    [   28.688088]  [<ffffffff8156b4b4>] ceph_auth_create_authorizer+0x54/0x80
    [   28.688088]  [<ffffffff8155f7c0>] get_authorizer+0x80/0xd0
    [   28.688088]  [<ffffffff81555a8b>] prepare_write_connect+0x18b/0x2b0
    [   28.688088]  [<ffffffff81559289>] try_read+0x1e59/0x1f10
    
    This is because we set up crypto scatterlists as if all buffers were
    kmalloc'ed.  Fix it.
    
    Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f8ddde5a235cda17012fddd84c0d49d8d8325a16
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Tue Nov 11 14:28:47 2014 +0100

    rt2x00: do not align payload on modern H/W
    
    commit cfd9167af14eb4ec21517a32911d460083ee3d59 upstream.
    
    RT2800 and newer hardware require padding between header and payload if
    header length is not multiple of 4.
    
    For historical reasons we also align payload to to 4 bytes boundary, but
    such alignment is not needed on modern H/W.
    
    Patch fixes skb_under_panic problems reported from time to time:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=84911
    https://bugzilla.kernel.org/show_bug.cgi?id=72471
    http://marc.info/?l=linux-wireless&m=139108549530402&w=2
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1087591
    
    Panic happened because we eat 4 bytes of skb headroom on each
    (re)transmission when sending frame without the payload and the header
    length not being multiple of 4 (i.e. QoS header has 26 bytes). On such
    case because paylad_aling=2 is bigger than header_align=0 we increase
    header_align by 4 bytes. To prevent that we could change the check to:
    
    	if (payload_length && payload_align > header_align)
    		header_align += 4;
    
    but not aligning payload at all is more effective and alignment is not
    really needed by H/W (that has been tested on OpenWrt project for few
    years now).
    
    Reported-and-tested-by: Antti S. Lankila <alankila@bel.fi>
    Debugged-by: Antti S. Lankila <alankila@bel.fi>
    Reported-by: Henrik Asp <solenskiner@gmail.com>
    Originally-From: Helmut Schaa <helmut.schaa@googlemail.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 51a8f21b21a55c6b08eff1f9917489d11b4f2bfc
Author: Miklos Szeredi <mszeredi@suse.cz>
Date:   Tue Nov 4 11:27:12 2014 +0100

    audit: keep inode pinned
    
    commit 799b601451b21ebe7af0e6e8f6e2ccd4683c5064 upstream.
    
    Audit rules disappear when an inode they watch is evicted from the cache.
    This is likely not what we want.
    
    The guilty commit is "fsnotify: allow marks to not pin inodes in core",
    which didn't take into account that audit_tree adds watches with a zero
    mask.
    
    Adding any mask should fix this.
    
    Fixes: 90b1e7a57880 ("fsnotify: allow marks to not pin inodes in core")
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cfc515ec1f3d3d501897b269b262cc13cec7f9ed
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon Nov 3 19:36:40 2014 +0100

    scsi: only re-lock door after EH on devices that were reset
    
    commit 48379270fe6808cf4612ee094adc8da2b7a83baa upstream.
    
    Setups that use the blk-mq I/O path can lock up if a host with a single
    device that has its door locked enters EH.  Make sure to only send the
    command to re-lock the door to devices that actually were reset and thus
    might have lost their state.  Otherwise the EH code might be get blocked
    on blk_get_request as all requests for non-reset devices might be in use.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reported-by: Meelis Roos <meelis.roos@ut.ee>
    Tested-by: Meelis Roos <meelis.roos@ut.ee>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8c952daa1b00e3b24a5ccd18c5c5cef7a2b47ce1
Author: Preston Fick <pffick@gmail.com>
Date:   Fri Nov 7 23:26:11 2014 -0600

    USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick
    
    commit ffcfe30ebd8dd703d0fc4324ffe56ea21f5479f4 upstream.
    
    Signed-off-by: Preston Fick <pffick@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b4c57768b27111721fda951e7f5118f5a2f05d47
Author: Pali Rohár <pali.rohar@gmail.com>
Date:   Sat Nov 8 12:58:57 2014 -0800

    Input: alps - allow up to 2 invalid packets without resetting device
    
    commit 9d720b34c0a432639252f63012e18b0507f5b432 upstream.
    
    On some Dell Latitude laptops ALPS device or Dell EC send one invalid byte
    in 6 bytes ALPS packet. In this case psmouse driver enter out of sync
    state. It looks like that all other bytes in packets are valid and also
    device working properly. So there is no need to do full device reset, just
    need to wait for byte which match condition for first byte (start of
    packet). Because ALPS packets are bigger (6 or 8 bytes) default limit is
    small.
    
    This patch increase number of invalid bytes to size of 2 ALPS packets which
    psmouse driver can drop before do full reset.
    
    Resetting ALPS devices take some time and when doing reset on some Dell
    laptops touchpad, trackstick and also keyboard do not respond. So it is
    better to do it only if really necessary.
    
    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Tested-by: Pali Rohár <pali.rohar@gmail.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6c952f139831934c359ab38d14bdf3054b72a585
Author: Pali Rohár <pali.rohar@gmail.com>
Date:   Sat Nov 8 12:45:23 2014 -0800

    Input: alps - ignore potential bare packets when device is out of sync
    
    commit 4ab8f7f320f91f279c3f06a9795cfea5c972888a upstream.
    
    5th and 6th byte of ALPS trackstick V3 protocol match condition for first
    byte of PS/2 3 bytes packet. When driver enters out of sync state and ALPS
    trackstick is sending data then driver match 5th, 6th and next 1st bytes as
    PS/2.
    
    It basically means if user is using trackstick when driver is in out of
    sync state driver will never resync. Processing these bytes as 3 bytes PS/2
    data cause total mess (random cursor movements, random clicks) and make
    trackstick unusable until psmouse driver decide to do full device reset.
    
    Lot of users reported problems with ALPS devices on Dell Latitude E6440,
    E6540 and E7440 laptops. ALPS device or Dell EC for unknown reason send
    some invalid ALPS PS/2 bytes which cause driver out of sync. It looks like
    that i8042 and psmouse/alps driver always receive group of 6 bytes packets
    so there are no missing bytes and no bytes were inserted between valid
    ones.
    
    This patch does not fix root of problem with ALPS devices found in Dell
    Latitude laptops but it does not allow to process some (invalid)
    subsequence of 6 bytes ALPS packets as 3 bytes PS/2 when driver is out of
    sync.
    
    So with this patch trackstick input device does not report bogus data when
    also driver is out of sync, so trackstick should be usable on those
    machines.
    
    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Tested-by: Pali Rohár <pali.rohar@gmail.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 656378a5094c1fe3e4291345d3f0cf3aadbde8db
Author: Thor Thayer <tthayer@opensource.altera.com>
Date:   Thu Nov 6 13:54:27 2014 -0600

    spi: dw: Fix dynamic speed change.
    
    commit 0a8727e69778683495058852f783eeda141a754e upstream.
    
    An IOCTL call that calls spi_setup() and then dw_spi_setup() will
    overwrite the persisted last transfer speed. On each transfer, the
    SPI speed is compared to the last transfer speed to determine if the
    clock divider registers need to be updated (did the speed change?).
    This bug was observed with the spidev driver using spi-config to
    update the max transfer speed.
    
    This fix: Don't overwrite the persisted last transaction clock speed
    when updating the SPI parameters in dw_spi_setup(). On the next
    transaction, the new speed won't match the persisted last speed
    and the hardware registers will be updated.
    On initialization, the persisted last transaction clock
    speed will be 0 but will be updated after the first SPI
    transaction.
    
    Move zeroed clock divider check into clock change test because
    chip->clk_div is zero on startup and would cause a divide-by-zero
    error. The calculation was wrong as well (can't support odd #).
    
    Reported-by: Vlastimil Setka <setka@vsis.cz>
    Signed-off-by: Vlastimil Setka <setka@vsis.cz>
    Signed-off-by: Thor Thayer <tthayer@opensource.altera.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2e0f55eaf9b604eb3ae84802b668003ecd7946bc
Author: Imre Deak <imre.deak@intel.com>
Date:   Thu Oct 2 16:34:31 2014 +0300

    tty/vt: don't set font mappings on vc not supporting this
    
    commit 9e326f78713a4421fe11afc2ddeac07698fac131 upstream.
    
    We can call this function for a dummy console that doesn't support
    setting the font mapping, which will result in a null ptr BUG. So check
    for this case and return error for consoles w/o font mapping support.
    
    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=59321
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: this function doesn't take a lock, so doesn't
     need to unlock on error]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 069347b245ac0afe052f68e7f5ea734207f826f4
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Thu Oct 16 13:51:30 2014 -0400

    tty: Fix high cpu load if tty is unreleaseable
    
    commit 37b164578826406a173ca7c20d9ba7430134d23e upstream.
    
    Kernel oops can cause the tty to be unreleaseable (for example, if
    n_tty_read() crashes while on the read_wait queue). This will cause
    tty_release() to endlessly loop without sleeping.
    
    Use a killable sleep timeout which grows by 2n+1 jiffies over the interval
    [0, 120 secs.) and then jumps to forever (but still killable).
    
    NB: killable just allows for the task to be rewoken manually, not
    to be terminated.
    
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2eb38b7609836f81419f52a62170c2a222f7e1aa
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Thu Oct 16 13:46:38 2014 -0400

    serial: Fix divide-by-zero fault in uart_get_divisor()
    
    commit 547039ec502076e60034eeb79611df3433a99b7d upstream.
    
    uart_get_baud_rate() will return baud == 0 if the max rate is set
    to the "magic" 38400 rate and the SPD_* flags are also specified.
    On the first iteration, if the current baud rate is higher than the
    max, the baud rate is clamped at the max (which in the degenerate
    case is 38400). On the second iteration, the now-"magic" 38400 baud
    rate selects the possibly higher alternate baud rate indicated by
    the SPD_* flag. Since only two loop iterations are performed, the
    loop is exited, a kernel WARNING is generated and a baud rate of
    0 is returned.
    
    Reproducible with:
     setserial /dev/ttyS0 spd_hi base_baud 38400
    
    Only perform the "magic" 38400 -> SPD_* baud transform on the first
    loop iteration, which prevents the degenerate case from recognizing
    the clamped baud rate as the "magic" 38400 value.
    
    Reported-by: Robert Święcki <robert@swiecki.net>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ae11f62aeb3b9cd5222309a48611d475dad974ed
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Nov 5 18:41:59 2014 +0100

    USB: cdc-acm: only raise DTR on transitions from B0
    
    commit 4473d054ceb572557954f9536731d39b20937b0c upstream.
    
    Make sure to only raise DTR on transitions from B0 in set_termios.
    
    Also allow set_termios to be called from open with a termios_old of
    NULL. Note that DTR will not be raised prematurely in this case.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b05ff47c7d4144c168553fc297bc25751e9e2525
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Tue Nov 4 18:03:16 2014 +0100

    staging:iio:ade7758: Remove "raw" from channel name
    
    commit b598aacc29331e7e638cd509108600e916c6331b upstream.
    
    "raw" is a property of a channel, but should not be part of the name of
    channel.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    [bwh: Backported to 3.2: using IIO_CHAN() macro to initialise the structures]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f61457d8bc3a29281f5e84bb5a530befc4d4818a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 5 15:08:49 2014 +0100

    ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect
    
    commit 0725dda207e95ff25f1aa01432250323e0ec49d6 upstream.
    
    Some USB-audio devices show weird sysfs warnings at disconnecting the
    devices, e.g.
     usb 1-3: USB disconnect, device number 3
     ------------[ cut here ]------------
     WARNING: CPU: 0 PID: 973 at fs/sysfs/group.c:216 device_del+0x39/0x180()
     sysfs group ffffffff8183df40 not found for kobject 'midiC1D0'
     Call Trace:
      [<ffffffff814a3e38>] ? dump_stack+0x49/0x71
      [<ffffffff8103cb72>] ? warn_slowpath_common+0x82/0xb0
      [<ffffffff8103cc55>] ? warn_slowpath_fmt+0x45/0x50
      [<ffffffff813521e9>] ? device_del+0x39/0x180
      [<ffffffff81352339>] ? device_unregister+0x9/0x20
      [<ffffffff81352384>] ? device_destroy+0x34/0x40
      [<ffffffffa00ba29f>] ? snd_unregister_device+0x7f/0xd0 [snd]
      [<ffffffffa025124e>] ? snd_rawmidi_dev_disconnect+0xce/0x100 [snd_rawmidi]
      [<ffffffffa00c0192>] ? snd_device_disconnect+0x62/0x90 [snd]
      [<ffffffffa00c025c>] ? snd_device_disconnect_all+0x3c/0x60 [snd]
      [<ffffffffa00bb574>] ? snd_card_disconnect+0x124/0x1a0 [snd]
      [<ffffffffa02e54e8>] ? usb_audio_disconnect+0x88/0x1c0 [snd_usb_audio]
      [<ffffffffa015260e>] ? usb_unbind_interface+0x5e/0x1b0 [usbcore]
      [<ffffffff813553e9>] ? __device_release_driver+0x79/0xf0
      [<ffffffff81355485>] ? device_release_driver+0x25/0x40
      [<ffffffff81354e11>] ? bus_remove_device+0xf1/0x130
      [<ffffffff813522b9>] ? device_del+0x109/0x180
      [<ffffffffa01501d5>] ? usb_disable_device+0x95/0x1f0 [usbcore]
      [<ffffffffa014634f>] ? usb_disconnect+0x8f/0x190 [usbcore]
      [<ffffffffa0149179>] ? hub_thread+0x539/0x13a0 [usbcore]
      [<ffffffff810669f5>] ? sched_clock_local+0x15/0x80
      [<ffffffff81066c98>] ? sched_clock_cpu+0xb8/0xd0
      [<ffffffff81070730>] ? bit_waitqueue+0xb0/0xb0
      [<ffffffffa0148c40>] ? usb_port_resume+0x430/0x430 [usbcore]
      [<ffffffffa0148c40>] ? usb_port_resume+0x430/0x430 [usbcore]
      [<ffffffff8105973e>] ? kthread+0xce/0xf0
      [<ffffffff81059670>] ? kthread_create_on_node+0x1c0/0x1c0
      [<ffffffff814a8b7c>] ? ret_from_fork+0x7c/0xb0
      [<ffffffff81059670>] ? kthread_create_on_node+0x1c0/0x1c0
     ---[ end trace 40b1928d1136b91e ]---
    
    This comes from the fact that usb-audio driver may receive the
    disconnect callback multiple times, per each usb interface.  When a
    device has both audio and midi interfaces, it gets called twice, and
    currently the driver tries to release resources at the last call.
    At this point, the first parent interface has been already deleted,
    thus deleting a child of the first parent hits such a warning.
    
    For fixing this problem, we need to call snd_card_disconnect() and
    cancel pending operations at the very first disconnect while the
    release of the whole objects waits until the last disconnect call.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=80931
    Reported-and-tested-by: Tomas Gayoso <tgayoso@gmail.com>
    Reported-and-tested-by: Chris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 906341cde97dd81ca112970637b80f397b3ae77d
Author: Oliver Neukum <oneukum@suse.de>
Date:   Mon Oct 27 14:53:29 2014 +0100

    xhci: no switching back on non-ULT Haswell
    
    commit b45abacde3d551c6696c6738bef4a1805d0bf27a upstream.
    
    The switch back is limited to ULT even on HP. The contrary
    finding arose by bad luck in BIOS versions for testing.
    This fixes spontaneous resume from S3 on some HP laptops.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 85e66060d38a271c05546231d9f6a800533c6f3f
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Oct 31 14:49:47 2014 -0400

    usb-storage: handle a skipped data phase
    
    commit 93c9bf4d1838d5851a18ca398b0ad66397f05056 upstream.
    
    Sometimes mass-storage devices using the Bulk-only transport will
    mistakenly skip the data phase of a command.  Rather than sending the
    data expected by the host or sending a zero-length packet, they go
    directly to the status phase and send the CSW.
    
    This causes problems for usb-storage, for obvious reasons.  The driver
    will interpret the CSW as a short data transfer and will wait to
    receive a CSW.  The device won't have anything left to send, so the
    command eventually times out.
    
    The SCSI layer doesn't retry commands after they time out (this is a
    relatively recent change).  Therefore we should do our best to detect
    a skipped data phase and handle it promptly.
    
    This patch adds code to do that.  If usb-storage receives a short
    13-byte data transfer from the device, and if the first four bytes of
    the data match the CSW signature, the driver will set the residue to
    the full transfer length and interpret the data as a CSW.
    
    This fixes Bugzilla #86611.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
    Tested-by: Paul Osmialowski <newchief@king.net.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: use US_DEBUGP() not usb_stor_dbg()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4fee2090c23113ecc613a1c0d0fce3f69076cf70
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Oct 1 11:29:14 2014 +0200

    usb: Do not allow usb_alloc_streams on unconfigured devices
    
    commit 90a646c770c50cc206ceba0d7b50453c46c13c36 upstream.
    
    This commit fixes the following oops:
    
    [10238.622067] scsi host3: uas_eh_bus_reset_handler start
    [10240.766164] usb 3-4: reset SuperSpeed USB device number 3 using xhci_hcd
    [10245.779365] usb 3-4: device descriptor read/8, error -110
    [10245.883331] usb 3-4: reset SuperSpeed USB device number 3 using xhci_hcd
    [10250.897603] usb 3-4: device descriptor read/8, error -110
    [10251.058200] BUG: unable to handle kernel NULL pointer dereference at  0000000000000040
    [10251.058244] IP: [<ffffffff815ac6e1>] xhci_check_streams_endpoint+0x91/0x140
    <snip>
    [10251.059473] Call Trace:
    [10251.059487]  [<ffffffff815aca6c>] xhci_calculate_streams_and_bitmask+0xbc/0x130
    [10251.059520]  [<ffffffff815aeb5f>] xhci_alloc_streams+0x10f/0x5a0
    [10251.059548]  [<ffffffff810a4685>] ? check_preempt_curr+0x75/0xa0
    [10251.059575]  [<ffffffff810a46dc>] ? ttwu_do_wakeup+0x2c/0x100
    [10251.059601]  [<ffffffff810a49e6>] ? ttwu_do_activate.constprop.111+0x66/0x70
    [10251.059635]  [<ffffffff815779ab>] usb_alloc_streams+0xab/0xf0
    [10251.059662]  [<ffffffffc0616b48>] uas_configure_endpoints+0x128/0x150 [uas]
    [10251.059694]  [<ffffffffc0616bac>] uas_post_reset+0x3c/0xb0 [uas]
    [10251.059722]  [<ffffffff815727d9>] usb_reset_device+0x1b9/0x2a0
    [10251.059749]  [<ffffffffc0616f42>] uas_eh_bus_reset_handler+0xb2/0x190 [uas]
    [10251.059781]  [<ffffffff81514293>] scsi_try_bus_reset+0x53/0x110
    [10251.059808]  [<ffffffff815163b7>] scsi_eh_bus_reset+0xf7/0x270
    <snip>
    
    The problem is the following call sequence (simplified):
    
    1) usb_reset_device
    2)  usb_reset_and_verify_device
    2)   hub_port_init
    3)    hub_port_finish_reset
    3)     xhci_discover_or_reset_device
            This frees xhci->devs[slot_id]->eps[ep_index].ring for all eps but 0
    4)    usb_get_device_descriptor
           This fails
    5)   hub_port_init fails
    6)  usb_reset_and_verify_device fails, does not restore device config
    7)  uas_post_reset
    8)   xhci_alloc_streams
          NULL deref on the free-ed ring
    
    This commit fixes this by not allowing usb_alloc_streams to continue if
    the device is not configured.
    
    Note that we do allow usb_free_streams to continue after a (logical)
    disconnect, as it is necessary to explicitly free the streams at the xhci
    controller level.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c31af119a79f0e52d6c514e058f7224efb27bbae
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 27 18:34:33 2014 +0100

    USB: cdc-acm: add device id for GW Instek AFG-2225
    
    commit cf84a691a61606a2e7269907d3727e2d9fa148ee upstream.
    
    Add device-id entry for GW Instek AFG-2225, which has a byte swapped
    bInterfaceSubClass (0x20).
    
    Reported-by: Karl Palsson <karlp@tweak.net.au>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bc11c708d2cb8abd428d92a1e843a75f44be6356
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Nov 3 13:57:46 2014 +0100

    mac80211: fix use-after-free in defragmentation
    
    commit b8fff407a180286aa683d543d878d98d9fc57b13 upstream.
    
    Upon receiving the last fragment, all but the first fragment
    are freed, but the multicast check for statistics at the end
    of the function refers to the current skb (the last fragment)
    causing a use-after-free bug.
    
    Since multicast frames cannot be fragmented and we check for
    this early in the function, just modify that check to also
    do the accounting to fix the issue.
    
    Reported-by: Yosef Khyal <yosefx.khyal@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7ce77510c9c7dc76bd03687daa7d909aee948182
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Oct 29 09:07:31 2014 +0100

    USB: opticon: fix non-atomic allocation in write path
    
    commit e681286de221af78fc85db9222b6a203148c005a upstream.
    
    Write may be called from interrupt context so make sure to use
    GFP_ATOMIC for all allocations in write.
    
    Fixes: 0d930e51cfe6 ("USB: opticon: Add Opticon OPN2001 write support")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 18c2ebcacbaabe061a808c1f0e3076bc8d626587
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Oct 29 09:07:30 2014 +0100

    USB: kobil_sct: fix non-atomic allocation in write path
    
    commit 191252837626fca0de694c18bb2aa64c118eda89 upstream.
    
    Write may be called from interrupt context so make sure to use
    GFP_ATOMIC for all allocations in write.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    [bwh: Backported to 3.2:
     - s/interrupt_out_urb/write_urb/
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 731738e019066660d40e3080f9639e0d2d65578e
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 20:43:38 2014 +0100

    block: Fix computation of merged request priority
    
    commit ece9c72accdc45c3a9484dacb1125ce572647288 upstream.
    
    Priority of a merged request is computed by ioprio_best(). If one of the
    requests has undefined priority (IOPRIO_CLASS_NONE) and another request
    has priority from IOPRIO_CLASS_BE, the function will return the
    undefined priority which is wrong. Fix the function to properly return
    priority of a request with the defined priority.
    
    Fixes: d58cdfb89ce0c6bd5f81ae931a984ef298dbda20
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a8f42325dfed2c10410816a48032a75984078883
Author: Sinclair Yeh <syeh@vmware.com>
Date:   Fri Oct 31 09:58:06 2014 +0100

    drm/vmwgfx: Filter out modes those cannot be supported by the current VRAM size.
    
    commit 9a72384d86b26cb8a2b25106677e1197f606668f upstream.
    
    When screen objects are enabled, the bpp is assumed to be 32, otherwise
    it is set to 16.
    
    v2:
    * Use u32 instead of u64 for assumed_bpp.
    * Fixed mechanism to check for screen objects
    * Limit the back buffer size to VRAM.
    
    Signed-off-by: Sinclair Yeh <syeh@vmware.com>
    Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
    [bwh: Backported to 3.2: drop changes for dev_priv->prim_bb_mem]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8043761416d5ae6d8fe5e95331d26465d52e8c6e
Author: Rabin Vincent <rabin@rab.in>
Date:   Wed Oct 29 23:06:58 2014 +0100

    tracing/syscalls: Ignore numbers outside NR_syscalls' range
    
    commit 086ba77a6db00ed858ff07451bedee197df868c9 upstream.
    
    ARM has some private syscalls (for example, set_tls(2)) which lie
    outside the range of NR_syscalls.  If any of these are called while
    syscall tracing is being performed, out-of-bounds array access will
    occur in the ftrace and perf sys_{enter,exit} handlers.
    
     # trace-cmd record -e raw_syscalls:* true && trace-cmd report
     ...
     true-653   [000]   384.675777: sys_enter:            NR 192 (0, 1000, 3, 4000022, ffffffff, 0)
     true-653   [000]   384.675812: sys_exit:             NR 192 = 1995915264
     true-653   [000]   384.675971: sys_enter:            NR 983045 (76f74480, 76f74000, 76f74b28, 76f74480, 76f76f74, 1)
     true-653   [000]   384.675988: sys_exit:             NR 983045 = 0
     ...
    
     # trace-cmd record -e syscalls:* true
     [   17.289329] Unable to handle kernel paging request at virtual address aaaaaace
     [   17.289590] pgd = 9e71c000
     [   17.289696] [aaaaaace] *pgd=00000000
     [   17.289985] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
     [   17.290169] Modules linked in:
     [   17.290391] CPU: 0 PID: 704 Comm: true Not tainted 3.18.0-rc2+ #21
     [   17.290585] task: 9f4dab00 ti: 9e710000 task.ti: 9e710000
     [   17.290747] PC is at ftrace_syscall_enter+0x48/0x1f8
     [   17.290866] LR is at syscall_trace_enter+0x124/0x184
    
    Fix this by ignoring out-of-NR_syscalls-bounds syscall numbers.
    
    Commit cd0980fc8add "tracing: Check invalid syscall nr while tracing syscalls"
    added the check for less than zero, but it should have also checked
    for greater than NR_syscalls.
    
    Link: http://lkml.kernel.org/p/1414620418-29472-1-git-send-email-rabin@rab.in
    
    Fixes: cd0980fc8add "tracing: Check invalid syscall nr while tracing syscalls"
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6f25b4e75a87fea8087b543f3d1298d301d24ad7
Author: Will Deacon <will.deacon@arm.com>
Date:   Thu Aug 16 18:14:14 2012 +0100

    tracing/syscalls: Fix perf syscall tracing when syscall_nr == -1
    
    commit 60916a9382e88fbf5e54fd36a3e658efd7ab7bed upstream.
    
    syscall_get_nr can return -1 in the case that the task is not executing
    a system call.
    
    This patch fixes perf_syscall_{enter,exit} to check that the syscall
    number is valid before using it as an index into a bitmap.
    
    Link: http://lkml.kernel.org/r/1345137254-7377-1-git-send-email-will.deacon@arm.com
    
    Cc: Jason Baron <jbaron@redhat.com>
    Cc: Wade Farnsworth <wade_farnsworth@mentor.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5f2f96008c8b5f527c3133fa98d2bc67b0a2ff1c
Author: Cyril Brulebois <kibi@debian.org>
Date:   Tue Oct 28 16:42:41 2014 +0100

    wireless: rt2x00: add new rt2800usb device
    
    commit 664d6a792785cc677c2091038ce10322c8d04ae1 upstream.
    
    0x1b75 0xa200 AirLive WN-200USB wireless 11b/g/n dongle
    
    References: https://bugs.debian.org/766802
    Reported-by: Martin Mokrejs <mmokrejs@fold.natur.cuni.cz>
    Signed-off-by: Cyril Brulebois <kibi@debian.org>
    Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4601d5d1db634d7c51ecc8ed5b5534dd6655dd70
Author: Ulrich Eckhardt <uli-lirc@uli-eckhardt.de>
Date:   Fri Oct 10 14:19:12 2014 -0300

    ds3000: fix LNB supply voltage on Tevii S480 on initialization
    
    commit 8c5bcded11cb607b1bb5920de3b9c882136d27db upstream.
    
    The Tevii S480 outputs 18V on startup for the LNB supply voltage and does not
    automatically power down. This blocks other receivers connected
    to a satellite channel router (EN50494), since the receivers can not send the
    required DiSEqC sequences when the Tevii card is connected to a the same SCR.
    
    This patch switches off the LNB supply voltage on initialization of the frontend.
    
    [mchehab@osg.samsung.com: add a comment about why we're explicitly
     turning off voltage at device init]
    Signed-off-by: Ulrich Eckhardt <uli@uli-eckhardt.de>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9769c00cdd3cb924c02f9e6eea0eb2212fc07e36
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:53:17 2014 -0400

    ext4: bail out from make_indexed_dir() on first error
    
    commit 6050d47adcadbb53582434d919ed7f038d936712 upstream.
    
    When ext4_handle_dirty_dx_node() or ext4_handle_dirty_dirent_node()
    fail, there's really something wrong with the fs and there's no point in
    continuing further. Just return error from make_indexed_dir() in that
    case. Also initialize frames array so that if we return early due to
    error, dx_release() doesn't try to dereference uninitialized memory
    (which could happen also due to error in do_split()).
    
    Coverity-id: 741300
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 3.2:
     - We have ext4_handle_dirty_metadata() not
       ext4_handle_dirty_{dx,dirent}_node()]
     - do_split() returns errors by reference not with ERR_PTR()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 93604e7651f6cfccaa34d4fdb18b6a337594912e
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:53:16 2014 -0400

    ext4: fix oops when loading block bitmap failed
    
    commit 599a9b77ab289d85c2d5c8607624efbe1f552b0f upstream.
    
    When we fail to load block bitmap in __ext4_new_inode() we will
    dereference NULL pointer in ext4_journal_get_write_access(). So check
    for error from ext4_read_block_bitmap().
    
    Coverity-id: 989065
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2bd34f24f5db5997268f779c42a8dca20514a6f7
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:52:57 2014 -0400

    ext4: fix overflow when updating superblock backups after resize
    
    commit 9378c6768e4fca48971e7b6a9075bc006eda981d upstream.
    
    When there are no meta block groups update_backups() will compute the
    backup block in 32-bit arithmetics thus possibly overflowing the block
    number and corrupting the filesystem. OTOH filesystems without meta
    block groups larger than 16 TB should be rare. Fix the problem by doing
    the counting in 64-bit arithmetics.
    
    Coverity-id: 741252
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Lukas Czerner <lczerner@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4dedbafc479dd5b5454f1be6468d4fc1a6c5c269
Author: Johannes Berg <johannes@sipsolutions.net>
Date:   Tue Oct 21 20:56:42 2014 +0200

    mac80211: properly flush delayed scan work on interface removal
    
    commit 46238845bd609a5c0fbe076e1b82b4c5b33360b2 upstream.
    
    When an interface is deleted, an ongoing hardware scan is canceled and
    the driver must abort the scan, at the very least reporting completion
    while the interface is removed.
    
    However, if it scheduled the work that might only run after everything
    is said and done, which leads to cfg80211 warning that the scan isn't
    reported as finished yet; this is no fault of the driver, it already
    did, but mac80211 hasn't processed it.
    
    To fix this situation, flush the delayed work when the interface being
    removed is the one that was executing the scan.
    
    Reported-by: Sujith Manoharan <sujith@msujith.org>
    Tested-by: Sujith Manoharan <sujith@msujith.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    [bwh: Backported to 3.2:
     - No rcu_access_pointer() needed
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit de42f2725ccabce24cfd65804ad2dba1bae1f625
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 29 14:50:44 2014 -0700

    lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}()
    
    commit ea5d05b34aca25c066e0699512d0ffbd8ee6ac3e upstream.
    
    If __bitmap_shift_left() or __bitmap_shift_right() are asked to shift by
    a multiple of BITS_PER_LONG, they will try to shift a long value by
    BITS_PER_LONG bits which is undefined.  Change the functions to avoid
    the undefined shift.
    
    Coverity id: 1192175
    Coverity id: 1192174
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 37e867c16ad3f6ac7e117d87f55e3863cb2854a2
Author: David Rientjes <rientjes@google.com>
Date:   Wed Oct 29 14:50:31 2014 -0700

    mm, thp: fix collapsing of hugepages on madvise
    
    commit 6d50e60cd2edb5a57154db5a6f64eef5aa59b751 upstream.
    
    If an anonymous mapping is not allowed to fault thp memory and then
    madvise(MADV_HUGEPAGE) is used after fault, khugepaged will never
    collapse this memory into thp memory.
    
    This occurs because the madvise(2) handler for thp, hugepage_madvise(),
    clears VM_NOHUGEPAGE on the stack and it isn't stored in vma->vm_flags
    until the final action of madvise_behavior().  This causes the
    khugepaged_enter_vma_merge() to be a no-op in hugepage_madvise() when
    the vma had previously had VM_NOHUGEPAGE set.
    
    Fix this by passing the correct vma flags to the khugepaged mm slot
    handler.  There's no chance khugepaged can run on this vma until after
    madvise_behavior() returns since we hold mm->mmap_sem.
    
    It would be possible to clear VM_NOHUGEPAGE directly from vma->vm_flags
    in hugepage_advise(), but I didn't want to introduce special case
    behavior into madvise_behavior().  I think it's best to just let it
    always set vma->vm_flags itself.
    
    Signed-off-by: David Rientjes <rientjes@google.com>
    Reported-by: Suleiman Souhlal <suleiman@google.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2: adjust context, indentation]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e0fb1fad0739d6c56264ebeaf7fc7ae61b085632
Author: Wang Nan <wangnan0@huawei.com>
Date:   Wed Oct 29 14:50:18 2014 -0700

    cgroup/kmemleak: add kmemleak_free() for cgroup deallocations.
    
    commit 401507d67d5c2854f5a88b3f93f64fc6f267bca5 upstream.
    
    Commit ff7ee93f4715 ("cgroup/kmemleak: Annotate alloc_page() for cgroup
    allocations") introduces kmemleak_alloc() for alloc_page_cgroup(), but
    corresponding kmemleak_free() is missing, which makes kmemleak be
    wrongly disabled after memory offlining.  Log is pasted at the end of
    this commit message.
    
    This patch add kmemleak_free() into free_page_cgroup().  During page
    offlining, this patch removes corresponding entries in kmemleak rbtree.
    After that, the freed memory can be allocated again by other subsystems
    without killing kmemleak.
    
      bash # for x in 1 2 3 4; do echo offline > /sys/devices/system/memory/memory$x/state ; sleep 1; done ; dmesg | grep leak
    
      Offlined Pages 32768
      kmemleak: Cannot insert 0xffff880016969000 into the object search tree (overlaps existing)
      CPU: 0 PID: 412 Comm: sleep Not tainted 3.17.0-rc5+ #86
      Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      Call Trace:
        dump_stack+0x46/0x58
        create_object+0x266/0x2c0
        kmemleak_alloc+0x26/0x50
        kmem_cache_alloc+0xd3/0x160
        __sigqueue_alloc+0x49/0xd0
        __send_signal+0xcb/0x410
        send_signal+0x45/0x90
        __group_send_sig_info+0x13/0x20
        do_notify_parent+0x1bb/0x260
        do_exit+0x767/0xa40
        do_group_exit+0x44/0xa0
        SyS_exit_group+0x17/0x20
        system_call_fastpath+0x16/0x1b
    
      kmemleak: Kernel memory leak detector disabled
      kmemleak: Object 0xffff880016900000 (size 524288):
      kmemleak:   comm "swapper/0", pid 0, jiffies 4294667296
      kmemleak:   min_count = 0
      kmemleak:   count = 0
      kmemleak:   flags = 0x1
      kmemleak:   checksum = 0
      kmemleak:   backtrace:
            log_early+0x63/0x77
            kmemleak_alloc+0x4b/0x50
            init_section_page_cgroup+0x7f/0xf5
            page_cgroup_init+0xc5/0xd0
            start_kernel+0x333/0x408
            x86_64_start_reservations+0x2a/0x2c
            x86_64_start_kernel+0xf5/0xfc
    
    Fixes: ff7ee93f4715 (cgroup/kmemleak: Annotate alloc_page() for cgroup allocations)
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Acked-by: Michal Hocko <mhocko@suse.cz>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f0c3c2369bc2125b60eec4b022234f14a632c83c
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Tue Oct 28 21:01:53 2014 -0700

    ASoC: fsi: remove unsupported PAUSE flag
    
    commit c1b9b9b1ad2df6144ca3fbe6989f7bd9ea5c5562 upstream.
    
    FSI doesn't support PAUSE.
    Remove SNDRV_PCM_INFO_PAUSE flags from snd_pcm_hardware info
    
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bfcd39f007a988a6e7df35e1e144f46aae7a9188
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Oct 28 13:16:28 2014 -0700

    zap_pte_range: update addr when forcing flush after TLB batching faiure
    
    commit ce9ec37bddb633404a0c23e1acb181a264e7f7f2 upstream.
    
    When unmapping a range of pages in zap_pte_range, the page being
    unmapped is added to an mmu_gather_batch structure for asynchronous
    freeing. If we run out of space in the batch structure before the range
    has been completely unmapped, then we break out of the loop, force a
    TLB flush and free the pages that we have batched so far. If there are
    further pages to unmap, then we resume the loop where we left off.
    
    Unfortunately, we forget to update addr when we break out of the loop,
    which causes us to truncate the range being invalidated as the end
    address is exclusive. When we re-enter the loop at the same address, the
    page has already been freed and the pte_present test will fail, meaning
    that we do not reconsider the address for invalidation.
    
    This patch fixes the problem by incrementing addr by the PAGE_SIZE
    before breaking out of the loop on batch failure.
    
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2: adjust context; add braces]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8e489bc711592f85edf3d2c8f3e62b989f5a418b
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Sun Oct 26 15:18:42 2014 -0400

    drm/radeon: remove invalid pci id
    
    commit 8c3e434769b1707fd2d24de5a2eb25fedc634c4a upstream.
    
    0x4c6e is a secondary device id so should not be used
    by the driver.
    
    Noticed-by: Mark Kettenis <mark.kettenis@xs4all.nl>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fcd6fc68eeec33fea2ea80db854c854cc8daa00d
Author: Dmitry Kasatkin <d.kasatkin@samsung.com>
Date:   Tue Oct 28 14:28:49 2014 +0200

    evm: check xattr value length and type in evm_inode_setxattr()
    
    commit 3b1deef6b1289a99505858a3b212c5b50adf0c2f upstream.
    
    evm_inode_setxattr() can be called with no value. The function does not
    check the length so that following command can be used to produce the
    kernel oops: setfattr -n security.evm FOO. This patch fixes it.
    
    Changes in v3:
    * there is no reason to return different error codes for EVM_XATTR_HMAC
      and non EVM_XATTR_HMAC. Remove unnecessary test then.
    
    Changes in v2:
    * testing for validity of xattr type
    
    [ 1106.396921] BUG: unable to handle kernel NULL pointer dereference at           (null)
    [ 1106.398192] IP: [<ffffffff812af7b8>] evm_inode_setxattr+0x2a/0x48
    [ 1106.399244] PGD 29048067 PUD 290d7067 PMD 0
    [ 1106.399953] Oops: 0000 [#1] SMP
    [ 1106.400020] Modules linked in: bridge stp llc evdev serio_raw i2c_piix4 button fuse
    [ 1106.400020] CPU: 0 PID: 3635 Comm: setxattr Not tainted 3.16.0-kds+ #2936
    [ 1106.400020] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    [ 1106.400020] task: ffff8800291a0000 ti: ffff88002917c000 task.ti: ffff88002917c000
    [ 1106.400020] RIP: 0010:[<ffffffff812af7b8>]  [<ffffffff812af7b8>] evm_inode_setxattr+0x2a/0x48
    [ 1106.400020] RSP: 0018:ffff88002917fd50  EFLAGS: 00010246
    [ 1106.400020] RAX: 0000000000000000 RBX: ffff88002917fdf8 RCX: 0000000000000000
    [ 1106.400020] RDX: 0000000000000000 RSI: ffffffff818136d3 RDI: ffff88002917fdf8
    [ 1106.400020] RBP: ffff88002917fd68 R08: 0000000000000000 R09: 00000000003ec1df
    [ 1106.400020] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800438a0a00
    [ 1106.400020] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    [ 1106.400020] FS:  00007f7dfa7d7740(0000) GS:ffff88005da00000(0000) knlGS:0000000000000000
    [ 1106.400020] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 1106.400020] CR2: 0000000000000000 CR3: 000000003763e000 CR4: 00000000000006f0
    [ 1106.400020] Stack:
    [ 1106.400020]  ffff8800438a0a00 ffff88002917fdf8 0000000000000000 ffff88002917fd98
    [ 1106.400020]  ffffffff812a1030 ffff8800438a0a00 ffff88002917fdf8 0000000000000000
    [ 1106.400020]  0000000000000000 ffff88002917fde0 ffffffff8116d08a ffff88002917fdc8
    [ 1106.400020] Call Trace:
    [ 1106.400020]  [<ffffffff812a1030>] security_inode_setxattr+0x5d/0x6a
    [ 1106.400020]  [<ffffffff8116d08a>] vfs_setxattr+0x6b/0x9f
    [ 1106.400020]  [<ffffffff8116d1e0>] setxattr+0x122/0x16c
    [ 1106.400020]  [<ffffffff811687e8>] ? mnt_want_write+0x21/0x45
    [ 1106.400020]  [<ffffffff8114d011>] ? __sb_start_write+0x10f/0x143
    [ 1106.400020]  [<ffffffff811687e8>] ? mnt_want_write+0x21/0x45
    [ 1106.400020]  [<ffffffff811687c0>] ? __mnt_want_write+0x48/0x4f
    [ 1106.400020]  [<ffffffff8116d3e6>] SyS_setxattr+0x6e/0xb0
    [ 1106.400020]  [<ffffffff81529da9>] system_call_fastpath+0x16/0x1b
    [ 1106.400020] Code: c3 0f 1f 44 00 00 55 48 89 e5 41 55 49 89 d5 41 54 49 89 fc 53 48 89 f3 48 c7 c6 d3 36 81 81 48 89 df e8 18 22 04 00 85 c0 75 07 <41> 80 7d 00 02 74 0d 48 89 de 4c 89 e7 e8 5a fe ff ff eb 03 83
    [ 1106.400020] RIP  [<ffffffff812af7b8>] evm_inode_setxattr+0x2a/0x48
    [ 1106.400020]  RSP <ffff88002917fd50>
    [ 1106.400020] CR2: 0000000000000000
    [ 1106.428061] ---[ end trace ae08331628ba3050 ]---
    
    Reported-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
    Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5955adc323822ffe85c2bfd7c7e1224c1bfaca66
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Oct 28 12:42:19 2014 +0100

    ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat mode
    
    commit 317168d0c766defd14b3d0e9c2c4a9a258b803ee upstream.
    
    In compat mode, we copy each field of snd_pcm_status struct but don't
    touch the reserved fields, and this leaves uninitialized values
    there.  Meanwhile the native ioctl does zero-clear the whole
    structure, so we should follow the same rule in compat mode, too.
    
    Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cdeecb8176e2c86270af8f1aadb70869ac67a745
Author: Imre Deak <imre.deak@intel.com>
Date:   Fri Oct 24 20:29:10 2014 +0300

    PM / Sleep: fix recovery during resuming from hibernation
    
    commit 94fb823fcb4892614f57e59601bb9d4920f24711 upstream.
    
    If a device's dev_pm_ops::freeze callback fails during the QUIESCE
    phase, we don't rollback things correctly calling the thaw and complete
    callbacks. This could leave some devices in a suspended state in case of
    an error during resuming from hibernation.
    
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 629bfb0458da894f321b031cf88dbde05881c711
Author: James Ralston <james.d.ralston@intel.com>
Date:   Mon Oct 13 15:16:38 2014 -0700

    ahci: Add Device IDs for Intel Sunrise Point PCH
    
    commit 690000b930456a98663567d35dd5c54b688d1e3f upstream.
    
    This patch adds the AHCI-mode SATA Device IDs for the Intel Sunrise Point PCH.
    
    Signed-off-by: James Ralston <james.d.ralston@intel.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d3d6c329330bd0f2821b0ba83a27693e99265866
Author: Tejun Heo <tj@kernel.org>
Date:   Mon Oct 27 10:22:56 2014 -0400

    ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks
    
    commit 66a7cbc303f4d28f201529b06061944d51ab530c upstream.
    
    Samsung pci-e SSDs on macbooks failed miserably on NCQ commands, so
    67809f85d31e ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks")
    disabled NCQ on them.  It turns out that NCQ is fine as long as MSI is
    not used, so let's turn off MSI and leave NCQ on.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=60731
    Tested-by: <dorin@i51.org>
    Tested-by: Imre Kaloz <kaloz@openwrt.org>
    Fixes: 67809f85d31e ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks")
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a708b76a5c74624ac0bb5a70c892511536c37869
Author: Brian Silverman <bsilver16384@gmail.com>
Date:   Sat Oct 25 20:20:37 2014 -0400

    futex: Fix a race condition between REQUEUE_PI and task death
    
    commit 30a6b8031fe14031ab27c1fa3483cb9780e7f63c upstream.
    
    free_pi_state and exit_pi_state_list both clean up futex_pi_state's.
    exit_pi_state_list takes the hb lock first, and most callers of
    free_pi_state do too. requeue_pi doesn't, which means free_pi_state
    can free the pi_state out from under exit_pi_state_list. For example:
    
    task A                            |  task B
    exit_pi_state_list                |
      pi_state =                      |
          curr->pi_state_list->next   |
                                      |  futex_requeue(requeue_pi=1)
                                      |    // pi_state is the same as
                                      |    // the one in task A
                                      |    free_pi_state(pi_state)
                                      |      list_del_init(&pi_state->list)
                                      |      kfree(pi_state)
      list_del_init(&pi_state->list)  |
    
    Move the free_pi_state calls in requeue_pi to before it drops the hb
    locks which it's already holding.
    
    [ tglx: Removed a pointless free_pi_state() call and the hb->lock held
      	debugging. The latter comes via a seperate patch ]
    
    Signed-off-by: Brian Silverman <bsilver16384@gmail.com>
    Cc: austin.linux@gmail.com
    Cc: darren@dvhart.com
    Cc: peterz@infradead.org
    Link: http://lkml.kernel.org/r/1414282837-23092-1-git-send-email-bsilver16384@gmail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3cd3a349aa3519b88d29845c0bc36bcbae158e93
Author: Mathias Krause <minipli@googlemail.com>
Date:   Sat Oct 4 23:06:39 2014 +0200

    posix-timers: Fix stack info leak in timer_create()
    
    commit 6891c4509c792209c44ced55a60f13954cb50ef4 upstream.
    
    If userland creates a timer without specifying a sigevent info, we'll
    create one ourself, using a stack local variable. Particularly will we
    use the timer ID as sival_int. But as sigev_value is a union containing
    a pointer and an int, that assignment will only partially initialize
    sigev_value on systems where the size of a pointer is bigger than the
    size of an int. On such systems we'll copy the uninitialized stack bytes
    from the timer_create() call to userland when the timer actually fires
    and we're going to deliver the signal.
    
    Initialize sigev_value with 0 to plug the stack info leak.
    
    Found in the PaX patch, written by the PaX Team.
    
    Fixes: 5a9fa7307285 ("posix-timers: kill ->it_sigev_signo and...")
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Brad Spengler <spender@grsecurity.net>
    Cc: PaX Team <pageexec@freemail.hu>
    Link: http://lkml.kernel.org/r/1412456799-32339-1-git-send-email-minipli@googlemail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 24dd5191befdde39387852fa03f61f17b742801c
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Oct 24 14:55:24 2014 -0700

    Input: i8042 - quirks for Fujitsu Lifebook A544 and Lifebook AH544
    
    commit 993b3a3f80a7842a48cd46c2b41e1b3ef6302468 upstream.
    
    These models need i8042.notimeout, otherwise the touchpad will not work.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=69731
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1111138
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8200024f8aa83d5900480c74f65f46d536a4fe62
Author: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Date:   Fri Oct 17 22:55:59 2014 +0200

    kvm: fix excessive pages un-pinning in kvm_iommu_map error path.
    
    commit 3d32e4dbe71374a6780eaf51d719d76f9a9bf22f upstream.
    
    The third parameter of kvm_unpin_pages() when called from
    kvm_iommu_map_pages() is wrong, it should be the number of pages to un-pin
    and not the page size.
    
    This error was facilitated with an inconsistent API: kvm_pin_pages() takes
    a size, but kvn_unpin_pages() takes a number of pages, so fix the problem
    by matching the two.
    
    This was introduced by commit 350b8bd ("kvm: iommu: fix the third parameter
    of kvm_iommu_put_pages (CVE-2014-3601)"), which fixes the lack of
    un-pinning for pages intended to be un-pinned (i.e. memory leak) but
    unfortunately potentially aggravated the number of pages we un-pin that
    should have stayed pinned. As far as I understand though, the same
    practical mitigations apply.
    
    This issue was found during review of Red Hat 6.6 patches to prepare
    Ksplice rebootless updates.
    
    Thanks to Vegard for his time on a late Friday evening to help me in
    understanding this code.
    
    Fixes: 350b8bd ("kvm: iommu: fix the third parameter of... (CVE-2014-3601)")
    Cc: stable@vger.kernel.org
    Signed-off-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Jamie Iles <jamie.iles@oracle.com>
    Reviewed-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    [bwh: Backported to 3.2: kvm_pin_pages() also takes a struct kvm *kvm param]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 55650fcd6b7d38a6a9345c60fba3f03ffac699d9
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Thu Sep 18 16:21:16 2014 +0300

    kvm: x86: don't kill guest on unknown exit reason
    
    commit 2bc19dc3754fc066c43799659f0d848631c44cfe upstream.
    
    KVM_EXIT_UNKNOWN is a kvm bug, we don't really know whether it was
    triggered by a priveledged application.  Let's not kill the guest: WARN
    and inject #UD instead.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 55245a00f8bda64f93b4a0d751dc4cb7362b5d46
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Mon Oct 20 09:39:31 2014 +0100

    MIPS: ftrace: Fix a microMIPS build problem
    
    commit aedd153f5bb5b1f1d6d9142014f521ae2ec294cc upstream.
    
    Code before the .fixup section needs to have the .insn directive.
    This has no side effects on MIPS32/64 but it affects the way microMIPS
    loads the address for the return label.
    
    Fixes the following build problem:
    mips-linux-gnu-ld: arch/mips/built-in.o: .fixup+0x4a0: Unsupported jump between
    ISA modes; consider recompiling with interlinking enabled.
    mips-linux-gnu-ld: final link failed: Bad value
    Makefile:819: recipe for target 'vmlinux' failed
    
    The fix is similar to 1658f914ff91c3bf ("MIPS: microMIPS:
    Disable LL/SC and fix linker bug.")
    
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/8117/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 758bcfbbe07b5afed0d62be4015ed73a165455b8
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Wed Oct 22 14:46:29 2014 -0400

    nfsd4: fix crash on unknown operation number
    
    commit 51904b08072a8bf2b9ed74d1bd7a5300a614471d upstream.
    
    Unknown operation numbers are caught in nfsd4_decode_compound() which
    sets op->opnum to OP_ILLEGAL and op->status to nfserr_op_illegal.  The
    error causes the main loop in nfsd4_proc_compound() to skip most
    processing.  But nfsd4_proc_compound also peeks ahead at the next
    operation in one case and doesn't take similar precautions there.
    
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b4e59eddd5b2ceb8f45e7f5203e36dac447c4805
Author: Felipe Balbi <balbi@ti.com>
Date:   Fri Oct 17 11:10:25 2014 -0500

    usb: gadget: udc: core: fix kernel oops with soft-connect
    
    commit bfa6b18c680450c17512c741ed1d818695747621 upstream.
    
    Currently, there's no guarantee that udc->driver
    will be valid when using soft_connect sysfs
    interface. In fact, we can very easily trigger
    a NULL pointer dereference by trying to disconnect
    when a gadget driver isn't loaded.
    
    Fix this bug:
    
    ~# echo disconnect > soft_connect
    [   33.685743] Unable to handle kernel NULL pointer dereference at virtual address 00000014
    [   33.694221] pgd = ed0cc000
    [   33.697174] [00000014] *pgd=ae351831, *pte=00000000, *ppte=00000000
    [   33.703766] Internal error: Oops: 17 [#1] SMP ARM
    [   33.708697] Modules linked in: xhci_plat_hcd xhci_hcd snd_soc_davinci_mcasp snd_soc_tlv320aic3x snd_soc_edma snd_soc_omap snd_soc_evm snd_soc_core dwc3 snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd lis3lv02d_i2c matrix_keypad lis3lv02d dwc3_omap input_polldev soundcore
    [   33.734372] CPU: 0 PID: 1457 Comm: bash Not tainted 3.17.0-09740-ga93416e-dirty #345
    [   33.742457] task: ee71ce00 ti: ee68a000 task.ti: ee68a000
    [   33.748116] PC is at usb_udc_softconn_store+0xa4/0xec
    [   33.753416] LR is at mark_held_locks+0x78/0x90
    [   33.758057] pc : [<c04df128>]    lr : [<c00896a4>]    psr: 20000013
    [   33.758057] sp : ee68bec8  ip : c0c00008  fp : ee68bee4
    [   33.770050] r10: ee6b394c  r9 : ee68bf80  r8 : ee6062c0
    [   33.775508] r7 : 00000000  r6 : ee6062c0  r5 : 0000000b  r4 : ee739408
    [   33.782346] r3 : 00000000  r2 : 00000000  r1 : ee71d390  r0 : ee664170
    [   33.789168] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [   33.796636] Control: 10c5387d  Table: ad0cc059  DAC: 00000015
    [   33.802638] Process bash (pid: 1457, stack limit = 0xee68a248)
    [   33.808740] Stack: (0xee68bec8 to 0xee68c000)
    [   33.813299] bec0:                   0000000b c0411284 ee6062c0 00000000 ee68bef4 ee68bee8
    [   33.821862] bee0: c04112ac c04df090 ee68bf14 ee68bef8 c01c2868 c0411290 0000000b ee6b3940
    [   33.830419] bf00: 00000000 00000000 ee68bf4c ee68bf18 c01c1a24 c01c2818 00000000 00000000
    [   33.838990] bf20: ee61b940 ee2f47c0 0000000b 000ce408 ee68bf80 c000f304 ee68a000 00000000
    [   33.847544] bf40: ee68bf7c ee68bf50 c0152dd8 c01c1960 ee68bf7c c0170af8 ee68bf7c ee2f47c0
    [   33.856099] bf60: ee2f47c0 000ce408 0000000b c000f304 ee68bfa4 ee68bf80 c0153330 c0152d34
    [   33.864653] bf80: 00000000 00000000 0000000b 000ce408 b6e7fb50 00000004 00000000 ee68bfa8
    [   33.873204] bfa0: c000f080 c01532e8 0000000b 000ce408 00000001 000ce408 0000000b 00000000
    [   33.881763] bfc0: 0000000b 000ce408 b6e7fb50 00000004 0000000b 00000000 000c5758 00000000
    [   33.890319] bfe0: 00000000 bec2c924 b6de422d b6e1d226 40000030 00000001 75716d2f 00657565
    [   33.898890] [<c04df128>] (usb_udc_softconn_store) from [<c04112ac>] (dev_attr_store+0x28/0x34)
    [   33.907920] [<c04112ac>] (dev_attr_store) from [<c01c2868>] (sysfs_kf_write+0x5c/0x60)
    [   33.916200] [<c01c2868>] (sysfs_kf_write) from [<c01c1a24>] (kernfs_fop_write+0xd0/0x194)
    [   33.924773] [<c01c1a24>] (kernfs_fop_write) from [<c0152dd8>] (vfs_write+0xb0/0x1bc)
    [   33.932874] [<c0152dd8>] (vfs_write) from [<c0153330>] (SyS_write+0x54/0xb0)
    [   33.940247] [<c0153330>] (SyS_write) from [<c000f080>] (ret_fast_syscall+0x0/0x48)
    [   33.948160] Code: e1a01007 e12fff33 e5140004 e5143008 (e5933014)
    [   33.954625] ---[ end trace f849bead94eab7ea ]---
    
    Fixes: 2ccea03 (usb: gadget: introduce UDC Class)
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 14945e0c7ba2123a93621d7af439999972cd0dca
Author: Perry Hung <iperry@gmail.com>
Date:   Wed Oct 22 23:31:34 2014 -0400

    usb: serial: ftdi_sio: add "bricked" FTDI device PID
    
    commit 7f2719f0003da1ad13124ef00f48d7514c79e30d upstream.
    
    An official recent Windows driver from FTDI detects counterfeit devices
    and reprograms the internal EEPROM containing the USB PID to 0, effectively
    bricking the device.
    
    Add support for this VID/PID pair to correctly bind the driver on these
    devices.
    
    See:
    http://hackaday.com/2014/10/22/watch-that-windows-update-ftdi-drivers-are-killing-fake-chips/
    
    Signed-off-by: Perry Hung <iperry@gmail.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d73b032b63e8967462e1cf5763858ed89e97880f
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 22 20:13:39 2014 -0600

    scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND
    
    commit 84ce0f0e94ac97217398b3b69c21c7a62ebeed05 upstream.
    
    When sg_scsi_ioctl() fails to prepare request to submit in
    blk_rq_map_kern() we jump to a label where we just end up copying
    (luckily zeroed-out) kernel buffer to userspace instead of reporting
    error. Fix the problem by jumping to the right label.
    
    CC: Jens Axboe <axboe@kernel.dk>
    CC: linux-scsi@vger.kernel.org
    Coverity-id: 1226871
    Signed-off-by: Jan Kara <jack@suse.cz>
    
    Fixed up the, now unused, out label.
    
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 50a977230b76989c275125016c32e536921c7f75
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Wed Oct 15 10:12:07 2014 -0700

    x86, apic: Handle a bad TSC more gracefully
    
    commit b47dcbdc5161d3d5756f430191e2840d9b855492 upstream.
    
    If the TSC is unusable or disabled, then this patch fixes:
    
     - Confusion while trying to clear old APIC interrupts.
     - Division by zero and incorrect programming of the TSC deadline
       timer.
    
    This fixes boot if the CPU has a TSC deadline timer but a missing or
    broken TSC.  The failure to boot can be observed with qemu using
    -cpu qemu64,-tsc,+tsc-deadline
    
    This also happens to me in nested KVM for unknown reasons.
    With this patch, I can boot cleanly (although without a TSC).
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Cc: Bandan Das <bsd@redhat.com>
    Link: http://lkml.kernel.org/r/e2fa274e498c33988efac0ba8b7e3120f7f92d78.1413393027.git.luto@amacapital.net
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c9f1417be9acae3a9867f8bdab2b7924d76cf6ac
Author: Shai Fultheim <shai@scalemp.com>
Date:   Fri Apr 20 01:12:32 2012 +0300

    x86: Conditionally update time when ack-ing pending irqs
    
    commit 42fa4250436304d4650fa271f37671f6cee24e08 upstream.
    
    On virtual environments, apic_read could take a long time. As a
    result, under certain conditions the ack pending loop may exit
    without any queued irqs left, but after more than one second. A
    warning will be printed needlessly in this case.
    
    If the loop is about to exit regardless of max_loops, don't
    update it.
    
    Signed-off-by: Shai Fultheim <shai@scalemp.com>
    [ rebased and reworded the commit message]
    Signed-off-by: Ido Yariv <ido@wizery.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1334873552-31346-1-git-send-email-ido@wizery.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 468afa5d9a35be04166f8b40729db78cca25c905
Author: Dan Williams <dcbw@redhat.com>
Date:   Tue Oct 14 11:10:41 2014 -0500

    USB: option: add Haier CE81B CDMA modem
    
    commit 012eee1522318b5ccd64d277d50ac32f7e9974fe upstream.
    
    Port layout:
    
    0: QCDM/DIAG
    1: NMEA
    2: AT
    3: AT/PPP
    
    Signed-off-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1e47552e9393cbc707e36d678a9f984228ff2b74
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Tue Oct 14 10:47:37 2014 +0200

    usb: option: add support for Telit LE910
    
    commit 2d0eb862dd477c3c4f32b201254ca0b40e6f465c upstream.
    
    Add VID/PID for Telit LE910 modem. Interfaces description is almost the
    same than LE920, except that the qmi interface is number 2 (instead than
    5).
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5d839a7f4f120714546700e6a637ea66612bb529
Author: Frans Klaver <frans.klaver@xsens.com>
Date:   Fri Oct 10 11:52:08 2014 +0200

    usb: serial: ftdi_sio: add Awinda Station and Dongle products
    
    commit edd74ffab1f6909eee400c7de8ce621870aacac9 upstream.
    
    Add new IDs for the Xsens Awinda Station and Awinda Dongle.
    
    While at it, order the definitions by PID and add a logical separation
    between devices using Xsens' VID and those using FTDI's VID.
    
    Signed-off-by: Frans Klaver <frans.klaver@xsens.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c72e1fb02aa02817a74cdbe0d222a30c65490737
Author: Nathaniel Ting <nathaniel.ting@silabs.com>
Date:   Fri Oct 3 12:01:20 2014 -0400

    USB: serial: cp210x: add Silicon Labs 358x VID and PID
    
    commit 35cc83eab097e5720a9cc0ec12bdc3a726f58381 upstream.
    
    Enable Silicon Labs Ember VID chips to enumerate with the cp210x usb serial
    driver. EM358x devices operating with the Ember Z-Net 5.1.2 stack may now
    connect to host PCs over a USB serial link.
    
    Signed-off-by: Nathaniel Ting <nathaniel.ting@silabs.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 817d49f149c25456be53371cd9386e70a08869e4
Author: Jan Kara <jack@suse.cz>
Date:   Tue Sep 16 22:23:10 2014 +0200

    ext3: Don't check quota format when there are no quota files
    
    commit 7938db449bbc55bbeb164bec7af406212e7e98f1 upstream.
    
    The check whether quota format is set even though there are no
    quota files with journalled quota is pointless and it actually
    makes it impossible to turn off journalled quotas (as there's
    no way to unset journalled quota format). Just remove the check.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bfe9c9984fa995f4671ad4ea0cc994271b6d1bc5
Author: Heinz Mauelshagen <heinzm@redhat.com>
Date:   Fri Oct 17 13:38:50 2014 +0200

    dm raid: ensure superblock's size matches device's logical block size
    
    commit 40d43c4b4cac4c2647bf07110d7b07d35f399a84 upstream.
    
    The dm-raid superblock (struct dm_raid_superblock) is padded to 512
    bytes and that size is being used to read it in from the metadata
    device into one preallocated page.
    
    Reading or writing this on a 512-byte sector device works fine but on
    a 4096-byte sector device this fails.
    
    Set the dm-raid superblock's size to the logical block size of the
    metadata device, because IO at that size is guaranteed too work.  Also
    add a size check to avoid silent partial metadata loss in case the
    superblock should ever grow past the logical block size or PAGE_SIZE.
    
    [includes pointer math fix from Dan Carpenter]
    Reported-by: "Liuhua Wang" <lwang@suse.com>
    Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c342e03d3f853c019613ec5a2d1a24ae46014c87
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Mon Oct 6 21:01:17 2014 +0400

    xtensa: re-wire umount syscall to sys_oldumount
    
    commit 2651cc6974d47fc43bef1cd8cd26966e4f5ba306 upstream.
    
    Userspace actually passes single parameter (path name) to the umount
    syscall, so new umount just fails. Fix it by requesting old umount
    syscall implementation and re-wiring umount to it.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2bdb21fe06c81e977e2bcf1ad3063ba96db9563f
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Tue Aug 26 23:16:35 2014 -0400

    random: add and use memzero_explicit() for clearing data
    
    commit d4c5efdb97773f59a2b711754ca0953f24516739 upstream.
    
    zatimend has reported that in his environment (3.16/gcc4.8.3/corei7)
    memset() calls which clear out sensitive data in extract_{buf,entropy,
    entropy_user}() in random driver are being optimized away by gcc.
    
    Add a helper memzero_explicit() (similarly as explicit_bzero() variants)
    that can be used in such cases where a variable with sensitive data is
    being cleared out in the end. Other use cases might also be in crypto
    code. [ I have put this into lib/string.c though, as it's always built-in
    and doesn't need any dependencies then. ]
    
    Fixes kernel bugzilla: 82041
    
    Reported-by: zatimend@hotmail.co.uk
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 3.2:
     - extract_buf() needs to use this for the 'extract' array as well
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ce2584379f31cfc44bbe770bb78430950a24156e
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Thu Dec 11 02:43:02 2014 +0000

    compiler: Define OPTIMIZER_HIDE_VAR
    
    Part of upstream commit fe8c8a126806 ('crypto: more robust
    crypto_memneq'), needed by commit d4c5efdb9777 ('random: add and use
    memzero_explicit() for clearing data').

commit 79702f960693a85b2925dde7f73c623a034c8be4
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu Oct 16 14:45:20 2014 -0400

    dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks
    
    commit 9d28eb12447ee08bb5d1e8bb3195cf20e1ecd1c0 upstream.
    
    The shrinker uses gfp flags to indicate what kind of operation can the
    driver wait for. If __GFP_IO flag is present, the driver can wait for
    block I/O operations, if __GFP_FS flag is present, the driver can wait on
    operations involving the filesystem.
    
    dm-bufio tested for __GFP_IO. However, dm-bufio can run on a loop block
    device that makes calls into the filesystem. If __GFP_IO is present and
    __GFP_FS isn't, dm-bufio could still block on filesystem operations if it
    runs on a loop block device.
    
    The change from __GFP_IO to __GFP_FS supposedly fixes one observed (though
    unreproducible) deadlock involving dm-bufio and loop device.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    [bwh: Backported to 3.2:
     - There's only one shrinker callback
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 31f3cadcdc121a21e38d6f8b583a6fe4b3edfd2d
Author: Stephen Smalley <sds@tycho.nsa.gov>
Date:   Mon Oct 6 16:32:52 2014 -0400

    selinux: fix inode security list corruption
    
    commit 923190d32de4428afbea5e5773be86bea60a9925 upstream.
    
    sb_finish_set_opts() can race with inode_free_security()
    when initializing inode security structures for inodes
    created prior to initial policy load or by the filesystem
    during ->mount().   This appears to have always been
    a possible race, but commit 3dc91d4 ("SELinux:  Fix possible
    NULL pointer dereference in selinux_inode_permission()")
    made it more evident by immediately reusing the unioned
    list/rcu element  of the inode security structure for call_rcu()
    upon an inode_free_security().  But the underlying issue
    was already present before that commit as a possible use-after-free
    of isec.
    
    Shivnandan Kumar reported the list corruption and proposed
    a patch to split the list and rcu elements out of the union
    as separate fields of the inode_security_struct so that setting
    the rcu element would not affect the list element.  However,
    this would merely hide the issue and not truly fix the code.
    
    This patch instead moves up the deletion of the list entry
    prior to dropping the sbsec->isec_lock initially.  Then,
    if the inode is dropped subsequently, there will be no further
    references to the isec.
    
    Reported-by: Shivnandan Kumar <shivnandan.k@samsung.com>
    Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d2e594f2017011400253a62adc7352f02204d1dd
Author: Ilya Dryomov <idryomov@redhat.com>
Date:   Fri Oct 10 16:39:05 2014 +0400

    libceph: ceph-msgr workqueue needs a resque worker
    
    commit f9865f06f7f18c6661c88d0511f05c48612319cc upstream.
    
    Commit f363e45fd118 ("net/ceph: make ceph_msgr_wq non-reentrant")
    effectively removed WQ_MEM_RECLAIM flag from ceph_msgr_wq.  This is
    wrong - libceph is very much a memory reclaim path, so restore it.
    
    Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
    Tested-by: Micha Krause <micha@krausam.de>
    Reviewed-by: Sage Weil <sage@redhat.com>
    [bwh: Backported to 3.2:
     - Keep passing the WQ_NON_REENTRANT flag too
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9aaf9678ea3ea80416fa5c8f389f76c497038d89
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Oct 13 23:18:02 2014 +0200

    ALSA: emu10k1: Fix deadlock in synth voice lookup
    
    commit 95926035b187cc9fee6fb61385b7da9c28123f74 upstream.
    
    The emu10k1 voice allocator takes voice_lock spinlock.  When there is
    no empty stream available, it tries to release a voice used by synth,
    and calls get_synth_voice.  The callback function,
    snd_emu10k1_synth_get_voice(), however, also takes the voice_lock,
    thus it deadlocks.
    
    The fix is simply removing the voice_lock holds in
    snd_emu10k1_synth_get_voice(), as this is always called in the
    spinlock context.
    
    Reported-and-tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 46cf7e22a4978af2710cca32ed0354c5982765c9
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Mon Oct 13 15:51:05 2014 -0700

    kernel: add support for gcc 5
    
    commit 71458cfc782eafe4b27656e078d379a34e472adf upstream.
    
    We're missing include/linux/compiler-gcc5.h which is required now
    because gcc branched off to v5 in trunk.
    
    Just copy the relevant bits out of include/linux/compiler-gcc4.h,
    no new code is added as of now.
    
    This fixes a build error when using gcc 5.
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5881da41756f21f9a70440ae1cbfd6c9473c9da3
Author: Ray Jui <rjui@broadcom.com>
Date:   Thu Oct 9 11:44:54 2014 -0700

    spi: pl022: Fix incorrect dma_unmap_sg
    
    commit 3ffa6158f002e096d28ede71be4e0ee8ab20baa2 upstream.
    
    When mapped RX DMA entries are unmapped in an error condition when DMA
    is firstly configured in the driver, the number of TX DMA entries was
    passed in, which is incorrect
    
    Signed-off-by: Ray Jui <rjui@broadcom.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1ec4a6e216f8b1b4481fd5e3b399de243737002b
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Sat Oct 11 19:51:17 2014 -0400

    ext4: fix reservation overflow in ext4_da_write_begin
    
    commit 0ff8947fc5f700172b37cbca811a38eb9cb81e08 upstream.
    
    Delalloc write journal reservations only reserve 1 credit,
    to update the inode if necessary.  However, it may happen
    once in a filesystem's lifetime that a file will cross
    the 2G threshold, and require the LARGE_FILE feature to
    be set in the superblock as well, if it was not set already.
    
    This overruns the transaction reservation, and can be
    demonstrated simply on any ext4 filesystem without the LARGE_FILE
    feature already set:
    
    dd if=/dev/zero of=testfile bs=1 seek=2147483646 count=1 \
    	conv=notrunc of=testfile
    sync
    dd if=/dev/zero of=testfile bs=1 seek=2147483647 count=1 \
    	conv=notrunc of=testfile
    
    leads to:
    
    EXT4-fs: ext4_do_update_inode:4296: aborting transaction: error 28 in __ext4_handle_dirty_super
    EXT4-fs error (device loop0) in ext4_do_update_inode:4301: error 28
    EXT4-fs error (device loop0) in ext4_reserve_inode_write:4757: Readonly filesystem
    EXT4-fs error (device loop0) in ext4_dirty_inode:4876: error 28
    EXT4-fs error (device loop0) in ext4_da_write_end:2685: error 28
    
    Adjust the number of credits based on whether the flag is
    already set, and whether the current write may extend past the
    LARGE_FILE limit.
    
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    [bwh: Backported to 3.2:
     - ext4_journal_start() doesn't have a type parameter
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 02e0eb672fcaf451a4c5c185c8a6b987dd9120d3
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Oct 11 11:27:37 2014 -0700

    Input: i8042 - add noloop quirk for Asus X750LN
    
    commit 9ff84a17302aeb8913ff244ecc0d8f9d219fecb5 upstream.
    
    Without this the aux port does not get detected, and consequently the
    touchpad will not work.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1110011
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f317d86cd8edcdcbb0d761137de0375b036f9145
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Tue Sep 2 09:49:18 2014 -0700

    Input: synaptics - gate forcepad support by DMI check
    
    commit aa972409951e0675e07918620427517cad5090e0 upstream.
    
    Unfortunately, ForcePad capability is not actually exported over PS/2, so
    we have to resort to DMI checks.
    
    Reported-by: Nicole Faerber <nicole.faerber@kernelconcepts.de>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e160e937a775e0bca282ff52a403ee6c14b53383
Author: Yann Droneaud <ydroneaud@opteya.com>
Date:   Thu Oct 9 15:24:40 2014 -0700

    fanotify: enable close-on-exec on events' fd when requested in fanotify_init()
    
    commit 0b37e097a648aa71d4db1ad108001e95b69a2da4 upstream.
    
    According to commit 80af258867648 ("fanotify: groups can specify their
    f_flags for new fd"), file descriptors created as part of file access
    notification events inherit flags from the event_f_flags argument passed
    to syscall fanotify_init(2)[1].
    
    Unfortunately O_CLOEXEC is currently silently ignored.
    
    Indeed, event_f_flags are only given to dentry_open(), which only seems to
    care about O_ACCMODE and O_PATH in do_dentry_open(), O_DIRECT in
    open_check_o_direct() and O_LARGEFILE in generic_file_open().
    
    It's a pity, since, according to some lookup on various search engines and
    http://codesearch.debian.net/, there's already some userspace code which
    use O_CLOEXEC:
    
    - in systemd's readahead[2]:
    
        fanotify_fd = fanotify_init(FAN_CLOEXEC|FAN_NONBLOCK, O_RDONLY|O_LARGEFILE|O_CLOEXEC|O_NOATIME);
    
    - in clsync[3]:
    
        #define FANOTIFY_EVFLAGS (O_LARGEFILE|O_RDONLY|O_CLOEXEC)
    
        int fanotify_d = fanotify_init(FANOTIFY_FLAGS, FANOTIFY_EVFLAGS);
    
    - in examples [4] from "Filesystem monitoring in the Linux
      kernel" article[5] by Aleksander Morgado:
    
        if ((fanotify_fd = fanotify_init (FAN_CLOEXEC,
                                          O_RDONLY | O_CLOEXEC | O_LARGEFILE)) < 0)
    
    Additionally, since commit 48149e9d3a7e ("fanotify: check file flags
    passed in fanotify_init").  having O_CLOEXEC as part of fanotify_init()
    second argument is expressly allowed.
    
    So it seems expected to set close-on-exec flag on the file descriptors if
    userspace is allowed to request it with O_CLOEXEC.
    
    But Andrew Morton raised[6] the concern that enabling now close-on-exec
    might break existing applications which ask for O_CLOEXEC but expect the
    file descriptor to be inherited across exec().
    
    In the other hand, as reported by Mihai Dontu[7] close-on-exec on the file
    descriptor returned as part of file access notify can break applications
    due to deadlock.  So close-on-exec is needed for most applications.
    
    More, applications asking for close-on-exec are likely expecting it to be
    enabled, relying on O_CLOEXEC being effective.  If not, it might weaken
    their security, as noted by Jan Kara[8].
    
    So this patch replaces call to macro get_unused_fd() by a call to function
    get_unused_fd_flags() with event_f_flags value as argument.  This way
    O_CLOEXEC flag in the second argument of fanotify_init(2) syscall is
    interpreted and close-on-exec get enabled when requested.
    
    [1] http://man7.org/linux/man-pages/man2/fanotify_init.2.html
    [2] http://cgit.freedesktop.org/systemd/systemd/tree/src/readahead/readahead-collect.c?id=v208#n294
    [3] https://github.com/xaionaro/clsync/blob/v0.2.1/sync.c#L1631
        https://github.com/xaionaro/clsync/blob/v0.2.1/configuration.h#L38
    [4] http://www.lanedo.com/~aleksander/fanotify/fanotify-example.c
    [5] http://www.lanedo.com/2013/filesystem-monitoring-linux-kernel/
    [6] http://lkml.kernel.org/r/20141001153621.65e9258e65a6167bf2e4cb50@linux-foundation.org
    [7] http://lkml.kernel.org/r/20141002095046.3715eb69@mdontu-l
    [8] http://lkml.kernel.org/r/20141002104410.GB19748@quack.suse.cz
    
    Link: http://lkml.kernel.org/r/cover.1411562410.git.ydroneaud@opteya.com
    Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed by: Heinrich Schuchardt <xypron.glpk@gmx.de>
    Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
    Cc: Mihai Don\u021bu <mihai.dontu@gmail.com>
    Cc: Pádraig Brady <P@draigBrady.com>
    Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
    Cc: Michael Kerrisk-manpages <mtk.manpages@gmail.com>
    Cc: Lino Sanfilippo <LinoSanfilippo@gmx.de>
    Cc: Richard Guy Briggs <rgb@redhat.com>
    Cc: Eric Paris <eparis@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5c250851e1f7850dfe765ff8f6d04ef4ce6e19a7
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Wed Oct 8 18:26:13 2014 -0400

    block: fix alignment_offset math that assumes io_min is a power-of-2
    
    commit b8839b8c55f3fdd60dc36abcda7e0266aff7985c upstream.
    
    The math in both blk_stack_limits() and queue_limit_alignment_offset()
    assume that a block device's io_min (aka minimum_io_size) is always a
    power-of-2.  Fix the math such that it works for non-power-of-2 io_min.
    
    This issue (of alignment_offset != 0) became apparent when testing
    dm-thinp with a thinp blocksize that matches a RAID6 stripesize of
    1280K.  Commit fdfb4c8c1 ("dm thin: set minimum_io_size to pool's data
    block size") unlocked the potential for alignment_offset != 0 due to
    the dm-thin-pool's io_min possibly being a non-power-of-2.
    
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a59a6d8aad7120f8cf6b2393d2a1463de0c1ba6c
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Oct 8 23:44:00 2014 -0400

    fix misuses of f_count() in ppp and netlink
    
    commit 24dff96a37a2ca319e75a74d3929b2de22447ca6 upstream.
    
    we used to check for "nobody else could start doing anything with
    that opened file" by checking that refcount was 2 or less - one
    for descriptor table and one we'd acquired in fget() on the way to
    wherever we are.  That was race-prone (somebody else might have
    had a reference to descriptor table and do fget() just as we'd
    been checking) and it had become flat-out incorrect back when
    we switched to fget_light() on those codepaths - unlike fget(),
    it doesn't grab an extra reference unless the descriptor table
    is shared.  The same change allowed a race-free check, though -
    we are safe exactly when refcount is less than 2.
    
    It was a long time ago; pre-2.6.12 for ioctl() (the codepath leading
    to ppp one) and 2.6.17 for sendmsg() (netlink one).  OTOH,
    netlink hadn't grown that check until 3.9 and ppp used to live
    in drivers/net, not drivers/net/ppp until 3.1.  The bug existed
    well before that, though, and the same fix used to apply in old
    location of file.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    [bwh: Backported to 3.2: drop changes to netlink_mmap_sendmsg()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4a49ed835aad6e51d4ab3f3b42a819040768484b
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Sun Jul 27 13:00:41 2014 -0400

    fs: make cont_expand_zero interruptible
    
    commit c2ca0fcd202863b14bd041a7fece2e789926c225 upstream.
    
    This patch makes it possible to kill a process looping in
    cont_expand_zero. A process may spend a lot of time in this function, so
    it is desirable to be able to kill it.
    
    It happened to me that I wanted to copy a piece data from the disk to a
    file. By mistake, I used the "seek" parameter to dd instead of "skip". Due
    to the "seek" parameter, dd attempted to extend the file and became stuck
    doing so - the only possibility was to reset the machine or wait many
    hours until the filesystem runs out of space and cont_expand_zero fails.
    We need this patch to be able to terminate the process.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 73a38fc3d805dadd393453b92d797d5fc08b5641
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sat May 17 20:56:38 2014 +0900

    fs: Fix theoretical division by 0 in super_cache_scan().
    
    commit 475d0db742e3755c6b267f48577ff7cbb7dfda0d upstream.
    
    total_objects could be 0 and is used as a denom.
    
    While total_objects is a "long", total_objects == 0 unlikely happens for
    3.12 and later kernels because 32-bit architectures would not be able to
    hold (1 << 32) objects. However, total_objects == 0 may happen for kernels
    between 3.1 and 3.11 because total_objects in prune_super() was an "int"
    and (e.g.) x86_64 architecture might be able to hold (1 << 32) objects.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7927bb3cb4988170bc9c017fa12e188ae13dd5cb
Author: Scott Carter <ccscott@funsoft.com>
Date:   Wed Sep 24 18:13:09 2014 -0700

    pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller
    
    commit 37017ac6849e772e67dd187ba2fbd056c4afa533 upstream.
    
    The Broadcom OSB4 IDE Controller (vendor and device IDs: 1166:0211)
    does not support 64-KB DMA transfers.
    Whenever a 64-KB DMA transfer is attempted,
    the transfer fails and messages similar to the following
    are written to the console log:
    
       [ 2431.851125] sr 0:0:0:0: [sr0] Unhandled sense code
       [ 2431.851139] sr 0:0:0:0: [sr0]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
       [ 2431.851152] sr 0:0:0:0: [sr0]  Sense Key : Hardware Error [current]
       [ 2431.851166] sr 0:0:0:0: [sr0]  Add. Sense: Logical unit communication time-out
       [ 2431.851182] sr 0:0:0:0: [sr0] CDB: Read(10): 28 00 00 00 76 f4 00 00 40 00
       [ 2431.851210] end_request: I/O error, dev sr0, sector 121808
    
    When the libata and pata_serverworks modules
    are recompiled with ATA_DEBUG and ATA_VERBOSE_DEBUG defined in libata.h,
    the 64-KB transfer size in the scatter-gather list can be seen
    in the console log:
    
       [ 2664.897267] sr 9:0:0:0: [sr0] Send:
       [ 2664.897274] 0xf63d85e0
       [ 2664.897283] sr 9:0:0:0: [sr0] CDB:
       [ 2664.897288] Read(10): 28 00 00 00 7f b4 00 00 40 00
       [ 2664.897319] buffer = 0xf6d6fbc0, bufflen = 131072, queuecommand 0xf81b7700
       [ 2664.897331] ata_scsi_dump_cdb: CDB (1:0,0,0) 28 00 00 00 7f b4 00 00 40
       [ 2664.897338] ata_scsi_translate: ENTER
       [ 2664.897345] ata_sg_setup: ENTER, ata1
       [ 2664.897356] ata_sg_setup: 3 sg elements mapped
       [ 2664.897364] ata_bmdma_fill_sg: PRD[0] = (0x66FD2000, 0xE000)
       [ 2664.897371] ata_bmdma_fill_sg: PRD[1] = (0x65000000, 0x10000)
       ------------------------------------------------------> =======
       [ 2664.897378] ata_bmdma_fill_sg: PRD[2] = (0x66A10000, 0x2000)
       [ 2664.897386] ata1: ata_dev_select: ENTER, device 0, wait 1
       [ 2664.897422] ata_sff_tf_load: feat 0x1 nsect 0x0 lba 0x0 0x0 0xFC
       [ 2664.897428] ata_sff_tf_load: device 0xA0
       [ 2664.897448] ata_sff_exec_command: ata1: cmd 0xA0
       [ 2664.897457] ata_scsi_translate: EXIT
       [ 2664.897462] leaving scsi_dispatch_cmnd()
       [ 2664.897497] Doing sr request, dev = sr0, block = 0
       [ 2664.897507] sr0 : reading 64/256 512 byte blocks.
       [ 2664.897553] ata_sff_hsm_move: ata1: protocol 7 task_state 1 (dev_stat 0x58)
       [ 2664.897560] atapi_send_cdb: send cdb
       [ 2666.910058] ata_bmdma_port_intr: ata1: host_stat 0x64
       [ 2666.910079] __ata_sff_port_intr: ata1: protocol 7 task_state 3
       [ 2666.910093] ata_sff_hsm_move: ata1: protocol 7 task_state 3 (dev_stat 0x51)
       [ 2666.910101] ata_sff_hsm_move: ata1: protocol 7 task_state 4 (dev_stat 0x51)
       [ 2666.910129] sr 9:0:0:0: [sr0] Done:
       [ 2666.910136] 0xf63d85e0 TIMEOUT
    
    lspci shows that the driver used for the Broadcom OSB4 IDE Controller is
    pata_serverworks:
    
       00:0f.1 IDE interface: Broadcom OSB4 IDE Controller (prog-if 8e [Master SecP SecO PriP])
               Flags: bus master, medium devsel, latency 64
               [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
               [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
               I/O ports at 0170 [size=8]
               I/O ports at 0374 [size=4]
               I/O ports at 1440 [size=16]
               Kernel driver in use: pata_serverworks
    
    The pata_serverworks driver supports five distinct device IDs,
    one being the OSB4 and the other four belonging to the CSB series.
    The CSB series appears to support 64-KB DMA transfers,
    as tests on a machine with an SAI2 motherboard
    containing a Broadcom CSB5 IDE Controller (vendor and device IDs: 1166:0212)
    showed no problems with 64-KB DMA transfers.
    
    This problem was first discovered when attempting to install openSUSE
    from a DVD on a machine with an STL2 motherboard.
    Using the pata_serverworks module,
    older releases of openSUSE will not install at all due to the timeouts.
    Releases of openSUSE prior to 11.3 can be installed by disabling
    the pata_serverworks module using the brokenmodules boot parameter,
    which causes the serverworks module to be used instead.
    Recent releases of openSUSE (12.2 and later) include better error recovery and
    will install, though very slowly.
    On all openSUSE releases, the problem can be recreated
    on a machine containing a Broadcom OSB4 IDE Controller
    by mounting an install DVD and running a command similar to the following:
    
       find /mnt -type f -print | xargs cat > /dev/null
    
    The patch below corrects the problem.
    Similar to the other ATA drivers that do not support 64-KB DMA transfers,
    the patch changes the ata_port_operations qc_prep vector to point to a routine
    that breaks any 64-KB segment into two 32-KB segments and
    changes the scsi_host_template sg_tablesize element to reduce by half
    the number of scatter/gather elements allowed.
    These two changes affect only the OSB4.
    
    Signed-off-by: Scott Carter <ccscott@funsoft.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a4f2b936759706e105436fdfd0312dfe949b5205
Author: Chao Yu <chao2.yu@samsung.com>
Date:   Thu Jul 24 17:25:42 2014 +0800

    ecryptfs: avoid to access NULL pointer when write metadata in xattr
    
    commit 35425ea2492175fd39f6116481fe98b2b3ddd4ca upstream.
    
    Christopher Head 2014-06-28 05:26:20 UTC described:
    "I tried to reproduce this on 3.12.21. Instead, when I do "echo hello > foo"
    in an ecryptfs mount with ecryptfs_xattr specified, I get a kernel crash:
    
    BUG: unable to handle kernel NULL pointer dereference at           (null)
    IP: [<ffffffff8110eb39>] fsstack_copy_attr_all+0x2/0x61
    PGD d7840067 PUD b2c3c067 PMD 0
    Oops: 0002 [#1] SMP
    Modules linked in: nvidia(PO)
    CPU: 3 PID: 3566 Comm: bash Tainted: P           O 3.12.21-gentoo-r1 #2
    Hardware name: ASUSTek Computer Inc. G60JX/G60JX, BIOS 206 03/15/2010
    task: ffff8801948944c0 ti: ffff8800bad70000 task.ti: ffff8800bad70000
    RIP: 0010:[<ffffffff8110eb39>]  [<ffffffff8110eb39>] fsstack_copy_attr_all+0x2/0x61
    RSP: 0018:ffff8800bad71c10  EFLAGS: 00010246
    RAX: 00000000000181a4 RBX: ffff880198648480 RCX: 0000000000000000
    RDX: 0000000000000004 RSI: ffff880172010450 RDI: 0000000000000000
    RBP: ffff880198490e40 R08: 0000000000000000 R09: 0000000000000000
    R10: ffff880172010450 R11: ffffea0002c51e80 R12: 0000000000002000
    R13: 000000000000001a R14: 0000000000000000 R15: ffff880198490e40
    FS:  00007ff224caa700(0000) GS:ffff88019fcc0000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000000 CR3: 00000000bb07f000 CR4: 00000000000007e0
    Stack:
    ffffffff811826e8 ffff8800a39d8000 0000000000000000 000000000000001a
    ffff8800a01d0000 ffff8800a39d8000 ffffffff81185fd5 ffffffff81082c2c
    00000001a39d8000 53d0abbc98490e40 0000000000000037 ffff8800a39d8220
    Call Trace:
    [<ffffffff811826e8>] ? ecryptfs_setxattr+0x40/0x52
    [<ffffffff81185fd5>] ? ecryptfs_write_metadata+0x1b3/0x223
    [<ffffffff81082c2c>] ? should_resched+0x5/0x23
    [<ffffffff8118322b>] ? ecryptfs_initialize_file+0xaf/0xd4
    [<ffffffff81183344>] ? ecryptfs_create+0xf4/0x142
    [<ffffffff810f8c0d>] ? vfs_create+0x48/0x71
    [<ffffffff810f9c86>] ? do_last.isra.68+0x559/0x952
    [<ffffffff810f7ce7>] ? link_path_walk+0xbd/0x458
    [<ffffffff810fa2a3>] ? path_openat+0x224/0x472
    [<ffffffff810fa7bd>] ? do_filp_open+0x2b/0x6f
    [<ffffffff81103606>] ? __alloc_fd+0xd6/0xe7
    [<ffffffff810ee6ab>] ? do_sys_open+0x65/0xe9
    [<ffffffff8157d022>] ? system_call_fastpath+0x16/0x1b
    RIP  [<ffffffff8110eb39>] fsstack_copy_attr_all+0x2/0x61
    RSP <ffff8800bad71c10>
    CR2: 0000000000000000
    ---[ end trace df9dba5f1ddb8565 ]---"
    
    If we create a file when we mount with ecryptfs_xattr_metadata option, we will
    encounter a crash in this path:
    ->ecryptfs_create
      ->ecryptfs_initialize_file
        ->ecryptfs_write_metadata
          ->ecryptfs_write_metadata_to_xattr
            ->ecryptfs_setxattr
              ->fsstack_copy_attr_all
    It's because our dentry->d_inode used in fsstack_copy_attr_all is NULL, and it
    will be initialized when ecryptfs_initialize_file finish.
    
    So we should skip copying attr from lower inode when the value of ->d_inode is
    invalid.
    
    Signed-off-by: Chao Yu <chao2.yu@samsung.com>
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cb3a8d202d5a53def600a510f873a7cc7bc41150
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sun Oct 5 22:56:00 2014 -0400

    ext4: add ext4_iget_normal() which is to be used for dir tree lookups
    
    commit f4bb2981024fc91b23b4d09a8817c415396dbabb upstream.
    
    If there is a corrupted file system which has directory entries that
    point at reserved, metadata inodes, prohibit them from being used by
    treating them the same way we treat Boot Loader inodes --- that is,
    mark them to be bad inodes.  This prohibits them from being opened,
    deleted, or modified via chmod, chown, utimes, etc.
    
    In particular, this prevents a corrupted file system which has a
    directory entry which points at the journal inode from being deleted
    and its blocks released, after which point Much Hilarity Ensues.
    
    Reported-by: Sami Liedes <sami.liedes@iki.fi>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a9fa6b67b710a73cd701d15ca101e682ff4b66c3
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sun Oct 5 22:47:07 2014 -0400

    ext4: don't orphan or truncate the boot loader inode
    
    commit e2bfb088fac03c0f621886a04cffc7faa2b49b1d upstream.
    
    The boot loader inode (inode #5) should never be visible in the
    directory hierarchy, but it's possible if the file system is corrupted
    that there will be a directory entry that points at inode #5.  In
    order to avoid accidentally trashing it, when such a directory inode
    is opened, the inode will be marked as a bad inode, so that it's not
    possible to modify (or read) the inode from userspace.
    
    Unfortunately, when we unlink this (invalid/illegal) directory entry,
    we will put the bad inode on the ophan list, and then when try to
    unlink the directory, we don't actually remove the bad inode from the
    orphan list before freeing in-memory inode structure.  This means the
    in-memory orphan list is corrupted, leading to a kernel oops.
    
    In addition, avoid truncating a bad inode in ext4_destroy_inode(),
    since truncating the boot loader inode is not a smart thing to do.
    
    Reported-by: Sami Liedes <sami.liedes@iki.fi>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6df54425eb8653a399e45024941a4b977f12922d
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Wed Oct 1 22:58:35 2014 +0200

    dm log userspace: fix memory leak in dm_ulog_tfr_init failure path
    
    commit 56ec16cb1e1ce46354de8511eef962a417c32c92 upstream.
    
    If cn_add_callback() fails in dm_ulog_tfr_init(), it does not
    deallocate prealloced memory but calls cn_del_callback().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Reviewed-by: Jonathan Brassow <jbrassow@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 801da9d2d994143c6f1eda489918c26cd0a277d1
Author: Joe Thornber <ejt@redhat.com>
Date:   Tue Sep 30 09:32:46 2014 +0100

    dm bufio: update last_accessed when relinking a buffer
    
    commit eb76faf53b1ff7a77ce3f78cc98ad392ac70c2a0 upstream.
    
    The 'last_accessed' member of the dm_buffer structure was only set when
    the the buffer was created.  This led to each buffer being discarded
    after dm_bufio_max_age time even if it was used recently.  In practice
    this resulted in all thinp metadata being evicted soon after being read
    -- this is particularly problematic for metadata intensive workloads
    like multithreaded small random IO.
    
    'last_accessed' is now updated each time the buffer is moved to the head
    of the LRU list, so the buffer is now properly discarded if it was not
    used in dm_bufio_max_age time.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b60b67ead386817a7276863d4d8f0efcc7340404
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Sun Sep 28 10:50:06 2014 +0200

    m68k: Disable/restore interrupts in hwreg_present()/hwreg_write()
    
    commit e4dc601bf99ccd1c95b7e6eef1d3cf3c4b0d4961 upstream.
    
    hwreg_present() and hwreg_write() temporarily change the VBR register to
    another vector table. This table contains a valid bus error handler
    only, all other entries point to arbitrary addresses.
    
    If an interrupt comes in while the temporary table is active, the
    processor will start executing at such an arbitrary address, and the
    kernel will crash.
    
    While most callers run early, before interrupts are enabled, or
    explicitly disable interrupts, Finn Thain pointed out that macsonic has
    one callsite that doesn't, causing intermittent boot crashes.
    There's another unsafe callsite in hilkbd.
    
    Fix this for good by disabling and restoring interrupts inside
    hwreg_present() and hwreg_write().
    
    Explicitly disabling interrupts can be removed from the callsites later.
    
    Reported-by: Finn Thain <fthain@telegraphics.com.au>
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cf1e28c9646eb4f6062b14fdef1317ec856d4274
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 1 21:49:18 2014 -0400

    vfs: fix data corruption when blocksize < pagesize for mmaped data
    
    commit 90a8020278c1598fafd071736a0846b38510309c upstream.
    
    ->page_mkwrite() is used by filesystems to allocate blocks under a page
    which is becoming writeably mmapped in some process' address space. This
    allows a filesystem to return a page fault if there is not enough space
    available, user exceeds quota or similar problem happens, rather than
    silently discarding data later when writepage is called.
    
    However VFS fails to call ->page_mkwrite() in all the cases where
    filesystems need it when blocksize < pagesize. For example when
    blocksize = 1024, pagesize = 4096 the following is problematic:
      ftruncate(fd, 0);
      pwrite(fd, buf, 1024, 0);
      map = mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0);
      map[0] = 'a';       ----> page_mkwrite() for index 0 is called
      ftruncate(fd, 10000); /* or even pwrite(fd, buf, 1, 10000) */
      mremap(map, 1024, 10000, 0);
      map[4095] = 'a';    ----> no page_mkwrite() called
    
    At the moment ->page_mkwrite() is called, filesystem can allocate only
    one block for the page because i_size == 1024. Otherwise it would create
    blocks beyond i_size which is generally undesirable. But later at
    ->writepage() time, we also need to store data at offset 4095 but we
    don't have block allocated for it.
    
    This patch introduces a helper function filesystems can use to have
    ->page_mkwrite() called at all the necessary moments.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 3.2:
     - Adjust context
     - truncate_setsize() already has an oldsize variable]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 877189882ca0d22b04c30b008a02296ea80a6164
Author: Quinn Tran <quinn.tran@qlogic.com>
Date:   Thu Sep 25 06:22:28 2014 -0400

    target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE
    
    commit 082f58ac4a48d3f5cb4597232cb2ac6823a96f43 upstream.
    
    During temporary resource starvation at lower transport layer, command
    is placed on queue full retry path, which expose this problem.  The TCM
    queue full handling of SCF_TRANSPORT_TASK_SENSE currently sends the same
    cmd twice to lower layer.  The 1st time led to cmd normal free path.
    The 2nd time cause Null pointer access.
    
    This regression bug was originally introduced v3.1-rc code in the
    following commit:
    
    commit e057f53308a5f071556ee80586b99ee755bf07f5
    Author: Christoph Hellwig <hch@infradead.org>
    Date:   Mon Oct 17 13:56:41 2011 -0400
    
        target: remove the transport_qf_callback se_cmd callback
    
    Signed-off-by: Quinn Tran <quinn.tran@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f615f6640984dc9e303f5e29258d64608603cedb
Author: Andy Adamson <andros@netapp.com>
Date:   Mon Sep 29 12:31:57 2014 -0400

    NFSv4.1: Fix an NFSv4.1 state renewal regression
    
    commit d1f456b0b9545f1606a54cd17c20775f159bd2ce upstream.
    
    Commit 2f60ea6b8ced ("NFSv4: The NFSv4.0 client must send RENEW calls if it holds a delegation") set the NFS4_RENEW_TIMEOUT flag in nfs4_renew_state, and does
    not put an nfs41_proc_async_sequence call, the NFSv4.1 lease renewal heartbeat
    call, on the wire to renew the NFSv4.1 state if the flag was not set.
    
    The NFS4_RENEW_TIMEOUT flag is set when "now" is after the last renewal
    (cl_last_renewal) plus the lease time divided by 3. This is arbitrary and
    sometimes does the following:
    
    In normal operation, the only way a future state renewal call is put on the
    wire is via a call to nfs4_schedule_state_renewal, which schedules a
    nfs4_renew_state workqueue task. nfs4_renew_state determines if the
    NFS4_RENEW_TIMEOUT should be set, and the calls nfs41_proc_async_sequence,
    which only gets sent if the NFS4_RENEW_TIMEOUT flag is set.
    Then the nfs41_proc_async_sequence rpc_release function schedules
    another state remewal via nfs4_schedule_state_renewal.
    
    Without this change we can get into a state where an application stops
    accessing the NFSv4.1 share, state renewal calls stop due to the
    NFS4_RENEW_TIMEOUT flag _not_ being set. The only way to recover
    from this situation is with a clientid re-establishment, once the application
    resumes and the server has timed out the lease and so returns
    NFS4ERR_BAD_SESSION on the subsequent SEQUENCE operation.
    
    An example application:
    open, lock, write a file.
    
    sleep for 6 * lease (could be less)
    
    ulock, close.
    
    In the above example with NFSv4.1 delegations enabled, without this change,
    there are no OP_SEQUENCE state renewal calls during the sleep, and the
    clientid is recovered due to lease expiration on the close.
    
    This issue does not occur with NFSv4.1 delegations disabled, nor with
    NFSv4.0, with or without delegations enabled.
    
    Signed-off-by: Andy Adamson <andros@netapp.com>
    Link: http://lkml.kernel.org/r/1411486536-23401-1-git-send-email-andros@netapp.com
    Fixes: 2f60ea6b8ced (NFSv4: The NFSv4.0 client must send RENEW calls...)
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6bbdc38dae9f847d9e39d3c1f5a1a568e59d8c3c
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Sep 16 12:38:53 2014 -0400

    framebuffer: fix screen corruption when copying
    
    commit 5b789da8a7fc357661fc61faaf853e9161cc9700 upstream.
    
    The function bitcpy_rev has a bug that may result in screen corruption.
    The bug happens under these conditions:
    * the end of the destination area of a copy operation is aligned on a long
      word boundary
    * the end of the source area is not aligned on a long word boundary
    * we are copying more than one long word
    
    In this case, the variable shift is non-zero and the variable first is
    zero. The statements FB_WRITEL(comp(d0, FB_READL(dst), first), dst) reads
    the last long word of the destination and writes it back unchanged
    (because first is zero). Correctly, we should write the variable d0 to the
    last word of the destination in this case.
    
    This patch fixes the bug by introducing and extra test if first is zero.
    
    The patch also removes the references to fb_memmove in the code that is
    commented out because fb_memmove was removed from framebuffer subsystem.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d15f46508aa23e9f2736c21d986eb9ba101494e3
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Sep 16 12:40:26 2014 -0400

    framebuffer: fix border color
    
    commit f74a289b9480648a654e5afd8458c2263c03a1e1 upstream.
    
    The framebuffer code uses the current background color to fill the border
    when switching consoles, however, this results in inconsistent behavior.
    For example:
    - start Midnigh Commander
    - the border is black
    - switch to another console and switch back
    - the border is cyan
    - type something into the command line in mc
    - the border is cyan
    - switch to another console and switch back
    - the border is black
    - press F9 to go to menu
    - the border is black
    - switch to another console and switch back
    - the border is dark blue
    
    When switching to a console with Midnight Commander, the border is random
    color that was left selected by the slang subsystem.
    
    This patch fixes this inconsistency by always using black as the
    background color when switching consoles.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9fda051c9b55c28d8cb71bf51f81b410ecb2f7f4
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Sat Sep 27 17:41:51 2014 -0400

    NFSv4: fix open/lock state recovery error handling
    
    commit df817ba35736db2d62b07de6f050a4db53492ad8 upstream.
    
    The current open/lock state recovery unfortunately does not handle errors
    such as NFS4ERR_CONN_NOT_BOUND_TO_SESSION correctly. Instead of looping,
    just proceeds as if the state manager is finished recovering.
    This patch ensures that we loop back, handle higher priority errors
    and complete the open/lock state recovery.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 69e46f0d90f0778dc0f78c609bc5264cc49a908a
Author: Ondrej Zary <linux@rainbow-software.org>
Date:   Sat Sep 27 00:04:46 2014 +0200

    libata-sff: Fix controllers with no ctl port
    
    commit 6d8ca28fa688a9354bc9fbc935bdaeb3651b6677 upstream.
    
    Currently, ata_sff_softreset is skipped for controllers with no ctl port.
    But that also skips ata_sff_dev_classify required for device detection.
    This means that libata is currently broken on controllers with no ctl port.
    
    No device connected:
    [    1.872480] pata_isapnp 01:01.02: activated
    [    1.889823] scsi2 : pata_isapnp
    [    1.890109] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    6.888110] ata3.01: qc timeout (cmd 0xec)
    [    6.888179] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   16.888085] ata3.01: qc timeout (cmd 0xec)
    [   16.888147] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   46.888086] ata3.01: qc timeout (cmd 0xec)
    [   46.888148] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   51.888100] ata3.00: qc timeout (cmd 0xec)
    [   51.888160] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   61.888079] ata3.00: qc timeout (cmd 0xec)
    [   61.888141] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   91.888089] ata3.00: qc timeout (cmd 0xec)
    [   91.888152] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x5)
    
    ATAPI device connected:
    [    1.882061] pata_isapnp 01:01.02: activated
    [    1.893430] scsi2 : pata_isapnp
    [    1.893719] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    6.892107] ata3.01: qc timeout (cmd 0xec)
    [    6.892171] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   16.892079] ata3.01: qc timeout (cmd 0xec)
    [   16.892138] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   46.892079] ata3.01: qc timeout (cmd 0xec)
    [   46.892138] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   46.908586] ata3.00: ATAPI: ACER CD-767E/O, V1.5X, max PIO2, CDB intr
    [   46.924570] ata3.00: configured for PIO0 (device error ignored)
    [   46.926295] scsi 2:0:0:0: CD-ROM            ACER     CD-767E/O        1.5X PQ: 0 ANSI: 5
    [   46.984519] sr0: scsi3-mmc drive: 6x/6x xa/form2 tray
    [   46.984592] cdrom: Uniform CD-ROM driver Revision: 3.20
    
    So don't skip ata_sff_softreset, just skip the reset part of ata_bus_softreset
    if the ctl port is not available.
    
    This makes IDE port on ES968 behave correctly:
    
    No device connected:
    [    4.670888] pata_isapnp 01:01.02: activated
    [    4.673207] scsi host2: pata_isapnp
    [    4.673675] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    7.081840] Adding 2541652k swap on /dev/sda2.  Priority:-1 extents:1 across:2541652k
    
    ATAPI device connected:
    [    4.704362] pata_isapnp 01:01.02: activated
    [    4.706620] scsi host2: pata_isapnp
    [    4.706877] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    4.872782] ata3.00: ATAPI: ACER CD-767E/O, V1.5X, max PIO2, CDB intr
    [    4.888673] ata3.00: configured for PIO0 (device error ignored)
    [    4.893984] scsi 2:0:0:0: CD-ROM            ACER     CD-767E/O        1.5X PQ: 0 ANSI: 5
    [    7.015578] Adding 2541652k swap on /dev/sda2.  Priority:-1 extents:1 across:2541652k
    
    Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 69d33070a8f165c4bd69fe208085f262201d10fb
Author: Willy Tarreau <w@1wt.eu>
Date:   Sat Sep 27 12:31:37 2014 +0200

    lzo: check for length overrun in variable length encoding.
    
    commit 72cf90124e87d975d0b2114d930808c58b4c05e4 upstream.
    
    This fix ensures that we never meet an integer overflow while adding
    255 while parsing a variable length encoding. It works differently from
    commit 206a81c ("lzo: properly check for overruns") because instead of
    ensuring that we don't overrun the input, which is tricky to guarantee
    due to many assumptions in the code, it simply checks that the cumulated
    number of 255 read cannot overflow by bounding this number.
    
    The MAX_255_COUNT is the maximum number of times we can add 255 to a base
    count without overflowing an integer. The multiply will overflow when
    multiplying 255 by more than MAXINT/255. The sum will overflow earlier
    depending on the base count. Since the base count is taken from a u8
    and a few bits, it is safe to assume that it will always be lower than
    or equal to 2*255, thus we can always prevent any overflow by accepting
    two less 255 steps.
    
    This patch also reduces the CPU overhead and actually increases performance
    by 1.1% compared to the initial code, while the previous fix costs 3.1%
    (measured on x86_64).
    
    The fix needs to be backported to all currently supported stable kernels.
    
    Reported-by: Willem Pinckaers <willem@lekkertech.net>
    Cc: "Don A. Bailey" <donb@securitymouse.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6656d18e26a1b2b39740d474e9081d086a60cfd6
Author: Willy Tarreau <w@1wt.eu>
Date:   Sat Sep 27 12:31:36 2014 +0200

    Revert "lzo: properly check for overruns"
    
    commit af958a38a60c7ca3d8a39c918c1baa2ff7b6b233 upstream.
    
    This reverts commit 206a81c ("lzo: properly check for overruns").
    
    As analysed by Willem Pinckaers, this fix is still incomplete on
    certain rare corner cases, and it is easier to restart from the
    original code.
    
    Reported-by: Willem Pinckaers <willem@lekkertech.net>
    Cc: "Don A. Bailey" <donb@securitymouse.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fbfb4b2d36329c11a7c889ceb8cfba55bb764dce
Author: Willy Tarreau <w@1wt.eu>
Date:   Sat Sep 27 12:31:35 2014 +0200

    Documentation: lzo: document part of the encoding
    
    commit d98a0526434d27e261f622cf9d2e0028b5ff1a00 upstream.
    
    Add a complete description of the LZO format as processed by the
    decompressor. I have not found a public specification of this format
    hence this analysis, which will be used to better understand the code.
    
    Cc: Willem Pinckaers <willem@lekkertech.net>
    Cc: "Don A. Bailey" <donb@securitymouse.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4a8117fa0c34f5e72da4db6403fe9ca2fe8f0b8a
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Thu Sep 25 15:27:00 2014 +0100

    staging:iio:ad5933: Drop "raw" from channel names
    
    commit 6822ee34ad57b29a3b44df2c2829910f03c34fa4 upstream.
    
    "raw" is the name of a channel property, but should not be part of the
    channel name itself.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    [bwh: Backported to 3.2: using IIO_CHAN() macro to initialise the structures]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7d78f4e68a36776d7a0319bb66e88aebf6c958b5
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Wed Sep 24 11:24:54 2014 +0200

    rt2800: correct BBP1_TX_POWER_CTRL mask
    
    commit 01f7feeaf4528bec83798316b3c811701bac5d3e upstream.
    
    Two bits control TX power on BBP_R1 register. Correct the mask,
    otherwise we clear additional bit on BBP_R1 register, what can have
    unknown, possible negative effect.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3aabe891f32c209a2be7cd5581d2634020e801c1
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Tue Sep 23 12:26:20 2014 -0400

    lockd: Try to reconnect if statd has moved
    
    commit 173b3afceebe76fa2205b2c8808682d5b541fe3c upstream.
    
    If rpc.statd is restarted, upcalls to monitor hosts can fail with
    ECONNREFUSED.  In that case force a lookup of statd's new port and retry the
    upcall.
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    [bwh: Backported to 3.2: not using RPC_TASK_SOFTCONN]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9c8387509ce9f8124f7c5b1ab77fd98305deff37
Author: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Date:   Wed Sep 24 00:26:24 2014 +0100

    x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead
    
    commit ee1b5b165c0a2f04d2107e634e51f05d0eb107de upstream.
    
    Quark x1000 advertises PGE via the standard CPUID method
    PGE bits exist in Quark X1000's PTEs. In order to flush
    an individual PTE it is necessary to reload CR3 irrespective
    of the PTE.PGE bit.
    
    See Quark Core_DevMan_001.pdf section 6.4.11
    
    This bug was fixed in Galileo kernels, unfixed vanilla kernels are expected to
    crash and burn on this platform.
    
    Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
    Cc: Borislav Petkov <bp@alien8.de>
    Link: http://lkml.kernel.org/r/1411514784-14885-1-git-send-email-pure.logic@nexus-software.ie
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f9b5299d5ae1ba735fa3cc081fd5dc0dc33ba2e8
Author: David Matlack <dmatlack@google.com>
Date:   Fri Sep 19 16:03:25 2014 -0700

    kvm: don't take vcpu mutex for obviously invalid vcpu ioctls
    
    commit 2ea75be3219571d0ec009ce20d9971e54af96e09 upstream.
    
    vcpu ioctls can hang the calling thread if issued while a vcpu is running.
    However, invalid ioctls can happen when userspace tries to probe the kind
    of file descriptors (e.g. isatty() calls ioctl(TCGETS)); in that case,
    we know the ioctl is going to be rejected as invalid anyway and we can
    fail before trying to take the vcpu mutex.
    
    This patch does not change functionality, it just makes invalid ioctls
    fail faster.
    
    Signed-off-by: David Matlack <dmatlack@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0e251ad92556811f83ce7c2455b05ec1dcb44d71
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Sep 18 20:08:53 2014 +0300

    spi: dw-mid: terminate ongoing transfers at exit
    
    commit 8e45ef682cb31fda62ed4eeede5d9745a0a1b1e2 upstream.
    
    Do full clean up at exit, means terminate all ongoing DMA transfers.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 186b5538352926f7e68d0c24a228307d21ae7f17
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Fri Sep 12 15:11:58 2014 +0300

    spi: dw-mid: check that DMA was inited before exit
    
    commit 63d84b1a46957b3ecc56af8087220c0df42e0ef2 upstream.
    
    commit fb57862ead652454ceeb659617404c5f13bc34b5 upstream.
    
    If the driver was compiled with DMA support, but DMA channels weren't acquired
    by some reason, mid_spi_dma_exit() will crash the kernel.
    
    Fixes: 7063c0d942a1 (spi/dw_spi: add DMA support)
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 55bddf3a500591c6d7b8ab26a6d5ceec5a035e5a
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Sep 18 20:08:51 2014 +0300

    spi: dw-mid: respect 8 bit mode
    
    commit b41583e7299046abdc578c33f25ed83ee95b9b31 upstream.
    
    In case of 8 bit mode and DMA usage we end up with every second byte written as
    0. We have to respect bits_per_word settings what this patch actually does.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f9149ce369d9aeef39194f2738b8e53ab73df406
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Thu Aug 28 18:29:52 2014 -0700

    Drivers: hv: vmbus: Cleanup hv_post_message()
    
    commit b29ef3546aecb253a5552b198cef23750d56e1e4 upstream.
    
    Minimize failures in this function by pre-allocating the buffer
    for posting messages. The hypercall for posting the message can fail
    for a number of reasons:
    
            1. Transient resource related issues
            2. Buffer alignment
            3. Buffer cannot span a page boundry
    
    We address issues 2 and 3 by preallocating a per-cpu page for the buffer.
    Transient resource related failures are handled by retrying by the callers
    of this function.
    
    This patch is based on the investigation
    done by Dexuan Cui <decui@microsoft.com>.
    
    I would like to thank Sitsofe Wheeler <sitsofe@yahoo.com>
    for reporting the issue and helping in debuggging.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reported-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2:
     - s/NR_CPUS/MAX_NUM_CPUS/
     - Adjust context, indentation
     - Also free the page in hv_synic_init() error path]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 65a50c651b258319cc8deae7ea0b3459eb7406dc
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Aug 27 16:25:33 2014 -0700

    Drivers: hv: vmbus: Cleanup vmbus_close_internal()
    
    commit 98d731bb064a9d1817a6ca9bf8b97051334a7cfe upstream.
    
    Eliminate calls to BUG_ON() in vmbus_close_internal().
    We have chosen to potentially leak memory, than crash the guest
    in case of failures.
    
    In this version of the patch I have addressed comments from
    Dan Carpenter (dan.carpenter@oracle.com).
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: function is extern; don't change the return
     type to int as callers will ignore the value]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2e4bf9fd096ce08b0f7999bb391d8f2ce0912964
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Aug 27 16:25:35 2014 -0700

    Drivers: hv: vmbus: Fix a bug in vmbus_open()
    
    commit 45d727cee9e200f5b351528b9fb063b69cf702c8 upstream.
    
    Fix a bug in vmbus_open() and properly propagate the error. I would
    like to thank Dexuan Cui <decui@microsoft.com> for identifying the
    issue.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bb076b385c7b50629136b8dc0300282c45d670da
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Aug 27 16:25:34 2014 -0700

    Drivers: hv: vmbus: Cleanup vmbus_establish_gpadl()
    
    commit 72c6b71c245dac8f371167d97ef471b367d0b66b upstream.
    
    Eliminate the call to BUG_ON() by waiting for the host to respond. We are
    trying to reclaim the ownership of memory that was given to the host and so
    we will have to wait until the host responds.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9e16dbba1cfe498d5029f664569227496a7b9fce
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Aug 27 16:25:32 2014 -0700

    Drivers: hv: vmbus: Cleanup vmbus_teardown_gpadl()
    
    commit 66be653083057358724d56d817e870e53fb81ca7 upstream.
    
    Eliminate calls to BUG_ON() by properly handling errors. In cases where
    rollback is possible, we will return the appropriate error to have the
    calling code decide how to rollback state. In the case where we are
    transferring ownership of the guest physical pages to the host,
    we will wait for the host to respond.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b8097f90802288af434ce7e012e0ea5661566e40
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Aug 27 16:25:31 2014 -0700

    Drivers: hv: vmbus: Cleanup vmbus_post_msg()
    
    commit fdeebcc62279119dbeafbc1a2e39e773839025fd upstream.
    
    Posting messages to the host can fail because of transient resource
    related failures. Correctly deal with these failures and increase the
    number of attempts to post the message before giving up.
    
    In this version of the patch, I have normalized the error code to
    Linux error code.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 21636a4d34b572b91568259c489d72394302ef71
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Sep 18 11:25:37 2014 -0700

    firmware_class: make sure fw requests contain a name
    
    commit 471b095dfe0d693a8d624cbc716d1ee4d74eb437 upstream.
    
    An empty firmware request name will trigger warnings when building
    device names. Make sure this is caught earlier and rejected.
    
    The warning was visible via the test_firmware.ko module interface:
    
    echo -ne "\x00" > /sys/devices/virtual/misc/test_firmware/trigger_request
    
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Tested-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 43e986b5196b31b7c020a381b6f8dc3196f8a4ad
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Fri Sep 19 10:13:50 2014 +0800

    USB: Add device quirk for ASUS T100 Base Station keyboard
    
    commit ddbe1fca0bcb87ca8c199ea873a456ca8a948567 upstream.
    
    This full-speed USB device generates spurious remote wakeup event
    as soon as USB_DEVICE_REMOTE_WAKEUP feature is set. As the result,
    Linux can't enter system suspend and S0ix power saving modes once
    this keyboard is used.
    
    This patch tries to introduce USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk.
    With this quirk set, wakeup capability will be ignored during
    device configure.
    
    This patch could be back-ported to kernels as old as 2.6.39.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5bcaa5fb9ddead80283f3139efc5b47f887f02b7
Author: Joonyoung Shim <jy0922.shim@samsung.com>
Date:   Thu Jul 10 14:22:35 2014 +0900

    USB: add reset resume quirk for usb3503
    
    commit 526a4045c60fbaede88ec95a69a73059dff02160 upstream.
    
    The usb device will autoresume from choose_wakeup() if it is
    autosuspended with the wrong wakeup setting, but below errors occur
    because usb3503 misc driver will switch to standby mode when suspended.
    
    As add USB_QUIRK_RESET_RESUME, it can stop setting wrong wakeup from
    autosuspend_check().
    
    [    7.734717] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
    [    7.854658] usb 1-3: device descriptor read/64, error -71
    [    8.079657] usb 1-3: device descriptor read/64, error -71
    [    8.294664] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
    [    8.414658] usb 1-3: device descriptor read/64, error -71
    [    8.639657] usb 1-3: device descriptor read/64, error -71
    [    8.854667] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
    [    9.264598] usb 1-3: device not accepting address 3, error -71
    [    9.374655] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
    [    9.784601] usb 1-3: device not accepting address 3, error -71
    [    9.784838] usb usb1-port3: device 1-3 not suspended yet
    
    Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 557e62e820fae964708930dc46311da576d3d069
Author: Maciej Matraszek <m.matraszek@samsung.com>
Date:   Mon Sep 15 05:14:48 2014 -0300

    v4l2-common: fix overflow in v4l_bound_align_image()
    
    commit 3bacc10cd4a85bc70bc0b6c001d3bf995c7fe04c upstream.
    
    Fix clamp_align() used in v4l_bound_align_image() to prevent overflow
    when passed large value like UINT32_MAX.
    
     In the current implementation:
        clamp_align(UINT32_MAX, 8, 8192, 3)
    
    returns 8, because in line:
    
        x = (x + (1 << (align - 1))) & mask;
    
    x overflows to (-1 + 4) & 0x7 = 3, while expected value is 8192.
    
    v4l_bound_align_image() is heavily used in VIDIOC_S_FMT and
    VIDIOC_SUBDEV_S_FMT ioctls handlers, and documentation of the latter
    explicitly states that:
    
    "The modified format should be as close as possible to the original
    request."
      -- http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-subdev-g-fmt.html
    
    Thus one would expect, that passing UINT32_MAX as format width and
    height will result in setting maximum possible resolution for the
    device. Particularly, when the driver doesn't support
    VIDIOC_ENUM_FRAMESIZES ioctl, which is common in the codebase.
    
    Fixes changeset: b0d3159be9a3
    
    Signed-off-by: Maciej Matraszek <m.matraszek@samsung.com>
    Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1b7070bbcc1d9e933d99302038bf0d8c24b42cc6
Author: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date:   Wed Aug 27 14:57:57 2014 +0200

    PCI: Generate uppercase hex for modalias interface class
    
    commit 89ec3dcf17fd3fa009ecf8faaba36828dd6bc416 upstream.
    
    Some implementations of modprobe fail to load the driver for a PCI device
    automatically because the "interface" part of the modalias from the kernel
    is lowercase, and the modalias from file2alias is uppercase.
    
    The "interface" is the low-order byte of the Class Code, defined in PCI
    r3.0, Appendix D.  Most interface types defined in the spec do not use
    alpha characters, so they won't be affected.  For example, 00h, 01h, 10h,
    20h, etc. are unaffected.
    
    Print the "interface" byte of the Class Code in uppercase hex, as we
    already do for the Vendor ID, Device ID, Class, etc.
    
    [bhelgaas: changelog]
    Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9aa3cc309d2b8bae39627d7478ef09598b773660
Author: Andreas Bomholtz <andreas@seluxit.com>
Date:   Mon Sep 22 09:50:43 2014 +0200

    USB: cp210x: add support for Seluxit USB dongle
    
    commit dee80ad12d2b1b304286a707fde7ab05d1fc7bab upstream.
    
    Added the Seluxit ApS USB Serial Dongle to cp210x driver.
    
    Signed-off-by: Andreas Bomholtz <andreas@seluxit.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 83ba4ddd5845d296bca2a12608505f70d520c35d
Author: Joe Savage <joe.savage@goketra.com>
Date:   Sat Sep 20 08:01:16 2014 -0500

    USB: serial: cp210x: added Ketra N1 wireless interface support
    
    commit bfc2d7dfdd761ae3beccdb26abebe03cef042f46 upstream.
    
    Added support for Ketra N1 wireless interface, which uses the
    Silicon Labs' CP2104 USB to UART bridge with customized PID 8946.
    
    Signed-off-by: Joe Savage <joe.savage@goketra.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit be4a0cd3707c30cca1a69d4d0845930e5935505d
Author: Paul Fertser <fercerpav@gmail.com>
Date:   Sun Jun 8 12:16:48 2014 -0300

    media: usb: uvc: add a quirk for Dell XPS M1330 webcam
    
    commit 62ea864f84fed6e04dd033d500d4c9183a83d590 upstream.
    
    As reported on [1], this device needs this quirk to be able to
    reliably initialise the webcam.
    
    [1] http://ubuntuforums.org/showthread.php?t=2145996
    
    Signed-off-by: Paul Fertser <fercerpav@gmail.com>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    [bwh: Backported to 3.2: adjust filename, context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cdf03cefa465ef3432eaadd64c5b21e13c8fd2ff
Author: Jan Kara <jack@suse.cz>
Date:   Thu Sep 18 01:12:15 2014 -0400

    ext4: don't check quota format when there are no quota files
    
    commit 279bf6d390933d5353ab298fcc306c391a961469 upstream.
    
    The check whether quota format is set even though there are no
    quota files with journalled quota is pointless and it actually
    makes it impossible to turn off journalled quotas (as there's
    no way to unset journalled quota format). Just remove the check.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3b795b7dcdec7c319ab9677bf070b40ee62198a0
Author: Douglas Lehr <dllehr@us.ibm.com>
Date:   Thu Aug 21 09:26:52 2014 +1000

    PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size
    
    commit 9fe373f9997b48fcd6222b95baf4a20c134b587a upstream.
    
    The Crocodile chip occasionally comes up with 4k and 8k BAR sizes.  Due to
    an erratum, setting the SR-IOV page size causes the physical function BARs
    to expand to the system page size.  Since ppc64 uses 64k pages, when Linux
    tries to assign the smaller resource sizes to the now 64k BARs the address
    will be truncated and the BARs will overlap.
    
    Force Linux to allocate the resource as a full page, which avoids the
    overlap.
    
    [bhelgaas: print expanded resource, too]
    Signed-off-by: Douglas Lehr <dllehr@us.ibm.com>
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Milton Miller <miltonm@us.ibm.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5581d5a5ad8bde5d8be7f1342d01f74c66b75efc
Author: Andreas Noever <andreas.noever@gmail.com>
Date:   Tue Sep 16 15:16:02 2014 -0600

    PCI: pciehp: Prevent NULL dereference during probe
    
    commit bceee4a97eb58bd0e80e39eff11b506ddd9e7ad3 upstream.
    
    pciehp assumes that dev->subordinate, the struct pci_bus for a bridge's
    secondary bus, exists.  But we do not create that bus if we run out of bus
    numbers during enumeration.  This leads to a NULL dereference in
    init_slot() (and other places).
    
    Change pciehp_probe() to return -ENODEV when no secondary bus is present.
    
    Signed-off-by: Andreas Noever <andreas.noever@gmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2f3007855abfd0a7b9ac0925b20bbf972cc0e347
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Tue Sep 16 14:34:59 2014 -0400

    ext4: check EA value offset when loading
    
    commit a0626e75954078cfacddb00a4545dde821170bc5 upstream.
    
    When loading extended attributes, check each entry's value offset to
    make sure it doesn't collide with the entries.
    
    Without this check it is easy to crash the kernel by mounting a
    malicious FS containing a file with an EA wherein e_value_offs = 0 and
    e_value_size > 0 and then deleting the EA, which corrupts the name
    list.
    
    (See the f_ea_value_crash test's FS image in e2fsprogs for an example.)
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7e6ccbbb11dbb844cf79ea7e9250ef0d41a52830
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Wed Sep 3 16:21:32 2014 +0200

    KVM: s390: unintended fallthrough for external call
    
    commit f346026e55f1efd3949a67ddd1dcea7c1b9a615e upstream.
    
    We must not fallthrough if the conditions for external call are not met.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 03ccd424490f27867b7a0c6f28b4515f0ea41b54
Author: Champion Chen <champion_chen@realsil.com.cn>
Date:   Sat Sep 6 14:06:08 2014 -0500

    Bluetooth: Fix issue with USB suspend in btusb driver
    
    commit 85560c4a828ec9c8573840c9b66487b6ae584768 upstream.
    
    Suspend could fail for some platforms because
    btusb_suspend==> btusb_stop_traffic ==> usb_kill_anchored_urbs.
    
    When btusb_bulk_complete returns before system suspend and resubmits
    an URB, the system cannot enter suspend state.
    
    Signed-off-by: Champion Chen <champion_chen@realsil.com.cn>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 721292b00ea97481ac23bd116b7b1252e3efa9f7
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Wed Jul 16 15:22:29 2014 +0300

    UBIFS: fix free log space calculation
    
    commit ba29e721eb2df6df8f33c1f248388bb037a47914 upstream.
    
    Hu (hujianyang <hujianyang@huawei.com>) discovered an issue in the
    'empty_log_bytes()' function, which calculates how many bytes are left in the
    log:
    
    "
    If 'c->lhead_lnum + 1 == c->ltail_lnum' and 'c->lhead_offs == c->leb_size', 'h'
    would equalent to 't' and 'empty_log_bytes()' would return 'c->log_bytes'
    instead of 0.
    "
    
    At this point it is not clear what would be the consequences of this, and
    whether this may lead to any problems, but this patch addresses the issue just
    in case.
    
    Tested-by: hujianyang <hujianyang@huawei.com>
    Reported-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9cb35c87fc52ddc406e4835e4a56c7e1b20aefff
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Sun Jun 29 17:00:45 2014 +0300

    UBIFS: fix a race condition
    
    commit 052c28073ff26f771d44ef33952a41d18dadd255 upstream.
    
    Hu (hujianyang@huawei.com) discovered a race condition which may lead to a
    situation when UBIFS is unable to mount the file-system after an unclean
    reboot. The problem is theoretical, though.
    
    In UBIFS, we have the log, which basically a set of LEBs in a certain area. The
    log has the tail and the head.
    
    Every time user writes data to the file-system, the UBIFS journal grows, and
    the log grows as well, because we append new reference nodes to the head of the
    log. So the head moves forward all the time, while the log tail stays at the
    same position.
    
    At any time, the UBIFS master node points to the tail of the log. When we mount
    the file-system, we scan the log, and we always start from its tail, because
    this is where the master node points to. The only occasion when the tail of the
    log changes is the commit operation.
    
    The commit operation has 2 phases - "commit start" and "commit end". The former
    is relatively short, and does not involve much I/O. During this phase we mostly
    just build various in-memory lists of the things which have to be written to
    the flash media during "commit end" phase.
    
    During the commit start phase, what we do is we "clean" the log. Indeed, the
    commit operation will index all the data in the journal, so the entire journal
    "disappears", and therefore the data in the log become unneeded. So we just
    move the head of the log to the next LEB, and write the CS node there. This LEB
    will be the tail of the new log when the commit operation finishes.
    
    When the "commit start" phase finishes, users may write more data to the
    file-system, in parallel with the ongoing "commit end" operation. At this point
    the log tail was not changed yet, it is the same as it had been before we
    started the commit. The log head keeps moving forward, though.
    
    The commit operation now needs to write the new master node, and the new master
    node should point to the new log tail. After this the LEBs between the old log
    tail and the new log tail can be unmapped and re-used again.
    
    And here is the possible problem. We do 2 operations: (a) We first update the
    log tail position in memory (see 'ubifs_log_end_commit()'). (b) And then we
    write the master node (see the big lock of code in 'do_commit()').
    
    But nothing prevents the log head from moving forward between (a) and (b), and
    the log head may "wrap" now to the old log tail. And when the "wrap" happens,
    the contends of the log tail gets erased. Now a power cut happens and we are in
    trouble. We end up with the old master node pointing to the old tail, which was
    erased. And replay fails because it expects the master node to point to the
    correct log tail at all times.
    
    This patch merges the abovementioned (a) and (b) operations by moving the master
    node change code to the 'ubifs_log_end_commit()' function, so that it runs with
    the log mutex locked, which will prevent the log from being changed benween
    operations (a) and (b).
    
    Reported-by: hujianyang <hujianyang@huawei.com>
    Tested-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7944bd2cdbf0b3d6d5dc6f6eeea54bc11e944e40
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Sun Jun 29 16:55:02 2014 +0300

    UBIFS: remove mst_mutex
    
    commit 07e19dff63e3d5d6500d831e36554ac9b1b0560e upstream.
    
    The 'mst_mutex' is not needed since because 'ubifs_write_master()' is only
    called on the mount path and commit path. The mount path is sequential and
    there is no parallelism, and the commit path is also serialized - there is only
    one commit going on at a time.
    
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d9c145180fc42155cd4c97fce75ca3165571a3ea
Author: David Matlack <dmatlack@google.com>
Date:   Mon Aug 18 15:46:07 2014 -0700

    kvm: x86: fix stale mmio cache bug
    
    commit 56f17dd3fbc44adcdbc3340fe3988ddb833a47a7 upstream.
    
    The following events can lead to an incorrect KVM_EXIT_MMIO bubbling
    up to userspace:
    
    (1) Guest accesses gpa X without a memory slot. The gfn is cached in
    struct kvm_vcpu_arch (mmio_gfn). On Intel EPT-enabled hosts, KVM sets
    the SPTE write-execute-noread so that future accesses cause
    EPT_MISCONFIGs.
    
    (2) Host userspace creates a memory slot via KVM_SET_USER_MEMORY_REGION
    covering the page just accessed.
    
    (3) Guest attempts to read or write to gpa X again. On Intel, this
    generates an EPT_MISCONFIG. The memory slot generation number that
    was incremented in (2) would normally take care of this but we fast
    path mmio faults through quickly_check_mmio_pf(), which only checks
    the per-vcpu mmio cache. Since we hit the cache, KVM passes a
    KVM_EXIT_MMIO up to userspace.
    
    This patch fixes the issue by using the memslot generation number
    to validate the mmio cache.
    
    Signed-off-by: David Matlack <dmatlack@google.com>
    [xiaoguangrong: adjust the code to make it simpler for stable-tree fix.]
    Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    Reviewed-by: David Matlack <dmatlack@google.com>
    Reviewed-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    Tested-by: David Matlack <dmatlack@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>