commit 2c07053b8e1e0c22bb54dfbdf8e86a70f8bf00fc
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Mon Feb 15 15:47:06 2016 -0500

    Linux 3.18.27
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ce43f6a650a6689551a217276fb0dcca33790425
Author: Dan Streetman <dan.streetman@canonical.com>
Date:   Thu Oct 29 09:51:16 2015 -0400

    xfrm: dst_entries_init() per-net dst_ops
    
    [ Upstream commit a8a572a6b5f2a79280d6e302cb3c1cb1fbaeb3e8 ]
    
    Remove the dst_entries_init/destroy calls for xfrm4 and xfrm6 dst_ops
    templates; their dst_entries counters will never be used.  Move the
    xfrm dst_ops initialization from the common xfrm/xfrm_policy.c to
    xfrm4/xfrm4_policy.c and xfrm6/xfrm6_policy.c, and call dst_entries_init
    and dst_entries_destroy for each net namespace.
    
    The ipv4 and ipv6 xfrms each create dst_ops template, and perform
    dst_entries_init on the templates.  The template values are copied to each
    net namespace's xfrm.xfrm*_dst_ops.  The problem there is the dst_ops
    pcpuc_entries field is a percpu counter and cannot be used correctly by
    simply copying it to another object.
    
    The result of this is a very subtle bug; changes to the dst entries
    counter from one net namespace may sometimes get applied to a different
    net namespace dst entries counter.  This is because of how the percpu
    counter works; it has a main count field as well as a pointer to the
    percpu variables.  Each net namespace maintains its own main count
    variable, but all point to one set of percpu variables.  When any net
    namespace happens to change one of the percpu variables to outside its
    small batch range, its count is moved to the net namespace's main count
    variable.  So with multiple net namespaces operating concurrently, the
    dst_ops entries counter can stray from the actual value that it should
    be; if counts are consistently moved from one net namespace to another
    (which my testing showed is likely), then one net namespace winds up
    with a negative dst_ops count while another winds up with a continually
    increasing count, eventually reaching its gc_thresh limit, which causes
    all new traffic on the net namespace to fail with -ENOBUFS.
    
    Signed-off-by: Dan Streetman <dan.streetman@canonical.com>
    Signed-off-by: Dan Streetman <ddstreet@ieee.org>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e829a72dad76e17cd1406e55c3a6cd9efa9eb99e
Author: Joe Jin <joe.jin@oracle.com>
Date:   Mon Oct 19 13:37:17 2015 +0800

    xen-netfront: update num_queues to real created
    
    [ Upstream commit ca88ea1247dfee094e2467a3578eaec9bdf0833a ]
    
    Sometimes xennet_create_queues() may failed to created all requested
    queues, we need to update num_queues to real created to avoid NULL
    pointer dereference.
    
    Signed-off-by: Joe Jin <joe.jin@oracle.com>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Wei Liu <wei.liu2@citrix.com>
    Cc: Ian Campbell <ian.campbell@citrix.com>
    Cc: David S. Miller <davem@davemloft.net>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit aa57c62d4a3bcd75f458b5b1d8ab3de805df90ef
Author: Wei Liu <wei.liu2@citrix.com>
Date:   Thu Sep 10 11:18:58 2015 +0100

    xen-netfront: respect user provided max_queues
    
    [ Upstream commit 32a844056fd43dda647e1c3c6b9983bdfa04d17d ]
    
    Originally that parameter was always reset to num_online_cpus during
    module initialisation, which renders it useless.
    
    The fix is to only set max_queues to num_online_cpus when user has not
    provided a value.
    
    Signed-off-by: Wei Liu <wei.liu2@citrix.com>
    Cc: David Vrabel <david.vrabel@citrix.com>
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    Tested-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 1ed33008e58c325a3e9159134ee2af96f88f12cd
Author: Wei Liu <wei.liu2@citrix.com>
Date:   Thu Sep 10 11:18:57 2015 +0100

    xen-netback: respect user provided max_queues
    
    [ Upstream commit 4c82ac3c37363e8c4ded6a5fe1ec5fa756b34df3 ]
    
    Originally that parameter was always reset to num_online_cpus during
    module initialisation, which renders it useless.
    
    The fix is to only set max_queues to num_online_cpus when user has not
    provided a value.
    
    Reported-by: Johnny Strom <johnny.strom@linuxsolutions.fi>
    Signed-off-by: Wei Liu <wei.liu2@citrix.com>
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    Acked-by: Ian Campbell <ian.campbell@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 3c02ca42ebdb6d1764e187c196fe89463a3a3f13
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Mon Jan 18 17:30:22 2016 +0200

    team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid
    
    [ Upstream commit 60a6531bfe49555581ccd65f66a350cc5693fcde ]
    
    We can't be within an RCU read-side critical section when deleting
    VLANs, as underlying drivers might sleep during the hardware operation.
    Therefore, replace the RCU critical section with a mutex. This is
    consistent with team_vlan_rx_add_vid.
    
    Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device")
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 82185755d90c8047c6f4b589c39998ff3d4ca3ad
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Nov 1 16:22:53 2015 +0000

    ppp, slip: Validate VJ compression slot parameters completely
    
    [ Upstream commit 4ab42d78e37a294ac7bc56901d563c642e03c4ae ]
    
    Currently slhc_init() treats out-of-range values of rslots and tslots
    as equivalent to 0, except that if tslots is too large it will
    dereference a null pointer (CVE-2015-7799).
    
    Add a range-check at the top of the function and make it return an
    ERR_PTR() on error instead of NULL.  Change the callers accordingly.
    
    Compile-tested only.
    
    Reported-by: 郭永刚 <guoyonggang@360.cn>
    References: http://article.gmane.org/gmane.comp.security.oss.general/17908
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f9e58aab4655efe4f53452977ea29447b7446735
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Nov 1 16:21:24 2015 +0000

    isdn_ppp: Add checks for allocation failure in isdn_ppp_open()
    
    [ Upstream commit 0baa57d8dc32db78369d8b5176ef56c5e2e18ab3 ]
    
    Compile-tested only.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2da362912edd33ea518a6c8decb61d5d872142d5
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Jan 15 04:56:56 2016 -0800

    ipv6: update skb->csum when CE mark is propagated
    
    [ Upstream commit 34ae6a1aa0540f0f781dd265366036355fdc8930 ]
    
    When a tunnel decapsulates the outer header, it has to comply
    with RFC 6080 and eventually propagate CE mark into inner header.
    
    It turns out IP6_ECN_set_ce() does not correctly update skb->csum
    for CHECKSUM_COMPLETE packets, triggering infamous "hw csum failure"
    messages and stack traces.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e437faf92607f7ed37eb6033ff82725f852d8b38
Author: Rabin Vincent <rabin@rab.in>
Date:   Tue Jan 12 20:17:08 2016 +0100

    net: bpf: reject invalid shifts
    
    [ Upstream commit 229394e8e62a4191d592842cf67e80c62a492937 ]
    
    On ARM64, a BUG() is triggered in the eBPF JIT if a filter with a
    constant shift that can't be encoded in the immediate field of the
    UBFM/SBFM instructions is passed to the JIT.  Since these shifts
    amounts, which are negative or >= regsize, are invalid, reject them in
    the eBPF verifier and the classic BPF filter checker, for all
    architectures.
    
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 523faf4a2107597307c7861e84201b52a7efbf8b
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Jan 12 08:58:00 2016 -0800

    phonet: properly unshare skbs in phonet_rcv()
    
    [ Upstream commit 7aaed57c5c2890634cfadf725173c7c68ea4cb4f ]
    
    Ivaylo Dimitrov reported a regression caused by commit 7866a621043f
    ("dev: add per net_device packet type chains").
    
    skb->dev becomes NULL and we crash in __netif_receive_skb_core().
    
    Before above commit, different kind of bugs or corruptions could happen
    without major crash.
    
    But the root cause is that phonet_rcv() can queue skb without checking
    if skb is shared or not.
    
    Many thanks to Ivaylo Dimitrov for his help, diagnosis and tests.
    
    Reported-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
    Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Remi Denis-Courmont <courmisch@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 3d2f497e4d8e1b7a49a9c4aa2fe615f7210dac70
