commit 89bf6007dd14768791598eca6fd387b9637226eb
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Apr 29 10:34:22 2015 +0200

    Linux 3.10.76

commit c190d250d8db5620218d5d56999580ed8488ec24
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Wed Feb 11 03:16:35 2015 +0000

    dcache: Fix locking bugs in backported "deal with deadlock in d_walk()"
    
    commit 20defcec264ceab2630356fb9d397f3d237b5e6d upstream in 3.2-stable
    
    Steven Rostedt reported:
    > Porting -rt to the latest 3.2 stable tree I triggered this bug:
    >
    > =====================================
    > [ BUG: bad unlock balance detected! ]
    > -------------------------------------
    > rm/1638 is trying to release lock (rcu_read_lock) at:
    > [<c04fde6c>] rcu_read_unlock+0x0/0x23
    > but there are no more locks to release!
    >
    > other info that might help us debug this:
    > 2 locks held by rm/1638:
    >  #0:  (&sb->s_type->i_mutex_key#9/1){+.+.+.}, at: [<c04f93eb>] do_rmdir+0x5f/0xd2
    >  #1:  (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [<c04f9329>] vfs_rmdir+0x49/0xac
    >
    > stack backtrace:
    > Pid: 1638, comm: rm Not tainted 3.2.66-test-rt96+ #2
    > Call Trace:
    >  [<c083f390>] ? printk+0x1d/0x1f
    >  [<c0463cdf>] print_unlock_inbalance_bug+0xc3/0xcd
    >  [<c04653a8>] lock_release_non_nested+0x98/0x1ec
    >  [<c046228d>] ? trace_hardirqs_off_caller+0x18/0x90
    >  [<c0456f1c>] ? local_clock+0x2d/0x50
    >  [<c04fde6c>] ? d_hash+0x2f/0x2f
    >  [<c04fde6c>] ? d_hash+0x2f/0x2f
    >  [<c046568e>] lock_release+0x192/0x1ad
    >  [<c04fde83>] rcu_read_unlock+0x17/0x23
    >  [<c04ff344>] shrink_dcache_parent+0x227/0x270
    >  [<c04f9348>] vfs_rmdir+0x68/0xac
    >  [<c04f9424>] do_rmdir+0x98/0xd2
    >  [<c04f03ad>] ? fput+0x1a3/0x1ab
    >  [<c084dd42>] ? sysenter_exit+0xf/0x1a
    >  [<c0465b58>] ? trace_hardirqs_on_caller+0x118/0x149
    >  [<c04fa3e0>] sys_unlinkat+0x2b/0x35
    >  [<c084dd13>] sysenter_do_call+0x12/0x12
    >
    >
    >
    >
    > There's a path to calling rcu_read_unlock() without calling
    > rcu_read_lock() in have_submounts().
    >
    > 	goto positive;
    >
    > positive:
    > 	if (!locked && read_seqretry(&rename_lock, seq))
    > 		goto rename_retry;
    >
    > rename_retry:
    > 	rcu_read_unlock();
    >
    > in the above path, rcu_read_lock() is never done before calling
    > rcu_read_unlock();
    
    I reviewed locking contexts in all three functions that I changed when
    backporting "deal with deadlock in d_walk()".  It's actually worse
    than this:
    
    - We don't hold this_parent->d_lock at the 'positive' label in
      have_submounts(), but it is unlocked after 'rename_retry'.
    - There is an rcu_read_unlock() after the 'out' label in
      select_parent(), but it's not held at the 'goto out'.
    
    Fix all three lock imbalances.
    
    Reported-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Tested-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e505ae71ac8c8f643498a9e8c01ace136140606
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Jan 29 19:15:33 2015 -0800

    arc: mm: Fix build failure
    
    commit e262eb9381ad51b5de7a9e762ee773bbd25ce650 upstream.
    
    Fix misspelled define.
    
    Fixes: 33692f27597f ("vm: add VM_FAULT_SIGSEGV handling support")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ebe7e30a9986c36388a5f304b10715d403a57097