Author: Karl Heiss <kheiss@gmail.com>
Date:   Mon Jan 11 08:28:43 2016 -0500

    bonding: Prevent IPv6 link local address on enslaved devices
    
    [ Upstream commit 03d84a5f83a67e692af00a3d3901e7820e3e84d5 ]
    
    Commit 1f718f0f4f97 ("bonding: populate neighbour's private on enslave")
    undoes the fix provided by commit c2edacf80e15 ("bonding / ipv6: no addrconf
    for slaves separately from master") by effectively setting the slave flag
    after the slave has been opened.  If the slave comes up quickly enough, it
    will go through the IPv6 addrconf before the slave flag has been set and
    will get a link local IPv6 address.
    
    In order to ensure that addrconf knows to ignore the slave devices on state
    change, set IFF_SLAVE before dev_open() during bonding enslavement.
    
    Fixes: 1f718f0f4f97 ("bonding: populate neighbour's private on enslave")
    Signed-off-by: Karl Heiss <kheiss@gmail.com>
    Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
    Reviewed-by: Jarod Wilson <jarod@redhat.com>
    Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit be2058b9b8f92b34b8d5a4da97a7791bf6906906
Author: Neal Cardwell <ncardwell@google.com>
Date:   Mon Jan 11 13:42:43 2016 -0500

    tcp_yeah: don't set ssthresh below 2
    
    [ Upstream commit 83d15e70c4d8909d722c0d64747d8fb42e38a48f ]
    
    For tcp_yeah, use an ssthresh floor of 2, the same floor used by Reno
    and CUBIC, per RFC 5681 (equation 4).
    
    tcp_yeah_ssthresh() was sometimes returning a 0 or negative ssthresh
    value if the intended reduction is as big or bigger than the current
    cwnd. Congestion control modules should never return a zero or
    negative ssthresh. A zero ssthresh generally results in a zero cwnd,
    causing the connection to stall. A negative ssthresh value will be
    interpreted as a u32 and will set a target cwnd for PRR near 4
    billion.
    
    Oleksandr Natalenko reported that a system using tcp_yeah with ECN
    could see a warning about a prior_cwnd of 0 in
    tcp_cwnd_reduction(). Testing verified that this was due to
    tcp_yeah_ssthresh() misbehaving in this way.
    
    Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 51bd690f02ecda5e5e39c14d33dcb6db92ed101e
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Jan 8 09:35:51 2016 -0800

    ipv6: tcp: add rcu locking in tcp_v6_send_synack()
    
    [ Upstream commit 3e4006f0b86a5ae5eb0e8215f9a9e1db24506977 ]
    
    When first SYNACK is sent, we already hold rcu_read_lock(), but this
    is not true if a SYNACK is retransmitted, as a timer (soft) interrupt
    does not hold rcu_read_lock()
    
    Fixes: 45f6fad84cc30 ("ipv6: add complete rcu protection around np->opt")
    Reported-by: Dave Jones <davej@codemonkey.org.uk>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ea06dfa254fd787953340ebfa12517cc2836c2ca
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Thu Jan 7 14:52:43 2016 -0500

    net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory
    
    [ Upstream commit 320f1a4a175e7cd5d3f006f92b4d4d3e2cbb7bb5 ]
    
    proc_dostring() needs an initialized destination string, while the one
    provided in proc_sctp_do_hmac_alg() contains stack garbage.
    
    Thus, writing to cookie_hmac_alg would strlen() that garbage and end up
    accessing invalid memory.
    
    Fixes: 3c68198e7 ("sctp: Make hmac algorithm selection for cookie generation dynamic")
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d2f500d1a118bb5cd55133c9482fd7ccb810aed7
Author: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date:   Thu Jan 7 11:26:53 2016 +0100

    vxlan: fix test which detect duplicate vxlan iface
    
    [ Upstream commit 07b9b37c227cb8d88d478b4a9c5634fee514ede1 ]
    
    When a vxlan interface is created, the driver checks that there is not
    another vxlan interface with the same properties. To do this, it checks
    the existing vxlan udp socket. Since commit 1c51a9159dde, the creation of
    the vxlan socket is done only when the interface is set up, thus it breaks
    that test.
    
    Example:
    $ ip l a vxlan10 type vxlan id 10 group 239.0.0.10 dev eth0 dstport 0
    $ ip l a vxlan11 type vxlan id 10 group 239.0.0.10 dev eth0 dstport 0
    $ ip -br l | grep vxlan
    vxlan10          DOWN           f2:55:1c:6a:fb:00 <BROADCAST,MULTICAST>
    vxlan11          DOWN           7a:cb:b9:38:59:0d <BROADCAST,MULTICAST>
    
    Instead of checking sockets, let's loop over the vxlan iface list.
    
    Fixes: 1c51a9159dde ("vxlan: fix race caused by dropping rtnl_unlock")
    Reported-by: Thomas Faivre <thomas.faivre@6wind.com>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 3e3ac162570a129e61573b624fe5bf76ad7e6901
Author: Francesco Ruggeri <fruggeri@aristanetworks.com>
Date:   Wed Jan 6 00:18:48 2016 -0800

    net: possible use after free in dst_release
    
    [ Upstream commit 07a5d38453599052aff0877b16bb9c1585f08609 ]
    
    dst_release should not access dst->flags after decrementing
    __refcnt to 0. The dst_entry may be in dst_busy_list and
    dst_gc_task may dst_destroy it before dst_release gets a chance
    to access dst->flags.
    
    Fixes: d69bbf88c8d0 ("net: fix a race in dst_release()")
    Fixes: 27b75c95f10d ("net: avoid RCU for NOCACHE dst")
    Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2da7d5e70129d561cd2001c769440ada0190ffde
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Tue Jan 5 09:11:36 2016 -0800

    net: sched: fix missing free per cpu on qstats
    
    [ Upstream commit 73c20a8b7245273125cfe92c4b46e6fdb568a801 ]
    
    When a qdisc is using per cpu stats (currently just the ingress
    qdisc) only the bstats are being freed. This also free's the qstats.
    
    Fixes: b0ab6f92752b9f9d8 ("net: sched: enable per cpu qstats")
    Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 03a115644c4a6dd0f7efec7e9b28b2dbebd7c018
Author: Rabin Vincent <rabin@rab.in>
Date:   Tue Jan 5 16:23:07 2016 +0100

    net: filter: make JITs zero A for SKF_AD_ALU_XOR_X
    
    [ Upstream commit 55795ef5469290f89f04e12e662ded604909e462 ]
    
    The SKF_AD_ALU_XOR_X ancillary is not like the other ancillary data
    instructions since it XORs A with X while all the others replace A with
    some loaded value.  All the BPF JITs fail to clear A if this is used as
    the first instruction in a filter.  This was found using american fuzzy
    lop.
    
    Add a helper to determine if A needs to be cleared given the first
    instruction in a filter, and use this in the JITs.  Except for ARM, the
    rest have only been compile-tested.
    
    Fixes: 3480593131e0 ("net: filter: get rid of BPF_S_* enum")
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 7e95dfd637e49b49f3e3383fc28db48004103184
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Tue Jan 5 10:46:00 2016 +0100

    bridge: Only call /sbin/bridge-stp for the initial network namespace
    
    [ Upstream commit ff62198553e43cdffa9d539f6165d3e83f8a42bc ]
    
    [I stole this patch from Eric Biederman. He wrote:]
    
    > There is no defined mechanism to pass network namespace information
    > into /sbin/bridge-stp therefore don't even try to invoke it except
    > for bridge devices in the initial network namespace.
    >
    > It is possible for unprivileged users to cause /sbin/bridge-stp to be
    > invoked for any network device name which if /sbin/bridge-stp does not
    > guard against unreasonable arguments or being invoked twice on the
    > same network device could cause problems.
    
    [Hannes: changed patch using netns_eq]
    
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a5b9e44af8d3edaf49d14a91cc519a9fba439e67
Author: willy tarreau <w@1wt.eu>
Date:   Sun Jan 10 07:54:56 2016 +0100

    unix: properly account for FDs passed over unix sockets
    
    [ Upstream commit 712f4aad406bb1ed67f3f98d04c044191f0ff593 ]
    
    It is possible for a process to allocate and accumulate far more FDs than
    the process' limit by sending them over a unix socket then closing them
    to keep the process' fd count low.
    
    This change addresses this problem by keeping track of the number of FDs
    in flight per user and preventing non-privileged processes from having
    more FDs in flight than their configured FD limit.
    
    Reported-by: socketpair@gmail.com
    Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Mitigates: CVE-2013-4312 (Linux 2.0+)
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9776b3e2f1e6fc0afcdcfe70ee14fb1b8dd03dff
Author: Florian Westphal <fw@strlen.de>
Date:   Thu Dec 31 14:26:33 2015 +0100

    connector: bump skb->users before callback invocation
    
    [ Upstream commit 55285bf09427c5abf43ee1d54e892f352092b1f1 ]
    
    Dmitry reports memleak with syskaller program.
    Problem is that connector bumps skb usecount but might not invoke callback.
    
    So move skb_get to where we invoke the callback.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit b079e7be7daad50d4b8b30776d368b709a4b7aae
Author: Xin Long <lucien.xin@gmail.com>
Date:   Tue Dec 29 17:49:25 2015 +0800

    sctp: sctp should release assoc when sctp_make_abort_user return NULL in sctp_close
    
    [ Upstream commit 068d8bd338e855286aea54e70d1c101569284b21 ]
    
    In sctp_close, sctp_make_abort_user may return NULL because of memory
    allocation failure. If this happens, it will bypass any state change
    and never free the assoc. The assoc has no chance to be freed and it
    will be kept in memory with the state it had even after the socket is
    closed by sctp_close().
    
    So if sctp_make_abort_user fails to allocate memory, we should abort
    the asoc via sctp_primitive_ABORT as well. Just like the annotation in
    sctp_sf_cookie_wait_prm_abort and sctp_sf_do_9_1_prm_abort said,
    "Even if we can't send the ABORT due to low memory delete the TCB.
    This is a departure from our typical NOMEM handling".
    
    But then the chunk is NULL (low memory) and the SCTP_CMD_REPLY cmd would
    dereference the chunk pointer, and system crash. So we should add
    SCTP_CMD_REPLY cmd only when the chunk is not NULL, just like other
    places where it adds SCTP_CMD_REPLY cmd.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d27fa00889bc11220275eb3a7d107a72664e538f
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Mon Dec 21 12:54:45 2015 +0300

    ipv6/addrlabel: fix ip6addrlbl_get()
    
    [ Upstream commit e459dfeeb64008b2d23bdf600f03b3605dbb8152 ]
    
    ip6addrlbl_get() has never worked. If ip6addrlbl_hold() succeeded,
    ip6addrlbl_get() will exit with '-ESRCH'. If ip6addrlbl_hold() failed,
    ip6addrlbl_get() will use about to be free ip6addrlbl_entry pointer.
    
    Fix this by inverting ip6addrlbl_hold() check.
    
    Fixes: 2a8cc6c89039 ("[IPV6] ADDRCONF: Support RFC3484 configurable address selection policy table.")
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Reviewed-by: Cong Wang <cwang@twopensource.com>
    Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a64b97e5ea7da62dd8011d6dc46705f560ae1de3
Author: Vijay Pandurangan <vijayp@vijayp.ca>
Date:   Fri Dec 18 14:34:59 2015 -0500

    veth: don’t modify ip_summed; doing so treats packets with bad checksums as good.
    
    [ Upstream commit ce8c839b74e3017996fad4e1b7ba2e2625ede82f ]
    
    Packets that arrive from real hardware devices have ip_summed ==
    CHECKSUM_UNNECESSARY if the hardware verified the checksums, or
    CHECKSUM_NONE if the packet is bad or it was unable to verify it. The
    current version of veth will replace CHECKSUM_NONE with
    CHECKSUM_UNNECESSARY, which causes corrupt packets routed from hardware to
    a veth device to be delivered to the application. This caused applications
    at Twitter to receive corrupt data when network hardware was corrupting
    packets.
    
    We believe this was added as an optimization to skip computing and
    verifying checksums for communication between containers. However, locally
    generated packets have ip_summed == CHECKSUM_PARTIAL, so the code as
    written does nothing for them. As far as we can tell, after removing this
    code, these packets are transmitted from one stack to another unmodified
    (tcpdump shows invalid checksums on both sides, as expected), and they are
    delivered correctly to applications. We didn’t test every possible network
    configuration, but we tried a few common ones such as bridging containers,
    using NAT between the host and a container, and routing from hardware
    devices to containers. We have effectively deployed this in production at
    Twitter (by disabling RX checksum offloading on veth devices).
    
    This code dates back to the first version of the driver, commit
    <e314dbdc1c0dc6a548ecf> ("[NET]: Virtual ethernet device driver"), so I
    suspect this bug occurred mostly because the driver API has evolved
    significantly since then. Commit <0b7967503dc97864f283a> ("net/veth: Fix
    packet checksumming") (in December 2010) fixed this for packets that get
    created locally and sent to hardware devices, by not changing
    CHECKSUM_PARTIAL. However, the same issue still occurs for packets coming
    in from hardware devices.
    
    Co-authored-by: Evan Jones <ej@evanjones.ca>
    Signed-off-by: Evan Jones <ej@evanjones.ca>
    Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Cc: Phil Sutter <phil@nwl.cc>
    Cc: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
    Cc: netdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Vijay Pandurangan <vijayp@vijayp.ca>
    Acked-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 856803a7ad4ffd68cb8e1b8d7f3ca760c97019f9
Author: David Howells <dhowells@redhat.com>
Date:   Fri Sep 25 16:31:46 2015 +0100

    X.509: Don't strip leading 00's from key ID when constructing key description
    
    [ Upstream commit e7c87bef7de2417b219d4dbfe8d33a0098a8df54 ]
    
    Don't strip leading zeros from the crypto key ID when using it to construct
    the struct key description as the signature in kernels up to and including
    4.2 matched this aspect of the key.  This means that 1 in 256 keys won't
    actually match if their key ID begins with 00.
    
    The key ID is stored in the module signature as binary and so must be
    converted to text in order to invoke request_key() - but it isn't stripped
    at this point.
    
    Something like this is likely to be observed in dmesg when the key is loaded:
    
    [    1.572423] Loaded X.509 cert 'Build time autogenerated kernel
        key: 62a7c3d2da278be024da4af8652c071f3fea33'
    
    followed by this when we try and use it:
    
      [    1.646153] Request for unknown module key 'Build time autogenerated
        kernel key: 0062a7c3d2da278be024da4af8652c071f3fea33' err -11
    
    The 'Loaded' line should show an extra '00' on the front of the hex string.
    
    This problem should not affect 4.3-rc1 and onwards because there the key
    should be matched on one of its auxiliary identities rather than the key
    struct's description string.
    
    Reported-by: Arjan van de Ven <arjan@linux.intel.com>
    Reported-by: Andy Whitcroft <apw@canonical.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit aedc40f43507f76ac6dc176e610ae606b76c99a3
Author: Konstantin Khlebnikov <koct9i@gmail.com>
Date:   Fri Feb 5 15:37:01 2016 -0800

    radix-tree: fix oops after radix_tree_iter_retry
    
    [ Upstream commit 732042821cfa106b3c20b9780e4c60fee9d68900 ]
    
    Helper radix_tree_iter_retry() resets next_index to the current index.
    In following radix_tree_next_slot current chunk size becomes zero.  This
    isn't checked and it tries to dereference null pointer in slot.
    
    Tagged iterator is fine because retry happens only at slot 0 where tag
    bitmask in iter->tags is filled with single bit.
    
    Fixes: 46437f9a554f ("radix-tree: fix race in gang lookup")
    Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Matthew Wilcox <willy@linux.intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Ohad Ben-Cohen <ohad@wizery.com>
    Cc: Jeremiah Mahler <jmmahler@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 936c791525f61bbc565806af7aed82017f4103ea
Author: Konstantin Khlebnikov <koct9i@gmail.com>
Date:   Fri Feb 5 15:36:50 2016 -0800

    mm: replace vma_lock_anon_vma with anon_vma_lock_read/write
    
    [ Upstream commit 12352d3cae2cebe18805a91fab34b534d7444231 ]
    
    Sequence vma_lock_anon_vma() - vma_unlock_anon_vma() isn't safe if
    anon_vma appeared between lock and unlock.  We have to check anon_vma
    first or call anon_vma_prepare() to be sure that it's here.  There are
    only few users of these legacy helpers.  Let's get rid of them.
    
    This patch fixes anon_vma lock imbalance in validate_mm().  Write lock
    isn't required here, read lock is enough.
    
    And reorders expand_downwards/expand_upwards: security_mmap_addr() and
    wrapping-around check don't have to be under anon vma lock.
    
    Link: https://lkml.kernel.org/r/CACT4Y+Y908EjM2z=706dv4rV6dWtxTLK9nFg9_7DhRMLppBo2g@mail.gmail.com
    Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ed496f4fa64ec3e97725748fb3916128a9299d4c
Author: xuejiufei <xuejiufei@huawei.com>
Date:   Fri Feb 5 15:36:47 2016 -0800

    ocfs2/dlm: clear refmap bit of recovery lock while doing local recovery cleanup
    
    [ Upstream commit c95a51807b730e4681e2ecbdfd669ca52601959e ]
    
    When recovery master down, dlm_do_local_recovery_cleanup() only remove
    the $RECOVERY lock owned by dead node, but do not clear the refmap bit.
    Which will make umount thread falling in dead loop migrating $RECOVERY
    to the dead node.
    
    Signed-off-by: xuejiufei <xuejiufei@huawei.com>
    Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
    Cc: Mark Fasheh <mfasheh@suse.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 80f93bfd16f31619c2e888bd69d474afd20e497c
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 5 15:36:16 2016 -0800

    dump_stack: avoid potential deadlocks
    
    [ Upstream commit d7ce36924344ace0dbdc855b1206cacc46b36d45 ]
    
    Some servers experienced fatal deadlocks because of a combination of
    bugs, leading to multiple cpus calling dump_stack().
    
    The checksumming bug was fixed in commit 34ae6a1aa054 ("ipv6: update
    skb->csum when CE mark is propagated").
    
    The second problem is a faulty locking in dump_stack()
    
    CPU1 runs in process context and calls dump_stack(), grabs dump_lock.
    
       CPU2 receives a TCP packet under softirq, grabs socket spinlock, and
       call dump_stack() from netdev_rx_csum_fault().
    
       dump_stack() spins on atomic_cmpxchg(&dump_lock, -1, 2), since
       dump_lock is owned by CPU1
    
    While dumping its stack, CPU1 is interrupted by a softirq, and happens
    to process a packet for the TCP socket locked by CPU2.
    
    CPU1 spins forever in spin_lock() : deadlock
    
    Stack trace on CPU1 looked like :
    
        NMI backtrace for cpu 1
        RIP: _raw_spin_lock+0x25/0x30
        ...
        Call Trace:
          <IRQ>
          tcp_v6_rcv+0x243/0x620
          ip6_input_finish+0x11f/0x330
          ip6_input+0x38/0x40
          ip6_rcv_finish+0x3c/0x90
          ipv6_rcv+0x2a9/0x500
          process_backlog+0x461/0xaa0
          net_rx_action+0x147/0x430
          __do_softirq+0x167/0x2d0
          call_softirq+0x1c/0x30
          do_softirq+0x3f/0x80
          irq_exit+0x6e/0xc0
          smp_call_function_single_interrupt+0x35/0x40
          call_function_single_interrupt+0x6a/0x70
          <EOI>
          printk+0x4d/0x4f
          printk_address+0x31/0x33
          print_trace_address+0x33/0x3c
          print_context_stack+0x7f/0x119
          dump_trace+0x26b/0x28e
          show_trace_log_lvl+0x4f/0x5c
          show_stack_log_lvl+0x104/0x113
          show_stack+0x42/0x44
          dump_stack+0x46/0x58
          netdev_rx_csum_fault+0x38/0x3c
          __skb_checksum_complete_head+0x6e/0x80
          __skb_checksum_complete+0x11/0x20
          tcp_rcv_established+0x2bd5/0x2fd0
          tcp_v6_do_rcv+0x13c/0x620
          sk_backlog_rcv+0x15/0x30
          release_sock+0xd2/0x150
          tcp_recvmsg+0x1c1/0xfc0
          inet_recvmsg+0x7d/0x90
          sock_recvmsg+0xaf/0xe0
          ___sys_recvmsg+0x111/0x3b0
          SyS_recvmsg+0x5c/0xb0
          system_call_fastpath+0x16/0x1b
    
    Fixes: b58d977432c8 ("dump_stack: serialize the output from dump_stack()")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ef1490f71c14368553365d15abcaefc84771c590
Author: Harry Wentland <harry.wentland@amd.com>
Date:   Fri Jan 22 17:07:26 2016 -0500

    drm/dp/mst: Calculate MST PBN with 31.32 fixed point
    
    [ Upstream commit a9ebb3e46c7ef6112c0da466ef0954673ad36832 ]
    
    Our PBN value overflows the 20 bits integer part of the 20.12
    fixed point. We need to use 31.32 fixed point to avoid this.
    
    This happens with display clocks larger than 293122 (at 24 bpp),
    which we see with the Sharp (and similar) 4k tiled displays.
    
    Signed-off-by: Harry Wentland <harry.wentland@amd.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 038f2c042154abf141209a632befcaf8006c10dd
Author: Harry Wentland <harry.wentland@amd.com>
Date:   Fri Jan 22 17:07:25 2016 -0500

    drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil
    
    [ Upstream commit 64566b5e767f9bc3161055ca1b443a51afb52aad ]
    
    drm_fixp_from_fraction allows us to create a fixed point directly
    from a fraction, rather than creating fixed point values and dividing
    later. This avoids overflow of our 64 bit value for large numbers.
    
    drm_fixp2int_ceil allows us to return the ceiling of our fixed point
    value.
    
    [airlied: squash Jordan's fix]
    32-bit-build-fix: Jordan Lazare <Jordan.Lazare@amd.com>
    Signed-off-by: Harry Wentland <harry.wentland@amd.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e80d0294cae198f168919466cac440af00cecf56
Author: Insu Yun <wuninsu@gmail.com>
Date:   Mon Feb 1 11:08:29 2016 -0500

    drm: fix missing reference counting decrease
    
    [ Upstream commit dabe19540af9e563d526113bb102e1b9b9fa73f9 ]
    
    In drm_dp_mst_allocate_vcpi, it returns true in two paths,
    but in one path, there is no reference couting decrease.
    
    Signed-off-by: Insu Yun <wuninsu@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ccd187166380814719e4a0b4a8c64722a9566361
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sat Sep 27 15:45:02 2014 +0200

    ARM: nomadik: set up MCDATDIR2
    
    [ Upstream commit 43c4034963d6e838d971cbe59bfe84ae6e8370e6 ]
    
    This extra data line for high-speed MMC transfers was unrouted,
    set it up properly in the dtsi file.
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ad092640a6dc836685da4e9e2a5d539a008dc100
Author: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Date:   Thu Feb 4 15:59:43 2016 -0200

    [media] saa7134-alsa: Only frees registered sound cards
    
    [ Upstream commit ac75fe5d8fe4a0bf063be18fb29684405279e79e ]
    
    That prevents this bug:
    [ 2382.269496] BUG: unable to handle kernel NULL pointer dereference at 0000000000000540
    [ 2382.270013] IP: [<ffffffffa01fe616>] snd_card_free+0x36/0x70 [snd]
    [ 2382.270013] PGD 0
    [ 2382.270013] Oops: 0002 [#1] SMP
    [ 2382.270013] Modules linked in: saa7134_alsa(-) tda1004x saa7134_dvb videobuf2_dvb dvb_core tda827x tda8290 tuner saa7134 tveeprom videobuf2_dma_sg videobuf2_memops videobuf2_v4l2 videobuf2_core v4l2_common videodev media auth_rpcgss nfsv4 dns_resolver nfs lockd grace sunrpc tun bridge stp llc ebtables ip6table_filter ip6_tables nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack it87 hwmon_vid snd_hda_codec_idt snd_hda_codec_generic iTCO_wdt iTCO_vendor_support snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_seq pcspkr i2c_i801 snd_seq_device snd_pcm snd_timer lpc_ich snd mfd_core soundcore binfmt_misc i915 video i2c_algo_bit drm_kms_helper drm r8169 ata_generic serio_raw pata_acpi mii i2c_core [last unloaded: videobuf2_memops]
    [ 2382.270013] CPU: 0 PID: 4899 Comm: rmmod Not tainted 4.5.0-rc1+ #4
    [ 2382.270013] Hardware name: PCCHIPS P17G/P17G, BIOS 080012  05/14/2008
    [ 2382.270013] task: ffff880039c38000 ti: ffff88003c764000 task.ti: ffff88003c764000
    [ 2382.270013] RIP: 0010:[<ffffffffa01fe616>]  [<ffffffffa01fe616>] snd_card_free+0x36/0x70 [snd]
    [ 2382.270013] RSP: 0018:ffff88003c767ea0  EFLAGS: 00010286
    [ 2382.270013] RAX: ffff88003c767eb8 RBX: 0000000000000000 RCX: 0000000000006260
    [ 2382.270013] RDX: ffffffffa020a060 RSI: ffffffffa0206de1 RDI: ffff88003c767eb0
    [ 2382.270013] RBP: ffff88003c767ed8 R08: 0000000000019960 R09: ffffffff811a5412
    [ 2382.270013] R10: ffffea0000d7c200 R11: 0000000000000000 R12: ffff88003c767ea8
    [ 2382.270013] R13: 00007ffe760617f7 R14: 0000000000000000 R15: 0000557625d7f1e0
    [ 2382.270013] FS:  00007f80bb1c0700(0000) GS:ffff88003f400000(0000) knlGS:0000000000000000
    [ 2382.270013] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 2382.270013] CR2: 0000000000000540 CR3: 000000003c00f000 CR4: 00000000000006f0
    [ 2382.270013] Stack:
    [ 2382.270013]  000000003c767ed8 ffffffff00000000 ffff880000000000 ffff88003c767eb8
    [ 2382.270013]  ffff88003c767eb8 ffffffffa049a890 00007ffe76060060 ffff88003c767ef0
    [ 2382.270013]  ffffffffa049889d ffffffffa049a500 ffff88003c767f48 ffffffff8111079c
    [ 2382.270013] Call Trace:
    [ 2382.270013]  [<ffffffffa049889d>] saa7134_alsa_exit+0x1d/0x780 [saa7134_alsa]
    [ 2382.270013]  [<ffffffff8111079c>] SyS_delete_module+0x19c/0x1f0
    [ 2382.270013]  [<ffffffff8170fc2e>] entry_SYSCALL_64_fastpath+0x12/0x71
    [ 2382.270013] Code: 20 a0 48 c7 c6 e1 6d 20 a0 48 89 e5 41 54 53 4c 8d 65 d0 48 89 fb 48 83 ec 28 c7 45 d0 00 00 00 00 49 8d 7c 24 08 e8 7a 55 ed e0 <4c> 89 a3 40 05 00 00 48 89 df e8 eb fd ff ff 85 c0 75 1a 48 8d
    [ 2382.270013] RIP  [<ffffffffa01fe616>] snd_card_free+0x36/0x70 [snd]
    [ 2382.270013]  RSP <ffff88003c767ea0>
    [ 2382.270013] CR2: 0000000000000540
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2562c29c3e26baedb6de443aac0b5ef9841d02ec
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 4 17:06:13 2016 +0100

    ALSA: timer: Fix leftover link at closing
    
    [ Upstream commit 094fd3be87b0f102589e2d5c3fa5d06b7e20496d ]
    
    In ALSA timer core, the active timer instance is managed in
    active_list linked list.  Each element is added / removed dynamically
    at timer start, stop and in timer interrupt.  The problem is that
    snd_timer_interrupt() has a thinko and leaves the element in
    active_list when it's the last opened element.  This eventually leads
    to list corruption or use-after-free error.
    
    This hasn't been revealed because we used to delete the list forcibly
    in snd_timer_stop() in the past.  However, the recent fix avoids the
    double-stop behavior (in commit [f784beb75ce8: ALSA: timer: Fix link
    corruption due to double start or stop]), and this leak hits reality.
    
    This patch fixes the link management in snd_timer_interrupt().  Now it
    simply unlinks no matter which stream is.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+Yy2aukHP-EDp8-ziNqNNmb-NTf=jDWXMP7jB8HDa2vng@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 73c0532426ba7eb55f0015faebb1cad466a656e0
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Jan 13 21:35:06 2016 +0100

    ALSA: timer: Fix double unlink of active_list
    
    [ Upstream commit ee8413b01045c74340aa13ad5bdf905de32be736 ]
    
    ALSA timer instance object has a couple of linked lists and they are
    unlinked unconditionally at snd_timer_stop().  Meanwhile
    snd_timer_interrupt() unlinks it, but it calls list_del() which leaves
    the element list itself unchanged.  This ends up with unlinking twice,
    and it was caught by syzkaller fuzzer.
    
    The fix is to use list_del_init() variant properly there, too.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8ee2ce0efc91dd741ca97662568de1d510b76e91
Author: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Date:   Wed Feb 3 17:33:48 2016 -0200

    [media] tda1004x: only update the frontend properties if locked
    
    [ Upstream commit e8beb02343e7582980c6705816cd957cf4f74c7a ]
    
    The tda1004x was updating the properties cache before locking.
    If the device is not locked, the data at the registers are just
    random values with no real meaning.
    
    This caused the driver to fail with libdvbv5, as such library
    calls GET_PROPERTY from time to time, in order to return the
    DVB stats.
    
    Tested with a saa7134 card 78:
    	ASUSTeK P7131 Dual, vendor PCI ID: 1043:4862
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 58914e832e0d4c52afdd158ea527aab3765a76d6
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Jan 26 17:50:12 2016 +0200

    xhci: Fix list corruption in urb dequeue at host removal
    
    [ Upstream commit 5c82171167adb8e4ac77b91a42cd49fb211a81a0 ]
    
    xhci driver frees data for all devices, both usb2 and and usb3 the
    first time usb_remove_hcd() is called, including td_list and and xhci_ring
    structures.
    
    When usb_remove_hcd() is called a second time for the second xhci bus it
    will try to dequeue all pending urbs, and touches td_list which is already
    freed for that endpoint.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Joe Lawrence <joe.lawrence@stratus.com>
    Tested-by: Joe Lawrence <joe.lawrence@stratus.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 0198e12143b9fd59d3c1dd64de12855376e525f9
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Jan 26 17:50:08 2016 +0200

    usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Broxton-M platforms
    
    [ Upstream commit ccc04afb72cddbdf7c0e1c17e92886405a71b754 ]
    
    Intel Broxton M was verifed to require XHCI_PME_STUCK_QUIRK quirk as well.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a347f128723c380d2a492967c7542ac3d344a6f7
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Jan 26 17:50:07 2016 +0200

    usb: xhci: set SSIC port unused only if xhci_suspend succeeds
    
    [ Upstream commit 92149c930cce1865d0d4aca2ab07c2b4b197b418 ]
    
    XHCI_SSIC_PORT_UNUSED quirk was applied to the xHCI host controllers
    in some Intel SoC chips.  With this quirk applied, SSIC port is set
    to "unused" prior to xhci_suspend(). This may cause problem if host
    fails to suspend.  In this case, the port is set to unused without
    host further entering D3, and the port will not be usable anymore.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 264cc74d9b3b04331e3170187bdcb098c4c46c89
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Jan 26 17:50:06 2016 +0200

    usb: xhci: add a quirk bit for ssic port unused
    
    [ Upstream commit 7e70cbffe236721051bbaff965e477df06dcb190 ]
    
    Two workarounds introduced by commit b8cb91e058cd ("xhci: Workaround
    for PME stuck issues in Intel xhci") and commit abce329c27b3 ("xhci:
    Workaround to get D3 working in Intel xHCI") share a single quirk bit
    XHCI_PME_STUCK_QUIRK. These two workarounds actually are different and
    might happen on different hardwares. Need to separate them by adding a
    quirk bit for the later.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a6987a4cdc4712ca18fa3caaf35e1d5b9d52e180
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Jan 26 17:50:05 2016 +0200

    usb: xhci: handle both SSIC ports in PME stuck quirk
    
    [ Upstream commit fa89537783cb442263fa5a14df6c7693eaf32f11 ]
    
    Commit abce329c27b3 ("xhci: Workaround to get D3 working in Intel xHCI")
    adds a workaround for a limitation of PME storm caused by SSIC port in
    some Intel SoCs. This commit only handled one SSIC port, while there
    are actually two SSIC ports in the chips. This patch handles both SSIC
    ports. Without this fix, users still see PME storm.
    
    Cc: stable@vger.kernel.org # v4.2+
    Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 469a43f85872a75878c00b6b633fdb6e6230ce14
Author: Tomer Barletz <barletz@gmail.com>
Date:   Mon Sep 21 17:46:11 2015 +0300

    xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
    
    commit 2b7627b73e81e5d23d5ae1490fe8e690af86e053 upstream.
    
    xhci_pme_quirk() is only used when CONFIG_PM is defined.
    Compiling a kernel without PM complains about this function
    
    [reworded commit message -Mathias]
    Signed-off-by: Tomer Barletz <barletz@gmail.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a587e280cb1b54fc7702345bf3fe2fb85efda25b
Author: Rajmohan Mani <rajmohan.mani@intel.com>
Date:   Tue Jul 21 17:20:26 2015 +0300

    xhci: Workaround to get D3 working in Intel xHCI
    
    [ Upstream commit abce329c27b315cfc01be1a305ee976ee13ed4cf ]
    
    The xHCI in Intel CherryView / Braswell Platform requires
    a driver workaround to get xHCI D3 working. Without this
    workaround, xHCI might not enter D3.
    
    Workaround is to configure SSIC PORT as "unused" before D3
    entry and "used" after D3 exit. This is done through a
    vendor specific register (PORT2_SSIC_CONFIG_REG2 at offset
    0x883c), in xhci suspend / resume callbacks.
    
    Verified xHCI D3 works fine in CherryView / Braswell platform.
    
    Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 6532dbb096712cd68c04de7f9963702fced6225e
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Jul 21 17:20:25 2015 +0300

    xhci: call BIOS workaround to enable runtime suspend on Intel Braswell
    
    [ Upstream commit c3c5819a350952439c3198aa46581f9e4c46557f ]
    
    Intel xhci hw that require XHCI_PME_STUCK quirk have as default disabled
    xhci from going to D3 state in runtime suspend. Driver needs to verify
    it can deal with the hw by calling an ACPI _DSM method to get D3 enabled.
    
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 164d23c2c000041a707ed50321dde5c8a367787a
Author: Matthew Wilcox <willy@linux.intel.com>
Date:   Tue Feb 2 16:57:52 2016 -0800

    radix-tree: fix race in gang lookup
    
    [ Upstream commit 46437f9a554fbe3e110580ca08ab703b59f2f95a ]
    
    If the indirect_ptr bit is set on a slot, that indicates we need to redo
    the lookup.  Introduce a new function radix_tree_iter_retry() which
    forces the loop to retry the lookup by setting 'slot' to NULL and
    turning the iterator back to point at the problematic entry.
    
    This is a pretty rare problem to hit at the moment; the lookup has to
    race with a grow of the radix tree from a height of 0.  The consequences
    of hitting this race are that gang lookup could return a pointer to a
    radix_tree_node instead of a pointer to whatever the user had inserted
    in the tree.
    
    Fixes: cebbd29e1c2f ("radix-tree: rewrite gang lookup using iterator")
    Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Ohad Ben-Cohen <ohad@wizery.com>
    Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2f7eff9c342c13c923805b7c38ef946bf731e3f7
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Tue Feb 2 16:57:35 2016 -0800

    drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration
    
    [ Upstream commit 461c7fa126794157484dca48e88effa4963e3af3 ]
    
    Reduced testcase:
    
        #include <fcntl.h>
        #include <unistd.h>
        #include <sys/mman.h>
        #include <numaif.h>
    
        #define SIZE 0x2000
    
        int main()
        {
            int fd;
            void *p;
    
            fd = open("/dev/sg0", O_RDWR);
            p = mmap(NULL, SIZE, PROT_EXEC, MAP_PRIVATE | MAP_LOCKED, fd, 0);
            mbind(p, SIZE, 0, NULL, 0, MPOL_MF_MOVE);
            return 0;
        }
    
    We shouldn't try to migrate pages in sg VMA as we don't have a way to
    update Sg_scatter_hold::pages accordingly from mm core.
    
    Let's mark the VMA as VM_IO to indicate to mm core that the VMA is not
    migratable.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Doug Gilbert <dgilbert@interlog.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Shiraz Hashim <shashim@codeaurora.org>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Cc: syzkaller <syzkaller@googlegroups.com>
    Cc: Kostya Serebryany <kcc@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit fab9a692e84b6abcefbc9636a58c138c0f17955a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Feb 3 08:32:44 2016 +0100

    ALSA: seq: Fix lockdep warnings due to double mutex locks
    
    [ Upstream commit 7f0973e973cd74aa40747c9d38844560cd184ee8 ]
    
    The port subscription code uses double mutex locks for source and
    destination ports, and this may become racy once when wrongly set up.
    It leads to lockdep warning splat, typically triggered by fuzzer like
    syzkaller, although the actual deadlock hasn't been seen, so far.
    
    This patch simplifies the handling by reducing to two single locks, so
    that no lockdep warning will be trigger any longer.
    
    By splitting to two actions, a still-in-progress element shall be
    added in one list while handling another.  For ignoring this element,
    a new check is added in deliver_to_subscribers().
    
    Along with it, the code to add/remove the subscribers list element was
    cleaned up and refactored.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+aKQXV7xkBW9hpQbzaDO7LrUvohxWh-UwMxXjDy-yBD=A@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 798f2119c8271130a86b13d6231d0071ba6e8cd0
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Feb 3 14:41:22 2016 +0100

    ALSA: rawmidi: Fix race at copying & updating the position
    
    [ Upstream commit 81f577542af15640cbcb6ef68baa4caa610cbbfc ]
    
    The rawmidi read and write functions manage runtime stream status
    such as runtime->appl_ptr and runtime->avail.  These point where to
    copy the new data and how many bytes have been copied (or to be
    read).  The problem is that rawmidi read/write call copy_from_user()
    or copy_to_user(), and the runtime spinlock is temporarily unlocked
    and relocked while copying user-space.  Since the current code
    advances and updates the runtime status after the spin unlock/relock,
    the copy and the update may be asynchronous, and eventually
    runtime->avail might go to a negative value when many concurrent
    accesses are done.  This may lead to memory corruption in the end.
    
    For fixing this race, in this patch, the status update code is
    performed in the same lock before the temporary unlock.  Also, the
    spinlock is now taken more widely in snd_rawmidi_kernel_read1() for
    protecting more properly during the whole operation.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+b-dCmNf1GpgPKfDO0ih+uZCL2JV4__j-r1kdhPLSgQCQ@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f9e148768d63dab40baea6160f0067b2d89baece
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sun Jan 31 11:57:41 2016 +0100

    ALSA: rawmidi: Make snd_rawmidi_transmit() race-free
    
    [ Upstream commit 06ab30034ed9c200a570ab13c017bde248ddb2a6 ]
    
    A kernel WARNING in snd_rawmidi_transmit_ack() is triggered by
    syzkaller fuzzer:
      WARNING: CPU: 1 PID: 20739 at sound/core/rawmidi.c:1136
    Call Trace:
     [<     inline     >] __dump_stack lib/dump_stack.c:15
     [<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
     [<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
     [<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
     [<ffffffff84f80bd5>] snd_rawmidi_transmit_ack+0x275/0x400 sound/core/rawmidi.c:1136
     [<ffffffff84fdb3c1>] snd_virmidi_output_trigger+0x4b1/0x5a0 sound/core/seq/seq_virmidi.c:163
     [<     inline     >] snd_rawmidi_output_trigger sound/core/rawmidi.c:150
     [<ffffffff84f87ed9>] snd_rawmidi_kernel_write1+0x549/0x780 sound/core/rawmidi.c:1223
     [<ffffffff84f89fd3>] snd_rawmidi_write+0x543/0xb30 sound/core/rawmidi.c:1273
     [<ffffffff817b0323>] __vfs_write+0x113/0x480 fs/read_write.c:528
     [<ffffffff817b1db7>] vfs_write+0x167/0x4a0 fs/read_write.c:577
     [<     inline     >] SYSC_write fs/read_write.c:624
     [<ffffffff817b50a1>] SyS_write+0x111/0x220 fs/read_write.c:616
     [<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a arch/x86/entry/entry_64.S:185
    
    Also a similar warning is found but in another path:
    Call Trace:
     [<     inline     >] __dump_stack lib/dump_stack.c:15
     [<ffffffff82be2c0d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
     [<ffffffff81355139>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
     [<ffffffff81355369>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
     [<ffffffff8527e69a>] rawmidi_transmit_ack+0x24a/0x3b0 sound/core/rawmidi.c:1133
     [<ffffffff8527e851>] snd_rawmidi_transmit_ack+0x51/0x80 sound/core/rawmidi.c:1163
     [<ffffffff852d9046>] snd_virmidi_output_trigger+0x2b6/0x570 sound/core/seq/seq_virmidi.c:185
     [<     inline     >] snd_rawmidi_output_trigger sound/core/rawmidi.c:150
     [<ffffffff85285a0b>] snd_rawmidi_kernel_write1+0x4bb/0x760 sound/core/rawmidi.c:1252
     [<ffffffff85287b73>] snd_rawmidi_write+0x543/0xb30 sound/core/rawmidi.c:1302
     [<ffffffff817ba5f3>] __vfs_write+0x113/0x480 fs/read_write.c:528
     [<ffffffff817bc087>] vfs_write+0x167/0x4a0 fs/read_write.c:577
     [<     inline     >] SYSC_write fs/read_write.c:624
     [<ffffffff817bf371>] SyS_write+0x111/0x220 fs/read_write.c:616
     [<ffffffff86660276>] entry_SYSCALL_64_fastpath+0x16/0x7a arch/x86/entry/entry_64.S:185
    
    In the former case, the reason is that virmidi has an open code
    calling snd_rawmidi_transmit_ack() with the value calculated outside
    the spinlock.   We may use snd_rawmidi_transmit() in a loop just for
    consuming the input data, but even there, there is a race between
    snd_rawmidi_transmit_peek() and snd_rawmidi_tranmit_ack().
    
    Similarly in the latter case, it calls snd_rawmidi_transmit_peek() and
    snd_rawmidi_tranmit_ack() separately without protection, so they are
    racy as well.
    
    The patch tries to address these issues by the following ways:
    - Introduce the unlocked versions of snd_rawmidi_transmit_peek() and
      snd_rawmidi_transmit_ack() to be called inside the explicit lock.
    - Rewrite snd_rawmidi_transmit() to be race-free (the former case).
    - Make the split calls (the latter case) protected in the rawmidi spin
      lock.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+YPq1+cYLkadwjWa5XjzF1_Vki1eHnVn-Lm0hzhSpu5PA@mail.gmail.com
    BugLink: http://lkml.kernel.org/r/CACT4Y+acG4iyphdOZx47Nyq_VHGbpJQK-6xNpiqUjaZYqsXOGw@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 37c3f6c53379fd0758c336fdd8affc468c6ac823
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Feb 3 12:32:51 2016 +0100

    ALSA: hda - Add fixup for Mac Mini 7,1 model
    
    [ Upstream commit 2154cc0e2d4ae15132d005d17e473327c70c9a06 ]
    
    Mac Mini 7,1 model with CS4208 codec reports the headphone jack
    detection wrongly in an inverted way.  Moreover, the advertised pins
    for the audio input and SPDIF output have actually no jack detection.
    
    This patch addresses these issues.  The inv_jack_detect flag is set
    for fixing the headphone jack detection, and the pin configs for audio
    input and SPDIF output are marked as non-detectable.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105161
    Report-and-tested-by: moosotc@gmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d404c4e249efed53e802cc492a7d3fc4f98dfb9e
Author: Oded Gabbay <oded.gabbay@gmail.com>
Date:   Sat Jan 30 07:59:33 2016 +0200

    drm/radeon: mask out WC from BO on unsupported arches
    
    [ Upstream commit c5244987394648913ae1a03879c58058a2fc2cee ]
    
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 691cba1cada5fdce6e0db8303c64d78acc0f2fef
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Thu Nov 5 17:25:27 2015 +0900

    drm/radeon: Always disable RADEON_GEM_GTT_UC along with RADEON_GEM_GTT_WC
    
    [ Upstream commit a28bbd5824d4a2af98de45b300ab8d8fb39739fc ]
    
    Write-combining is a CPU feature. From the GPU POV, these both simply
    mean no GPU<->CPU cache coherency.
    
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 1b9f6505177e124d1f1bc65036e78346483772d5
Author: Dave Airlie <airlied@redhat.com>
Date:   Sat Jan 30 07:59:32 2016 +0200

    drm: add helper to check for wc memory support
    
    [ Upstream commit 4b0e4e4af6c6dc8354dcb72182d52c1bc55f12fc ]
    
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9f750afe8d4d61085232d302b036e20538a69d32
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Jan 30 23:09:08 2016 +0100

    ALSA: timer: Fix link corruption due to double start or stop
    
    [ Upstream commit f784beb75ce82f4136f8a0960d3ee872f7109e09 ]
    
    Although ALSA timer code got hardening for races, it still causes
    use-after-free error.  This is however rather a corrupted linked list,
    not actually the concurrent accesses.  Namely, when timer start is
    triggered twice, list_add_tail() is called twice, too.  This ends
    up with the link corruption and triggers KASAN error.
    
    The simplest fix would be replacing list_add_tail() with
    list_move_tail(), but fundamentally it's the problem that we don't
    check the double start/stop correctly.  So, the right fix here is to
    add the proper checks to snd_timer_start() and snd_timer_stop() (and
    their variants).
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+ZyPRoMQjmawbvmCEDrkBD2BQuH7R09=eOkf5ESK8kJAw@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d7a258c32a26a8c66c4a062dbc0d752ef692eae4
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jan 14 17:01:46 2016 +0100

    ALSA: timer: Code cleanup
    
    [ Upstream commit c3b1681375dc6e71d89a3ae00cc3ce9e775a8917 ]
    
    This is a minor code cleanup without any functional changes:
    - Kill keep_flag argument from _snd_timer_stop(), as all callers pass
      only it false.
    - Remove redundant NULL check in _snd_timer_stop().
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f40ee9cf5f69092e63b6f6262d9fd19a24b00bab
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jan 14 16:30:58 2016 +0100

    ALSA: timer: Harden slave timer list handling
    
    [ Upstream commit b5a663aa426f4884c71cd8580adae73f33570f0d ]
    
    A slave timer instance might be still accessible in a racy way while
    operating the master instance as it lacks of locking.  Since the
    master operation is mostly protected with timer->lock, we should cope
    with it while changing the slave instance, too.  Also, some linked
    lists (active_list and ack_list) of slave instances aren't unlinked
    immediately at stopping or closing, and this may lead to unexpected
    accesses.
    
    This patch tries to address these issues.  It adds spin lock of
    timer->lock (either from master or slave, which is equivalent) in a
    few places.  For avoiding a deadlock, we ensure that the global
    slave_active_lock is always locked at first before each timer lock.
    
    Also, ack and active_list of slave instances are properly unlinked at
    snd_timer_stop() and snd_timer_close().
    
    Last but not least, remove the superfluous call of _snd_timer_stop()
    at removing slave links.  This is a noop, and calling it may confuse
    readers wrt locking.  Further cleanup will follow in a later patch.
    
    Actually we've got reports of use-after-free by syzkaller fuzzer, and
    this hopefully fixes these issues.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a8f4e08502704d6255b599cf5b87e52fd5da72c2
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Jan 30 23:30:25 2016 +0100

    ALSA: seq: Fix yet another races among ALSA timer accesses
    
    [ Upstream commit 2cdc7b636d55cbcf42e1e6c8accd85e62d3e9ae8 ]
    
    ALSA sequencer may open/close and control ALSA timer instance
    dynamically either via sequencer events or direct ioctls.  These are
    done mostly asynchronously, and it may call still some timer action
    like snd_timer_start() while another is calling snd_timer_close().
    Since the instance gets removed by snd_timer_close(), it may lead to
    a use-after-free.
    
    This patch tries to address such a race by protecting each
    snd_timer_*() call via the existing spinlock and also by avoiding the
    access to timer during close call.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+Z6RzW5MBr-HUdV-8zwg71WQfKTdPpYGvOeS7v4cyurNQ@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c4cc4bef9853c3dd4242b20a9d3a8bf513e062fb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sun Jan 31 10:32:37 2016 +0100

    ALSA: pcm: Fix potential deadlock in OSS emulation
    
    [ Upstream commit b248371628aad599a48540962f6b85a21a8a0c3f ]
    
    There are potential deadlocks in PCM OSS emulation code while
    accessing read/write and mmap concurrently.  This comes from the
    infamous mmap_sem usage in copy_from/to_user().  Namely,
    
       snd_pcm_oss_write() ->
         &runtime->oss.params_lock ->
            copy_to_user() ->
              &mm->mmap_sem
      mmap() ->
        &mm->mmap_sem ->
          snd_pcm_oss_mmap() ->
            &runtime->oss.params_lock
    
    Since we can't avoid taking params_lock from mmap code path, use
    trylock variant and aborts with -EAGAIN as a workaround of this AB/BA
    deadlock.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+bVrBKDG0G2_AcUgUQa+X91VKTeS4v+wN7BSHwHtqn3kQ@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 831cc935be3291cbf739a9b8daea5805214c970f
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 1 12:04:55 2016 +0100

    ALSA: rawmidi: Remove kernel WARNING for NULL user-space buffer check
    
    [ Upstream commit cc85f7a634cfaf9f0713c6aa06d08817424db37a ]
    
    NULL user-space buffer can be passed even in a normal path, thus it's
    not good to spew a kernel warning with stack trace at each time.
    Just drop snd_BUG_ON() macro usage there.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+YfVJ3L+q0i-4vyQVyyPD7V=OMX0PWPi29x9Bo3QaBLdw@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 1d2fd7a1579cffcb590b85f4ff2abcd4326b2754
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 1 12:06:42 2016 +0100

    ALSA: seq: Fix race at closing in virmidi driver
    
    [ Upstream commit 2d1b5c08366acd46c35a2e9aba5d650cb5bf5c19 ]
    
    The virmidi driver has an open race at closing its assigned rawmidi
    device, and this may lead to use-after-free in
    snd_seq_deliver_single_event().
    
    Plug the hole by properly protecting the linked list deletion and
    calling in the right order in snd_virmidi_input_close().
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+Zd66+w12fNN85-425cVQT=K23kWbhnCEcMB8s3us-Frw@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit b7f7e957324e764ab5e50c7e988d070a44b59d65
Author: Wang, Rui Y <rui.y.wang@intel.com>
Date:   Wed Jan 27 17:08:37 2016 +0800

    crypto: algif_hash - wait for crypto_ahash_init() to complete
    
    [ Upstream commit fe09786178f9df713a4b2dd6b93c0a722346bf5e ]
    
    hash_sendmsg/sendpage() need to wait for the completion
    of crypto_ahash_init() otherwise it can cause panic.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Rui Wang <rui.y.wang@intel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e3c2fdba55272723d250b4ac9318dc0e1fff4c73
Author: Lev Lybin <lev.lybin@gmail.com>
Date:   Fri Jan 29 22:55:11 2016 +0700

    ALSA: usb-audio: Add quirk for Microsoft LifeCam HD-6000
    
    [ Upstream commit 1b3c993a699bed282e47c3f7c49d539c331dae04 ]
    
    Microsoft LifeCam HD-6000 (045e:076f) requires the similar quirk for
    avoiding the stall due to the invalid sample rate reads.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111491
    Signed-off-by: Lev Lybin <lev.lybin@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f27cf78cbc31a31921fca8b130f0b891e9eca54e
Author: Jurgen Kramer <gtmkramer@xs4all.nl>
Date:   Fri Jan 29 14:59:25 2016 +0100

    ALSA: usb-audio: Add native DSD support for PS Audio NuWave DAC
    
    [ Upstream commit ad678b4ccd41aa51cf5f142c0e8cffe9d61fc2bf ]
    
    This patch adds native DSD support for the PS Audio NuWave DAC.
    
    Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 415609e31da367be00bed48cbab7fafcd9f2a1a0
Author: Jurgen Kramer <gtmkramer@xs4all.nl>
Date:   Mon Nov 9 12:13:55 2015 +0100

    ALSA: usb: Add native DSD support for Aune X1S
    
    [ Upstream commit 3577eb6d02c3f5bf751f60f125e34c2197605c65 ]
    
    commit 16771c7c704769c5f3d70c024630b6e5b3eafa67 upstream.
    
    This patch adds native DSD support for the Aune X1S 32BIT/384 DSD DAC
    
    Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 6b851b9d5140dd8ccc2cc802c263be507c129bca
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Jan 13 16:35:20 2016 +0200

    drm/i915/dp: fall back to 18 bpp when sink capability is unknown
    
    [ Upstream commit 5efd407674068dede403551bea3b0b134c32513a ]
    
    Per DP spec, the source device should fall back to 18 bpp, VESA range
    RGB when the sink capability is unknown. Fix the color depth
    clamping. 18 bpp color depth should ensure full color range in automatic
    mode.
    
    The clamping has been HDMI specific since its introduction in
    
    commit 996a2239f93b03c5972923f04b097f65565c5bed
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Fri Apr 19 11:24:34 2013 +0200
    
        drm/i915: Disable high-bpc on pre-1.4 EDID screens
    
    Cc: stable@vger.kernel.org
    Reported-and-tested-by: Dihan Wickremasuriya <nayomal@gmail.com>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105331
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1452695720-7076-1-git-send-email-jani.nikula@intel.com
    (cherry picked from commit 013dd9e038723bbd2aa67be51847384b75be8253)
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 898e46aa233af6cebd769cf4f90d45471a85bbe9
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Wed Jan 27 00:16:37 2016 +0800

    crypto: shash - Fix has_key setting
    
    [ Upstream commit 00420a65fa2beb3206090ead86942484df2275f3 ]
    
    The has_key logic is wrong for shash algorithms as they always
    have a setkey function.  So we should instead be testing against
    shash_no_setkey.
    
    Fixes: a5596d633278 ("crypto: hash - Add crypto_ahash_has_setkey")
    Cc: stable@vger.kernel.org
    Reported-by: Stephan Mueller <smueller@chronox.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Tested-by: Stephan Mueller <smueller@chronox.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c8a18e001503246af09bc1ef8cbabe0ce2c60faa
Author: Mohamed Jamsheeth Hajanajubudeen <mohamedjamsheeth.hajanajubudeen@atmel.com>
Date:   Fri Dec 11 17:06:26 2015 +0530

    ARM: dts: at91: sama5d4: fix instance id of DBGU
    
    [ Upstream commit 929e883f2bfdf68d4bd3aec43912e956417005c7 ]
    
    Change instance id of DBGU to 45.
    
    Signed-off-by: Mohamed Jamsheeth Hajanajubudeen <mohamedjamsheeth.hajanajubudeen@atmel.com>
    Fixes: 7c661394c56c ("ARM: at91: dt: add device tree file for SAMA5D4 SoC")
    Cc: stable@vger.kernel.org   # 3.18+
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c773151198dce8785f189567d29005378bd183e9
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jan 26 11:29:03 2016 +0100

    rfkill: fix rfkill_fop_read wait_event usage
    
    [ Upstream commit 6736fde9672ff6717ac576e9bba2fd5f3dfec822 ]
    
    The code within wait_event_interruptible() is called with
    !TASK_RUNNING, so mustn't call any functions that can sleep,
    like mutex_lock().
    
    Since we re-check the list_empty() in a loop after the wait,
    it's safe to simply use list_empty() without locking.
    
    This bug has existed forever, but was only discovered now
    because all userspace implementations, including the default
    'rfkill' tool, use poll() or select() to get a readable fd
    before attempting to read.
    
    Cc: stable@vger.kernel.org
    Fixes: c64fb01627e24 ("rfkill: create useful userspace interface")
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a61db7352e845785110ab878b489c503c62acd06
Author: Sachin Kulkarni <Sachin.Kulkarni@imgtec.com>
Date:   Tue Jan 12 14:30:19 2016 +0530

    mac80211: Requeue work after scan complete for all VIF types.
    
    [ Upstream commit 4fa11ec726a32ea6dd768dbb2e2af3453a98ec0a ]
    
    During a sw scan ieee80211_iface_work ignores work items for all vifs.
    However after the scan complete work is requeued only for STA, ADHOC
    and MESH iftypes.
    
    This occasionally results in event processing getting delayed/not
    processed for iftype AP when it coexists with a STA. This can result
    in data halt and eventually disconnection on the AP interface.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Sachin Kulkarni <Sachin.Kulkarni@imgtec.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8676a9bcce16820eea8e1bfa233dcf6608e65e33
Author: Yang Shi <yang.shi@linaro.org>
Date:   Wed Nov 18 10:48:55 2015 -0800

    arm64: restore bogomips information in /proc/cpuinfo
    
    [ Upstream commit 92e788b749862ebe9920360513a718e5dd4da7a9 ]
    
    As previously reported, some userspace applications depend on bogomips
    showed by /proc/cpuinfo. Although there is much less legacy impact on
    aarch64 than arm, it does break libvirt.
    
    This patch reverts commit 326b16db9f69 ("arm64: delay: don't bother
    reporting bogomips in /proc/cpuinfo"), but with some tweak due to
    context change and without the pr_info().
    
    Fixes: 326b16db9f69 ("arm64: delay: don't bother reporting bogomips in /proc/cpuinfo")
    Signed-off-by: Yang Shi <yang.shi@linaro.org>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Cc: <stable@vger.kernel.org> # 3.12+
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 425b3d713f077fc340bad07137104304c22e8f5d
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Dec 16 13:32:38 2015 -0500

    USB: fix invalid memory access in hub_activate()
    
    [ Upstream commit e50293ef9775c5f1cf3fcc093037dd6a8c5684ea ]
    
    Commit 8520f38099cc ("USB: change hub initialization sleeps to
    delayed_work") changed the hub_activate() routine to make part of it
    run in a workqueue.  However, the commit failed to take a reference to
    the usb_hub structure or to lock the hub interface while doing so.  As
    a result, if a hub is plugged in and quickly unplugged before the work
    routine can run, the routine will try to access memory that has been
    deallocated.  Or, if the hub is unplugged while the routine is
    running, the memory may be deallocated while it is in active use.
    
    This patch fixes the problem by taking a reference to the usb_hub at
    the start of hub_activate() and releasing it at the end (when the work
    is finished), and by locking the hub interface while the work routine
    is running.  It also adds a check at the start of the routine to see
    if the hub has already been disconnected, in which nothing should be
    done.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Alexandru Cornea <alexandru.cornea@intel.com>
    Tested-by: Alexandru Cornea <alexandru.cornea@intel.com>
    Fixes: 8520f38099cc ("USB: change hub initialization sleeps to delayed_work")
    CC: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9ecd6b7f255b857bf32d17ac2be2cd5ef9a0235f
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Fri Jan 29 16:49:47 2016 +0200

    serial: 8250_pci: Add Intel Broadwell ports
    
    [ Upstream commit 6c55d9b98335f7f6bd5f061866ff1633401f3a44 ]
    
    Some recent (early 2015) macbooks have Intel Broadwell where LPSS UARTs are
    PCI enumerated instead of ACPI. The LPSS UART block is pretty much same as
    used on Intel Baytrail so we can reuse the existing Baytrail setup code.
    
    Add both Broadwell LPSS UART ports to the list of supported devices.
    
    Signed-off-by: Leif Liddy <leif.liddy@gmail.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ec118360037fdd1c370263d0e618b1541420d0f0
Author: Matt Fleming <matt@codeblueprint.co.uk>
Date:   Fri Jan 29 11:36:10 2016 +0000

    x86/mm/pat: Avoid truncation when converting cpa->numpages to address
    
    [ Upstream commit 742563777e8da62197d6cb4b99f4027f59454735 ]
    
    There are a couple of nasty truncation bugs lurking in the pageattr
    code that can be triggered when mapping EFI regions, e.g. when we pass
    a cpa->pgd pointer. Because cpa->numpages is a 32-bit value, shifting
    left by PAGE_SHIFT will truncate the resultant address to 32-bits.
    
    Viorel-Cătălin managed to trigger this bug on his Dell machine that
    provides a ~5GB EFI region which requires 1236992 pages to be mapped.
    When calling populate_pud() the end of the region gets calculated
    incorrectly in the following buggy expression,
    
      end = start + (cpa->numpages << PAGE_SHIFT);
    
    And only 188416 pages are mapped. Next, populate_pud() gets invoked
    for a second time because of the loop in __change_page_attr_set_clr(),
    only this time no pages get mapped because shifting the remaining
    number of pages (1048576) by PAGE_SHIFT is zero. At which point the
    loop in __change_page_attr_set_clr() spins forever because we fail to
    map progress.
    
    Hitting this bug depends very much on the virtual address we pick to
    map the large region at and how many pages we map on the initial run
    through the loop. This explains why this issue was only recently hit
    with the introduction of commit
    
      a5caa209ba9c ("x86/efi: Fix boot crash by mapping EFI memmap
       entries bottom-up at runtime, instead of top-down")
    
    It's interesting to note that safe uses of cpa->numpages do exist in
    the pageattr code. If instead of shifting ->numpages we multiply by
    PAGE_SIZE, no truncation occurs because PAGE_SIZE is a UL value, and
    so the result is unsigned long.
    
    To avoid surprises when users try to convert very large cpa->numpages
    values to addresses, change the data type from 'int' to 'unsigned
    long', thereby making it suitable for shifting by PAGE_SHIFT without
    any type casting.
    
    The alternative would be to make liberal use of casting, but that is
    far more likely to cause problems in the future when someone adds more
    code and fails to cast properly; this bug was difficult enough to
    track down in the first place.
    
    Reported-and-tested-by: Viorel-Cătălin Răpițeanu <rapiteanu.catalin@gmail.com>
    Acked-by: Borislav Petkov <bp@alien8.de>
    Cc: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=110131
    Link: http://lkml.kernel.org/r/1454067370-10374-1-git-send-email-matt@codeblueprint.co.uk
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2428c9704a853cdddf9905695ad376c117c1228a
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Fri Jan 15 00:47:41 2016 +0100

    Staging: speakup: Fix getting port information
    
    [ Upstream commit 327b882d3bcc1fba82dbd39b5cf5a838c81218e2 ]
    
    Commit f79b0d9c223c ("staging: speakup: Fixed warning <linux/serial.h>
    instead of <asm/serial.h>") broke the port information in the speakup
    driver: SERIAL_PORT_DFNS only gets defined if asm/serial.h is included,
    and no other header includes asm/serial.h.
    
    We here make sure serialio.c does get the arch-specific definition of
    SERIAL_PORT_DFNS from asm/serial.h, if any.
    
    Along the way, this makes sure that we do have information for the
    requested serial port number (index)
    
    Fixes: f79b0d9c223c ("staging: speakup: Fixed warning <linux/serial.h> instead of <asm/serial.h>")
    Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Cc: stable <stable@vger.kernel.org> # 3.18
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 362f7aa7711bc38a3cb9f1c3bfe83fa41405bc9d
Author: Rob Clark <robdclark@gmail.com>
Date:   Wed Oct 15 15:00:47 2014 -0400

    drm/vmwgfx: respect 'nomodeset'
    
    [ Upstream commit 96c5d076f0a5e2023ecdb44d8261f87641ee71e0 ]
    
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>.
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 7108febf59d5658ea3742999a38bbda40f667820
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jan 28 07:54:16 2016 +0100

    ALSA: dummy: Disable switching timer backend via sysfs
    
    [ Upstream commit 7ee96216c31aabe1eb42fb91ff50dae9fcd014b2 ]
    
    ALSA dummy driver can switch the timer backend between system timer
    and hrtimer via its hrtimer module option.  This can be also switched
    dynamically via sysfs, but it may lead to a memory corruption when
    switching is done while a PCM stream is running; the stream instance
    for the newly switched timer method tries to access the memory that
    was allocated by another timer method although the sizes differ.
    
    As the simplest fix, this patch just disables the switch via sysfs by
    dropping the writable bit.
    
    BugLink: http://lkml.kernel.org/r/CACT4Y+ZGEeEBntHW5WHn2GoeE0G_kRrCmUh6=dWyy-wfzvuJLg@mail.gmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 4702c50cfaecb5a4daa40b6d2b10983b8f2fc8e6
Author: Jann Horn <jann@thejh.net>
Date:   Sat Dec 26 06:00:48 2015 +0100

    seccomp: always propagate NO_NEW_PRIVS on tsync
    
    [ Upstream commit 103502a35cfce0710909da874f092cb44823ca03 ]
    
    Before this patch, a process with some permissive seccomp filter
    that was applied by root without NO_NEW_PRIVS was able to add
    more filters to itself without setting NO_NEW_PRIVS by setting
    the new filter from a throwaway thread with NO_NEW_PRIVS.
    
    Signed-off-by: Jann Horn <jann@thejh.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d71046b5dfe38d4954142e5117a66bc54e40116b
Author: Milo Kim <milo.kim@ti.com>
Date:   Wed Jan 13 16:19:50 2016 +0900

    irqchip/atmel-aic: Fix wrong bit operation for IRQ priority
    
    [ Upstream commit 49f34134aea74f19ca016f055d25ee55ec359dee ]
    
    Atmel AIC has common structure for SMR (Source Mode Register).
    
      bit[6:5] Interrupt source type
      bit[2:0] Priority level
      Other bits are unused.
    
    To update new priority value, bit[2:0] should be cleared first and then
    new priority level can be written. However, aic_common_set_priority()
    helper clears source type bits instead of priority bits.
    This patch fixes wrong mask bit operation.
    
    Fixes: b1479ebb7720 "irqchip: atmel-aic: Add atmel AIC/AIC5 drivers"
    Signed-off-by: Milo Kim <milo.kim@ti.com>
    Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Ludovic Desroches <ludovic.desroches@atmel.com>
    Cc: Nicholas Ferre <nicolas.ferre@atmel.com>
    Cc: stable@vger.kernel.org #v3.17+
    Link: http://lkml.kernel.org/r/1452669592-3401-2-git-send-email-milo.kim@ti.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 08fe30be26f94518bbae9eb15c506b9b7d0f0dbf
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Sun Jan 10 22:40:58 2016 -0800

    staging/speakup: Use tty_ldisc_ref() for paste kworker
    
    [ Upstream commit f4f9edcf9b5289ed96113e79fa65a7bf27ecb096 ]
    
    As the function documentation for tty_ldisc_ref_wait() notes, it is
    only callable from a tty file_operations routine; otherwise there
    is no guarantee the ref won't be NULL.
    
    The key difference with the VT's paste_selection() is that is an ioctl,
    where __speakup_paste_selection() is completely async kworker, kicked
    off from interrupt context.
    
    Fixes: 28a821c30688 ("Staging: speakup: Update __speakup_paste_selection()
           tty (ab)usage to match vt")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 42fcdaa91535b79e7b0f32a7d23c5f6a7107916d
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Sun Jan 10 22:40:56 2016 -0800

    n_tty: Fix unsafe reference to "other" ldisc
    
    [ Upstream commit 6d27a63caad3f13e96cf065d2d96828c2006be6b ]
    
    Although n_tty_check_unthrottle() has a valid ldisc reference (since
    the tty core gets the ldisc ref in tty_read() before calling the line
    discipline read() method), it does not have a valid ldisc reference to
    the "other" pty of a pty pair. Since getting an ldisc reference for
    tty->link essentially open-codes tty_wakeup(), just replace with the
    equivalent tty_wakeup().
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 16c10d77d37d46d0b7db1901136d657777c8caf8
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Sun Jan 10 22:40:55 2016 -0800

    tty: Fix unsafe ldisc reference via ioctl(TIOCGETD)
    
    [ Upstream commit 5c17c861a357e9458001f021a7afa7aab9937439 ]
    
    ioctl(TIOCGETD) retrieves the line discipline id directly from the
    ldisc because the line discipline id (c_line) in termios is untrustworthy;
    userspace may have set termios via ioctl(TCSETS*) without actually
    changing the line discipline via ioctl(TIOCSETD).
    
    However, directly accessing the current ldisc via tty->ldisc is
    unsafe; the ldisc ptr dereferenced may be stale if the line discipline
    is changing via ioctl(TIOCSETD) or hangup.
    
    Wait for the line discipline reference (just like read() or write())
    to retrieve the "current" line discipline id.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d1c3daf2f290d206bb3d1a5b2f0fa1871c4987d3
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Jan 20 11:26:01 2016 -0500

    SCSI: fix crashes in sd and sr runtime PM
    
    [ Upstream commit 13b4389143413a1f18127c07f72c74cad5b563e8 ]
    
    Runtime suspend during driver probe and removal can cause problems.
    The driver's runtime_suspend or runtime_resume callbacks may invoked
    before the driver has finished binding to the device or after the
    driver has unbound from the device.
    
    This problem shows up with the sd and sr drivers, and can cause disk
    or CD/DVD drives to become unusable as a result.  The fix is simple.
    The drivers store a pointer to the scsi_disk or scsi_cd structure as
    their private device data when probing is finished, so we simply have
    to be sure to clear the private data during removal and test it during
    runtime suspend/resume.
    
    This fixes <https://bugs.debian.org/801925>.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Paul Menzel <paul.menzel@giantmonkey.de>
    Reported-by: Erich Schubert <erich@debian.org>
    Reported-by: Alexandre Rossi <alexandre.rossi@gmail.com>
    Tested-by: Paul Menzel <paul.menzel@giantmonkey.de>
    Tested-by: Erich Schubert <erich@debian.org>
    CC: <stable@vger.kernel.org>
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit abde0bf5ce77f28164ae4623eec3fad63619d9a9
Author: Gavin Shan <gwshan@linux.vnet.ibm.com>
Date:   Wed Dec 2 16:25:32 2015 +1100

    powerpc/eeh: Fix PE location code
    
    [ Upstream commit 7e56f627768da4e6480986b5145dc3422bc448a5 ]
    
    In eeh_pe_loc_get(), the PE location code is retrieved from the
    "ibm,loc-code" property of the device node for the bridge of the
    PE's primary bus. It's not correct because the property indicates
    the parent PE's location code.
    
    This reads the correct PE location code from "ibm,io-base-loc-code"
    or "ibm,slot-location-code" property of PE parent bus's device node.
    
    Cc: stable@vger.kernel.org # v3.16+
    Fixes: 357b2f3dd9b7 ("powerpc/eeh: Dump PE location code")
    Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
    Tested-by: Russell Currey <ruscur@russell.cc>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 701b9a54a85a4d980170ee40786577a377f0d3ee
Author: Mika Penttilä <mika.penttila@nextfour.com>
Date:   Tue Jan 26 15:47:25 2016 +0000

    arm64: mm: avoid calling apply_to_page_range on empty range
    
    [ Upstream commit 57adec866c0440976c96a4b8f5b59fb411b1cacb ]
    
    Calling apply_to_page_range with an empty range results in a BUG_ON
    from the core code. This can be triggered by trying to load the st_drv
    module with CONFIG_DEBUG_SET_MODULE_RONX enabled:
    
      kernel BUG at mm/memory.c:1874!
      Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 3 PID: 1764 Comm: insmod Not tainted 4.5.0-rc1+ #2
      Hardware name: ARM Juno development board (r0) (DT)
      task: ffffffc9763b8000 ti: ffffffc975af8000 task.ti: ffffffc975af8000
      PC is at apply_to_page_range+0x2cc/0x2d0
      LR is at change_memory_common+0x80/0x108
    
    This patch fixes the issue by making change_memory_common (called by the
    set_memory_* functions) a NOP when numpages == 0, therefore avoiding the
    erroneous call to apply_to_page_range and bringing us into line with x86
    and s390.
    
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Laura Abbott <labbott@redhat.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Signed-off-by: Mika Penttilä <mika.penttila@nextfour.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f213d51dfaf45eb423a42d101ca95f106fa608c0
Author: Lucas Tanure <tanure@linux.com>
Date:   Mon Jan 25 19:30:23 2016 -0200

    ALSA: bebob: Use a signed return type for get_formation_index
    
    [ Upstream commit 07905298e4d5777eb58516cdc242f7ac1ca387a2 ]
    
    The return type "unsigned int" was used by the get_formation_index function
    despite of the aspect that it will eventually return a negative	error code.
    So, change to signed int and get index by reference in the parameters.
    
    Done with the help of Coccinelle.
    
    [Fix the missing braces suggested by Julia Lawall -- tiwai]
    
    Signed-off-by: Lucas Tanure <tanure@linux.com>
    Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Tested-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 423cdecb49ff6968ef08098674f2f68e685f11cc
Author: Guillaume Fougnies <guillaume@eulerian.com>
Date:   Tue Jan 26 00:28:27 2016 +0100

    ALSA: usb-audio: Fix TEAC UD-501/UD-503/NT-503 usb delay
    
    [ Upstream commit 5a4ff9ec8d6edd2ab1cfe8ce6a080d6e57cbea9a ]
    
    TEAC UD-501/UD-503/NT-503 fail to switch properly between different
    rate/format. Similar to 'Playback Design', this patch corrects the
    invalid clock source error for TEAC products and avoids complete
    freeze of the usb interface of 503 series.
    
    Signed-off-by: Guillaume Fougnies <guillaume@eulerian.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 0b864967ee24197a9062f812e6d62e580a490776
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jan 25 13:59:21 2016 +0100

    ALSA: compress: Disable GET_CODEC_CAPS ioctl for some architectures
    
    [ Upstream commit 462b3f161beb62eeb290f4ec52f5ead29a2f8ac7 ]
    
    Some architectures like PowerPC can handle the maximum struct size in
    an ioctl only up to 13 bits, and struct snd_compr_codec_caps used by
    SNDRV_COMPRESS_GET_CODEC_CAPS ioctl overflows this limit.  This
    problem was revealed recently by a powerpc change, as it's now treated
    as a fatal build error.
    
    This patch is a stop-gap for that: for architectures with less than 14
    bit ioctl struct size, get rid of the handling of the relevant ioctl.
    We should provide an alternative equivalent ioctl code later, but for
    now just paper over it.  Luckily, the compress API hasn't been used on
    such architectures, so the impact must be effectively zero.
    
    Reviewed-by: Mark Brown <broonie@kernel.org>
    Acked-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cf4ef12537ec9150582b7035fdaa4ee592446353
Author: John Ernberg <john.ernberg@actia.se>
Date:   Mon Jan 25 12:27:17 2016 +0000

    USB: option: fix Cinterion AHxx enumeration
    
    [ Upstream commit 4152b387da81617c80cb2946b2d56e3958906b3e ]
    
    In certain kernel configurations where the cdc_ether and option drivers
    are compiled as modules there can occur a race condition in enumeration.
    This causes the option driver to enumerate the ethernet(wwan) interface
    as usb-serial interfaces.
    
    usb-devices output for the modem:
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=1e2d ProdID=0055 Rev=00.00
    S:  Manufacturer=Cinterion
    S:  Product=AHx
    C:  #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=10mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    
    Signed-off-by: John Ernberg <john.ernberg@actia.se>
    Fixes: 1941138e1c02 ("USB: added support for Cinterion's products...")
    Cc: stable <stable@vger.kernel.org>	# v3.9: 8ff10bdb14a52
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 997a457fb832ff38c9d9d18d71fd1af871fd633b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Jan 19 23:43:13 2016 -0800

    USB: serial: ftdi_sio: add support for Yaesu SCU-18 cable
    
    [ Upstream commit e03cdf22a2727c60307be6a729233edab3bfda9c ]
    
    Harald Linden reports that the ftdi_sio driver works properly for the
    Yaesu SCU-18 cable if the device ids are added to the driver.  So let's
    add them.
    
    Reported-by: Harald Linden <harald.linden@7183.org>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d5715fe62a86a765a6a76c8f19150a78b1a9e848
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jan 25 11:24:56 2016 +0100

    ALSA: seq: Degrade the error message for too many opens
    
    [ Upstream commit da10816e3d923565b470fec78a674baba794ed33 ]
    
    ALSA OSS sequencer spews a kernel error message ("ALSA: seq_oss: too
    many applications") when user-space tries to open more than the
    limit.  This means that it can easily fill the log buffer.
    
    Since it's merely a normal error, it's safe to suppress it via
    pr_debug() instead.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 5427775de00b2bbcf57f254b68f75669a9af7608
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jan 25 11:01:47 2016 +0100

    ALSA: seq: Fix incorrect sanity check at snd_seq_oss_synth_cleanup()
    
    [ Upstream commit 599151336638d57b98d92338aa59c048e3a3e97d ]
    
    ALSA sequencer OSS emulation code has a sanity check for currently
    opened devices, but there is a thinko there, eventually it spews
    warnings and skips the operation wrongly like:
      WARNING: CPU: 1 PID: 7573 at sound/core/seq/oss/seq_oss_synth.c:311
    
    Fix this off-by-one error.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a1156a1d64ca18b3c750b55d465d5dc66df435f0
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Tue Jan 12 17:22:06 2016 +0100

    USB: serial: option: Adding support for Telit LE922
    
    [ Upstream commit ff4e2494dc17b173468e1713fdf6237fd8578bc7 ]
    
    This patch adds support for two PIDs of LE922.
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 34a893326f0473dbe25c6a128c63e17eba08a71c
Author: Vladis Dronov <vdronov@redhat.com>
Date:   Tue Jan 12 15:10:50 2016 +0100

    USB: serial: visor: fix crash on detecting device without write_urbs
    
    [ Upstream commit cb3232138e37129e88240a98a1d2aba2187ff57c ]
    
    The visor driver crashes in clie_5_attach() when a specially crafted USB
    device without bulk-out endpoint is detected. This fix adds a check that
    the device has proper configuration expected by the driver.
    
    Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
    Signed-off-by: Vladis Dronov <vdronov@redhat.com>
    Fixes: cfb8da8f69b8 ("USB: visor: fix initialisation of UX50/TH55 devices")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 01bba7b17a230e9c35239ded7ac942081e6f6b7c
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jan 12 12:05:20 2016 +0100

    USB: visor: fix null-deref at probe
    
    [ Upstream commit cac9b50b0d75a1d50d6c056ff65c005f3224c8e0 ]
    
    Fix null-pointer dereference at probe should a (malicious) Treo device
    lack the expected endpoints.
    
    Specifically, the Treo port-setup hack was dereferencing the bulk-in and
    interrupt-in urbs without first making sure they had been allocated by
    core.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 634ce9298185db862378a3c117dea210c7623d3f
Author: Peter Dedecker <peter.dedecker@hotmail.com>
Date:   Fri Jan 8 12:34:41 2016 +0100

    USB: cp210x: add ID for IAI USB to RS485 adaptor
    
    [ Upstream commit f487c54ddd544e1c9172cd510954f697b77b76e3 ]
    
    Added the USB serial console device ID for IAI Corp. RCB-CV-USB
    USB to RS485 adaptor.
    
    Signed-off-by: Peter Dedecker <peter.dedecker@hotmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f9b3d78ac42bda9cd30e4c6d0149dba7067c402c
Author: Du, Changbin <changbin.du@intel.com>
Date:   Mon Jan 18 21:02:42 2016 +0800

    usb: hub: do not clear BOS field during reset device
    
    [ Upstream commit d8f00cd685f5c8e0def8593e520a7fef12c22407 ]
    
    In function usb_reset_and_verify_device, the old BOS descriptor may
    still be used before allocating a new one. (usb_unlocked_disable_lpm
    function uses it under the situation that it fails to disable lpm.)
    So we cannot set the udev->bos to NULL before that, just keep what it
    was. It will be overwrite when allocating a new one.
    
    Crash log:
    BUG: unable to handle kernel NULL pointer dereference at
    0000000000000010
    IP: [<ffffffff8171f98d>] usb_enable_link_state+0x2d/0x2f0
    Call Trace:
    [<ffffffff8171ed5b>] ? usb_set_lpm_timeout+0x12b/0x140
    [<ffffffff8171fcd1>] usb_enable_lpm+0x81/0xa0
    [<ffffffff8171fdd8>] usb_disable_lpm+0xa8/0xc0
    [<ffffffff8171fe1c>] usb_unlocked_disable_lpm+0x2c/0x50
    [<ffffffff81723933>] usb_reset_and_verify_device+0xc3/0x710
    [<ffffffff8172c4ed>] ? usb_sg_wait+0x13d/0x190
    [<ffffffff81724743>] usb_reset_device+0x133/0x280
    [<ffffffff8179ccd1>] usb_stor_port_reset+0x61/0x70
    [<ffffffff8179cd68>] usb_stor_invoke_transport+0x88/0x520
    
    Signed-off-by: Du, Changbin <changbin.du@intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ceb53515ef27d53a3e0bb2dc3ff468da9293feaa
Author: Oliver Neukum <oneukum@suse.com>
Date:   Mon Jan 18 15:45:18 2016 +0100

    cdc-acm:exclude Samsung phone 04e8:685d
    
    [ Upstream commit e912e685f372ab62a2405a1acd923597f524e94a ]
    
    This phone needs to be handled by a specialised firmware tool
    and is reported to crash irrevocably if cdc-acm takes it.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    CC: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f0a53df3df93c5915fa986b851065af1a54853a5
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Wed Jan 6 15:10:04 2016 +0800

    usb: cdc-acm: send zero packet for intel 7260 modem
    
    [ Upstream commit ffdb1e369a73b380fce95b05f8498d92c43842b4 ]
    
    For Intel 7260 modem, it is needed for host side to send zero
    packet if the BULK OUT size is equal to USB endpoint max packet
    length. Otherwise, modem side may still wait for more data and
    cannot give response to host side.
    
    Signed-off-by: Konrad Leszczynski <konrad.leszczynski@intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 00529740d1dd0b56f08960968bfdd720f4acc8fb
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Wed Dec 30 12:59:08 2015 +0800

    usb: cdc-acm: handle unlinked urb in acm read callback
    
    [ Upstream commit 19454462acb1bdef80542061bdc9b410e4ed1ff6 ]
    
    In current acm driver, the bulk-in callback function ignores the
    URBs unlinked in usb core.
    
    This causes unexpected data loss in some cases. For example,
    runtime suspend entry will unlinked all urbs and set urb->status
    to -ENOENT even those urbs might have data not processed yet.
    Hence, data loss occurs.
    
    This patch lets bulk-in callback function handle unlinked urbs
    to avoid data loss.
    
    Signed-off-by: Tang Jian Qiang <jianqiang.tang@intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Cc: stable@vger.kernel.org
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 51adf86560467f49a9c728eef91b852569703b7b
Author: Josh Boyer <jwboyer@fedoraproject.org>
Date:   Sun Jan 24 10:46:42 2016 -0500

    ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
    
    [ Upstream commit 6b31de3e698582fe0b8f7f4bab15831b73204800 ]
    
    Like the Yoga 900 models the Lenovo Yoga 700 does not have a
    hw rfkill switch, and trying to read the hw rfkill switch through the
    ideapad module causes it to always reported blocking breaking wifi.
    
    This commit adds the Lenovo Yoga 700 to the no_hw_rfkill dmi list, fixing
    the wifi breakage.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1295272
    Tested-by: <dinyar.rabady+spam@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 29c64c775d18e633746b42b750d345ce0308ad8a
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Nov 9 17:09:05 2015 +0100

    ideapad-laptop: Add Lenovo Yoga 900 to no_hw_rfkill dmi list
    
    [ Upstream commit f71c882dd4cfe4aa88ea07b1402ddd43605d4aef ]
    
    Like some of the other Yoga models the Lenovo Yoga 900 does not have a
    hw rfkill switch, and trying to read the hw rfkill switch through the
    ideapad module causes it to always reported blocking breaking wifi.
    
    This commit adds the Lenovo Yoga 900 to the no_hw_rfkill dmi list, fixing
    the wifi breakage.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1275490
    Cc: stable@vger.kernel.org
    Reported-and-tested-by: Kevin Fenzi <kevin@scrye.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 5baad2a390460d9e8bd076def84bbc56d9bf9f57
Author: Insu Yun <wuninsu@gmail.com>
Date:   Sat Jan 23 15:44:19 2016 -0500

    ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot()
    
    [ Upstream commit 2c3033a0664dfae91e1dee7fabac10f24354b958 ]
    
    In acpiphp_enable_slot(), there is a missing unlock path
    when error occurred.  It needs to be unlocked before returning
    an error.
    
    Signed-off-by: Insu Yun <wuninsu@gmail.com>
    Cc: All applicable <stable@vger.kernel.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 31eef6767d9663043d746d5f51807d4f3da0a2ce
Author: Tariq Saeed <tariq.x.saeed@oracle.com>
Date:   Thu Jan 21 16:40:39 2016 -0800

    MIPS: Fix some missing CONFIG_CPU_MIPSR6 #ifdefs
    
    [ Upstream commit 4f33f6c522948fffc345261896042b58dea23754 ]
    
    Commit be0c37c985eddc4 (MIPS: Rearrange PTE bits into fixed positions.)
    defines fixed PTE bits for MIPS R2. Then, commit d7b631419b3d230a4d383
    (MIPS: pgtable-bits: Fix XPA damage to R6 definitions.) adds the MIPS
    R6 definitions in the same way as MIPS R2. But some R6 #ifdefs in the
    later commit are missing, so in this patch I fix that.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Cc: Aurelien Jarno <aurelien@aurel32.net>
    Cc: Steven J. Hill <Steven.Hill@imgtec.com>
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/12164/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2a0c1fd19b3837d84b531c3c9a1f1eae04501f98
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Tue Jan 19 16:15:27 2016 -0800

    iscsi-target: Fix potential dead-lock during node acl delete
    
    [ Upstream commit 26a99c19f810b2593410899a5b304b21b47428a6 ]
    
    This patch is a iscsi-target specific bug-fix for a dead-lock
    that can occur during explicit struct se_node_acl->acl_group
    se_session deletion via configfs rmdir(2), when iscsi-target
    time2retain timer is still active.
    
    It changes iscsi-target to obtain se_portal_group->session_lock
    internally using spin_in_locked() to check for the specific
    se_node_acl configfs shutdown rmdir(2) case.
    
    Note this patch is intended for stable, and the subsequent
    v4.5-rc patch converts target_core_tpg.c to use proper
    se_sess->sess_kref reference counting for both se_node_acl
    deletion + se_node_acl->queue_depth se_session restart.
    
    Reported-by:: Sagi Grimberg <sagig@mellanox.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Andy Grover <agrover@redhat.com>
    Cc: Mike Christie <michaelc@cs.wisc.edu>
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 0d7b1b8367c0f06c4e58af645597fcff7360aa12
Author: Josh Boyer <jwboyer@fedoraproject.org>
Date:   Wed Dec 9 21:12:52 2015 -0500

    ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill dmi list
    
    [ Upstream commit edde316acb5f07c04abf09a92f59db5d2efd14e2 ]
    
    One of the newest ideapad models also lacks a physical hw rfkill switch,
    and trying to read the hw rfkill switch through the ideapad module
    causes it to always reported blocking breaking wifi.
    
    Fix it by adding this model to the DMI list.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1286293
    Cc: stable@vger.kernel.org
    Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 15ff220a4437364b66c76ea4be3405c36c09e594
Author: Vinit Agnihotri <vinit.abhay.agnihotri@intel.com>
Date:   Mon Jan 11 12:57:25 2016 -0500

    IB/qib: Support creating qps with GFP_NOIO flag
    
    [ Upstream commit fbbeb8632bf0b46ab44cfcedc4654cd7831b7161 ]
    
    The current code is problematic when the QP creation and ipoib is used to
    support NFS and NFS desires to do IO for paging purposes. In that case, the
    GFP_KERNEL allocation in qib_qp.c causes a deadlock in tight memory
    situations.
    
    This fix adds support to create queue pair with GFP_NOIO flag for connected
    mode only to cleanly fail the create queue pair in those situations.
    
    Cc: <stable@vger.kernel.org> # 3.16+
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Vinit Agnihotri <vinit.abhay.agnihotri@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 383de379afd1c6cc3b2c38e795a098326c4b399b
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Thu Jan 7 16:44:10 2016 -0500

    IB/qib: fix mcast detach when qp not attached
    
    [ Upstream commit 09dc9cd6528f5b52bcbd3292a6312e762c85260f ]
    
    The code produces the following trace:
    
    [1750924.419007] general protection fault: 0000 [#3] SMP
    [1750924.420364] Modules linked in: nfnetlink autofs4 rpcsec_gss_krb5 nfsv4
    dcdbas rfcomm bnep bluetooth nfsd auth_rpcgss nfs_acl dm_multipath nfs lockd
    scsi_dh sunrpc fscache radeon ttm drm_kms_helper drm serio_raw parport_pc
    ppdev i2c_algo_bit lpc_ich ipmi_si ib_mthca ib_qib dca lp parport ib_ipoib
    mac_hid ib_cm i3000_edac ib_sa ib_uverbs edac_core ib_umad ib_mad ib_core
    ib_addr tg3 ptp dm_mirror dm_region_hash dm_log psmouse pps_core
    [1750924.420364] CPU: 1 PID: 8401 Comm: python Tainted: G D
    3.13.0-39-generic #66-Ubuntu
    [1750924.420364] Hardware name: Dell Computer Corporation PowerEdge
    860/0XM089, BIOS A04 07/24/2007
    [1750924.420364] task: ffff8800366a9800 ti: ffff88007af1c000 task.ti:
    ffff88007af1c000
    [1750924.420364] RIP: 0010:[<ffffffffa0131d51>] [<ffffffffa0131d51>]
    qib_mcast_qp_free+0x11/0x50 [ib_qib]
    [1750924.420364] RSP: 0018:ffff88007af1dd70  EFLAGS: 00010246
    [1750924.420364] RAX: 0000000000000001 RBX: ffff88007b822688 RCX:
    000000000000000f
    [1750924.420364] RDX: ffff88007b822688 RSI: ffff8800366c15a0 RDI:
    6764697200000000
    [1750924.420364] RBP: ffff88007af1dd78 R08: 0000000000000001 R09:
    0000000000000000
    [1750924.420364] R10: 0000000000000011 R11: 0000000000000246 R12:
    ffff88007baa1d98
    [1750924.420364] R13: ffff88003ecab000 R14: ffff88007b822660 R15:
    0000000000000000
    [1750924.420364] FS:  00007ffff7fd8740(0000) GS:ffff88007fc80000(0000)
    knlGS:0000000000000000
    [1750924.420364] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [1750924.420364] CR2: 00007ffff597c750 CR3: 000000006860b000 CR4:
    00000000000007e0
    [1750924.420364] Stack:
    [1750924.420364]  ffff88007b822688 ffff88007af1ddf0 ffffffffa0132429
    000000007af1de20
    [1750924.420364]  ffff88007baa1dc8 ffff88007baa0000 ffff88007af1de70
    ffffffffa00cb313
    [1750924.420364]  00007fffffffde88 0000000000000000 0000000000000008
    ffff88003ecab000
    [1750924.420364] Call Trace:
    [1750924.420364]  [<ffffffffa0132429>] qib_multicast_detach+0x1e9/0x350
    [ib_qib]
    [1750924.568035]  [<ffffffffa00cb313>] ? ib_uverbs_modify_qp+0x323/0x3d0
    [ib_uverbs]
    [1750924.568035]  [<ffffffffa0092d61>] ib_detach_mcast+0x31/0x50 [ib_core]
    [1750924.568035]  [<ffffffffa00cc213>] ib_uverbs_detach_mcast+0x93/0x170
    [ib_uverbs]
    [1750924.568035]  [<ffffffffa00c61f6>] ib_uverbs_write+0xc6/0x2c0 [ib_uverbs]
    [1750924.568035]  [<ffffffff81312e68>] ? apparmor_file_permission+0x18/0x20
    [1750924.568035]  [<ffffffff812d4cd3>] ? security_file_permission+0x23/0xa0
    [1750924.568035]  [<ffffffff811bd214>] vfs_write+0xb4/0x1f0
    [1750924.568035]  [<ffffffff811bdc49>] SyS_write+0x49/0xa0
    [1750924.568035]  [<ffffffff8172f7ed>] system_call_fastpath+0x1a/0x1f
    [1750924.568035] Code: 66 2e 0f 1f 84 00 00 00 00 00 31 c0 5d c3 66 2e 0f 1f
    84 00 00 00 00 00 66 90 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 8b 7f 10
    <f0> ff 8f 40 01 00 00 74 0e 48 89 df e8 8e f8 06 e1 5b 5d c3 0f
    [1750924.568035] RIP  [<ffffffffa0131d51>] qib_mcast_qp_free+0x11/0x50
    [ib_qib]
    [1750924.568035]  RSP <ffff88007af1dd70>
    [1750924.650439] ---[ end trace 73d5d4b3f8ad4851 ]
    
    The fix is to note the qib_mcast_qp that was found.   If none is found, then
    return EINVAL indicating the error.
    
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9b8266486f01d15a1f14ae9ec11f54c575066697
Author: Jean Delvare <jdelvare@suse.de>
Date:   Mon Jan 18 17:06:05 2016 +0100

    crypto: crc32c - Fix crc32c soft dependency
    
    [ Upstream commit fd7f6727102a1ccf6b4c1dfcc631f9b546526b26 ]
    
    I don't think it makes sense for a module to have a soft dependency
    on itself. This seems quite cyclic by nature and I can't see what
    purpose it could serve.
    
    OTOH libcrc32c calls crypto_alloc_shash("crc32c", 0, 0) so it pretty
    much assumes that some incarnation of the "crc32c" hash algorithm has
    been loaded. Therefore it makes sense to have the soft dependency
    there (as crc-t10dif does.)
    
    Cc: stable@vger.kernel.org
    Cc: Tim Chen <tim.c.chen@linux.intel.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2b12ef1b9ee70d1764532455ff85ca7f041e31c3
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Fri Jan 15 22:01:08 2016 +0800

    crypto: algif_hash - Fix race condition in hash_check_key
    
    [ Upstream commit ad46d7e33219218605ea619e32553daf4f346b9f ]
    
    We need to lock the child socket in hash_check_key as otherwise
    two simultaneous calls can cause the parent socket to be freed.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit bcfa84116d4c1baa69f961d5e107849217868e31
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Wed Jan 13 15:03:32 2016 +0800

    crypto: af_alg - Forbid bind(2) when nokey child sockets are present
    
    [ Upstream commit a6a48c565f6f112c6983e2a02b1602189ed6e26e ]
    
    This patch forbids the calling of bind(2) when there are child
    sockets created by accept(2) in existence, even if they are created
    on the nokey path.
    
    This is needed as those child sockets have references to the tfm
    object which bind(2) will destroy.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 96507c5980d85719001812bd5a48fe64b73d97b2
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Wed Jan 13 15:00:36 2016 +0800

    crypto: algif_hash - Remove custom release parent function
    
    [ Upstream commit f1d84af1835846a5a2b827382c5848faf2bb0e75 ]
    
    This patch removes the custom release parent function as the
    generic af_alg_release_parent now works for nokey sockets too.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit eb1ab004b32e8a61556017a34fee1d898c9b9daa
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Wed Jan 13 14:59:03 2016 +0800

    crypto: af_alg - Allow af_af_alg_release_parent to be called on nokey path
    
    [ Upstream commit 6a935170a980024dd29199e9dbb5c4da4767a1b9 ]
    
    This patch allows af_alg_release_parent to be called even for
    nokey sockets.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cec8983e6d2cf52e60cd59583ae30f81f923f563
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Fri Jan 8 21:31:04 2016 +0800

    crypto: algif_hash - Require setkey before accept(2)
    
    [ Upstream commit 6de62f15b581f920ade22d758f4c338311c2f0d4 ]
    
    Hash implementations that require a key may crash if you use
    them without setting a key.  This patch adds the necessary checks
    so that if you do attempt to use them without a key that we return
    -ENOKEY instead of proceeding.
    
    This patch also adds a compatibility path to support old applications
    that do acept(2) before setkey.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8c7817966b10cdb048036e456316ac3aba9f0279
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Fri Jan 8 21:28:26 2016 +0800

    crypto: hash - Add crypto_ahash_has_setkey
    
    [ Upstream commit a5596d6332787fd383b3b5427b41f94254430827 ]
    
    This patch adds a way for ahash users to determine whether a key
    is required by a crypto_ahash transform.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cfc8c439b792a65379a8f8122d36748b097de6f0
Author: Alexander Aring <alex.aring@gmail.com>
Date:   Sat Oct 25 05:25:09 2014 +0200

    mac802154: fix typo IEEE802515 to IEEE802154
    
    [ Upstream commit 57205c14ca9147c1907556f77998cf82624d9fd6 ]
    
    This patch fixs a typo in address filter defines from IEEE802515 to
    IEEE802154.
    
    Signed-off-by: Alexander Aring <alex.aring@gmail.com>
    Cc: Alan Ott <alan@signal11.us>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 3db68ebaeceed557ef1a44b967294fac80da5cca
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Mon Jan 4 13:35:18 2016 +0900

    crypto: af_alg - Add nokey compatibility path
    
    [ Upstream commit 37766586c965d63758ad542325a96d5384f4a8c9 ]
    
    This patch adds a compatibility path to support old applications
    that do acept(2) before setkey.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ac9c75f8457a338d19107768a0d25ee38511ff7f
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Wed Dec 30 20:24:17 2015 +0800

    crypto: af_alg - Fix socket double-free when accept fails
    
    [ Upstream commit a383292c86663bbc31ac62cc0c04fc77504636a6 ]
    
    When we fail an accept(2) call we will end up freeing the socket
    twice, once due to the direct sk_free call and once again through
    newsock.
    
    This patch fixes this by removing the sk_free call.
    
    Cc: stable@vger.kernel.org
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f857638dd72680e2a8faafef7eebb4534cb39fd1
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Wed Dec 30 11:47:53 2015 +0800

    crypto: af_alg - Disallow bind/setkey/... after accept(2)
    
    [ Upstream commit c840ac6af3f8713a71b4d2363419145760bd6044 ]
    
    Each af_alg parent socket obtained by socket(2) corresponds to a
    tfm object once bind(2) has succeeded.  An accept(2) call on that
    parent socket creates a context which then uses the tfm object.
    
    Therefore as long as any child sockets created by accept(2) exist
    the parent socket must not be modified or freed.
    
    This patch guarantees this by using locks and a reference count
    on the parent socket.  Any attempt to modify the parent socket will
    fail with EBUSY.
    
    Cc: stable@vger.kernel.org
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9044efa9641d80e7f0e799b0f9e3b315e914e28e
Author: Tejun Heo <tj@kernel.org>
Date:   Fri Jan 15 16:58:24 2016 -0800

    printk: do cond_resched() between lines while outputting to consoles
    
    [ Upstream commit 8d91f8b15361dfb438ab6eb3b319e2ded43458ff ]
    
    @console_may_schedule tracks whether console_sem was acquired through
    lock or trylock.  If the former, we're inside a sleepable context and
    console_conditional_schedule() performs cond_resched().  This allows
    console drivers which use console_lock for synchronization to yield
    while performing time-consuming operations such as scrolling.
    
    However, the actual console outputting is performed while holding
    irq-safe logbuf_lock, so console_unlock() clears @console_may_schedule
    before starting outputting lines.  Also, only a few drivers call
    console_conditional_schedule() to begin with.  This means that when a
    lot of lines need to be output by console_unlock(), for example on a
    console registration, the task doing console_unlock() may not yield for
    a long time on a non-preemptible kernel.
    
    If this happens with a slow console devices, for example a serial
    console, the outputting task may occupy the cpu for a very long time.
    Long enough to trigger softlockup and/or RCU stall warnings, which in
    turn pile more messages, sometimes enough to trigger the next cycle of
    warnings incapacitating the system.
    
    Fix it by making console_unlock() insert cond_resched() between lines if
    @console_may_schedule.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Calvin Owens <calvinowens@fb.com>
    Acked-by: Jan Kara <jack@suse.com>
    Cc: Dave Jones <davej@codemonkey.org.uk>
    Cc: Kyle McMartin <kyle@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 6db3dd4b1fb5c3882707f4d2916c35a380f606bd
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Fri Nov 20 15:57:24 2015 -0800

    kernel/panic.c: turn off locks debug before releasing console lock
    
    [ Upstream commit 7625b3a0007decf2b135cb47ca67abc78a7b1bc1 ]
    
    Commit 08d78658f393 ("panic: release stale console lock to always get the
    logbuf printed out") introduced an unwanted bad unlock balance report when
    panic() is called directly and not from OOPS (e.g.  from out_of_memory()).
    The difference is that in case of OOPS we disable locks debug in
    oops_enter() and on direct panic call nobody does that.
    
    Fixes: 08d78658f393 ("panic: release stale console lock to always get the logbuf printed out")
    Reported-by: kernel test robot <ying.huang@linux.intel.com>
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Xie XiuQi <xiexiuqi@huawei.com>
    Cc: Seth Jennings <sjenning@redhat.com>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Petr Mladek <pmladek@suse.cz>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e3191b653039f8b8b9b259e7832a11ba917a902f
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Fri Nov 6 16:32:58 2015 -0800

    panic: release stale console lock to always get the logbuf printed out
    
    [ Upstream commit 08d78658f393fefaa2e6507ea052c6f8ef4002a2 ]
    
    In some cases we may end up killing the CPU holding the console lock
    while still having valuable data in logbuf. E.g. I'm observing the
    following:
    
    - A crash is happening on one CPU and console_unlock() is being called on
      some other.
    
    - console_unlock() tries to print out the buffer before releasing the lock
      and on slow console it takes time.
    
    - in the meanwhile crashing CPU does lots of printk()-s with valuable data
      (which go to the logbuf) and sends IPIs to all other CPUs.
    
    - console_unlock() finishes printing previous chunk and enables interrupts
      before trying to print out the rest, the CPU catches the IPI and never
      releases console lock.
    
    This is not the only possible case: in VT/fb subsystems we have many other
    console_lock()/console_unlock() users.  Non-masked interrupts (or
    receiving NMI in case of extreme slowness) will have the same result.
    Getting the whole console buffer printed out on crash should be top
    priority.
    
    [akpm@linux-foundation.org: tweak comment text]
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Xie XiuQi <xiexiuqi@huawei.com>
    Cc: Seth Jennings <sjenning@redhat.com>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Jan Kara <jack@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ab0d430c52be80895b721552d12e9430bb386258
Author: Martijn Coenen <maco@google.com>
Date:   Fri Jan 15 16:57:49 2016 -0800

    memcg: only free spare array when readers are done
    
    [ Upstream commit 6611d8d76132f86faa501de9451a89bf23fb2371 ]
    
    A spare array holding mem cgroup threshold events is kept around to make
    sure we can always safely deregister an event and have an array to store
    the new set of events in.
    
    In the scenario where we're going from 1 to 0 registered events, the
    pointer to the primary array containing 1 event is copied to the spare
    slot, and then the spare slot is freed because no events are left.
    However, it is freed before calling synchronize_rcu(), which means
    readers may still be accessing threshold->primary after it is freed.
    
    Fixed by only freeing after synchronize_rcu().
    
    Signed-off-by: Martijn Coenen <maco@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Vladimir Davydov <vdavydov@virtuozzo.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a30cd72c78909dfd040fdcb87bab6ef684666086
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Fri Jan 15 16:54:03 2016 -0800

    mm: soft-offline: check return value in second __get_any_page() call
    
    [ Upstream commit d96b339f453997f2f08c52da3f41423be48c978f ]
    
    I saw the following BUG_ON triggered in a testcase where a process calls
    madvise(MADV_SOFT_OFFLINE) on thps, along with a background process that
    calls migratepages command repeatedly (doing ping-pong among different
    NUMA nodes) for the first process:
    
       Soft offlining page 0x60000 at 0x700000600000
       __get_any_page: 0x60000 free buddy page
       page:ffffea0001800000 count:0 mapcount:-127 mapping:          (null) index:0x1
       flags: 0x1fffc0000000000()
       page dumped because: VM_BUG_ON_PAGE(atomic_read(&page->_count) == 0)
       ------------[ cut here ]------------
       kernel BUG at /src/linux-dev/include/linux/mm.h:342!
       invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC
       Modules linked in: cfg80211 rfkill crc32c_intel serio_raw virtio_balloon i2c_piix4 virtio_blk virtio_net ata_generic pata_acpi
       CPU: 3 PID: 3035 Comm: test_alloc_gene Tainted: G           O    4.4.0-rc8-v4.4-rc8-160107-1501-00000-rc8+ #74
       Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
       task: ffff88007c63d5c0 ti: ffff88007c210000 task.ti: ffff88007c210000
       RIP: 0010:[<ffffffff8118998c>]  [<ffffffff8118998c>] put_page+0x5c/0x60
       RSP: 0018:ffff88007c213e00  EFLAGS: 00010246
       Call Trace:
         put_hwpoison_page+0x4e/0x80
         soft_offline_page+0x501/0x520
         SyS_madvise+0x6bc/0x6f0
         entry_SYSCALL_64_fastpath+0x12/0x6a
       Code: 8b fc ff ff 5b 5d c3 48 89 df e8 b0 fa ff ff 48 89 df 31 f6 e8 c6 7d ff ff 5b 5d c3 48 c7 c6 08 54 a2 81 48 89 df e8 a4 c5 01 00 <0f> 0b 66 90 66 66 66 66 90 55 48 89 e5 41 55 41 54 53 48 8b 47
       RIP  [<ffffffff8118998c>] put_page+0x5c/0x60
        RSP <ffff88007c213e00>
    
    The root cause resides in get_any_page() which retries to get a refcount
    of the page to be soft-offlined.  This function calls
    put_hwpoison_page(), expecting that the target page is putback to LRU
    list.  But it can be also freed to buddy.  So the second check need to
    care about such case.
    
    Fixes: af8fae7c0886 ("mm/memory-failure.c: clean up soft_offline_page()")
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Jerome Marchand <jmarchan@redhat.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Steve Capper <steve.capper@linaro.org>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: <stable@vger.kernel.org>	[3.9+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ce516bcfd374e772a956603de4e1e7c9e03d3189
Author: Kyeongdon Kim <kyeongdon.kim@lge.com>
Date:   Thu Jan 14 15:22:29 2016 -0800

    zram: try vmalloc() after kmalloc()
    
    [ Upstream commit d913897abace843bba20249f3190167f7895e9c3 ]
    
    When we're using LZ4 multi compression streams for zram swap, we found
    out page allocation failure message in system running test.  That was
    not only once, but a few(2 - 5 times per test).  Also, some failure
    cases were continually occurring to try allocation order 3.
    
    In order to make parallel compression private data, we should call
    kzalloc() with order 2/3 in runtime(lzo/lz4).  But if there is no order
    2/3 size memory to allocate in that time, page allocation fails.  This
    patch makes to use vmalloc() as fallback of kmalloc(), this prevents
    page alloc failure warning.
    
    After using this, we never found warning message in running test, also
    It could reduce process startup latency about 60-120ms in each case.
    
    For reference a call trace :
    
        Binder_1: page allocation failure: order:3, mode:0x10c0d0
        CPU: 0 PID: 424 Comm: Binder_1 Tainted: GW 3.10.49-perf-g991d02b-dirty #20
        Call trace:
          dump_backtrace+0x0/0x270
          show_stack+0x10/0x1c
          dump_stack+0x1c/0x28
          warn_alloc_failed+0xfc/0x11c
          __alloc_pages_nodemask+0x724/0x7f0
          __get_free_pages+0x14/0x5c
          kmalloc_order_trace+0x38/0xd8
          zcomp_lz4_create+0x2c/0x38
          zcomp_strm_alloc+0x34/0x78
          zcomp_strm_multi_find+0x124/0x1ec
          zcomp_strm_find+0xc/0x18
          zram_bvec_rw+0x2fc/0x780
          zram_make_request+0x25c/0x2d4
          generic_make_request+0x80/0xbc
          submit_bio+0xa4/0x15c
          __swap_writepage+0x218/0x230
          swap_writepage+0x3c/0x4c
          shrink_page_list+0x51c/0x8d0
          shrink_inactive_list+0x3f8/0x60c
          shrink_lruvec+0x33c/0x4cc
          shrink_zone+0x3c/0x100
          try_to_free_pages+0x2b8/0x54c
          __alloc_pages_nodemask+0x514/0x7f0
          __get_free_pages+0x14/0x5c
          proc_info_read+0x50/0xe4
          vfs_read+0xa0/0x12c
          SyS_read+0x44/0x74
        DMA: 3397*4kB (MC) 26*8kB (RC) 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB
             0*512kB 0*1024kB 0*2048kB 0*4096kB = 13796kB
    
    [minchan@kernel.org: change vmalloc gfp and adding comment about gfp]
    [sergey.senozhatsky@gmail.com: tweak comments and styles]
    Signed-off-by: Kyeongdon Kim <kyeongdon.kim@lge.com>
    Signed-off-by: Minchan Kim <minchan@kernel.org>
    Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 40942069b040b0e2908077292a29111d20b2287d
Author: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Date:   Thu Jan 14 15:22:26 2016 -0800

    zram/zcomp: use GFP_NOIO to allocate streams
    
    [ Upstream commit 3d5fe03a3ea013060ebba2a811aeb0f23f56aefa ]
    
    We can end up allocating a new compression stream with GFP_KERNEL from
    within the IO path, which may result is nested (recursive) IO
    operations.  That can introduce problems if the IO path in question is a
    reclaimer, holding some locks that will deadlock nested IOs.
    
    Allocate streams and working memory using GFP_NOIO flag, forbidding
    recursive IO and FS operations.
    
    An example:
    
      inconsistent {IN-RECLAIM_FS-W} -> {RECLAIM_FS-ON-W} usage.
      git/20158 [HC0[0]:SC0[0]:HE1:SE1] takes:
       (jbd2_handle){+.+.?.}, at:  start_this_handle+0x4ca/0x555
      {IN-RECLAIM_FS-W} state was registered at:
         __lock_acquire+0x8da/0x117b
         lock_acquire+0x10c/0x1a7
         start_this_handle+0x52d/0x555
         jbd2__journal_start+0xb4/0x237
         __ext4_journal_start_sb+0x108/0x17e
         ext4_dirty_inode+0x32/0x61
         __mark_inode_dirty+0x16b/0x60c
         iput+0x11e/0x274
         __dentry_kill+0x148/0x1b8
         shrink_dentry_list+0x274/0x44a
         prune_dcache_sb+0x4a/0x55
         super_cache_scan+0xfc/0x176
         shrink_slab.part.14.constprop.25+0x2a2/0x4d3
         shrink_zone+0x74/0x140
         kswapd+0x6b7/0x930
         kthread+0x107/0x10f
         ret_from_fork+0x3f/0x70
      irq event stamp: 138297
      hardirqs last  enabled at (138297):  debug_check_no_locks_freed+0x113/0x12f
      hardirqs last disabled at (138296):  debug_check_no_locks_freed+0x33/0x12f
      softirqs last  enabled at (137818):  __do_softirq+0x2d3/0x3e9
      softirqs last disabled at (137813):  irq_exit+0x41/0x95
    
                   other info that might help us debug this:
       Possible unsafe locking scenario:
             CPU0
             ----
        lock(jbd2_handle);
        <Interrupt>
          lock(jbd2_handle);
    
                    *** DEADLOCK ***
      5 locks held by git/20158:
       #0:  (sb_writers#7){.+.+.+}, at: [<ffffffff81155411>] mnt_want_write+0x24/0x4b
       #1:  (&type->i_mutex_dir_key#2/1){+.+.+.}, at: [<ffffffff81145087>] lock_rename+0xd9/0xe3
       #2:  (&sb->s_type->i_mutex_key#11){+.+.+.}, at: [<ffffffff8114f8e2>] lock_two_nondirectories+0x3f/0x6b
       #3:  (&sb->s_type->i_mutex_key#11/4){+.+.+.}, at: [<ffffffff8114f909>] lock_two_nondirectories+0x66/0x6b
       #4:  (jbd2_handle){+.+.?.}, at: [<ffffffff811e31db>] start_this_handle+0x4ca/0x555
    
                   stack backtrace:
      CPU: 2 PID: 20158 Comm: git Not tainted 4.1.0-rc7-next-20150615-dbg-00016-g8bdf555-dirty #211
      Call Trace:
        dump_stack+0x4c/0x6e
        mark_lock+0x384/0x56d
        mark_held_locks+0x5f/0x76
        lockdep_trace_alloc+0xb2/0xb5
        kmem_cache_alloc_trace+0x32/0x1e2
        zcomp_strm_alloc+0x25/0x73 [zram]
        zcomp_strm_multi_find+0xe7/0x173 [zram]
        zcomp_strm_find+0xc/0xe [zram]
        zram_bvec_rw+0x2ca/0x7e0 [zram]
        zram_make_request+0x1fa/0x301 [zram]
        generic_make_request+0x9c/0xdb
        submit_bio+0xf7/0x120
        ext4_io_submit+0x2e/0x43
        ext4_bio_write_page+0x1b7/0x300
        mpage_submit_page+0x60/0x77
        mpage_map_and_submit_buffers+0x10f/0x21d
        ext4_writepages+0xc8c/0xe1b
        do_writepages+0x23/0x2c
        __filemap_fdatawrite_range+0x84/0x8b
        filemap_flush+0x1c/0x1e
        ext4_alloc_da_blocks+0xb8/0x117
        ext4_rename+0x132/0x6dc
        ? mark_held_locks+0x5f/0x76
        ext4_rename2+0x29/0x2b
        vfs_rename+0x540/0x636
        SyS_renameat2+0x359/0x44d
        SyS_rename+0x1e/0x20
        entry_SYSCALL_64_fastpath+0x12/0x6f
    
    [minchan@kernel.org: add stable mark]
    Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: Kyeongdon Kim <kyeongdon.kim@lge.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 4fd204b434c5d5ce3d7a1b4adec966c46817f837
Author: xuejiufei <xuejiufei@huawei.com>
Date:   Thu Jan 14 15:17:38 2016 -0800

    ocfs2/dlm: ignore cleaning the migration mle that is inuse
    
    [ Upstream commit bef5502de074b6f6fa647b94b73155d675694420 ]
    
    We have found that migration source will trigger a BUG that the refcount
    of mle is already zero before put when the target is down during
    migration.  The situation is as follows:
    
    dlm_migrate_lockres
      dlm_add_migration_mle
      dlm_mark_lockres_migrating
      dlm_get_mle_inuse
      <<<<<< Now the refcount of the mle is 2.
      dlm_send_one_lockres and wait for the target to become the
      new master.
      <<<<<< o2hb detect the target down and clean the migration
      mle. Now the refcount is 1.
    
    dlm_migrate_lockres woken, and put the mle twice when found the target
    goes down which trigger the BUG with the following message:
    
      "ERROR: bad mle: ".
    
    Signed-off-by: Jiufei Xue <xuejiufei@huawei.com>
    Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
    Cc: Mark Fasheh <mfasheh@suse.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e560fd7fd908ade7511f997a8a686a4aee37f53d
Author: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Date:   Thu Jan 14 15:16:53 2016 -0800

    scripts/bloat-o-meter: fix python3 syntax error
    
    [ Upstream commit 72214a24a7677d4c7501eecc9517ed681b5f2db2 ]
    
    In Python3+ print is a function so the old syntax is not correct
    anymore:
    
      $ ./scripts/bloat-o-meter vmlinux.o vmlinux.o.old
        File "./scripts/bloat-o-meter", line 61
          print "add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \
                                                                         ^
      SyntaxError: invalid syntax
    
    Fix by calling print as a function.
    
    Tested on python 2.7.11, 3.5.1
    
    Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 7c02e8003044a151060a5f2a96926082d52b05d4
Author: Laura Abbott <labbott@fedoraproject.org>
Date:   Thu Jan 14 15:16:50 2016 -0800

    dma-debug: switch check from _text to _stext
    
    [ Upstream commit ea535e418c01837d07b6c94e817540f50bfdadb0 ]
    
    In include/asm-generic/sections.h:
    
      /*
       * Usage guidelines:
       * _text, _data: architecture specific, don't use them in
       * arch-independent code
       * [_stext, _etext]: contains .text.* sections, may also contain
       * .rodata.*
       *                   and/or .init.* sections
    
    _text is not guaranteed across architectures.  Architectures such as ARM
    may reuse parts which are not actually text and erroneously trigger a bug.
    Switch to using _stext which is guaranteed to contain text sections.
    
    Came out of https://lkml.kernel.org/g/<567B1176.4000106@redhat.com>
    
    Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 795ea8b415f08c7c3dac7f110dc40a776c863af2
Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date:   Thu Jan 14 15:16:47 2016 -0800

    m32r: fix m32104ut_defconfig build fail
    
    [ Upstream commit 601f1db653217f205ffa5fb33514b4e1711e56d1 ]
    
    The build of m32104ut_defconfig for m32r arch was failing for long long
    time with the error:
    
      ERROR: "memory_start" [fs/udf/udf.ko] undefined!
      ERROR: "memory_end" [fs/udf/udf.ko] undefined!
      ERROR: "memory_end" [drivers/scsi/sg.ko] undefined!
      ERROR: "memory_start" [drivers/scsi/sg.ko] undefined!
      ERROR: "memory_end" [drivers/i2c/i2c-dev.ko] undefined!
      ERROR: "memory_start" [drivers/i2c/i2c-dev.ko] undefined!
    
    As done in other architectures export the symbols to fix the error.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f04fed1a79dd7f195f735670153d3b0ec1f99eec
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Jan 14 13:41:14 2016 +0300

    cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
    
    [ Upstream commit 01b9b0b28626db4a47d7f48744d70abca9914ef1 ]
    
    In some cases tmp_bug can be not filled in cifs_filldir and stay uninitialized,
    therefore its printk with "%s" modifier can leak content of kernelspace memory.
    If old content of this buffer does not contain '\0' access bejond end of
    allocated object can crash the host.
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: Steve French <sfrench@localhost.localdomain>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 6b05c5412544d0827d73852f72cc7b3af25bf7f8
Author: Rabin Vincent <rabin.vincent@axis.com>
Date:   Wed Dec 23 07:32:41 2015 +0100

    cifs: fix race between call_async() and reconnect()
    
    [ Upstream commit 820962dc700598ffe8cd21b967e30e7520c34748 ]
    
    cifs_call_async() queues the MID to the pending list and calls
    smb_send_rqst().  If smb_send_rqst() performs a partial send, it sets
    the tcpStatus to CifsNeedReconnect and returns an error code to
    cifs_call_async().  In this case, cifs_call_async() removes the MID
    from the list and returns to the caller.
    
    However, cifs_call_async() releases the server mutex _before_ removing
    the MID.  This means that a cifs_reconnect() can race with this function
    and manage to remove the MID from the list and delete the entry before
    cifs_call_async() calls cifs_delete_mid().  This leads to various
    crashes due to the use after free in cifs_delete_mid().
    
    Task1				Task2
    
    cifs_call_async():
     - rc = -EAGAIN
     - mutex_unlock(srv_mutex)
    
    				cifs_reconnect():
    				 - mutex_lock(srv_mutex)
    				 - mutex_unlock(srv_mutex)
    				 - list_delete(mid)
    				 - mid->callback()
    				 	cifs_writev_callback():
    				 		- mutex_lock(srv_mutex)
    						- delete(mid)
    				 		- mutex_unlock(srv_mutex)
    
     - cifs_delete_mid(mid) <---- use after free
    
    Fix this by removing the MID in cifs_call_async() before releasing the
    srv_mutex.  Also hold the srv_mutex in cifs_reconnect() until the MIDs
    are moved out of the pending list.
    
    Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
    Acked-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <sfrench@localhost.localdomain>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d2c62a7f5d1cbb68f820b086955f25d3d053b3c5
Author: Jamie Bainbridge <jamie.bainbridge@gmail.com>
Date:   Sat Nov 7 22:13:49 2015 +1000

    cifs: Ratelimit kernel log messages
    
    [ Upstream commit ec7147a99e33a9e4abad6fc6e1b40d15df045d53 ]
    
    Under some conditions, CIFS can repeatedly call the cifs_dbg() logging
    wrapper. If done rapidly enough, the console framebuffer can softlockup
    or "rcu_sched self-detected stall". Apply the built-in log ratelimiters
    to prevent such hangs.
    
    Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f8d91e02dedeb03d7a2a630fb730d21d2d8024b5
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Aug 27 16:49:44 2014 +0300

    cifs: convert printk(LEVEL...) to pr_<level>
    
    [ Upstream commit 0b456f04bcdf5b1151136adaada158bfc26f1be7 ]
    
    The useful macros embed message level in the name. Thus, it cleans up the code
    a bit. In cases when it was plain printk() the conversion was done to info
    level.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Steve French <steve.french@primarydata.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c47853489ebc23629cb8762af50e1e98744d7cac
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Aug 27 16:49:43 2014 +0300

    cifs: convert to print_hex_dump() instead of custom implementation
    
    [ Upstream commit 55d83e0dbb3ed91e05b11ef32afb30acfbf8ba45 ]
    
    This patch converts custom dumper to use native print_hex_dump() instead. The
    cifs_dump_mem() will have an offsets per each line which differs it from the
    original code.
    
    In the dump_smb() we may use native print_hex_dump() as well. It will show
    slightly different output in ASCII part when character is unprintable,
    otherwise it keeps same structure.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Steve French <steve.french@primarydata.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f0a1bc01a76a47ce838e0d2c8c526f8be63e2bff
Author: Dmitry V. Levin <ldv@altlinux.org>
Date:   Sun Dec 27 02:13:27 2015 +0300

    sparc64: fix incorrect sign extension in sys_sparc64_personality
    
    [ Upstream commit 525fd5a94e1be0776fa652df5c687697db508c91 ]
    
    The value returned by sys_personality has type "long int".
    It is saved to a variable of type "int", which is not a problem
    yet because the type of task_struct->pesonality is "unsigned int".
    The problem is the sign extension from "int" to "long int"
    that happens on return from sys_sparc64_personality.
    
    For example, a userspace call personality((unsigned) -EINVAL) will
    result to any subsequent personality call, including absolutely
    harmless read-only personality(0xffffffff) call, failing with
    errno set to EINVAL.
    
    Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit b5797fc99b97645e49dded6064434fea991f7d25
Author: Carlo Caione <carlo@endlessm.com>
Date:   Wed Jan 13 09:36:55 2016 +0100

    mmc: core: Enable tuning according to the actual timing
    
    [ Upstream commit e10c321977091f163eceedec0650e0ef4b3cf4bb ]
    
    While in sdhci_execute_tuning() the choice whether or not to enable the
    tuning is done on the actual timing, in the mmc_sdio_init_uhs_card() the
    check is done on the capability of the card.
    
    This difference is causing some issues with some SDIO cards in DDR50
    mode where the CDM19 is wrongly issued.
    
    With this patch we modify the check in both
    mmc_(sd|sdio)_init_uhs_card() functions to take the proper decision
    only according to the actual timing specification.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Carlo Caione <carlo@endlessm.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 36d2e8146a2114a7468223dac8510ec21716d477
Author: Weijun Yang <york.yang@csr.com>
Date:   Sun Oct 4 12:04:11 2015 +0000

    mmc: core: enable CMD19 tuning for DDR50 mode
    
    [ Upstream commit 4324f6de6d2eb9b232410eb0d67bfafdde8ba711 ]
    
    As SD Specifications Part1 Physical Layer Specification Version
    3.01 says, CMD19 tuning is available for unlocked cards in transfer
    state of 1.8V signaling mode. The small difference between v3.00
    and 3.01 spec means that CMD19 tuning is also available for DDR50
    mode.
    
    Signed-off-by: Weijun Yang <york.yang@csr.com>
    Signed-off-by: Barry Song <Baohua.Song@csr.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ac26a195d48a662469ce96abb471cbbf5bf80059
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Dec 5 19:40:59 2014 +0200

    mmc: core: Simplify by adding mmc_execute_tuning()
    
    [ Upstream commit 63e415c64003fd62a302a1dc19f082e2c6f1b7cc ]
    
    For each MMC, SD and SDIO there is code that
    holds the clock, calls ops->execute_tuning, and
    releases the clock. Simplify the code a bit by
    providing a separate function to do that.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 025335d3e253cc0d0d85bcf981c2084c753f2c97
Author: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Date:   Wed Oct 1 07:14:11 2014 -0500

    mmc: core: Fix error paths and messages in mmc_init_card
    
    [ Upstream commit 4b75bffc77c40ac3c17a3ea9bbdc3a733c34591b ]
    
    In mmc_init_card function some of the branches in error handling paths
    go to "err" label, which skips removing of newly allocated card structure,
    that will actually not be used. Fix that by using proper "free_card" label.
    
    Also, some messages in these branches are reported as warnings,
    although the operation processing is not continued. Change these
    messages to error level.
    
    Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 164d37bd1c10b1004b9abced3a549787470266cb
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Mon Jan 4 02:21:55 2016 +0100

    mmc: mmci: fix an ages old detection error
    
    [ Upstream commit 0bcb7efdff63564e80fe84dd36a9fbdfbf6697a4 ]
    
    commit 4956e10903fd ("ARM: 6244/1: mmci: add variant data and default
    MCICLOCK support") added variant data for ARM, U300 and Ux500 variants.
    The Nomadik NHK8815/8820 variant was erroneously labeled as a U300
    variant, and when the proper Nomadik variant was later introduced in
    commit 34fd421349ff ("ARM: 7378/1: mmci: add support for the Nomadik MMCI
    variant") this was not fixes. Let's say this fixes the latter commit as
    there was no proper Nomadik support until then.
    
    Cc: stable@vger.kernel.org
    Fixes: 34fd421349ff ("ARM: 7378/1: mmci: add support for the Nomadik...")
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e64af167a00c9179bb5eec6ee9f3c7bf44fbe3c7
Author: Mans Rullgard <mans@mansr.com>
Date:   Mon Jan 11 13:04:29 2016 +0000

    dmaengine: dw: fix cyclic transfer callbacks
    
    [ Upstream commit 2895b2cad6e7a95104cf396e5330054453382ae1 ]
    
    Cyclic transfer callbacks rely on block completion interrupts which were
    disabled in commit ff7b05f29fd4 ("dmaengine/dw_dmac: Don't handle block
    interrupts").  This re-enables block interrupts so the cyclic callbacks
    can work.  Other transfer types are not affected as they set the INT_EN
    bit only on the last block.
    
    Fixes: ff7b05f29fd4 ("dmaengine/dw_dmac: Don't handle block interrupts")
    Signed-off-by: Mans Rullgard <mans@mansr.com>
    Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 6e58c401897d31de9e5ea0da2c6a90aa83cc6eae
Author: Mans Rullgard <mans@mansr.com>
Date:   Mon Jan 11 13:04:28 2016 +0000

    dmaengine: dw: fix cyclic transfer setup
    
    [ Upstream commit df3bb8a0e619d501cd13334c3e0586edcdcbc716 ]
    
    Commit 61e183f83069 ("dmaengine/dw_dmac: Reconfigure interrupt and
    chan_cfg register on resume") moved some channel initialisation to
    a new function which must be called before starting a transfer.
    
    This updates dw_dma_cyclic_start() to use dwc_dostart() like the other
    modes, thus ensuring dwc_initialize() gets called and removing some code
    duplication.
    
    Fixes: 61e183f83069 ("dmaengine/dw_dmac: Reconfigure interrupt and chan_cfg register on resume")
    Signed-off-by: Mans Rullgard <mans@mansr.com>
    Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 013ee0930eb50ef80f94bdf42c381c54f2f85171
Author: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Date:   Tue Mar 10 11:37:23 2015 +0200

    dmaengine: dw: Make error prints unique. Part #1
    
    [ Upstream commit 550da64bc89b597395ea6e43a6b4026491035a9d ]
    
    The same error message is printed from different functions. Add a function
    name to error message in order to make it easier to grep error from sources.
    
    Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9e775319ea9b616a15a7eda264ef372d1659d9f7
Author: Greg Kurz <gkurz@linux.vnet.ibm.com>
Date:   Wed Jan 13 18:28:17 2016 +0100

    KVM: PPC: Fix ONE_REG AltiVec support
    
    [ Upstream commit b4d7f161feb3015d6306e1d35b565c888ff70c9d ]
    
    The get and set operations got exchanged by mistake when moving the
    code from book3s.c to powerpc.c.
    
    Fixes: 3840edc8033ad5b86deee309c1c321ca54257452
    Cc: stable@vger.kernel.org # 3.18+
    Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a68d6a471b0749ef7a576174a4be7f518a064672
Author: Helge Deller <deller@gmx.de>
Date:   Sun Jan 10 09:30:42 2016 +0100

    parisc: Fix __ARCH_SI_PREAMBLE_SIZE
    
    [ Upstream commit e60fc5aa608eb38b47ba4ee058f306f739eb70a0 ]
    
    On a 64bit kernel build the compiler aligns the _sifields union in the
    struct siginfo_t on a 64bit address. The __ARCH_SI_PREAMBLE_SIZE define
    compensates for this alignment and thus fixes the wait testcase of the
    strace package.
    
    The symptoms of a wrong __ARCH_SI_PREAMBLE_SIZE value is that
    _sigchld.si_stime variable is missed to be copied and thus after a
    copy_siginfo() will have uninitialized values.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 43d64871e1d49355be0786e5c5c47b00bb98d2a2
Author: Minchan Kim <minchan@kernel.org>
Date:   Mon Dec 28 08:35:13 2015 +0900

    virtio_balloon: fix race between migration and ballooning
    
    [ Upstream commit 21ea9fb69e7c4b1b1559c3e410943d3ff248ffcb ]
    
    In balloon_page_dequeue, pages_lock should cover the loop
    (ie, list_for_each_entry_safe). Otherwise, the cursor page could
    be isolated by compaction and then list_del by isolation could
    poison the page->lru.{prev,next} so the loop finally could
    access wrong address like this. This patch fixes the bug.
    
    general protection fault: 0000 [#1] SMP
    Dumping ftrace buffer:
       (ftrace buffer empty)
    Modules linked in:
    CPU: 2 PID: 82 Comm: vballoon Not tainted 4.4.0-rc5-mm1-access_bit+ #1906
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    task: ffff8800a7ff0000 ti: ffff8800a7fec000 task.ti: ffff8800a7fec000
    RIP: 0010:[<ffffffff8115e754>]  [<ffffffff8115e754>] balloon_page_dequeue+0x54/0x130
    RSP: 0018:ffff8800a7fefdc0  EFLAGS: 00010246
    RAX: ffff88013fff9a70 RBX: ffffea000056fe00 RCX: 0000000000002b7d
    RDX: ffff88013fff9a70 RSI: ffffea000056fe00 RDI: ffff88013fff9a68
    RBP: ffff8800a7fefde8 R08: ffffea000056fda0 R09: 0000000000000000
    R10: ffff8800a7fefd90 R11: 0000000000000001 R12: dead0000000000e0
    R13: ffffea000056fe20 R14: ffff880138809070 R15: ffff880138809060
    FS:  0000000000000000(0000) GS:ffff88013fc40000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00007f229c10e000 CR3: 00000000b8b53000 CR4: 00000000000006a0
    Stack:
     0000000000000100 ffff880138809088 ffff880138809000 ffff880138809060
     0000000000000046 ffff8800a7fefe28 ffffffff812c86d3 ffff880138809020
     ffff880138809000 fffffffffff91900 0000000000000100 ffff880138809060
    Call Trace:
     [<ffffffff812c86d3>] leak_balloon+0x93/0x1a0
     [<ffffffff812c8bc7>] balloon+0x217/0x2a0
     [<ffffffff8143739e>] ? __schedule+0x31e/0x8b0
     [<ffffffff81078160>] ? abort_exclusive_wait+0xb0/0xb0
     [<ffffffff812c89b0>] ? update_balloon_stats+0xf0/0xf0
     [<ffffffff8105b6e9>] kthread+0xc9/0xe0
     [<ffffffff8105b620>] ? kthread_park+0x60/0x60
     [<ffffffff8143b4af>] ret_from_fork+0x3f/0x70
     [<ffffffff8105b620>] ? kthread_park+0x60/0x60
    Code: 8d 60 e0 0f 84 af 00 00 00 48 8b 43 20 a8 01 75 3b 48 89 d8 f0 0f ba 28 00 72 10 48 8b 03 f6 c4 08 75 2f 48 89 df e8 8c 83 f9 ff <49> 8b 44 24 20 4d 8d 6c 24 20 48 83 e8 20 4d 39 f5 74 7a 4c 89
    RIP  [<ffffffff8115e754>] balloon_page_dequeue+0x54/0x130
     RSP <ffff8800a7fefdc0>
    ---[ end trace 43cf28060d708d5f ]---
    Kernel panic - not syncing: Fatal exception
    Dumping ftrace buffer:
       (ftrace buffer empty)
    Kernel Offset: disabled
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Minchan Kim <minchan@kernel.org>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Rafael Aquini <aquini@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 419c98a61bbd99c0db5019001b9f12929304611b
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Mon Jan 11 17:35:38 2016 -0800

    Input: elantech - mark protocols v2 and v3 as semi-mt
    
    [ Upstream commit 6544a1df11c48c8413071aac3316792e4678fbfb ]
    
    When using a protocol v2 or v3 hardware, elantech uses the function
    elantech_report_semi_mt_data() to report data. This devices are rather
    creepy because if num_finger is 3, (x2,y2) is (0,0). Yes, only one valid
    touch is reported.
    
    Anyway, userspace (libinput) is now confused by these (0,0) touches,
    and detect them as palm, and rejects them.
    
    Commit 3c0213d17a09 ("Input: elantech - fix semi-mt protocol for v3 HW")
    was sufficient enough for xf86-input-synaptics and libinput before it has
    palm rejection. Now we need to actually tell libinput that this device is
    a semi-mt one and it should not rely on the actual values of the 2 touches.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 178f7ba7b162327ee52da5352467a80bea33983e
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Jan 12 07:04:01 2016 +1100

    xfs: handle dquot buffer readahead in log recovery correctly
    
    [ Upstream commit 7d6a13f023567d573ac362502bb702eda716e654 ]
    
    When we do dquot readahead in log recovery, we do not use a verifier
    as the underlying buffer may not have dquots in it. e.g. the
    allocation operation hasn't yet been replayed. Hence we do not want
    to fail recovery because we detect an operation to be replayed has
    not been run yet. This problem was addressed for inodes in commit
    d891400 ("xfs: inode buffers may not be valid during recovery
    readahead") but the problem was not recognised to exist for dquots
    and their buffers as the dquot readahead did not have a verifier.
    
    The result of not using a verifier is that when the buffer is then
    next read to replay a dquot modification, the dquot buffer verifier
    will only be attached to the buffer if *readahead is not complete*.
    Hence we can read the buffer, replay the dquot changes and then add
    it to the delwri submission list without it having a verifier
    attached to it. This then generates warnings in xfs_buf_ioapply(),
    which catches and warns about this case.
    
    Fix this and make it handle the same readahead verifier error cases
    as for inode buffers by adding a new readahead verifier that has a
    write operation as well as a read operation that marks the buffer as
    not done if any corruption is detected.  Also make sure we don't run
    readahead if the dquot buffer has been marked as cancelled by
    recovery.
    
    This will result in readahead either succeeding and the buffer
    having a valid write verifier, or readahead failing and the buffer
    state requiring the subsequent read to resubmit the IO with the new
    verifier.  In either case, this will result in the buffer always
    ending up with a valid write verifier on it.
    
    Note: we also need to fix the inode buffer readahead error handling
    to mark the buffer with EIO. Brian noticed the code I copied from
    there wrong during review, so fix it at the same time. Add comments
    linking the two functions that handle readahead verifier errors
    together so we don't forget this behavioural link in future.
    
    cc: <stable@vger.kernel.org> # 3.12 - current
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cc824d711bfbc2ae44a1e8e4f49d2c9ad122daac
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Jan 12 07:03:44 2016 +1100

    xfs: inode recovery readahead can race with inode buffer creation
    
    [ Upstream commit b79f4a1c68bb99152d0785ee4ea3ab4396cdacc6 ]
    
    When we do inode readahead in log recovery, we do can do the
    readahead before we've replayed the icreate transaction that stamps
    the buffer with inode cores. The inode readahead verifier catches
    this and marks the buffer as !done to indicate that it doesn't yet
    contain valid inodes.
    
    In adding buffer error notification  (i.e. setting b_error = -EIO at
    the same time as as we clear the done flag) to such a readahead
    verifier failure, we can then get subsequent inode recovery failing
    with this error:
    
    XFS (dm-0): metadata I/O error: block 0xa00060 ("xlog_recover_do..(read#2)") error 5 numblks 32
    
    This occurs when readahead completion races with icreate item replay
    such as:
    
    	inode readahead
    		find buffer
    		lock buffer
    		submit RA io
    	....
    	icreate recovery
    	    xfs_trans_get_buffer
    		find buffer
    		lock buffer
    		<blocks on RA completion>
    	.....
    	<ra completion>
    		fails verifier
    		clear XBF_DONE
    		set bp->b_error = -EIO
    		release and unlock buffer
    	<icreate gains lock>
    	icreate initialises buffer
    	marks buffer as done
    	adds buffer to delayed write queue
    	releases buffer
    
    At this point, we have an initialised inode buffer that is up to
    date but has an -EIO state registered against it. When we finally
    get to recovering an inode in that buffer:
    
    	inode item recovery
    	    xfs_trans_read_buffer
    		find buffer
    		lock buffer
    		sees XBF_DONE is set, returns buffer
    	    sees bp->b_error is set
    		fail log recovery!
    
    Essentially, we need xfs_trans_get_buf_map() to clear the error status of
    the buffer when doing a lookup. This function returns uninitialised
    buffers, so the buffer returned can not be in an error state and
    none of the code that uses this function expects b_error to be set
    on return. Indeed, there is an ASSERT(!bp->b_error); in the
    transaction case in xfs_trans_get_buf_map() that would have caught
    this if log recovery used transactions....
    
    This patch firstly changes the inode readahead failure to set -EIO
    on the buffer, and secondly changes xfs_buf_get_map() to never
    return a buffer with an error state set so this first change doesn't
    cause unexpected log recovery failures.
    
    cc: <stable@vger.kernel.org> # 3.12 - current
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 40862389da5dc0750458b0754301419c909632b9
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Fri Jan 1 13:39:22 2016 +0100

    s390: fix normalization bug in exception table sorting
    
    [ Upstream commit bcb7825a77f41c7dd91da6f7ac10b928156a322e ]
    
    The normalization pass in the sorting routine of the relative exception
    table serves two purposes:
    - it ensures that the address fields of the exception table entries are
      fully ordered, so that no ambiguities arise between entries with
      identical instruction offsets (i.e., when two instructions that are
      exactly 8 bytes apart each have an exception table entry associated with
      them)
    - it ensures that the offsets of both the instruction and the fixup fields
      of each entry are relative to their final location after sorting.
    
    Commit eb608fb366de ("s390/exceptions: switch to relative exception table
    entries") ported the relative exception table format from x86, but modified
    the sorting routine to only normalize the instruction offset field and not
    the fixup offset field. The result is that the fixup offset of each entry
    will be relative to the original location of the entry before sorting,
    likely leading to crashes when those entries are dereferenced.
    
    Fixes: eb608fb366de ("s390/exceptions: switch to relative exception table entries")
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2812571970cd15e63378f79746a4ae6fa49ed279
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jan 8 08:56:51 2016 +1000

    drm/nouveau/kms: take mode_config mutex in connector hotplug path
    
    [ Upstream commit 0a882cadbc63fd2da3994af7115b4ada2fcbd638 ]
    
    fdo#93634
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cbfc105954753ebd74982783dd02abcb6dc1f859
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Fri Dec 18 21:28:53 2015 +0100

    uml: flush stdout before forking
    
    [ Upstream commit 0754fb298f2f2719f0393491d010d46cfb25d043 ]
    
    I was seeing some really weird behaviour where piping UML's output
    somewhere would cause output to get duplicated:
    
      $ ./vmlinux | head -n 40
      Checking that ptrace can change system call numbers...Core dump limits :
              soft - 0
              hard - NONE
      OK
      Checking syscall emulation patch for ptrace...Core dump limits :
              soft - 0
              hard - NONE
      OK
      Checking advanced syscall emulation patch for ptrace...Core dump limits :
              soft - 0
              hard - NONE
      OK
      Core dump limits :
              soft - 0
              hard - NONE
    
    This is because these tests do a fork() which duplicates the non-empty
    stdout buffer, then glibc flushes the duplicated buffer as each child
    exits.
    
    A simple workaround is to flush before forking.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 1b23fd3a516c375736a5992cbced55a1e8e9285b
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Wed Dec 16 21:59:56 2015 +0100

    uml: fix hostfs mknod()
    
    [ Upstream commit 9f2dfda2f2f1c6181c3732c16b85c59ab2d195e0 ]
    
    An inverted return value check in hostfs_mknod() caused the function
    to return success after handling it as an error (and cleaning up).
    
    It resulted in the following segfault when trying to bind() a named
    unix socket:
    
      Pid: 198, comm: a.out Not tainted 4.4.0-rc4
      RIP: 0033:[<0000000061077df6>]
      RSP: 00000000daae5d60  EFLAGS: 00010202
      RAX: 0000000000000000 RBX: 000000006092a460 RCX: 00000000dfc54208
      RDX: 0000000061073ef1 RSI: 0000000000000070 RDI: 00000000e027d600
      RBP: 00000000daae5de0 R08: 00000000da980ac0 R09: 0000000000000000
      R10: 0000000000000003 R11: 00007fb1ae08f72a R12: 0000000000000000
      R13: 000000006092a460 R14: 00000000daaa97c0 R15: 00000000daaa9a88
      Kernel panic - not syncing: Kernel mode fault at addr 0x40, ip 0x61077df6
      CPU: 0 PID: 198 Comm: a.out Not tainted 4.4.0-rc4 #1
      Stack:
       e027d620 dfc54208 0000006f da981398
       61bee000 0000c1ed daae5de0 0000006e
       e027d620 dfcd4208 00000005 6092a460
      Call Trace:
       [<60dedc67>] SyS_bind+0xf7/0x110
       [<600587be>] handle_syscall+0x7e/0x80
       [<60066ad7>] userspace+0x3e7/0x4e0
       [<6006321f>] ? save_registers+0x1f/0x40
       [<6006c88e>] ? arch_prctl+0x1be/0x1f0
       [<60054985>] fork_handler+0x85/0x90
    
    Let's also get rid of the "cosmic ray protection" while we're at it.
    
    Fixes: e9193059b1b3 "hostfs: fix races in dentry_name() and inode_name()"
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: Jeff Dike <jdike@addtoit.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: stable@vger.kernel.org
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ba6ef126d34a2ae6e76baf0f671ba770f4e51fc0
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Fri Jan 8 19:07:55 2016 -0500

    dm snapshot: fix hung bios when copy error occurs
    
    [ Upstream commit 385277bfb57faac44e92497104ba542cdd82d5fe ]
    
    When there is an error copying a chunk dm-snapshot can incorrectly hold
    associated bios indefinitely, resulting in hung IO.
    
    The function copy_callback sets pe->error if there was error copying the
    chunk, and then calls complete_exception.  complete_exception calls
    pending_complete on error, otherwise it calls commit_exception with
    commit_callback (and commit_callback calls complete_exception).
    
    The persistent exception store (dm-snap-persistent.c) assumes that calls
    to prepare_exception and commit_exception are paired.
    persistent_prepare_exception increases ps->pending_count and
    persistent_commit_exception decreases it.
    
    If there is a copy error, persistent_prepare_exception is called but
    persistent_commit_exception is not.  This results in the variable
    ps->pending_count never returning to zero and that causes some pending
    exceptions (and their associated bios) to be held forever.
    
    Fix this by unconditionally calling commit_exception regardless of
    whether the copy was successful.  A new "valid" parameter is added to
    commit_exception -- when the copy fails this parameter is set to zero so
    that the chunk that failed to copy (and all following chunks) is not
    recorded in the snapshot store.  Also, remove commit_callback now that
    it is merely a wrapper around pending_complete.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit dff33a383d14a9627684f80104da41905d269920
Author: Jeff Layton <jeff.layton@primarydata.com>
Date:   Thu Jan 7 16:38:10 2016 -0500

    locks: fix unlock when fcntl_setlk races with a close
    
    [ Upstream commit 7f3697e24dc3820b10f445a4a7d914fc356012d1 ]
    
    Dmitry reported that he was able to reproduce the WARN_ON_ONCE that
    fires in locks_free_lock_context when the flc_posix list isn't empty.
    
    The problem turns out to be that we're basically rebuilding the
    file_lock from scratch in fcntl_setlk when we discover that the setlk
    has raced with a close. If the l_whence field is SEEK_CUR or SEEK_END,
    then we may end up with fl_start and fl_end values that differ from
    when the lock was initially set, if the file position or length of the
    file has changed in the interim.
    
    Fix this by just reusing the same lock request structure, and simply
    override fl_type value with F_UNLCK as appropriate. That ensures that
    we really are unlocking the lock that was initially set.
    
    While we're there, make sure that we do pop a WARN_ON_ONCE if the
    removal ever fails. Also return -EBADF in this event, since that's
    what we would have returned if the close had happened earlier.
    
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: <stable@vger.kernel.org>
    Fixes: c293621bbf67 (stale POSIX lock handling)
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
    Acked-by: "J. Bruce Fields" <bfields@fieldses.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 53e404555067d3a9389ebe9d3a3e797cdd0fe440
Author: Jeff Layton <jeff.layton@primarydata.com>
Date:   Wed Jan 21 20:44:01 2015 -0500

    locks: update comments that refer to inode->i_flock
    
    [ Upstream commit 8116bf4cb62d337c953cfa5369ef4cf83e73140c ]
    
    Signed-off-by: Jeff Layton <jlayton@primarydata.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 304e9bf286d4050fa02e4c9944ef47c98ebf0193
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Mon Feb 1 15:02:44 2016 -0500

    iwlwifi: update and fix 7265 series PCI IDs
    
    [ Upstream commit 006bda75d81fd27a583a3b310e9444fea2aa6ef2 ]
    
    Update and fix some 7265 PCI IDs entries.
    
    CC: <stable@vger.kernel.org> [3.13+]
    Signed-off-by: Oren Givon <oren.givon@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 05ff846473bc8b32254899c2b1a55ac7cc37e6d3
Author: Grygorii Strashko <grygorii.strashko@ti.com>
Date:   Thu Dec 10 21:18:20 2015 +0200

    PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD
    
    [ Upstream commit 8ff0ef996ca00028519c70e8d51d32bd37eb51dc ]
    
    On -RT and if kernel is booting with "threadirqs" cmd line parameter,
    PCIe/PCI (MSI) IRQ cascade handlers (like dra7xx_pcie_msi_irq_handler())
    will be forced threaded and, as result, will generate warnings like this:
    
      WARNING: CPU: 1 PID: 82 at kernel/irq/handle.c:150 handle_irq_event_percpu+0x14c/0x174()
      irq 460 handler irq_default_primary_handler+0x0/0x14 enabled interrupts
      Backtrace:
       (warn_slowpath_common) from (warn_slowpath_fmt+0x38/0x40)
       (warn_slowpath_fmt) from (handle_irq_event_percpu+0x14c/0x174)
       (handle_irq_event_percpu) from (handle_irq_event+0x84/0xb8)
       (handle_irq_event) from (handle_simple_irq+0x90/0x118)
       (handle_simple_irq) from (generic_handle_irq+0x30/0x44)
       (generic_handle_irq) from (dra7xx_pcie_msi_irq_handler+0x7c/0x8c)
       (dra7xx_pcie_msi_irq_handler) from (irq_forced_thread_fn+0x28/0x5c)
       (irq_forced_thread_fn) from (irq_thread+0x128/0x204)
    
    This happens because all of them invoke generic_handle_irq() from the
    requested handler.  generic_handle_irq() grabs raw_locks and thus needs to
    run in raw-IRQ context.
    
    This issue was originally reproduced on TI dra7-evem, but, as was
    identified during discussion [1], other hosts can also suffer from this
    issue.  Fix all them at once by marking PCIe/PCI (MSI) IRQ cascade handlers
    IRQF_NO_THREAD explicitly.
    
    [1] http://lkml.kernel.org/r/1448027966-21610-1-git-send-email-grygorii.strashko@ti.com
    
    [bhelgaas: add stable tag, fix typos]
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Lucas Stach <l.stach@pengutronix.de> (for imx6)
    CC: stable@vger.kernel.org
    CC: Kishon Vijay Abraham I <kishon@ti.com>
    CC: Jingoo Han <jingoohan1@gmail.com>
    CC: Kukjin Kim <kgene@kernel.org>
    CC: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    CC: Richard Zhu <Richard.Zhu@freescale.com>
    CC: Thierry Reding <thierry.reding@gmail.com>
    CC: Stephen Warren <swarren@wwwdotorg.org>
    CC: Alexandre Courbot <gnurou@gmail.com>
    CC: Simon Horman <horms@verge.net.au>
    CC: Pratyush Anand <pratyush.anand@gmail.com>
    CC: Michal Simek <michal.simek@xilinx.com>
    CC: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
    CC: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f190994a35f61b4a538ee97991262eed09333493
Author: Jingoo Han <jg1.han@samsung.com>
Date:   Wed Nov 12 12:25:09 2014 +0900

    PCI: imx6: Use tabs for indentation
    
    [ Upstream commit d88a7ef99e4c15985e0d726d4a4e4c1f0e4f0ad5 ]
    
    This patch fixes the following checkpatch error:
    
      ERROR: code indent should use tabs where possible
    
    Signed-off-by: Jingoo Han <jg1.han@samsung.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 99b533235bc1b3d4ffda9fc91acec2e9b6f8e671
Author: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de>
Date:   Wed Dec 23 16:51:57 2015 +0100

    PCI: Fix minimum allocation address overwrite
    
    [ Upstream commit 3460baa620685c20f5ee19afb6d99d26150c382c ]
    
    Commit 36e097a8a297 ("PCI: Split out bridge window override of minimum
    allocation address") claimed to do no functional changes but unfortunately
    did: The "min" variable is altered.  At least the AVM A1 PCMCIA adapter was
    no longer detected, breaking ISDN operation.
    
    Use a local copy of "min" to restore the previous behaviour.
    
    [bhelgaas: avoid gcc "?:" extension for portability and readability]
    Fixes: 36e097a8a297 ("PCI: Split out bridge window override of minimum allocation address")
    Signed-off-by: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    CC: stable@vger.kernel.org      # v3.14+
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit aefd4d23b58c5c30d84b1df15dff155520b6be4f
Author: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date:   Fri Dec 25 16:14:48 2015 +0800

    drm/dp/mst: fix in RAD element access
    
    [ Upstream commit 7a11a334aa6af4c65c6a0d81b60c97fc18673532 ]
    
    This is needed to receive correct port
    number from RAD, so MSTB could be found
    
    Acked-by: Dave Airlie <airlied@gmail.com>
    Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d42f4a5484eba5a6106771d7f6afe8bfe90ca779
Author: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Date:   Sun Oct 12 00:02:32 2014 +0200

    gpu: drm: drm_dp_mst_topology.c: Fix improper use of strncat
    
    [ Upstream commit d87af4d10558fedf636e3df1b10dd2954f9e2a78 ]
    
    Fixed wrong usage of strncat, switched to strlcpy.
    While sending the string size to function to reduce
    the potential for misuse in future.
    
    Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit bc062e19a978e93b296f0b471314ed97735880fe
Author: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date:   Fri Dec 25 16:14:47 2015 +0800

    drm/dp/mst: fix in MSTB RAD initialization
    
    [ Upstream commit 75af4c8c4c0f60d7ad135419805798f144e9baf9 ]
    
    This fix is needed to support more then two
    branch displays, so RAD address consist at
    least of 2 elements
    
    Acked-by: Dave Airlie <airlied@gmail.com>
    Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cdfaa058808a5476352558981d4cbe1c9e08492c
Author: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date:   Fri Dec 18 17:14:42 2015 -0500

    drm/dp/mst: process broadcast messages correctly
    
    [ Upstream commit bd9343208704fcc70a5b919f228a7d26ae472727 ]
    
    In case broadcast message received in UP request,
    RAD cannot be used to identify message originator.
    Message should be parsed, originator should be found
    by GUID from parsed message.
    
    Also reply with broadcast in case broadcast message
    received (for now it is always broadcast)
    
    Acked-by: Dave Airlie <airlied@gmail.com>
    Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8412ba14acd482f363c56d0a0d5c38498db35651
Author: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Date:   Thu Dec 24 10:25:33 2015 -0600

    udf: Check output buffer length when converting name to CS0
    
    [ Upstream commit bb00c898ad1ce40c4bb422a8207ae562e9aea7ae ]
    
    If a name contains at least some characters with Unicode values
    exceeding single byte, the CS0 output should have 2 bytes per character.
    And if other input characters have single byte Unicode values, then
    the single input byte is converted to 2 output bytes, and the length
    of output becomes larger than the length of input. And if the input
    name is long enough, the output length may exceed the allocated buffer
    length.
    
    All this means that conversion from UTF8 or NLS to CS0 requires
    checking of output length in order to stop when it exceeds the given
    output buffer size.
    
    [JK: Make code return -ENAMETOOLONG instead of silently truncating the
    name]
    
    CC: stable@vger.kernel.org
    Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cc891fb562764ec24320f23359fae46d766bb8c2
Author: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Date:   Thu Dec 24 10:25:32 2015 -0600

    udf: Prevent buffer overrun with multi-byte characters
    
    [ Upstream commit ad402b265ecf6fa22d04043b41444cdfcdf4f52d ]
    
    udf_CS0toUTF8 function stops the conversion when the output buffer
    length reaches UDF_NAME_LEN-2, which is correct maximum name length,
    but, when checking, it leaves the space for a single byte only,
    while multi-bytes output characters can take more space, causing
    buffer overflow.
    
    Similar error exists in udf_CS0toNLS function, that restricts
    the output length to UDF_NAME_LEN, while actual maximum allowed
    length is UDF_NAME_LEN-2.
    
    In these cases the output can override not only the current buffer
    length field, causing corruption of the name buffer itself, but also
    following allocation structures, causing kernel crash.
    
    Adjust the output length checks in both functions to prevent buffer
    overruns in case of multi-bytes UTF8 or NLS characters.
    
    CC: stable@vger.kernel.org
    Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e24ce8745d9262cdcb2416819a1dbe0561d9f3f9
Author: Aurélien Francillon <aurelien@francillon.net>
Date:   Sat Jan 2 20:39:54 2016 -0800

    Input: i8042 - add Fujitsu Lifebook U745 to the nomux list
    
    [ Upstream commit dd0d0d4de582a6a61c032332c91f4f4cb2bab569 ]
    
    Without i8042.nomux=1 the Elantech touch pad is not working at all on
    a Fujitsu Lifebook U745. This patch does not seem necessary for all
    U745 (maybe because of different BIOS versions?). However, it was
    verified that the patch does not break those (see opensuse bug 883192:
    https://bugzilla.opensuse.org/show_bug.cgi?id=883192).
    
    Signed-off-by: Aurélien Francillon <aurelien@francillon.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 02e7689890a824a85b0fb29a89c78343468084ae
Author: Uri Mashiach <uri.mashiach@compulab.co.il>
Date:   Thu Dec 24 16:05:00 2015 +0200

    wlcore/wl12xx: spi: fix NULL pointer dereference (Oops)
    
    [ Upstream commit e47301b06d5a65678690f04c2248fd181db1e59a ]
    
    Fix the below Oops when trying to modprobe wlcore_spi.
    The oops occurs because the wl1271_power_{off,on}()
    function doesn't check the power() function pointer.
    
    [   23.401447] Unable to handle kernel NULL pointer dereference at
    virtual address 00000000
    [   23.409954] pgd = c0004000
    [   23.412922] [00000000] *pgd=00000000
    [   23.416693] Internal error: Oops: 80000007 [#1] SMP ARM
    [   23.422168] Modules linked in: wl12xx wlcore mac80211 cfg80211
    musb_dsps musb_hdrc usbcore usb_common snd_soc_simple_card evdev joydev
    omap_rng wlcore_spi snd_soc_tlv320aic23_i2c rng_core snd_soc_tlv320aic23
    c_can_platform c_can can_dev snd_soc_davinci_mcasp snd_soc_edma
    snd_soc_omap omap_wdt musb_am335x cpufreq_dt thermal_sys hwmon
    [   23.453253] CPU: 0 PID: 36 Comm: kworker/0:2 Not tainted
    4.2.0-00002-g951efee-dirty #233
    [   23.461720] Hardware name: Generic AM33XX (Flattened Device Tree)
    [   23.468123] Workqueue: events request_firmware_work_func
    [   23.473690] task: de32efc0 ti: de4ee000 task.ti: de4ee000
    [   23.479341] PC is at 0x0
    [   23.482112] LR is at wl12xx_set_power_on+0x28/0x124 [wlcore]
    [   23.488074] pc : [<00000000>]    lr : [<bf2581f0>]    psr: 60000013
    [   23.488074] sp : de4efe50  ip : 00000002  fp : 00000000
    [   23.500162] r10: de7cdd00  r9 : dc848800  r8 : bf27af00
    [   23.505663] r7 : bf27a1a8  r6 : dcbd8a80  r5 : dce0e2e0  r4 :
    dce0d2e0
    [   23.512536] r3 : 00000000  r2 : 00000000  r1 : 00000001  r0 :
    dc848810
    [   23.519412] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
    Segment kernel
    [   23.527109] Control: 10c5387d  Table: 9cb78019  DAC: 00000015
    [   23.533160] Process kworker/0:2 (pid: 36, stack limit = 0xde4ee218)
    [   23.539760] Stack: (0xde4efe50 to 0xde4f0000)
    
    [...]
    
    [   23.665030] [<bf2581f0>] (wl12xx_set_power_on [wlcore]) from
    [<bf25f7ac>] (wlcore_nvs_cb+0x118/0xa4c [wlcore])
    [   23.675604] [<bf25f7ac>] (wlcore_nvs_cb [wlcore]) from [<c04387ec>]
    (request_firmware_work_func+0x30/0x58)
    [   23.685784] [<c04387ec>] (request_firmware_work_func) from
    [<c0058e2c>] (process_one_work+0x1b4/0x4b4)
    [   23.695591] [<c0058e2c>] (process_one_work) from [<c0059168>]
    (worker_thread+0x3c/0x4a4)
    [   23.704124] [<c0059168>] (worker_thread) from [<c005ee68>]
    (kthread+0xd4/0xf0)
    [   23.711747] [<c005ee68>] (kthread) from [<c000f598>]
    (ret_from_fork+0x14/0x3c)
    [   23.719357] Code: bad PC value
    [   23.722760] ---[ end trace 981be8510db9b3a9 ]---
    
    Prevent oops by validationg power() pointer value before
    calling the function.
    
    Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
    Cc: stable@vger.kernel.org
    Acked-by: Igor Grinberg <grinberg@compulab.co.il>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 234bf2369de5c3f82d32287b007552fbedeb46c2
Author: Kent Overstreet <kent.overstreet@gmail.com>
Date:   Sun Nov 29 18:47:01 2015 -0800

    bcache: Change refill_dirty() to always scan entire disk if necessary
    
    [ Upstream commit 627ccd20b4ad3ba836472468208e2ac4dfadbf03 ]
    
    Previously, it would only scan the entire disk if it was starting from
    the very start of the disk - i.e. if the previous scan got to the end.
    
    This was broken by refill_full_stripes(), which updates last_scanned so
    that refill_dirty was never triggering the searched_from_start path.
    
    But if we change refill_dirty() to always scan the entire disk if
    necessary, regardless of what last_scanned was, the code gets cleaner
    and we fix that bug too.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit fa362f255a283516f852b5405ba30462da7b6f5e
Author: Stefan Bader <stefan.bader@canonical.com>
Date:   Sun Nov 29 18:44:49 2015 -0800

    bcache: prevent crash on changing writeback_running
    
    [ Upstream commit 8d16ce540c94c9d366eb36fc91b7154d92d6397b ]
    
    Added a safeguard in the shutdown case. At least while not being
    attached it is also possible to trigger a kernel bug by writing into
    writeback_running. This change  adds the same check before trying to
    wake up the thread for that case.
    
    Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
    Cc: Kent Overstreet <kent.overstreet@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit e321fdfb1a07ad716265a24346dbe0814b102c09
Author: Gabriel de Perthuis <g2p.code@gmail.com>
Date:   Sun Nov 29 18:40:23 2015 -0800

    bcache: allows use of register in udev to avoid "device_busy" error.
    
    [ Upstream commit d7076f21629f8f329bca4a44dc408d94670f49e2 ]
    
    Allows to use register, not register_quiet in udev to avoid "device_busy" error.
    The initial patch proposed at https://lkml.org/lkml/2013/8/26/549 by Gabriel de Perthuis
    <g2p.code@gmail.com> does not unlock the mutex and hangs the kernel.
    
    See http://thread.gmane.org/gmane.linux.kernel.bcache.devel/2594 for the discussion.
    
    Cc: Denis Bychkov <manover@gmail.com>
    Cc: Kent Overstreet <kent.overstreet@gmail.com>
    Cc: Eric Wheeler <bcache@linux.ewheeler.net>
    Cc: Gabriel de Perthuis <g2p.code@gmail.com>
    Cc: stable@vger.kernel.org
    
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit de406db368382f0f93beddfbd39a46c8fead5eec
Author: Zheng Liu <wenqing.lz@taobao.com>
Date:   Sun Nov 29 17:21:57 2015 -0800

    bcache: unregister reboot notifier if bcache fails to unregister device
    
    [ Upstream commit 2ecf0cdb2b437402110ab57546e02abfa68a716b ]
    
    In bcache_init() function it forgot to unregister reboot notifier if
    bcache fails to unregister a block device.  This commit fixes this.
    
    Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
    Tested-by: Joshua Schmid <jschmid@suse.com>
    Tested-by: Eric Wheeler <bcache@linux.ewheeler.net>
    Cc: Kent Overstreet <kmo@daterainc.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f997a6ac49a7de81cff6c9a44223a7537744a11d
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Sun Nov 29 17:20:59 2015 -0800

    bcache: fix a leak in bch_cached_dev_run()
    
    [ Upstream commit 4d4d8573a8451acc9f01cbea24b7e55f04a252fe ]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Tested-by: Joshua Schmid <jschmid@suse.com>
    Tested-by: Eric Wheeler <bcache@linux.ewheeler.net>
    Cc: Kent Overstreet <kmo@daterainc.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit ccccd9832c943d49848d2c492a7659c339865d6b
Author: Zheng Liu <wenqing.lz@taobao.com>
Date:   Sun Nov 29 17:19:32 2015 -0800

    bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device
    
    [ Upstream commit fecaee6f20ee122ad75402c53d8278f9bb142ddc ]
    
    This bug can be reproduced by the following script:
    
      #!/bin/bash
    
      bcache_sysfs="/sys/fs/bcache"
    
      function clear_cache()
      {
      	if [ ! -e $bcache_sysfs ]; then
      		echo "no bcache sysfs"
      		exit
      	fi
    
      	cset_uuid=$(ls -l $bcache_sysfs|head -n 2|tail -n 1|awk '{print $9}')
      	sudo sh -c "echo $cset_uuid > /sys/block/sdb/sdb1/bcache/detach"
      	sleep 5
      	sudo sh -c "echo $cset_uuid > /sys/block/sdb/sdb1/bcache/attach"
      }
    
      for ((i=0;i<10;i++)); do
      	clear_cache
      done
    
    The warning messages look like below:
    [  275.948611] ------------[ cut here ]------------
    [  275.963840] WARNING: at fs/sysfs/dir.c:512 sysfs_add_one+0xb8/0xd0() (Tainted: P        W
    ---------------   )
    [  275.979253] Hardware name: Tecal RH2285
    [  275.994106] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:09.0/0000:08:00.0/host4/target4:2:1/4:2:1:0/block/sdb/sdb1/bcache/cache'
    [  276.024105] Modules linked in: bcache tcp_diag inet_diag ipmi_devintf ipmi_si ipmi_msghandler
    bonding 8021q garp stp llc ipv6 ext3 jbd loop sg iomemory_vsl(P) bnx2 microcode serio_raw i2c_i801
    i2c_core iTCO_wdt iTCO_vendor_support i7core_edac edac_core shpchp ext4 jbd2 mbcache megaraid_sas
    pata_acpi ata_generic ata_piix dm_mod [last unloaded: scsi_wait_scan]
    [  276.072643] Pid: 2765, comm: sh Tainted: P        W  ---------------    2.6.32 #1
    [  276.089315] Call Trace:
    [  276.105801]  [<ffffffff81070fe7>] ? warn_slowpath_common+0x87/0xc0
    [  276.122650]  [<ffffffff810710d6>] ? warn_slowpath_fmt+0x46/0x50
    [  276.139361]  [<ffffffff81205c08>] ? sysfs_add_one+0xb8/0xd0
    [  276.156012]  [<ffffffff8120609b>] ? sysfs_do_create_link+0x12b/0x170
    [  276.172682]  [<ffffffff81206113>] ? sysfs_create_link+0x13/0x20
    [  276.189282]  [<ffffffffa03bda21>] ? bcache_device_link+0xc1/0x110 [bcache]
    [  276.205993]  [<ffffffffa03bfa08>] ? bch_cached_dev_attach+0x478/0x4f0 [bcache]
    [  276.222794]  [<ffffffffa03c4a17>] ? bch_cached_dev_store+0x627/0x780 [bcache]
    [  276.239680]  [<ffffffff8116783a>] ? alloc_pages_current+0xaa/0x110
    [  276.256594]  [<ffffffff81203b15>] ? sysfs_write_file+0xe5/0x170
    [  276.273364]  [<ffffffff811887b8>] ? vfs_write+0xb8/0x1a0
    [  276.290133]  [<ffffffff811890b1>] ? sys_write+0x51/0x90
    [  276.306368]  [<ffffffff8100c072>] ? system_call_fastpath+0x16/0x1b
    [  276.322301] ---[ end trace 9f5d4fcdd0c3edfb ]---
    [  276.338241] ------------[ cut here ]------------
    [  276.354109] WARNING: at /home/wenqing.lz/bcache/bcache/super.c:720
    bcache_device_link+0xdf/0x110 [bcache]() (Tainted: P        W  ---------------   )
    [  276.386017] Hardware name: Tecal RH2285
    [  276.401430] Couldn't create device <-> cache set symlinks
    [  276.401759] Modules linked in: bcache tcp_diag inet_diag ipmi_devintf ipmi_si ipmi_msghandler
    bonding 8021q garp stp llc ipv6 ext3 jbd loop sg iomemory_vsl(P) bnx2 microcode serio_raw i2c_i801
    i2c_core iTCO_wdt iTCO_vendor_support i7core_edac edac_core shpchp ext4 jbd2 mbcache megaraid_sas
    pata_acpi ata_generic ata_piix dm_mod [last unloaded: scsi_wait_scan]
    [  276.465477] Pid: 2765, comm: sh Tainted: P        W  ---------------    2.6.32 #1
    [  276.482169] Call Trace:
    [  276.498610]  [<ffffffff81070fe7>] ? warn_slowpath_common+0x87/0xc0
    [  276.515405]  [<ffffffff810710d6>] ? warn_slowpath_fmt+0x46/0x50
    [  276.532059]  [<ffffffffa03bda3f>] ? bcache_device_link+0xdf/0x110 [bcache]
    [  276.548808]  [<ffffffffa03bfa08>] ? bch_cached_dev_attach+0x478/0x4f0 [bcache]
    [  276.565569]  [<ffffffffa03c4a17>] ? bch_cached_dev_store+0x627/0x780 [bcache]
    [  276.582418]  [<ffffffff8116783a>] ? alloc_pages_current+0xaa/0x110
    [  276.599341]  [<ffffffff81203b15>] ? sysfs_write_file+0xe5/0x170
    [  276.616142]  [<ffffffff811887b8>] ? vfs_write+0xb8/0x1a0
    [  276.632607]  [<ffffffff811890b1>] ? sys_write+0x51/0x90
    [  276.648671]  [<ffffffff8100c072>] ? system_call_fastpath+0x16/0x1b
    [  276.664756] ---[ end trace 9f5d4fcdd0c3edfc ]---
    
    We forget to clear BCACHE_DEV_UNLINK_DONE flag in bcache_device_attach()
    function when we attach a backing device first time.  After detaching this
    backing device, this flag will be true and sysfs_remove_link() isn't called in
    bcache_device_unlink().  Then when we attach this backing device again,
    sysfs_create_link() will return EEXIST error in bcache_device_link().
    
    So the fix is trival and we clear this flag in bcache_device_link().
    
    Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
    Tested-by: Joshua Schmid <jschmid@suse.com>
    Tested-by: Eric Wheeler <bcache@linux.ewheeler.net>
    Cc: Kent Overstreet <kmo@daterainc.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8f8d3f681d5254b306e189a6f763ad7814c51677
Author: Kent Overstreet <kmo@daterainc.com>
Date:   Sun Nov 29 17:18:33 2015 -0800

    bcache: Add a cond_resched() call to gc
    
    [ Upstream commit c5f1e5adf956e3ba82d204c7c141a75da9fa449a ]
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Tested-by: Eric Wheeler <bcache@linux.ewheeler.net>
    Cc: Kent Overstreet <kmo@daterainc.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 42b5680c7dad9c41d547f324b3af8df990039b61
Author: Zheng Liu <gnehzuil.liu@gmail.com>
Date:   Sun Nov 29 17:17:05 2015 -0800

    bcache: fix a livelock when we cause a huge number of cache misses
    
    [ Upstream commit 2ef9ccbfcb90cf84bdba320a571b18b05c41101b ]
    
    Subject :	[PATCH v2] bcache: fix a livelock in btree lock
    Date :	Wed, 25 Feb 2015 20:32:09 +0800 (02/25/2015 04:32:09 AM)
    
    This commit tries to fix a livelock in bcache.  This livelock might
    happen when we causes a huge number of cache misses simultaneously.
    
    When we get a cache miss, bcache will execute the following path.
    
    ->cached_dev_make_request()
      ->cached_dev_read()
        ->cached_lookup()
          ->bch->btree_map_keys()
            ->btree_root()  <------------------------
              ->bch_btree_map_keys_recurse()        |
                ->cache_lookup_fn()                 |
                  ->cached_dev_cache_miss()         |
                    ->bch_btree_insert_check_key() -|
                      [If btree->seq is not equal to seq + 1, we should return
                       EINTR and traverse btree again.]
    
    In bch_btree_insert_check_key() function we first need to check upgrade
    flag (op->lock == -1), and when this flag is true we need to release
    read btree->lock and try to take write btree->lock.  During taking and
    releasing this write lock, btree->seq will be monotone increased in
    order to prevent other threads modify this in cache miss (see btree.h:74).
    But if there are some cache misses caused by some requested, we could
    meet a livelock because btree->seq is always changed by others.  Thus no
    one can make progress.
    
    This commit will try to take write btree->lock if it encounters a race
    when we traverse btree.  Although it sacrifice the scalability but we
    can ensure that only one can modify the btree.
    
    Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
    Tested-by: Joshua Schmid <jschmid@suse.com>
    Tested-by: Eric Wheeler <bcache@linux.ewheeler.net>
    Cc: Joshua Schmid <jschmid@suse.com>
    Cc: Zhu Yanhai <zhu.yanhai@gmail.com>
    Cc: Kent Overstreet <kmo@daterainc.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f321a42d36973bfdd684eb0f075b5e151d49f3fc
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Dec 21 17:05:08 2015 -0600

    rtlwifi: rtl_pci: Fix kernel panic
    
    [ Upstream commit f99551a2d39dc26ea03dc6761be11ac913eb2d57 ]
    
    In commit 38506ecefab9 (rtlwifi: rtl_pci: Start modification for new
    drivers), a bug was introduced that causes a NULL pointer dereference.
    As this bug only affects the infrequently used RTL8192EE and only under
    low-memory conditions, it has taken a long time for the bug to show up.
    
    The bug was reported on the linux-wireless mailing list and also at
    https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/ as
    bug #1527603 (kernel crashes due to rtl8192ee driver on ubuntu 15.10).
    
    Fixes: 38506ecefab9 ("rtlwifi: rtl_pci: Start modification for new drivers")
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit dfb83038ab8d382790dfdf8c4cd926187c08166e
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Tue Dec 29 18:55:19 2015 -0500

    NFS: Fix attribute cache revalidation
    
    [ Upstream commit ade14a7df796d4e86bd9d181193c883a57b13db0 ]
    
    If a NFSv4 client uses the cache_consistency_bitmask in order to
    request only information about the change attribute, timestamps and
    size, then it has not revalidated all attributes, and hence the
    attribute timeout timestamp should not be updated.
    
    Reported-by: Donald Buczek <buczek@molgen.mpg.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 74f65457613c5c399de932288bd755aed011c420
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Sun Jul 5 11:12:07 2015 -0400

    NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability
    
    [ Upstream commit cd812599796f500b042f5464b6665755eca21137 ]
    
    Setting the change attribute has been mandatory for all NFS versions, since
    commit 3a1556e8662c ("NFSv2/v3: Simulate the change attribute"). We should
    therefore not have anything be conditional on it being set/unset.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8245bbdbcacd86bc01e61bd6194744710cf8e8b1
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Dec 14 16:34:38 2015 -0600

    rtlwifi: rtl8192cu: Add missing parameter setup
    
    [ Upstream commit b68d0ae7e58624c33f2eddab471fee55db27dbf9 ]
    
    This driver fails to copy the module parameter for software encryption
    to the locations used by the main code.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 95dd27f8805526165a6af507e7feea786cdac25b
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Dec 14 16:34:37 2015 -0600

    rtlwifi: rtl8192ce: Fix handling of module parameters
    
    [ Upstream commit b24f19f16b9e43f54218c07609b783ea8625406a ]
    
    The module parameter for software encryption was never transferred to
    the location used by the driver.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8b22f215a36bc2782c367f1d461047b9acf69a34
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Dec 14 16:34:36 2015 -0600

    rtlwifi: rtl8192se: Fix module parameter initialization
    
    [ Upstream commit 7503efbd82c15c4070adffff1344e5169d3634b4 ]
    
    Two of the module parameter descriptions show incorrect default values.
    In addition the value for software encryption is not transferred to
    the locations used by the driver.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a080db45bdcb8d055a3d29d4326db62e7a1b35ed
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Dec 14 16:34:35 2015 -0600

    rtlwifi: rtl8192de: Fix incorrect module parameter descriptions
    
    [ Upstream commit d4d60b4caaa5926e1b243070770968f05656107a ]
    
    Two of the module parameters are listed with incorrect default values.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f0f2aca18cf9235fe324b167d14547d5caaa770a
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Dec 14 16:34:34 2015 -0600

    rtlwifi: rtl8188ee: Fix module parameter initialization
    
    [ Upstream commit 06f34572c6110e2e2d5e653a957f1d74db9e3f2b ]
    
    In this driver, parameters disable_watchdog and sw_crypto are never
    copied into the locations used in the main code. While modifying the
    parameter handling, the copying of parameter msi_support is moved to
    be with the rest.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit b940ac3ecb4cb1d2e6372c333760fd8a4e2b4429
Author: Richard Cochran <richardcochran@gmail.com>
Date:   Tue Dec 22 22:19:58 2015 +0100

    posix-clock: Fix return code on the poll method's error path
    
    [ Upstream commit 1b9f23727abb92c5e58f139e7d180befcaa06fe0 ]
    
    The posix_clock_poll function is supposed to return a bit mask of
    POLLxxx values.  However, in case the hardware has disappeared (due to
    hot plugging for example) this code returns -ENODEV in a futile
    attempt to throw an error at the file descriptor level.  The kernel's
    file_operations interface does not accept such error codes from the
    poll method.  Instead, this function aught to return POLLERR.
    
    The value -ENODEV does, in fact, contain the POLLERR bit (and almost
    all the other POLLxxx bits as well), but only by chance.  This patch
    fixes code to return a proper bit mask.
    
    Credit goes to Markus Elfring for pointing out the suspicious
    signed/unsigned mismatch.
    
    Reported-by: Markus Elfring <elfring@users.sourceforge.net>
    igned-off-by: Richard Cochran <richardcochran@gmail.com>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Julia Lawall <julia.lawall@lip6.fr>
    Link: http://lkml.kernel.org/r/1450819198-17420-1-git-send-email-richardcochran@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 914186fa0ab0d835123dd8ca00ab47027683d40d
Author: Chen Yu <yu.c.chen@intel.com>
Date:   Fri Oct 30 16:32:10 2015 +0800

    Thermal: do thermal zone update after a cooling device registered
    
    [ Upstream commit 4511f7166a2deb5f7a578cf87fd2fe1ae83527e3 ]
    
    When a new cooling device is registered, we need to update the
    thermal zone to set the new registered cooling device to a proper
    state.
    
    This fixes a problem that the system is cool, while the fan devices
    are left running on full speed after boot, if fan device is registered
    after thermal zone device.
    
    Here is the history of why current patch looks like this:
    https://patchwork.kernel.org/patch/7273041/
    
    CC: <stable@vger.kernel.org> #3.18+
    Reference:https://bugzilla.kernel.org/show_bug.cgi?id=92431
    Tested-by: Manuel Krause <manuelkrause@netscape.net>
    Tested-by: szegad <szegadlo@poczta.onet.pl>
    Tested-by: prash <prash.n.rao@gmail.com>
    Tested-by: amish <ammdispose-arch@yahoo.com>
    Reviewed-by: Javi Merino <javi.merino@arm.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 479ea3ba1bbce34eec93129b75a54f4304019a77
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Fri Oct 30 16:31:58 2015 +0800

    Thermal: handle thermal zone device properly during system sleep
    
    [ Upstream commit ff140fea847e1c2002a220571ab106c2456ed252 ]
    
    Current thermal code does not handle system sleep well because
    1. the cooling device cooling state may be changed during suspend
    2. the previous temperature reading becomes invalid after resumed because
       it is got before system sleep
    3. updating thermal zone device during suspending/resuming
       is wrong because some devices may have already been suspended
       or may have not been resumed.
    
    Thus, the proper way to do this is to cancel all thermal zone
    device update requirements during suspend/resume, and after all
    the devices have been resumed, reset and update every registered
    thermal zone devices.
    
    This also fixes a regression introduced by:
    Commit 19593a1fb1f6 ("ACPI / fan: convert to platform driver")
    Because, with above commit applied, all the fan devices are attached
    to the acpi_general_pm_domain, and they are turned on by the pm_domain
    automatically after resume, without the awareness of thermal core.
    
    CC: <stable@vger.kernel.org> #3.18+
    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=78201
    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=91411
    Tested-by: Manuel Krause <manuelkrause@netscape.net>
    Tested-by: szegad <szegadlo@poczta.onet.pl>
    Tested-by: prash <prash.n.rao@gmail.com>
    Tested-by: amish <ammdispose-arch@yahoo.com>
    Tested-by: Matthias <morpheusxyz123@yahoo.de>
    Reviewed-by: Javi Merino <javi.merino@arm.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 69cfaa8fdc12c808690636d96c48538d88ed9b70
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Fri Oct 30 16:31:47 2015 +0800

    Thermal: initialize thermal zone device correctly
    
    [ Upstream commit bb431ba26c5cd0a17c941ca6c3a195a3a6d5d461 ]
    
    After thermal zone device registered, as we have not read any
    temperature before, thus tz->temperature should not be 0,
    which actually means 0C, and thermal trend is not available.
    In this case, we need specially handling for the first
    thermal_zone_device_update().
    
    Both thermal core framework and step_wise governor is
    enhanced to handle this. And since the step_wise governor
    is the only one that uses trends, so it's the only thermal
    governor that needs to be updated.
    
    CC: <stable@vger.kernel.org> #3.18+
    Tested-by: Manuel Krause <manuelkrause@netscape.net>
    Tested-by: szegad <szegadlo@poczta.onet.pl>
    Tested-by: prash <prash.n.rao@gmail.com>
    Tested-by: amish <ammdispose-arch@yahoo.com>
    Tested-by: Matthias <morpheusxyz123@yahoo.de>
    Reviewed-by: Javi Merino <javi.merino@arm.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 10bc65b02ffcca62911ca8eb532c952a3fdf16cc
Author: Andrew Elble <aweits@rit.edu>
Date:   Wed Dec 2 09:20:57 2015 -0500

    nfs: Fix race in __update_open_stateid()
    
    [ Upstream commit 361cad3c89070aeb37560860ea8bfc092d545adc ]
    
    We've seen this in a packet capture - I've intermixed what I
    think was going on. The fix here is to grab the so_lock sooner.
    
    1964379 -> #1 open (for write) reply seqid=1
    1964393 -> #2 open (for read) reply seqid=2
    
      __nfs4_close(), state->n_wronly--
      nfs4_state_set_mode_locked(), changes state->state = [R]
      state->flags is [RW]
      state->state is [R], state->n_wronly == 0, state->n_rdonly == 1
    
    1964398 -> #3 open (for write) call -> because close is already running
    1964399 -> downgrade (to read) call seqid=2 (close of #1)
    1964402 -> #3 open (for write) reply seqid=3
    
     __update_open_stateid()
       nfs_set_open_stateid_locked(), changes state->flags
       state->flags is [RW]
       state->state is [R], state->n_wronly == 0, state->n_rdonly == 1
       new sequence number is exposed now via nfs4_stateid_copy()
    
       next step would be update_open_stateflags(), pending so_lock
    
    1964403 -> downgrade reply seqid=2, fails with OLD_STATEID (close of #1)
    
       nfs4_close_prepare() gets so_lock and recalcs flags -> send close
    
    1964405 -> downgrade (to read) call seqid=3 (close of #1 retry)
    
       __update_open_stateid() gets so_lock
     * update_open_stateflags() updates state->n_wronly.
       nfs4_state_set_mode_locked() updates state->state
    
       state->flags is [RW]
       state->state is [RW], state->n_wronly == 1, state->n_rdonly == 1
    
     * should have suppressed the preceding nfs4_close_prepare() from
       sending open_downgrade
    
    1964406 -> write call
    1964408 -> downgrade (to read) reply seqid=4 (close of #1 retry)
    
       nfs_clear_open_stateid_locked()
       state->flags is [R]
       state->state is [RW], state->n_wronly == 1, state->n_rdonly == 1
    
    1964409 -> write reply (fails, openmode)
    
    Signed-off-by: Andrew Elble <aweits@rit.edu>
    Cc: stable@vger,kernel.org
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 879c5e72a60264f7f4f24400e7abf0cf44846e7b
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Fri Dec 11 15:54:16 2015 +0100

    udf: limit the maximum number of indirect extents in a row
    
    [ Upstream commit b0918d9f476a8434b055e362b83fa4fd1d462c3f ]
    
    udf_next_aext() just follows extent pointers while extents are marked as
    indirect. This can loop forever for corrupted filesystem. Limit number
    the of indirect extents we are willing to follow in a row.
    
    [JK: Updated changelog, limit, style]
    
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: stable@vger.kernel.org
    Cc: Jan Kara <jack@suse.com>
    Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 48e9b6978bc07369bb64c3e7a3197691326ba9d2
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Thu Nov 26 14:00:50 2015 +0200

    mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
    
    [ Upstream commit 5c671c410c8704800f4f1673b6f572137e7e6ddd ]
    
    sdhci has a legacy facility to prevent runtime suspend if the
    bus power is on.  This is needed in cases where the power to
    the card is dependent on the bus power.  It is controlled by
    a pair of functions: sdhci_runtime_pm_bus_on() and
    sdhci_runtime_pm_bus_off().  These functions use a boolean
    variable 'bus_on' to ensure changes are always paired.
    There is an additional check for 'runtime_suspended' which is
    the problem.  In fact, its use is ill-conceived as the only
    requirement for the logic is that 'on' and 'off' are paired,
    which is actually broken by the check, for example if the bus
    power is turned on during runtime resume.  So remove  the check.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org # v3.11+
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit daf89ade4d04f0c1c8587a225efc3500cce6d78a
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Thu Nov 26 14:00:47 2015 +0200

    mmc: sdio: Fix invalid vdd in voltage switch power cycle
    
    [ Upstream commit d9bfbb95ed598a09cf336adb0f190ee0ff802f0d ]
    
    The 'ocr' parameter passed to mmc_set_signal_voltage()
    defines the power-on voltage used when power cycling
    after a failure to set the voltage.  However, in the
    case of mmc_sdio_init_card(), the value passed has the
    R4_18V_PRESENT flag set which is not valid for power-on
    and results in an invalid vdd.  Fix by passing the card's
    ocr value which does not have the flag.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 4c3112fea13c004ff4ddbb42216e1540fec83f85
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Dec 17 12:52:17 2015 -0500

    drm/radeon: clean up fujitsu quirks
    
    [ Upstream commit 0eb1c3d4084eeb6fb3a703f88d6ce1521f8fcdd1 ]
    
    Combine the two quirks.
    
    bug:
    https://bugzilla.kernel.org/show_bug.cgi?id=109481
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a3dc531cbfa4e9f0596420e60d21c6640cc3cbe8
Author: Felix Kuehling <Felix.Kuehling@amd.com>
Date:   Mon Nov 23 17:39:11 2015 -0500

    drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr
    
    [ Upstream commit 42ef344c0994cc453477afdc7a8eadc578ed0257 ]
    
    eoffset is sometimes treated as the last address inside the address
    range, and sometimes as the first address outside the range. This
    was resulting in errors when a test filled up the entire address
    space. Make it consistent to always be the last address within the
    range. Also fixed related errors when checking the VA limit and in
    radeon_vm_fence_pts.
    
    Signed-off-by: Felix.Kuehling <Felix.Kuehling@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c8c12dbbcccb9e3142895fe8ef1433ffc620d8bd
Author: Christian König <christian.koenig@amd.com>
Date:   Wed Nov 19 14:01:23 2014 +0100

    drm/radeon: fence PT updates manually v2
    
    [ Upstream commit 587cdda8f739f4c57c91d3f73a1d5b2851a86cb8 ]
    
    This allows us to add the real execution fence as shared.
    
    v2: fix typo
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 000c4bfc7386d8ff4b9f0ad17a8da11bdb81323b
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Sat Dec 19 20:07:38 2015 +0000

    futex: Drop refcount if requeue_pi() acquired the rtmutex
    
    [ Upstream commit fb75a4282d0d9a3c7c44d940582c2d226cf3acfb ]
    
    If the proxy lock in the requeue loop acquires the rtmutex for a
    waiter then it acquired also refcount on the pi_state related to the
    futex, but the waiter side does not drop the reference count.
    
    Add the missing free_pi_state() call.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Darren Hart <darren@dvhart.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Bhuvanesh_Surachari@mentor.com
    Cc: Andy Lowe <Andy_Lowe@mentor.com>
    Link: http://lkml.kernel.org/r/20151219200607.178132067@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2d54f171578072967fac46f8226f8ebcb9e4d8a6
Author: Nikolay Borisov <kernel@kyup.com>
Date:   Thu Dec 17 18:03:35 2015 +0200

    dm thin: fix race condition when destroying thin pool workqueue
    
    [ Upstream commit 18d03e8c25f173f4107a40d0b8c24defb6ed69f3 ]
    
    When a thin pool is being destroyed delayed work items are
    cancelled using cancel_delayed_work(), which doesn't guarantee that on
    return the delayed item isn't running.  This can cause the work item to
    requeue itself on an already destroyed workqueue.  Fix this by using
    cancel_delayed_work_sync() which guarantees that on return the work item
    is not running anymore.
    
    Fixes: 905e51b39a555 ("dm thin: commit outstanding data every second")
    Fixes: 85ad643b7e7e5 ("dm thin: add timeout to stop out-of-data-space mode holding IO forever")
    Signed-off-by: Nikolay Borisov <kernel@kyup.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a0493b5238daa6fc5dbd23a9b46e9cab041a5c11
Author: Borislav Petkov <bp@suse.de>
Date:   Fri Nov 27 10:38:38 2015 +0100

    EDAC: Robustify workqueues destruction
    
    [ Upstream commit fcd5c4dd8201595d4c598c9cca5e54760277d687 ]
    
    EDAC workqueue destruction is really fragile. We cancel delayed work
    but if it is still running and requeues itself, we still go ahead and
    destroy the workqueue and the queued work explodes when workqueue core
    attempts to run it.
    
    Make the destruction more robust by switching op_state to offline so
    that requeuing stops. Cancel any pending work *synchronously* too.
    
      EDAC i7core: Driver loaded.
      general protection fault: 0000 [#1] SMP
      CPU 12
      Modules linked in:
      Supported: Yes
      Pid: 0, comm: kworker/0:1 Tainted: G          IE   3.0.101-0-default #1 HP ProLiant DL380 G7
      RIP: 0010:[<ffffffff8107dcd7>]  [<ffffffff8107dcd7>] __queue_work+0x17/0x3f0
      < ... regs ...>
      Process kworker/0:1 (pid: 0, threadinfo ffff88019def6000, task ffff88019def4600)
      Stack:
       ...
      Call Trace:
       call_timer_fn
       run_timer_softirq
       __do_softirq
       call_softirq
       do_softirq
       irq_exit
       smp_apic_timer_interrupt
       apic_timer_interrupt
       intel_idle
       cpuidle_idle_call
       cpu_idle
      Code: ...
      RIP  __queue_work
       RSP <...>
    
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 82359171a3187e5f44d842f33547698c0e364ad5
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Mon Nov 16 18:44:11 2015 +0300

    ovl: check dentry positiveness in ovl_cleanup_whiteouts()
    
    [ Upstream commit 84889d49335627bc770b32787c1ef9ebad1da232 ]
    
    This patch fixes kernel crash at removing directory which contains
    whiteouts from lower layers.
    
    Cache of directory content passed as "list" contains entries from all
    layers, including whiteouts from lower layers. So, lookup in upper dir
    (moved into work at this stage) will return negative entry. Plus this
    cache is filled long before and we can race with external removal.
    
    Example:
     mkdir -p lower0/dir lower1/dir upper work overlay
     touch lower0/dir/a lower0/dir/b
     mknod lower1/dir/a c 0 0
     mount -t overlay none overlay -o lowerdir=lower1:lower0,upperdir=upper,workdir=work
     rm -fr overlay/dir
    
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org> # 3.18+
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit b41e08cbe451009d610d52f2c2c687298e791e63
Author: Uri Mashiach <uri.mashiach@compulab.co.il>
Date:   Thu Dec 10 15:12:56 2015 +0200

    wlcore/wl12xx: spi: fix oops on firmware load
    
    [ Upstream commit 9b2761cb72dc41e1948c8a5512b4efd384eda130 ]
    
    The maximum chunks used by the function is
    (SPI_AGGR_BUFFER_SIZE / WSPI_MAX_CHUNK_SIZE + 1).
    The original commands array had space for
    (SPI_AGGR_BUFFER_SIZE / WSPI_MAX_CHUNK_SIZE) commands.
    When the last chunk is used (len > 4 * WSPI_MAX_CHUNK_SIZE), the last
    command is stored outside the bounds of the commands array.
    
    Oops 5 (page fault) is generated during current wl1271 firmware load
    attempt:
    
    root@debian-armhf:~# ifconfig wlan0 up
    [  294.312399] Unable to handle kernel paging request at virtual address
    00203fc4
    [  294.320173] pgd = de528000
    [  294.323028] [00203fc4] *pgd=00000000
    [  294.326916] Internal error: Oops: 5 [#1] SMP ARM
    [  294.331789] Modules linked in: bnep rfcomm bluetooth ipv6 arc4 wl12xx
    wlcore mac80211 musb_dsps cfg80211 musb_hdrc usbcore usb_common
    wlcore_spi omap_rng rng_core musb_am335x omap_wdt cpufreq_dt thermal_sys
    hwmon
    [  294.351838] CPU: 0 PID: 1827 Comm: ifconfig Not tainted
    4.2.0-00002-g3e9ad27-dirty #78
    [  294.360154] Hardware name: Generic AM33XX (Flattened Device Tree)
    [  294.366557] task: dc9d6d40 ti: de550000 task.ti: de550000
    [  294.372236] PC is at __spi_validate+0xa8/0x2ac
    [  294.376902] LR is at __spi_sync+0x78/0x210
    [  294.381200] pc : [<c049c760>]    lr : [<c049ebe0>]    psr: 60000013
    [  294.381200] sp : de551998  ip : de5519d8  fp : 00200000
    [  294.393242] r10: de551c8c  r9 : de5519d8  r8 : de3a9000
    [  294.398730] r7 : de3a9258  r6 : de3a9400  r5 : de551a48  r4 :
    00203fbc
    [  294.405577] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 :
    de3a9000
    [  294.412420] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
    Segment user
    [  294.419918] Control: 10c5387d  Table: 9e528019  DAC: 00000015
    [  294.425954] Process ifconfig (pid: 1827, stack limit = 0xde550218)
    [  294.432437] Stack: (0xde551998 to 0xde552000)
    
    ...
    
    [  294.883613] [<c049c760>] (__spi_validate) from [<c049ebe0>]
    (__spi_sync+0x78/0x210)
    [  294.891670] [<c049ebe0>] (__spi_sync) from [<bf036598>]
    (wl12xx_spi_raw_write+0xfc/0x148 [wlcore_spi])
    [  294.901661] [<bf036598>] (wl12xx_spi_raw_write [wlcore_spi]) from
    [<bf21c694>] (wlcore_boot_upload_firmware+0x1ec/0x458 [wlcore])
    [  294.914038] [<bf21c694>] (wlcore_boot_upload_firmware [wlcore]) from
    [<bf24532c>] (wl12xx_boot+0xc10/0xfac [wl12xx])
    [  294.925161] [<bf24532c>] (wl12xx_boot [wl12xx]) from [<bf20d5cc>]
    (wl1271_op_add_interface+0x5b0/0x910 [wlcore])
    [  294.936364] [<bf20d5cc>] (wl1271_op_add_interface [wlcore]) from
    [<bf15c4ac>] (ieee80211_do_open+0x44c/0xf7c [mac80211])
    [  294.947963] [<bf15c4ac>] (ieee80211_do_open [mac80211]) from
    [<c0537978>] (__dev_open+0xa8/0x110)
    [  294.957307] [<c0537978>] (__dev_open) from [<c0537bf8>]
    (__dev_change_flags+0x88/0x148)
    [  294.965713] [<c0537bf8>] (__dev_change_flags) from [<c0537cd0>]
    (dev_change_flags+0x18/0x48)
    [  294.974576] [<c0537cd0>] (dev_change_flags) from [<c05a55a0>]
    (devinet_ioctl+0x6b4/0x7d0)
    [  294.983191] [<c05a55a0>] (devinet_ioctl) from [<c0517040>]
    (sock_ioctl+0x1e4/0x2bc)
    [  294.991244] [<c0517040>] (sock_ioctl) from [<c017d378>]
    (do_vfs_ioctl+0x420/0x6b0)
    [  294.999208] [<c017d378>] (do_vfs_ioctl) from [<c017d674>]
    (SyS_ioctl+0x6c/0x7c)
    [  295.006880] [<c017d674>] (SyS_ioctl) from [<c000f4c0>]
    (ret_fast_syscall+0x0/0x54)
    [  295.014835] Code: e1550004 e2444034 0a00007d e5953018 (e5942008)
    [  295.021544] ---[ end trace 66ed188198f4e24e ]---
    
    Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
    Acked-by: Igor Grinberg <grinberg@compulab.co.il>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 54401c827d6853b1faed6f7a370c3b2c5641df8c
Author: Peter Wu <peter@lekensteyn.nl>
Date:   Mon Dec 7 01:07:31 2015 +0100

    rtlwifi: fix memory leak for USB device
    
    [ Upstream commit 17bc55864f81dd730d05f09b1641312a7990d636 ]
    
    Free skb for received frames with a wrong checksum. This can happen
    pretty rapidly, exhausting all memory.
    
    This fixes a memleak (detected with kmemleak). Originally found while
    using monitor mode, but it also appears during managed mode (once the
    link is up).
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Peter Wu <peter@lekensteyn.nl>
    ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d1b7d95679e3d8b313dfce38bfa7b945653cde56
Author: Dmitry Tunin <hanipouspilot@gmail.com>
Date:   Sat Dec 5 14:09:36 2015 +0300

    Bluetooth: Add support of Toshiba Broadcom based devices
    
    [ Upstream commit 1623d0bf847d3b38d8cf24367b3689ba0e3fe2aa ]
    
    BugLink: https://bugs.launchpad.net/bugs/1522949
    
        T: Bus=03 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
        D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
        P: Vendor=0930 ProdID=0225 Rev=01.12
        S: Manufacturer=Broadcom Corp
        S: Product=BCM43142A0
        S: SerialNumber=4CBB58034671
        C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
        I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
        I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
        I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
        I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
    
    Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 03e9cbc94bdcd9590a857d8822c458cffe2ffd0c
Author: Miklos Szeredi <miklos@szeredi.hu>
Date:   Wed Dec 9 16:11:59 2015 +0100

    ovl: root: copy attr
    
    [ Upstream commit ed06e069775ad9236087594a1c1667367e983fb5 ]
    
    We copy i_uid and i_gid of underlying inode into overlayfs inode.  Except
    for the root inode.
    
    Fix this omission.
    
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 87a7a773736a81b16c24f20249a93a34ae1320fe
Author: Thomas Huth <thuth@redhat.com>
Date:   Fri Nov 20 09:11:45 2015 +0100

    KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8
    
    [ Upstream commit 760a7364f27d974d100118d88190e574626e18a6 ]
    
    In the old DABR register, the BT (Breakpoint Translation) bit
    is bit number 61. In the new DAWRX register, the WT (Watchpoint
    Translation) bit is bit number 59. So to move the DABR-BT bit
    into the position of the DAWRX-WT bit, it has to be shifted by
    two, not only by one. This fixes hardware watchpoints in gdb of
    older guests that only use the H_SET_DABR/X interface instead
    of the new H_SET_MODE interface.
    
    Cc: stable@vger.kernel.org # v3.14+
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    Reviewed-by: Laurent Vivier <lvivier@redhat.com>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9282d8b196725d802a57a757e78a3c74cccb9708
Author: David Gibson <david@gibson.dropbear.id.au>
Date:   Mon Nov 30 12:30:30 2015 +1100

    time: Avoid signed overflow in timekeeping_get_ns()
    
    [ Upstream commit 35a4933a895927990772ae96fdcfd2f806929ee2 ]
    
    1e75fa8 "time: Condense timekeeper.xtime into xtime_sec" replaced a call to
    clocksource_cyc2ns() from timekeeping_get_ns() with an open-coded version
    of the same logic to avoid keeping a semi-redundant struct timespec
    in struct timekeeper.
    
    However, the commit also introduced a subtle semantic change - where
    clocksource_cyc2ns() uses purely unsigned math, the new version introduces
    a signed temporary, meaning that if (delta * tk->mult) has a 63-bit
    overflow the following shift will still give a negative result.  The
    choice of 'maxsec' in __clocksource_updatefreq_scale() means this will
    generally happen if there's a ~10 minute pause in examining the
    clocksource.
    
    This can be triggered on a powerpc KVM guest by stopping it from qemu for
    a bit over 10 minutes.  After resuming time has jumped backwards several
    minutes causing numerous problems (jiffies does not advance, msleep()s can
    be extended by minutes..).  It doesn't happen on x86 KVM guests, because
    the guest TSC is effectively frozen while the guest is stopped, which is
    not the case for the powerpc timebase.
    
    Obviously an unsigned (64 bit) overflow will only take twice as long as a
    signed, 63-bit overflow.  I don't know the time code well enough to know
    if that will still cause incorrect calculations, or if a 64-bit overflow
    is avoided elsewhere.
    
    Still, an incorrect forwards clock adjustment will cause less trouble than
    time going backwards.  So, this patch removes the potential for
    intermediate signed overflow.
    
    Cc: stable@vger.kernel.org  (3.7+)
    Suggested-by: Laurent Vivier <lvivier@redhat.com>
    Tested-by: Laurent Vivier <lvivier@redhat.com>
    Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8a610e047525a9b882dad09419f038fbf09f705d
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Nov 24 14:32:44 2015 -0500

    drm/radeon: call hpd_irq_event on resume
    
    [ Upstream commit dbb17a21c131eca94eb31136eee9a7fe5aff00d9 ]
    
    Need to call this on resume if displays changes during
    suspend in order to properly be notified of changes.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c445012474c7e9fcc0af3bc1d78bf40a71c91923
Author: Steven Rostedt <rostedt@goodmis.org>
Date:   Mon Nov 16 17:25:16 2015 -0500

    tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines
    
    [ Upstream commit 32abc2ede536aae52978d6c0a8944eb1df14f460 ]
    
    When a long value is read on 32 bit machines for 64 bit output, the
    parsing needs to change "%lu" into "%llu", as the value is read
    natively.
    
    Unfortunately, if "%llu" is already there, the code will add another "l"
    to it and fail to parse it properly.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20151116172516.4b79b109@gandalf.local.home
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 0e351468a27de5df81b9f4657d8e7dfd6fcbcd5e
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Mon Aug 31 06:13:45 2015 -0300

    [media] media: dvb-core: Don't force CAN_INVERSION_AUTO in oneshot mode
    
    [ Upstream commit c9d57de6103e343f2d4e04ea8d9e417e10a24da7 ]
    
    When in FE_TUNE_MODE_ONESHOT the frontend must report
    the actual capabilities so user can take appropriate
    action.
    
    With frontends that can't do auto inversion this is done
    by dvb-core automatically so CAN_INVERSION_AUTO is valid.
    
    However, when in FE_TUNE_MODE_ONESHOT this is not true.
    
    So only set FE_CAN_INVERSION_AUTO in modes other than
    FE_TUNE_MODE_ONESHOT
    
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8a9709a89c9ab3cc69f61e956463a6914726a1e8
Author: Antonio Ospite <ao2@ao2.it>
Date:   Fri Oct 2 17:33:13 2015 -0300

    [media] gspca: ov534/topro: prevent a division by 0
    
    [ Upstream commit dcc7fdbec53a960588f2c40232db2c6466c09917 ]
    
    v4l2-compliance sends a zeroed struct v4l2_streamparm in
    v4l2-test-formats.cpp::testParmType(), and this results in a division by
    0 in some gspca subdrivers:
    
      divide error: 0000 [#1] SMP
      Modules linked in: gspca_ov534 gspca_main ...
      CPU: 0 PID: 17201 Comm: v4l2-compliance Not tainted 4.3.0-rc2-ao2 #1
      Hardware name: System manufacturer System Product Name/M2N-E SLI, BIOS
        ASUS M2N-E SLI ACPI BIOS Revision 1301 09/16/2010
      task: ffff8800818306c0 ti: ffff880095c4c000 task.ti: ffff880095c4c000
      RIP: 0010:[<ffffffffa079bd62>]  [<ffffffffa079bd62>] sd_set_streamparm+0x12/0x60 [gspca_ov534]
      RSP: 0018:ffff880095c4fce8  EFLAGS: 00010296
      RAX: 0000000000000000 RBX: ffff8800c9522000 RCX: ffffffffa077a140
      RDX: 0000000000000000 RSI: ffff880095e0c100 RDI: ffff8800c9522000
      RBP: ffff880095e0c100 R08: ffffffffa077a100 R09: 00000000000000cc
      R10: ffff880067ec7740 R11: 0000000000000016 R12: ffffffffa07bb400
      R13: 0000000000000000 R14: ffff880081b6a800 R15: 0000000000000000
      FS:  00007fda0de78740(0000) GS:ffff88012fc00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00000000014630f8 CR3: 00000000cf349000 CR4: 00000000000006f0
      Stack:
       ffffffffa07a6431 ffff8800c9522000 ffffffffa077656e 00000000c0cc5616
       ffff8800c9522000 ffffffffa07a5e20 ffff880095e0c100 0000000000000000
       ffff880067ec7740 ffffffffa077a140 ffff880067ec7740 0000000000000016
      Call Trace:
       [<ffffffffa07a6431>] ? v4l_s_parm+0x21/0x50 [videodev]
       [<ffffffffa077656e>] ? vidioc_s_parm+0x4e/0x60 [gspca_main]
       [<ffffffffa07a5e20>] ? __video_do_ioctl+0x280/0x2f0 [videodev]
       [<ffffffffa07a5ba0>] ? video_ioctl2+0x20/0x20 [videodev]
       [<ffffffffa07a59b9>] ? video_usercopy+0x319/0x4e0 [videodev]
       [<ffffffff81182dc1>] ? page_add_new_anon_rmap+0x71/0xa0
       [<ffffffff811afb92>] ? mem_cgroup_commit_charge+0x52/0x90
       [<ffffffff81179b18>] ? handle_mm_fault+0xc18/0x1680
       [<ffffffffa07a15cc>] ? v4l2_ioctl+0xac/0xd0 [videodev]
       [<ffffffff811c846f>] ? do_vfs_ioctl+0x28f/0x480
       [<ffffffff811c86d4>] ? SyS_ioctl+0x74/0x80
       [<ffffffff8154a8b6>] ? entry_SYSCALL_64_fastpath+0x16/0x75
      Code: c7 93 d9 79 a0 5b 5d e9 f1 f3 9a e0 0f 1f 00 66 2e 0f 1f 84 00
        00 00 00 00 66 66 66 66 90 53 31 d2 48 89 fb 48 83 ec 08 8b 46 10 <f7>
        76 0c 80 bf ac 0c 00 00 00 88 87 4e 0e 00 00 74 09 80 bf 4f
      RIP  [<ffffffffa079bd62>] sd_set_streamparm+0x12/0x60 [gspca_ov534]
       RSP <ffff880095c4fce8>
      ---[ end trace 279710c2c6c72080 ]---
    
    Following what the doc says about a zeroed timeperframe (see
    http://www.linuxtv.org/downloads/v4l-dvb-apis/vidioc-g-parm.html):
    
      ...
      To reset manually applications can just set this field to zero.
    
    fix the issue by resetting the frame rate to a default value in case of
    an unusable timeperframe.
    
    The fix is done in the subdrivers instead of gspca.c because only the
    subdrivers have notion of a default frame rate to reset the camera to.
    
    Signed-off-by: Antonio Ospite <ao2@ao2.it>
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 4357a54387ddeb8b39634fb80485975df481e91e
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Mon Feb 1 11:27:06 2016 -0500

    [media] vb2: fix a regression in poll() behavior for output,streams
    
    [ Upstream commit 4623e5967448444a4ea1e77beb58898c4af48693 ]
    
    In the 3.17 kernel the poll() behavior changed for output streams:
    as long as not all buffers were queued up poll() would return that
    userspace can write. This is fine for the write() call, but when
    using stream I/O this changed the behavior since the expectation
    was that it would wait for buffers to become available for dequeuing.
    
    This patch only enables the check whether you can queue buffers
    for file I/O only, and skips it for stream I/O.
    
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: <stable@vger.kernel.org>      # for v3.17 and up
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit f641fdbd8ca737df49e96d9d58206fb0a9d82512
Author: Vito Caputo <vito.caputo@coreos.com>
Date:   Sat Oct 24 07:19:46 2015 -0500

    ovl: use a minimal buffer in ovl_copy_xattr
    
    [ Upstream commit e4ad29fa0d224d05e08b2858e65f112fd8edd4fe ]
    
    Rather than always allocating the high-order XATTR_SIZE_MAX buffer
    which is costly and prone to failure, only allocate what is needed and
    realloc if necessary.
    
    Fixes https://github.com/coreos/bugs/issues/489
    
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 17b85e5e688f28172157921203824192cb2310bd
Author: Miklos Szeredi <miklos@szeredi.hu>
Date:   Tue Nov 10 17:08:41 2015 +0100

    ovl: allow zero size xattr
    
    [ Upstream commit 97daf8b97ad6f913a34c82515be64dc9ac08d63e ]
    
    When ovl_copy_xattr() encountered a zero size xattr no more xattrs were
    copied and the function returned success.  This is clearly not the desired
    behavior.
    
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>