Author: Seth Jennings <sjenning@redhat.com>
Date:   Fri Sep 5 14:28:47 2014 -0500

    sb_edac: avoid INTERNAL ERROR message in EDAC with unspecified channel
    
    commit 351fc4a99d49fde63fe5ab7412beb35c40d27269 upstream.
    
    Intel IA32 SDM Table 15-14 defines channel 0xf as 'not specified', but
    EDAC doesn't know about this and returns and INTERNAL ERROR when the
    channel is greater than NUM_CHANNELS:
    
    kernel: [ 1538.886456] CPU 0: Machine Check Exception: 0 Bank 1: 940000000000009f
    kernel: [ 1538.886669] TSC 2bc68b22e7e812 ADDR 46dae7000 MISC 0 PROCESSOR 0:306e4 TIME 1390414572 SOCKET 0 APIC 0
    kernel: [ 1538.971948] EDAC MC1: INTERNAL ERROR: channel value is out of range (15 >= 4)
    kernel: [ 1538.972203] EDAC MC1: 0 CE memory read error on unknown memory (slot:0 page:0x46dae7 offset:0x0 grain:0 syndrome:0x0 -  area:DRAM err_code:0000:009f socket:1 channel_mask:1 rank:0)
    
    This commit changes sb_edac to forward a channel of -1 to EDAC if the
    channel is not specified.  edac_mc_handle_error() sets the channel to -1
    internally after the error message anyway, so this commit should have no
    effect other than avoiding the INTERNAL ERROR message when the channel
    is not specified.
    
    Signed-off-by: Seth Jennings <sjenning@redhat.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Cc: Vinson Lee <vlee@twopensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d892c7a1b4aa0dd42004a217c13cc90a37ae4dd
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Dec 15 14:46:06 2014 -0800

    x86: mm: move mmap_sem unlock from mm_fault_error() to caller
    
    commit 7fb08eca45270d0ae86e1ad9d39c40b7a55d0190 upstream.
    
    This replaces four copies in various stages of mm_fault_error() handling
    with just a single one.  It will also allow for more natural placement
    of the unlocking after some further cleanup.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f74b26b0f118db0e658cbef2816d11d5ae0242c
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Jan 29 11:15:17 2015 -0800

    vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than SIGBUS
    
    commit 9c145c56d0c8a0b62e48c8d71e055ad0fb2012ba upstream.
    
    The stack guard page error case has long incorrectly caused a SIGBUS
    rather than a SIGSEGV, but nobody actually noticed until commit
    fee7e49d4514 ("mm: propagate error from stack expansion even for guard
    page") because that error case was never actually triggered in any
    normal situations.
    
    Now that we actually report the error, people noticed the wrong signal
    that resulted.  So far, only the test suite of libsigsegv seems to have
    actually cared, but there are real applications that use libsigsegv, so
    let's not wait for any of those to break.
    
    Reported-and-tested-by: Takashi Iwai <tiwai@suse.de>
    Tested-by: Jan Engelhardt <jengelh@inai.de>
    Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # "s390 still compiles and boots"
    Cc: linux-arch@vger.kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c42d1fbb33f7e3fc97a4854e1f9804951ebdd0d
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Jan 29 10:51:32 2015 -0800

    vm: add VM_FAULT_SIGSEGV handling support
    
    commit 33692f27597fcab536d7cbbcc8f52905133e4aa7 upstream.
    
    The core VM already knows about VM_FAULT_SIGBUS, but cannot return a
    "you should SIGSEGV" error, because the SIGSEGV case was generally
    handled by the caller - usually the architecture fault handler.
    
    That results in lots of duplication - all the architecture fault
    handlers end up doing very similar "look up vma, check permissions, do
    retries etc" - but it generally works.  However, there are cases where
    the VM actually wants to SIGSEGV, and applications _expect_ SIGSEGV.
    
    In particular, when accessing the stack guard page, libsigsegv expects a
    SIGSEGV.  And it usually got one, because the stack growth is handled by
    that duplicated architecture fault handler.
    
    However, when the generic VM layer started propagating the error return
    from the stack expansion in commit fee7e49d4514 ("mm: propagate error
    from stack expansion even for guard page"), that now exposed the
    existing VM_FAULT_SIGBUS result to user space.  And user space really
    expected SIGSEGV, not SIGBUS.
    
    To fix that case, we need to add a VM_FAULT_SIGSEGV, and teach all those
    duplicate architecture fault handlers about it.  They all already have
    the code to handle SIGSEGV, so it's about just tying that new return
    value to the existing code, but it's all a bit annoying.
    
    This is the mindless minimal patch to do this.  A more extensive patch
    would be to try to gather up the mostly shared fault handling logic into
    one generic helper routine, and long-term we really should do that
    cleanup.
    
    Just from this patch, you can generally see that most architectures just
    copied (directly or indirectly) the old x86 way of doing things, but in
    the meantime that original x86 model has been improved to hold the VM
    semaphore for shorter times etc and to handle VM_FAULT_RETRY and other
    "newer" things, so it would be a good idea to bring all those
    improvements to the generic case and teach other architectures about
    them too.
    
    Reported-and-tested-by: Takashi Iwai <tiwai@suse.de>
    Tested-by: Jan Engelhardt <jengelh@inai.de>
    Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # "s390 still compiles and boots"
    Cc: linux-arch@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [shengyong: Backport to 3.10
     - adjust context
     - ignore modification for arch nios2, because 3.10 does not support it
     - ignore modification for driver lustre, because 3.10 does not support it
     - ignore VM_FAULT_FALLBACK in VM_FAULT_ERROR, becase 3.10 does not support
       this flag
     - add SIGSEGV handling to powerpc/cell spu_fault.c, because 3.10 does not
       separate it to copro_fault.c
     - add SIGSEGV handling in mm/memory.c, because 3.10 does not separate it
       to gup.c
    ]
    Signed-off-by: Sheng Yong <shengyong1@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f03ac13d87590b0ee879c77e68df63a3d9b3e07
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Oct 26 19:31:10 2014 -0400

    deal with deadlock in d_walk()
    
    commit ca5358ef75fc69fee5322a38a340f5739d997c10 upstream.
    
    ... by not hitting rename_retry for reasons other than rename having
    happened.  In other words, do _not_ restart when finding that
    between unlocking the child and locking the parent the former got
    into __dentry_kill().  Skip the killed siblings instead...
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    [hujianyang: Backported to 3.10 refer to the work of Ben Hutchings in 3.2:
     - As we only have try_to_ascend() and not d_walk(), apply this
       change to all callers of try_to_ascend()
     - Adjust context to make __dentry_kill() apply to d_kill()]
    Signed-off-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6637ecd306a94a03dd5b8e4e8d3f260d9877c5b0
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Oct 26 19:19:16 2014 -0400

    move d_rcu from overlapping d_child to overlapping d_alias
    
    commit 946e51f2bf37f1656916eb75bd0742ba33983c28 upstream.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    [hujianyang: Backported to 3.10 refer to the work of Ben Hutchings in 3.2:
     - Apply name changes in all the different places we use d_alias and d_child
     - Move the WARN_ON() in __d_free() to d_free() as we don't have dentry_free()]
    Signed-off-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2b1b66341df87cd33cf7db7cb43c409c0fc23f5
Author: Peter Kümmel <syntheticpp@gmx.net>
Date:   Tue Nov 4 12:01:59 2014 +0100

    kconfig: Fix warning "‘jump’ may be used uninitialized"
    
    commit 2d560306096739e2251329ab5c16059311a151b0 upstream.
    
    Warning:
    In file included from scripts/kconfig/zconf.tab.c:2537:0:
    scripts/kconfig/menu.c: In function ‘get_symbol_str’:
    scripts/kconfig/menu.c:590:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         jump->offset = strlen(r->s);
    
    Simplifies the test logic because (head && local) means (jump != 0)
    and makes GCC happy when checking if the jump pointer was initialized.
    
    Signed-off-by: Peter Kümmel <syntheticpp@gmx.net>
    Signed-off-by: Michal Marek <mmarek@suse.cz>
    [ dileks: v2: Backported to fit v3.10 ]
    Cc: Sedat Dilek <sedat.dilek@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3478a33e0c6204b4368c508a1175b2c027644968
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Thu Jan 1 23:11:11 2015 +0200

    KVM: x86: SYSENTER emulation is broken
    
    commit f3747379accba8e95d70cec0eae0582c8c182050 upstream.
    
    SYSENTER emulation is broken in several ways:
    1. It misses the case of 16-bit code segments completely (CVE-2015-0239).
    2. MSR_IA32_SYSENTER_CS is checked in 64-bit mode incorrectly (bits 0 and 1 can
       still be set without causing #GP).
    3. MSR_IA32_SYSENTER_EIP and MSR_IA32_SYSENTER_ESP are not masked in
       legacy-mode.
    4. There is some unneeded code.
    
    Fix it.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    [zhangzhiqiang: backport to 3.10:
     - adjust context
     - in 3.10 context "ctxt->eflags &= ~(EFLG_VM | EFLG_IF | EFLG_RF)" is replaced by
       "ctxt->eflags &= ~(EFLG_VM | EFLG_IF)" in upstream, which was changed by another commit.
     - After the above adjustments, becomes same to the original patch:
           https://github.com/torvalds/linux/commit/f3747379accba8e95d70cec0eae0582c8c182050
    ]
    Signed-off-by: Zhiqiang Zhang <zhangzhiqiang.zhang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 752b388c92ed22e527ddb22fe137fa21095fb554
Author: Florian Westphal <fw@strlen.de>
Date:   Fri Sep 26 11:35:42 2014 +0200

    netfilter: conntrack: disable generic tracking for known protocols
    
    commit db29a9508a9246e77087c5531e45b2c88ec6988b upstream.
    
    Given following iptables ruleset:
    
    -P FORWARD DROP
    -A FORWARD -m sctp --dport 9 -j ACCEPT
    -A FORWARD -p tcp --dport 80 -j ACCEPT
    -A FORWARD -p tcp -m conntrack -m state ESTABLISHED,RELATED -j ACCEPT
    
    One would assume that this allows SCTP on port 9 and TCP on port 80.
    Unfortunately, if the SCTP conntrack module is not loaded, this allows
    *all* SCTP communication, to pass though, i.e. -p sctp -j ACCEPT,
    which we think is a security issue.
    
    This is because on the first SCTP packet on port 9, we create a dummy
    "generic l4" conntrack entry without any port information (since
    conntrack doesn't know how to extract this information).
    
    All subsequent packets that are unknown will then be in established
    state since they will fallback to proto_generic and will match the
    'generic' entry.
    
    Our originally proposed version [1] completely disabled generic protocol
    tracking, but Jozsef suggests to not track protocols for which a more
    suitable helper is available, hence we now mitigate the issue for in
    tree known ct protocol helpers only, so that at least NAT and direction
    information will still be preserved for others.
    
     [1] http://www.spinics.net/lists/netfilter-devel/msg33430.html
    
    Joint work with Daniel Borkmann.
    
    Fixes CVE-2014-8160.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Zhiqiang Zhang <zhangzhiqiang.zhang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 532caffeb3b1b52e07d97fc3530cf7670895880e
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Sun Jul 6 14:53:55 2014 +0200

    Bluetooth: Ignore isochronous endpoints for Intel USB bootloader
    
    commit d92f2df0565ea04101d6ac04bdc10feeb1d93c94 upstream.
    
    The isochronous endpoints are not valid when the Intel Bluetooth
    controller boots up in bootloader mode. So just mark these endpoints
    as broken and then they will not be configured.
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 541086495d38c4d9811e93df545663c515b231e1
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Sun Jul 6 13:29:58 2014 +0200

    Bluetooth: Add support for Intel bootloader devices
    
    commit 40df783d1ef1989ac454e3dfcda017270b8950e6 upstream.
    
    Intel Bluetooth devices that boot up in bootloader mode can not
    be used as generic HCI devices, but their HCI transport is still
    valuable and so bring that up as raw-only devices.
    
    T:  Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 14 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=8087 ProdID=0a5a Rev= 0.00
    S:  Manufacturer=Intel(R) Corporation
    S:  Product=Intel(R) Wilkins Peak 2x2
    S:  SerialNumber=001122334455 WP_A0
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    [bwh: Backported to 3.14: adjust context]
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ac28a3240ed0035ac1d203269169da20e2fee14
Author: Jurgen Kramer <gtmkramer@xs4all.nl>
Date:   Sat Feb 15 12:01:09 2014 +0100

    Bluetooth: btusb: Add IMC Networks (Broadcom based)
    
    commit 9113bfd82dc8ece9cbb898df8794f58a78a36e97 upstream.
    
    Add support for IMC Networks (Broadcom based) to btusb driver.
    
    Below the output of /sys/kernel/debug/usb/devices for this device:
    
    T:  Bus=01 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#=  3 Spd=12   MxCh= 0
    D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=13d3 ProdID=3404 Rev= 1.12
    S:  Manufacturer=Broadcom Corp
    S:  Product=BCM20702A0
    S:  SerialNumber=240A649F8246
    C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
    
    Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3672f3f2159e90132bf827791f6960e396c81c02
Author: Oliver Neukum <oliver@neukum.org>
Date:   Thu Jan 16 16:02:58 2014 +0100

    Bluetooth: Add firmware update for Atheros 0cf3:311f
    
    commit 1e56f1eb2bbeab0ddc3a1e536d2a0065cfe4c131 upstream.
    
    The device is not functional without firmware.
    
    The device without firmware:
    T:  Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cf3 ProdID=311f Rev=00.01
    C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    
    The device with firmware:
    T:  Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cf3 ProdID=3007 Rev=00.01
    C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    
    Signed-off-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a713ad60cb761fcc48c2b71f798b8389852051f1
Author: Oliver Neukum <oliver@neukum.org>
Date:   Thu Jan 16 15:37:11 2014 +0100

    Bluetooth: Enable Atheros 0cf3:311e for firmware upload
    
    commit b131237ca3995edad9efc162d0bc959c3b1dddc2 upstream.
    
    The device will bind to btusb without firmware, but with the original
    buggy firmware device discovery does not work. No devices are detected.
    
    Device descriptor without firmware:
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cf3 ProdID=311e Rev= 0.01
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    with firmware:
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  3 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cf3 ProdID=311e Rev= 0.02
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23f1538b9cffe4229e703d72101e73e168abae57
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Fri Dec 20 15:10:03 2013 +0200

    mm: Fix NULL pointer dereference in madvise(MADV_WILLNEED) support
    
    commit ee53664bda169f519ce3c6a22d378f0b946c8178 upstream.
    
    Sasha Levin found a NULL pointer dereference that is due to a missing
    page table lock, which in turn is due to the pmd entry in question being
    a transparent huge-table entry.
    
    The code - introduced in commit 1998cc048901 ("mm: make
    madvise(MADV_WILLNEED) support swap file prefetch") - correctly checks
    for this situation using pmd_none_or_trans_huge_or_clear_bad(), but it
    turns out that that function doesn't work correctly.
    
    pmd_none_or_trans_huge_or_clear_bad() expected that pmd_bad() would
    trigger if the transparent hugepage bit was set, but it doesn't do that
    if pmd_numa() is also set. Note that the NUMA bit only gets set on real
    NUMA machines, so people trying to reproduce this on most normal
    development systems would never actually trigger this.
    
    Fix it by removing the very subtle (and subtly incorrect) expectation,
    and instead just checking pmd_trans_huge() explicitly.
    
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Acked-by: Andrea Arcangeli <aarcange@redhat.com>
    [ Additionally remove the now stale test for pmd_trans_huge() inside the
      pmd_bad() case - Linus ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Wang Long <long.wanglong@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13d32f27d15c5c53254ed88e3d2042c34de1bfaa
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Thu Jan 29 02:50:33 2015 +0000

    splice: Apply generic position and size checks to each write
    
    commit 894c6350eaad7e613ae267504014a456e00a3e2a from the 3.2-stable branch.
    
    We need to check the position and size of file writes against various
    limits, using generic_write_check().  This was not being done for
    the splice write path.  It was fixed upstream by commit 8d0207652cbe
    ("->splice_write() via ->write_iter()") but we can't apply that.
    
    CVE-2014-7822
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    [Ben fixed it in 3.2 stable, i ported it to 3.10 stable]
    Signed-off-by: Zhang Zhen <zhenzhang.zhang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ca630d975c5abb422ef7969494cacd91a1c125a
Author: Dave Kleikamp <dave.kleikamp@oracle.com>
Date:   Mon Mar 23 16:06:26 2015 -0500

    jfs: fix readdir regression
    
    Upstream commit 44512449, "jfs: fix readdir cookie incompatibility
    with NFSv4", was backported incorrectly into the stable trees which
    used the filldir callback (rather than dir_emit). The position is
    being incorrectly passed to filldir for the . and .. entries.
    
    The still-maintained stable trees that need to be fixed are 3.2.y,
    3.4.y and 3.10.y.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=94741
    
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Cc: jfs-discussion@lists.sourceforge.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3f5ff371c1e9ad273f403c6a487f972bc5bd058
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Wed Mar 11 09:19:16 2015 -0400

    serial: 8250_dw: Fix deadlock in LCR workaround
    
    commit 7fd6f640f2dd17dac6ddd6702c378cb0bb9cfa11 upstream.
    
    Trying to write console output from within the serial console driver
    while the port->lock is held causes recursive deadlock:
    
      CPU 0
    spin_lock_irqsave(&port->lock)
    printk()
      console_unlock()
        call_console_drivers()
          serial8250_console_write()
            spin_lock_irqsave(&port->lock)
    ** DEADLOCK **
    
    The 8250_dw i/o accessors try to write a console error message if the
    LCR workaround was unsuccessful. When the port->lock is already held
    (eg., when called from serial8250_set_termios()), this deadlocks.
    
    Make the error message a FIXME until a general solution is devised.
    
    Cc: Tim Kryger <tim.kryger@gmail.com>
    Reported-by: Zhang Zhen <zhenzhang.zhang@huawei.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57a99bf7d2f467714ba9db090a2f700cb080e0d9
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:19:50 2014 -0700

    benet: Call dev_kfree_skby_any instead of kfree_skb.
    
    Replace free_skb with dev_kfree_skb_any in be_tx_compl_process as
    which can be called in hard irq by netpoll, softirq context
    by normal napi polling, and in normal sleepable context
    by the network device close method.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97aa254018122e86bf2b3498d610c6c662bbc8c0
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:18:42 2014 -0700

    ixgb: Call dev_kfree_skby_any instead of dev_kfree_skb.
    
    Replace dev_kfree_skb with dev_kfree_skb_any in functions that can
    be called in hard irq and other contexts.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 543c297eca0a06cfddabc54672805864c8777ce3
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:18:14 2014 -0700

    tg3: Call dev_kfree_skby_any instead of dev_kfree_skb.
    
    Replace dev_kfree_skb with dev_kfree_skb_any in functions that can
    be called in hard irq and other contexts.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 248b28006ace38a3b91c347fcdff7d695d11776a
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:17:41 2014 -0700

    bnx2: Call dev_kfree_skby_any instead of dev_kfree_skb.
    
    Replace dev_kfree_skb with dev_kfree_skb_any in functions that can
    be called in hard irq and other contexts.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4324a943dcc772a304f6d2f82294c42c51afdd4d
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:16:14 2014 -0700

    r8169: Call dev_kfree_skby_any instead of dev_kfree_skb.
    
    Replace dev_kfree_skb with dev_kfree_skb_any in functions that can
    be called in hard irq and other contexts.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2886482ca51647ab0625231052caf626cf018729
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:15:36 2014 -0700

    8139too: Call dev_kfree_skby_any instead of dev_kfree_skb.
    
    Replace dev_kfree_skb with dev_kfree_skb_any in functions that can
    be called in hard irq and other contexts.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16767ec632cffde8a1176d2038a3d2f34c6fefa9
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 11 14:14:58 2014 -0700

    8139cp: Call dev_kfree_skby_any instead of kfree_skb.
    
    Replace kfree_skb with dev_kfree_skb_any in cp_start_xmit
    as it can be called in both hard irq and other contexts.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef15025a4eb2cecc162a349bef1392b620966e40
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 9 13:31:56 2015 -0700

    tcp: tcp_make_synack() should clear skb->tstamp
    
    [ Upstream commit b50edd7812852d989f2ef09dcfc729690f54a42d ]
    
    I noticed tcpdump was giving funky timestamps for locally
    generated SYNACK messages on loopback interface.
    
    11:42:46.938990 IP 127.0.0.1.48245 > 127.0.0.2.23850: S
    945476042:945476042(0) win 43690 <mss 65495,nop,nop,sackOK,nop,wscale 7>
    
    20:28:58.502209 IP 127.0.0.2.23850 > 127.0.0.1.48245: S
    3160535375:3160535375(0) ack 945476043 win 43690 <mss
    65495,nop,nop,sackOK,nop,wscale 7>
    
    This is because we need to clear skb->tstamp before
    entering lower stack, otherwise net_timestamp_check()
    does not set skb->tstamp.
    
    Fixes: 7faee5c0d514 ("tcp: remove TCP_SKB_CB(skb)->when")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c31d60c29774e1c5650f89d5edccfd8314152af6
Author: Neal Cardwell <ncardwell@google.com>
Date:   Wed Apr 1 20:26:46 2015 -0400

    tcp: fix FRTO undo on cumulative ACK of SACKed range
    
    [ Upstream commit 666b805150efd62f05810ff0db08f44a2370c937 ]
    
    On processing cumulative ACKs, the FRTO code was not checking the
    SACKed bit, meaning that there could be a spurious FRTO undo on a
    cumulative ACK of a previously SACKed skb.
    
    The FRTO code should only consider a cumulative ACK to indicate that
    an original/unretransmitted skb is newly ACKed if the skb was not yet
    SACKed.
    
    The effect of the spurious FRTO undo would typically be to make the
    connection think that all previously-sent packets were in flight when
    they really weren't, leading to a stall and an RTO.
    
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Fixes: e33099f96d99c ("tcp: implement RFC5682 F-RTO")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a2267373e3d66b6df7d37b7366ed7a11bc29f4f
Author: D.S. Ljungmark <ljungmark@modio.se>
Date:   Wed Mar 25 09:28:15 2015 +0100

    ipv6: Don't reduce hop limit for an interface
    
    [ Upstream commit 6fd99094de2b83d1d4c8457f2c83483b2828e75a ]
    
    A local route may have a lower hop_limit set than global routes do.
    
    RFC 3756, Section 4.2.7, "Parameter Spoofing"
    
    >   1.  The attacker includes a Current Hop Limit of one or another small
    >       number which the attacker knows will cause legitimate packets to
    >       be dropped before they reach their destination.
    
    >   As an example, one possible approach to mitigate this threat is to
    >   ignore very small hop limits.  The nodes could implement a
    >   configurable minimum hop limit, and ignore attempts to set it below
    >   said limit.
    
    Signed-off-by: D.S. Ljungmark <ljungmark@modio.se>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b946e381d185db8700e96634074052a62a11509
Author: Michal Kubeček <mkubecek@suse.cz>
Date:   Mon Mar 23 15:14:00 2015 +0100

    tcp: prevent fetching dst twice in early demux code
    
    [ Upstream commit d0c294c53a771ae7e84506dfbd8c18c30f078735 ]
    
    On s390x, gcc 4.8 compiles this part of tcp_v6_early_demux()
    
            struct dst_entry *dst = sk->sk_rx_dst;
    
            if (dst)
                    dst = dst_check(dst, inet6_sk(sk)->rx_dst_cookie);
    
    to code reading sk->sk_rx_dst twice, once for the test and once for
    the argument of ip6_dst_check() (dst_check() is inline). This allows
    ip6_dst_check() to be called with null first argument, causing a crash.
    
    Protect sk->sk_rx_dst access by ACCESS_ONCE() both in IPv4 and IPv6
    TCP early demux code.
    
    Fixes: 41063e9dd119 ("ipv4: Early TCP socket demux.")
    Fixes: c7109986db3c ("ipv6: Early TCP socket demux")
    Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1554b19c4080476e4e5b678febd5fc7f2d102322
Author: Alex Elder <alex.elder@linaro.org>
Date:   Thu Jan 23 15:54:01 2014 -0800

    remove extra definitions of U32_MAX
    
    commit 04f9b74e4d96d349de12fdd4e6626af4a9f75e09 upstream.
    
    Now that the definition is centralized in <linux/kernel.h>, the
    definitions of U32_MAX (and related) elsewhere in the kernel can be
    removed.
    
    Signed-off-by: Alex Elder <elder@linaro.org>
    Acked-by: Sage Weil <sage@inktank.com>
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b81036aa3558b934e2ea17e93e637f99796d88a0
Author: Alex Elder <alex.elder@linaro.org>
Date:   Thu Jan 23 15:53:59 2014 -0800

    conditionally define U32_MAX
    
    commit 77719536dc00f8fd8f5abe6dadbde5331c37f996 upstream.
    
    The symbol U32_MAX is defined in several spots.  Change these
    definitions to be conditional.  This is in preparation for the next
    patch, which centralizes the definition in <linux/kernel.h>.
    
    Signed-off-by: Alex Elder <elder@linaro.org>
    Cc: Sage Weil <sage@inktank.com>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>