commit 80f36e65007f232cc15cfa67193c21f2ead01fd8
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Nov 21 09:24:10 2014 -0800

    Linux 3.17.4

commit 16241ecae4c810f606158439c61706df861702d4
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Sun Nov 2 15:48:09 2014 +0200

    iwlwifi: fix RFkill while calibrating
    
    commit 31b8b343e019e0a0c57ca9c13520a87f9cab884b upstream.
    
    If the RFkill interrupt fires while we calibrate, it would
    make the firmware fail and the driver wasn't able to recover.
    Change the flow so that the driver will kill the firmware
    in that case.
    
    Since we have now two flows that are calling
    trans_stop_device (the RFkill interrupt and the
    op_mode_mvm_start function) - we need to better sync this.
    Use the STATUS_DEVICE_ENABLED in the pcie transport in an
    atomic way to achieve this.
    
    This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=86231
    
    Reviewed-by: Johannes Berg <johannes.berg@intel.com>
    Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 698886de94d318698165c1829e7bcf37c66dfd95
Author: David Howells <dhowells@redhat.com>
Date:   Tue Sep 16 17:29:03 2014 +0100

    KEYS: Reinstate EPERM for a key type name beginning with a '.'
    
    commit 54e2c2c1a9d6cbb270b0999a38545fa9a69bee43 upstream.
    
    Reinstate the generation of EPERM for a key type name beginning with a '.' in
    a userspace call.  Types whose name begins with a '.' are internal only.
    
    The test was removed by:
    
    	commit a4e3b8d79a5c6d40f4a9703abf7fe3abcc6c3b8d
    	Author: Mimi Zohar <zohar@linux.vnet.ibm.com>
    	Date:   Thu May 22 14:02:23 2014 -0400
    	Subject: KEYS: special dot prefixed keyring name bug fix
    
    I think we want to keep the restriction on type name so that userspace can't
    add keys of a special internal type.
    
    Note that removal of the test causes several of the tests in the keyutils
    testsuite to fail.
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Vivek Goyal <vgoyal@redhat.com>
    cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 820f1d48ca3def5acc2171ee377bddf4e17a5351
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Sun Oct 26 11:23:55 2014 +0100

    asus-nb-wmi: Add wapf4 quirk for the X550VB
    
    commit 4ec7a45b51a32ee513898e2f1e42bb681b340fcf upstream.
    
    X550VB as many others Asus laptops need wapf4 quirk to make RFKILL
    switch be functional. Otherwise system boots with wireless card
    disabled and is only possible to enable it by suspend/resume.
    
    Bug report:
    http://bugzilla.redhat.com/show_bug.cgi?id=1089731#c23
    
    Reported-and-tested-by: Vratislav Podzimek <vpodzime@redhat.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35e95fae72ddb67ef94395d99abc48589ce17875
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Thu Oct 9 22:55:31 2014 +0200

    net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks
    
    commit 9de7922bc709eee2f609cd01d98aaedc4cf5ea74 upstream.
    
    Commit 6f4c618ddb0 ("SCTP : Add paramters validity check for
    ASCONF chunk") added basic verification of ASCONF chunks, however,
    it is still possible to remotely crash a server by sending a
    special crafted ASCONF chunk, even up to pre 2.6.12 kernels:
    
    skb_over_panic: text:ffffffffa01ea1c3 len:31056 put:30768
     head:ffff88011bd81800 data:ffff88011bd81800 tail:0x7950
     end:0x440 dev:<NULL>
     ------------[ cut here ]------------
    kernel BUG at net/core/skbuff.c:129!
    [...]
    Call Trace:
     <IRQ>
     [<ffffffff8144fb1c>] skb_put+0x5c/0x70
     [<ffffffffa01ea1c3>] sctp_addto_chunk+0x63/0xd0 [sctp]
     [<ffffffffa01eadaf>] sctp_process_asconf+0x1af/0x540 [sctp]
     [<ffffffff8152d025>] ? _read_unlock_bh+0x15/0x20
     [<ffffffffa01e0038>] sctp_sf_do_asconf+0x168/0x240 [sctp]
     [<ffffffffa01e3751>] sctp_do_sm+0x71/0x1210 [sctp]
     [<ffffffff8147645d>] ? fib_rules_lookup+0xad/0xf0
     [<ffffffffa01e6b22>] ? sctp_cmp_addr_exact+0x32/0x40 [sctp]
     [<ffffffffa01e8393>] sctp_assoc_bh_rcv+0xd3/0x180 [sctp]
     [<ffffffffa01ee986>] sctp_inq_push+0x56/0x80 [sctp]
     [<ffffffffa01fcc42>] sctp_rcv+0x982/0xa10 [sctp]
     [<ffffffffa01d5123>] ? ipt_local_in_hook+0x23/0x28 [iptable_filter]
     [<ffffffff8148bdc9>] ? nf_iterate+0x69/0xb0
     [<ffffffff81496d10>] ? ip_local_deliver_finish+0x0/0x2d0
     [<ffffffff8148bf86>] ? nf_hook_slow+0x76/0x120
     [<ffffffff81496d10>] ? ip_local_deliver_finish+0x0/0x2d0
     [<ffffffff81496ded>] ip_local_deliver_finish+0xdd/0x2d0
     [<ffffffff81497078>] ip_local_deliver+0x98/0xa0
     [<ffffffff8149653d>] ip_rcv_finish+0x12d/0x440
     [<ffffffff81496ac5>] ip_rcv+0x275/0x350
     [<ffffffff8145c88b>] __netif_receive_skb+0x4ab/0x750
     [<ffffffff81460588>] netif_receive_skb+0x58/0x60
    
    This can be triggered e.g., through a simple scripted nmap
    connection scan injecting the chunk after the handshake, for
    example, ...
    
      -------------- INIT[ASCONF; ASCONF_ACK] ------------->
      <----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------
      -------------------- COOKIE-ECHO -------------------->
      <-------------------- COOKIE-ACK ---------------------
      ------------------ ASCONF; UNKNOWN ------------------>
    
    ... where ASCONF chunk of length 280 contains 2 parameters ...
    
      1) Add IP address parameter (param length: 16)
      2) Add/del IP address parameter (param length: 255)
    
    ... followed by an UNKNOWN chunk of e.g. 4 bytes. Here, the
    Address Parameter in the ASCONF chunk is even missing, too.
    This is just an example and similarly-crafted ASCONF chunks
    could be used just as well.
    
    The ASCONF chunk passes through sctp_verify_asconf() as all
    parameters passed sanity checks, and after walking, we ended
    up successfully at the chunk end boundary, and thus may invoke
    sctp_process_asconf(). Parameter walking is done with
    WORD_ROUND() to take padding into account.
    
    In sctp_process_asconf()'s TLV processing, we may fail in
    sctp_process_asconf_param() e.g., due to removal of the IP
    address that is also the source address of the packet containing
    the ASCONF chunk, and thus we need to add all TLVs after the
    failure to our ASCONF response to remote via helper function
    sctp_add_asconf_response(), which basically invokes a
    sctp_addto_chunk() adding the error parameters to the given
    skb.
    
    When walking to the next parameter this time, we proceed
    with ...
    
      length = ntohs(asconf_param->param_hdr.length);
      asconf_param = (void *)asconf_param + length;
    
    ... instead of the WORD_ROUND()'ed length, thus resulting here
    in an off-by-one that leads to reading the follow-up garbage
    parameter length of 12336, and thus throwing an skb_over_panic
    for the reply when trying to sctp_addto_chunk() next time,
    which implicitly calls the skb_put() with that length.
    
    Fix it by using sctp_walk_params() [ which is also used in
    INIT parameter processing ] macro in the verification *and*
    in ASCONF processing: it will make sure we don't spill over,
    that we walk parameters WORD_ROUND()'ed. Moreover, we're being
    more defensive and guard against unknown parameter types and
    missized addresses.
    
    Joint work with Vlad Yasevich.
    
    Fixes: b896b82be4ae ("[SCTP] ADDIP: Support for processing incoming ASCONF_ACK chunks.")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd8aaf1f380e008044857d7d2293e8e2824772b8
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Thu Oct 9 22:55:32 2014 +0200

    net: sctp: fix panic on duplicate ASCONF chunks
    
    commit b69040d8e39f20d5215a03502a8e8b4c6ab78395 upstream.
    
    When receiving a e.g. semi-good formed connection scan in the
    form of ...
    
      -------------- INIT[ASCONF; ASCONF_ACK] ------------->
      <----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------
      -------------------- COOKIE-ECHO -------------------->
      <-------------------- COOKIE-ACK ---------------------
      ---------------- ASCONF_a; ASCONF_b ----------------->
    
    ... where ASCONF_a equals ASCONF_b chunk (at least both serials
    need to be equal), we panic an SCTP server!
    
    The problem is that good-formed ASCONF chunks that we reply with
    ASCONF_ACK chunks are cached per serial. Thus, when we receive a
    same ASCONF chunk twice (e.g. through a lost ASCONF_ACK), we do
    not need to process them again on the server side (that was the
    idea, also proposed in the RFC). Instead, we know it was cached
    and we just resend the cached chunk instead. So far, so good.
    
    Where things get nasty is in SCTP's side effect interpreter, that
    is, sctp_cmd_interpreter():
    
    While incoming ASCONF_a (chunk = event_arg) is being marked
    !end_of_packet and !singleton, and we have an association context,
    we do not flush the outqueue the first time after processing the
    ASCONF_ACK singleton chunk via SCTP_CMD_REPLY. Instead, we keep it
    queued up, although we set local_cork to 1. Commit 2e3216cd54b1
    changed the precedence, so that as long as we get bundled, incoming
    chunks we try possible bundling on outgoing queue as well. Before
    this commit, we would just flush the output queue.
    
    Now, while ASCONF_a's ASCONF_ACK sits in the corked outq, we
    continue to process the same ASCONF_b chunk from the packet. As
    we have cached the previous ASCONF_ACK, we find it, grab it and
    do another SCTP_CMD_REPLY command on it. So, effectively, we rip
    the chunk->list pointers and requeue the same ASCONF_ACK chunk
    another time. Since we process ASCONF_b, it's correctly marked
    with end_of_packet and we enforce an uncork, and thus flush, thus
    crashing the kernel.
    
    Fix it by testing if the ASCONF_ACK is currently pending and if
    that is the case, do not requeue it. When flushing the output
    queue we may relink the chunk for preparing an outgoing packet,
    but eventually unlink it when it's copied into the skb right
    before transmission.
    
    Joint work with Vlad Yasevich.
    
    Fixes: 2e3216cd54b1 ("sctp: Follow security requirement of responding with 1 packet")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a282822a9e472a41a7e2db71903a1c6654c634a
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Thu Oct 9 22:55:33 2014 +0200

    net: sctp: fix remote memory pressure from excessive queueing
    
    commit 26b87c7881006311828bb0ab271a551a62dcceb4 upstream.
    
    This scenario is not limited to ASCONF, just taken as one
    example triggering the issue. When receiving ASCONF probes
    in the form of ...
    
      -------------- INIT[ASCONF; ASCONF_ACK] ------------->
      <----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------
      -------------------- COOKIE-ECHO -------------------->
      <-------------------- COOKIE-ACK ---------------------
      ---- ASCONF_a; [ASCONF_b; ...; ASCONF_n;] JUNK ------>
      [...]
      ---- ASCONF_m; [ASCONF_o; ...; ASCONF_z;] JUNK ------>
    
    ... where ASCONF_a, ASCONF_b, ..., ASCONF_z are good-formed
    ASCONFs and have increasing serial numbers, we process such
    ASCONF chunk(s) marked with !end_of_packet and !singleton,
    since we have not yet reached the SCTP packet end. SCTP does
    only do verification on a chunk by chunk basis, as an SCTP
    packet is nothing more than just a container of a stream of
    chunks which it eats up one by one.
    
    We could run into the case that we receive a packet with a
    malformed tail, above marked as trailing JUNK. All previous
    chunks are here goodformed, so the stack will eat up all
    previous chunks up to this point. In case JUNK does not fit
    into a chunk header and there are no more other chunks in
    the input queue, or in case JUNK contains a garbage chunk
    header, but the encoded chunk length would exceed the skb
    tail, or we came here from an entirely different scenario
    and the chunk has pdiscard=1 mark (without having had a flush
    point), it will happen, that we will excessively queue up
    the association's output queue (a correct final chunk may
    then turn it into a response flood when flushing the
    queue ;)): I ran a simple script with incremental ASCONF
    serial numbers and could see the server side consuming
    excessive amount of RAM [before/after: up to 2GB and more].
    
    The issue at heart is that the chunk train basically ends
    with !end_of_packet and !singleton markers and since commit
    2e3216cd54b1 ("sctp: Follow security requirement of responding
    with 1 packet") therefore preventing an output queue flush
    point in sctp_do_sm() -> sctp_cmd_interpreter() on the input
    chunk (chunk = event_arg) even though local_cork is set,
    but its precedence has changed since then. In the normal
    case, the last chunk with end_of_packet=1 would trigger the
    queue flush to accommodate possible outgoing bundling.
    
    In the input queue, sctp_inq_pop() seems to do the right thing
    in terms of discarding invalid chunks. So, above JUNK will
    not enter the state machine and instead be released and exit
    the sctp_assoc_bh_rcv() chunk processing loop. It's simply
    the flush point being missing at loop exit. Adding a try-flush
    approach on the output queue might not work as the underlying
    infrastructure might be long gone at this point due to the
    side-effect interpreter run.
    
    One possibility, albeit a bit of a kludge, would be to defer
    invalid chunk freeing into the state machine in order to
    possibly trigger packet discards and thus indirectly a queue
    flush on error. It would surely be better to discard chunks
    as in the current, perhaps better controlled environment, but
    going back and forth, it's simply architecturally not possible.
    I tried various trailing JUNK attack cases and it seems to
    look good now.
    
    Joint work with Vlad Yasevich.
    
    Fixes: 2e3216cd54b1 ("sctp: Follow security requirement of responding with 1 packet")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bd994a9421321aa134f1ec7eeff9e2c3077d834
Author: Stephan Mueller <smueller@chronox.de>
Date:   Mon Oct 27 04:09:50 2014 +0100

    quirk for Lenovo Yoga 3: no rfkill switch
    
    commit 725c7f619e20f5051bba627fca11dc107c2a93b1 upstream.
    
    The Yoga 3 does not contain any physical rfkill switch. Therefore
    disable the rfkill switch identically to the Yoga 2 approach.
    
    Signed-off-by: Stephan Mueller <smueller@chronox.de>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95fef307d9184e77ac5a9b71443e8d31a86cd0d0
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Wed Sep 17 02:50:50 2014 +0300

    KVM: x86: Don't report guest userspace emulation error to userspace
    
    commit a2b9e6c1a35afcc0973acb72e591c714e78885ff upstream.
    
    Commit fc3a9157d314 ("KVM: X86: Don't report L2 emulation failures to
    user-space") disabled the reporting of L2 (nested guest) emulation failures to
    userspace due to race-condition between a vmexit and the instruction emulator.
    The same rational applies also to userspace applications that are permitted by
    the guest OS to access MMIO area or perform PIO.
    
    This patch extends the current behavior - of injecting a #UD instead of
    reporting it to userspace - also for guest userspace code.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit c40284ad436633a87c7de378c1d0108a6afde027
Author: Joe Perches <joe@perches.com>
Date:   Mon Oct 13 15:51:53 2014 -0700

    checkpatch: remove unnecessary + after {8,8}
    
    commit d2207ccbc59900311c88bb9150b24253cd4ddd49 upstream.
    
    There's a useless "+" use that needs to be removed as perl 5.20 emits a
    "Useless use of greediness modifier '+'" message each time it's hit.
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Reported-by: Greg KH <gregkh@linuxfoundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f742178ccab65a70556b0a855c377bbdf9c35f28
Author: Michal Marek <mmarek@suse.cz>
Date:   Fri Aug 22 15:51:03 2014 +0200

    builddeb: put the dbg files into the correct directory
    
    commit 2d0871396995139b37f9ceb153c8b07589148343 upstream.
    
    Since the conversion of objtree to use relative pathnames (commit
    7e1c04779e, "kbuild: Use relative path for $(objtree)"), the debug
    info files have been ending up in /debian/dbgtmp/ in the regular
    linux-image package instead of the debug files package. Fix up the
    paths so that the debug files end up in the -dbg package.
    
    This is based on a similar patch by Darrick.
    
    Reported-and-tested-by: "Darrick J. Wong" <darrick.wong@oracle.com>
    Signed-off-by: Michal Marek <mmarek@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cb915bc7a9ebf5c1a0dc0c61719bfa8ebc2b08c
Author: Pali Rohár <pali.rohar@gmail.com>
Date:   Mon Sep 29 15:10:51 2014 +0200

    dell-wmi: Fix access out of memory
    
    commit a666b6ffbc9b6705a3ced704f52c3fe9ea8bf959 upstream.
    
    Without this patch, dell-wmi is trying to access elements of dynamically
    allocated array without checking the array size. This can lead to memory
    corruption or a kernel panic. This patch adds the missing checks for
    array size.
    
    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 931a85467a91e7fd4fa166b34c6d74d69d833136
Author: Pranith Kumar <bobby.prani@gmail.com>
Date:   Tue Aug 12 13:07:47 2014 -0400

    rcu: Use rcu_gp_kthread_wake() to wake up grace period kthreads
    
    commit 2aa792e6faf1a00f5accf1f69e87e11a390ba2cd upstream.
    
    The rcu_gp_kthread_wake() function checks for three conditions before
    waking up grace period kthreads:
    
    *  Is the thread we are trying to wake up the current thread?
    *  Are the gp_flags zero? (all threads wait on non-zero gp_flags condition)
    *  Is there no thread created for this flavour, hence nothing to wake up?
    
    If any one of these condition is true, we do not call wake_up().
    It was found that there are quite a few avoidable wake ups both during
    idle time and under stress induced by rcutorture.
    
    Idle:
    
    Total:66000, unnecessary:66000, case1:61827, case2:66000, case3:0
    Total:68000, unnecessary:68000, case1:63696, case2:68000, case3:0
    
    rcutorture:
    
    Total:254000, unnecessary:254000, case1:199913, case2:254000, case3:0
    Total:256000, unnecessary:256000, case1:201784, case2:256000, case3:0
    
    Here case{1-3} are the cases listed above. We can avoid these wake
    ups by using rcu_gp_kthread_wake() to conditionally wake up the grace
    period kthreads.
    
    There is a comment about an implied barrier supplied by the wake_up()
    logic.  This barrier is necessary for the awakened thread to see the
    updated ->gp_flags.  This flag is always being updated with the root node
    lock held. Also, the awakened thread tries to acquire the root node lock
    before reading ->gp_flags because of which there is proper ordering.
    
    Hence this commit tries to avoid calling wake_up() whenever we can by
    using rcu_gp_kthread_wake() function.
    
    Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
    CC: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Kamal Mostafa <kamal@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a0173fa9acafe94159c48efe88ea36a72a16d84
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Mon Sep 29 08:52:04 2014 -0400

    GFS2: Make rename not save dirent location
    
    commit 19aeb5a65f1a6504fc665466c188241e7393d66f upstream.
    
    This patch fixes a regression in the patch "GFS2: Remember directory
    insert point", commit 2b47dad866d04f14c328f888ba5406057b8c7d33.
    The problem had to do with the rename function: The function found
    space for the new dirent, and remembered that location. But then the
    old dirent was removed, which often moved the eligible location for
    the renamed dirent. Putting the new dirent at the saved location
    caused file system corruption.
    
    This patch adds a new "save_loc" variable to struct gfs2_diradd.
    If 1, the dirent location is saved. If 0, the dirent location is not
    saved and the buffer_head is released as per previous behavior.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5aa67e1743992a470e8187dbb2e9bd3a66e385d0
Author: Pablo Neira <pablo@netfilter.org>
Date:   Tue Jul 29 18:12:15 2014 +0200

    netfilter: xt_bpf: add mising opaque struct sk_filter definition
    
    commit e10038a8ec06ac819b7552bb67aaa6d2d6f850c1 upstream.
    
    This structure is not exposed to userspace, so fix this by defining
    struct sk_filter; so we skip the casting in kernelspace. This is safe
    since userspace has no way to lurk with that internal pointer.
    
    Fixes: e6f30c7 ("netfilter: x_tables: add xt_bpf match")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6ba63efc10ef0e99096c152037f4464c75cfb8a
Author: Arturo Borrero <arturo.borrero.glez@gmail.com>
Date:   Sun Oct 26 12:22:40 2014 +0100

    netfilter: nft_compat: fix wrong target lookup in nft_target_select_ops()
    
    commit 7965ee93719921ea5978f331da653dfa2d7b99f5 upstream.
    
    The code looks for an already loaded target, and the correct list to search
    is nft_target_list, not nft_match_list.
    
    Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0adb674c9a102ca1c0d28fc127d8ce250168c3a9
Author: Houcheng Lin <houcheng@gmail.com>
Date:   Thu Oct 23 10:36:08 2014 +0200

    netfilter: nf_log: release skbuff on nlmsg put failure
    
    commit b51d3fa364885a2c1e1668f88776c67c95291820 upstream.
    
    The kernel should reserve enough room in the skb so that the DONE
    message can always be appended.  However, in case of e.g. new attribute
    erronously not being size-accounted for, __nfulnl_send() will still
    try to put next nlmsg into this full skbuf, causing the skb to be stuck
    forever and blocking delivery of further messages.
    
    Fix issue by releasing skb immediately after nlmsg_put error and
    WARN() so we can track down the cause of such size mismatch.
    
    [ fw@strlen.de: add tailroom/len info to WARN ]
    
    Signed-off-by: Houcheng Lin <houcheng@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fa9b25d1e404346ee1483bc1d050955be475bf6
Author: Florian Westphal <fw@strlen.de>
Date:   Thu Oct 23 10:36:07 2014 +0200

    netfilter: nfnetlink_log: fix maximum packet length logged to userspace
    
    commit c1e7dc91eed0ed1a51c9b814d648db18bf8fc6e9 upstream.
    
    don't try to queue payloads > 0xffff - NLA_HDRLEN, it does not work.
    The nla length includes the size of the nla struct, so anything larger
    results in u16 integer overflow.
    
    This patch is similar to
    9cefbbc9c8f9abe (netfilter: nfnetlink_queue: cleanup copy_range usage).
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit add9183d993c12fb61ce0a674a424341d5be5b36
Author: Florian Westphal <fw@strlen.de>
Date:   Thu Oct 23 10:36:06 2014 +0200

    netfilter: nf_log: account for size of NLMSG_DONE attribute
    
    commit 9dfa1dfe4d5e5e66a991321ab08afe69759d797a upstream.
    
    We currently neither account for the nlattr size, nor do we consider
    the size of the trailing NLMSG_DONE when allocating nlmsg skb.
    
    This can result in nflog to stop working, as __nfulnl_send() re-tries
    sending forever if it failed to append NLMSG_DONE (which will never
    work if buffer is not large enough).
    
    Reported-by: Houcheng Lin <houcheng@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44f501d9f7247fefe4851814ebd6f8cb306e7350
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Tue Oct 21 11:08:21 2014 +0200

    netfilter: nf_tables: check for NULL in nf_tables_newchain pcpu stats allocation
    
    commit c123bb7163043bb8f33858cf8e45b01c17dbd171 upstream.
    
    alloc_percpu returns NULL on failure, not a negative error code.
    
    Fixes: ff3cd7b3c922 ("netfilter: nf_tables: refactor chain statistic routines")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e88ad96411623ce286794defd1c41a8a9b5802a
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Oct 21 11:28:12 2014 +0300

    netfilter: ipset: off by one in ip_set_nfnl_get_byindex()
    
    commit 0f9f5e1b83abd2b37c67658e02a6fc9001831fa5 upstream.
    
    The ->ip_set_list[] array is initialized in ip_set_net_init() and it
    has ->ip_set_max elements so this check should be >= instead of >
    otherwise we are off by one.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef41fd5c6eb1e0ffc2653f02b28c7306bdc629ff
Author: Andrey Vagin <avagin@openvz.org>
Date:   Mon Oct 13 15:54:10 2014 -0700

    ipc: always handle a new value of auto_msgmni
    
    commit 1195d94e006b23c6292e78857e154872e33b6d7e upstream.
    
    proc_dointvec_minmax() returns zero if a new value has been set.  So we
    don't need to check all charecters have been handled.
    
    Below you can find two examples.  In the new value has not been handled
    properly.
    
    $ strace ./a.out
    open("/proc/sys/kernel/auto_msgmni", O_WRONLY) = 3
    write(3, "0\n\0", 3)                    = 2
    close(3)                                = 0
    exit_group(0)
    $ cat /sys/kernel/debug/tracing/trace
    
    $strace ./a.out
    open("/proc/sys/kernel/auto_msgmni", O_WRONLY) = 3
    write(3, "0\n", 2)                      = 2
    close(3)                                = 0
    
    $ cat /sys/kernel/debug/tracing/trace
    a.out-697   [000] ....  3280.998235: unregister_ipcns_notifier <-proc_ipcauto_dointvec_minmax
    
    Fixes: 9eefe520c814 ("ipc: do not use a negative value to re-enable msgmni automatic recomputin")
    Signed-off-by: Andrey Vagin <avagin@openvz.org>
    Cc: Mathias Krause <minipli@googlemail.com>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Cc: Joe Perches <joe@perches.com>
    Cc: Davidlohr Bueso <davidlohr@hp.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6936b53f792b8d8f98796cd92a58bb42fc227056
Author: Devesh Sharma <devesh.sharma@emulex.com>
Date:   Fri Sep 26 20:45:32 2014 +0530

    IB/core: Clear AH attr variable to prevent garbage data
    
    commit 8b0f93d9490653a7b9fc91f3570089132faed1c0 upstream.
    
    During create-ah from userspace, uverbs is sending garbage data in
    attr.dmac and attr.vlan_id.  This patch sets attr.dmac and
    attr.vlan_id to zero.
    
    Fixes: dd5f03beb4f7 ("IB/core: Ethernet L2 attributes in verbs/cm structures")
    Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d146f6c3319f7f5bb4f39bbda996a385ae8584c
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Aug 28 11:03:14 2014 +0200

    pwm: Fix uninitialized warnings in pwm_get()
    
    commit 70145f87139fbc43b726f873813cd91dce371899 upstream.
    
    With some versions of gcc (e.g. 4.1.2):
    
    drivers/pwm/core.c: In function ‘pwm_get’:
    drivers/pwm/core.c:610: warning: ‘polarity’ may be used uninitialized in this function
    drivers/pwm/core.c:609: warning: ‘period’ may be used uninitialized in this function
    
    While these are false positives, we can get rid of them by refactoring
    the code to store a pointer to the best match, as suggested before by
    Thierry Reding. This does require moving the mutex_unlock() down.
    
    Fixes: d717ea73e36dd565 ("pwm: Fix period and polarity in pwm_get() for non-perfect matches")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fefd9bdc44e64c55da24e2a7d96faaeb0d5aea1e
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon Oct 13 18:59:09 2014 -0600

    clocksource: Remove "weak" from clocksource_default_clock() declaration
    
    commit 96a2adbc6f501996418da9f7afe39bf0e4d006a9 upstream.
    
    kernel/time/jiffies.c provides a default clocksource_default_clock()
    definition explicitly marked "weak".  arch/s390 provides its own definition
    intended to override the default, but the "weak" attribute on the
    declaration applied to the s390 definition as well, so the linker chose one
    based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from
    pcibios_get_phb_of_node decl")).
    
    Remove the "weak" attribute from the clocksource_default_clock()
    declaration so we always prefer a non-weak definition over the weak one,
    independent of link order.
    
    Fixes: f1b82746c1e9 ("clocksource: Cleanup clocksource selection")
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: John Stultz <john.stultz@linaro.org>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    CC: Daniel Lezcano <daniel.lezcano@linaro.org>
    CC: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 401fc9d4842ecf2f5befd91ab0c92a126118e013
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon Oct 13 19:00:25 2014 -0600

    kgdb: Remove "weak" from kgdb_arch_pc() declaration
    
    commit 107bcc6d566cb40184068d888637f9aefe6252dd upstream.
    
    kernel/debug/debug_core.c provides a default kgdb_arch_pc() definition
    explicitly marked "weak".  Several architectures provide their own
    definitions intended to override the default, but the "weak" attribute on
    the declaration applied to the arch definitions as well, so the linker
    chose one based on link order (see 10629d711ed7 ("PCI: Remove __weak
    annotation from pcibios_get_phb_of_node decl")).
    
    Remove the "weak" attribute from the declaration so we always prefer a
    non-weak definition over the weak one, independent of link order.
    
    Fixes: 688b744d8bc8 ("kgdb: fix signedness mixmatches, add statics, add declaration to header")
    Tested-by: Vineet Gupta <vgupta@synopsys.com>	# for ARC build
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Harvey Harrison <harvey.harrison@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e46aef546ad5f89664fe09622b723117299b51d
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon Oct 13 18:59:41 2014 -0600

    vmcore: Remove "weak" from function declarations
    
    commit 5ab03ac5aaa1f032e071f1b3dc433b7839359c03 upstream.
    
    For the following functions:
    
      elfcorehdr_alloc()
      elfcorehdr_free()
      elfcorehdr_read()
      elfcorehdr_read_notes()
      remap_oldmem_pfn_range()
    
    fs/proc/vmcore.c provides default definitions explicitly marked "weak".
    arch/s390 provides its own definitions intended to override the default
    ones, but the "weak" attribute on the declarations applied to the s390
    definitions as well, so the linker chose one based on link order (see
    10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
    decl")).
    
    Remove the "weak" attribute from the declarations so we always prefer a
    non-weak definition over the weak one, independent of link order.
    
    Fixes: be8a8d069e50 ("vmcore: introduce ELF header in new memory feature")
    Fixes: 9cb218131de1 ("vmcore: introduce remap_oldmem_pfn_range()")
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: Vivek Goyal <vgoyal@redhat.com>
    CC: Michael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ba4331bc4ff1c4c0022d1efab4efb2ac582e561
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon Oct 13 19:00:47 2014 -0600

    memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration
    
    commit e0a8400c6923a163265d52798cdd4c33f3f8ab5a upstream.
    
    drivers/base/memory.c provides a default memory_block_size_bytes()
    definition explicitly marked "weak".  Several architectures provide their
    own definitions intended to override the default, but the "weak" attribute
    on the declaration applied to the arch definitions as well, so the linker
    chose one based on link order (see 10629d711ed7 ("PCI: Remove __weak
    annotation from pcibios_get_phb_of_node decl")).
    
    Remove the "weak" attribute from the declaration so we always prefer a
    non-weak definition over the weak one, independent of link order.
    
    Fixes: 41f107266b19 ("drivers: base: Add prototype declaration to the header file")
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Andrew Morton <akpm@linux-foundation.org>
    CC: Rashika Kheria <rashika.kheria@gmail.com>
    CC: Nathan Fontenot <nfont@austin.ibm.com>
    CC: Anton Blanchard <anton@au1.ibm.com>
    CC: Heiko Carstens <heiko.carstens@de.ibm.com>
    CC: Yinghai Lu <yinghai@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fc2a6cea644e916a05f12bd324f8b2cacb0cd878
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Tue Oct 28 11:12:01 2014 -0700

    net: systemport: reset UniMAC coming out of a suspend cycle
    
    commit 704d33e7006f20f9b4fa7d24a0f08c4b5919b131 upstream.
    
    bcm_sysport_resume() was missing an UniMAC reset which can lead to
    various receive FIFO corruptions coming out of a suspend cycle. If the
    RX FIFO is stuck, it will deliver corrupted/duplicate packets towards
    the host CPU interface.
    
    This could be reproduced on crowded network and when Wake-on-LAN is
    enabled for this particular interface because the switch still forwards
    packets towards the host CPU interface (SYSTEMPORT), and we had to leave
    the UniMAC RX enable bit on to allow matching MagicPackets.
    
    Once we re-enter the resume function, there is a small window during
    which the UniMAC receive is still enabled, and we start queueing
    packets, but the RDMA and RBUF engines are not ready, which leads to
    having packets stuck in the UniMAC RX FIFO, ultimately delivered towards
    the host CPU as corrupted.
    
    Fixes: 40755a0fce17 ("net: systemport: add suspend and resume support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 255294ceefc3ddea22669e8988195f382bd72ac6
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Tue Oct 28 11:12:00 2014 -0700

    net: systemport: enable RX interrupts after NAPI
    
    commit 8edf0047f4b8e03d94ef88f5a7dec146cce03a06 upstream.
    
    There is currently a small window during which the SYSTEMPORT adapter
    enables its RX interrupts without having enabled its NAPI handler, which
    can result in packets to be discarded during interface bringup.
    
    A similar but more serious window exists in bcm_sysport_resume() during
    which we can have the RDMA engine not fully prepared to receive packets
    and yet having RX interrupts enabled.
    
    Fix this my moving the RX interrupt enable down to
    bcm_sysport_netif_start() after napi_enable() for the RX path is called,
    which fixes both call sites: bcm_sysport_open() and
    bcm_sysport_resume().
    
    Fixes: b02e6d9ba7ad ("net: systemport: add bcm_sysport_netif_{enable,stop}")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd0994c5622130e3d06e274a3b399e76192944f0
Author: Anish Bhatt <anish@chelsio.com>
Date:   Thu Oct 23 14:37:31 2014 -0700

    cxgb4 : Handle dcb enable correctly
    
    commit 3bb062613b1ecbd0c388106f61344d699f7859ec upstream.
    
    Disabling DCBx in firmware automatically enables DCBx for control via host
    lldp agents. Wait for an explicit setstate call from an lldp agents to enable
     DCBx instead.
    
    Fixes: 76bcb31efc06 ("cxgb4 : Add DCBx support codebase and dcbnl_ops")
    
    Signed-off-by: Anish Bhatt <anish@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20cd3408e31ba6aecc07d48e1b24cc7ddfd7a988
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Sep 5 09:09:28 2014 -0300

    media: ttusb-dec: buffer overflow in ioctl
    
    commit f2e323ec96077642d397bb1c355def536d489d16 upstream.
    
    We need to add a limit check here so we don't overflow the buffer.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0c08321fc43d1bcfc9fcc5bcc9b756811628831
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Wed Nov 12 14:44:49 2014 -0500

    NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE
    
    commit 0c116cadd94b16b30b1dd90d38b2784d9b39b01a upstream.
    
    This patch removes the assumption made previously, that we only need to
    check the delegation stateid when it matches the stateid on a cached
    open.
    
    If we believe that we hold a delegation for this file, then we must assume
    that its stateid may have been revoked or expired too. If we don't test it
    then our state recovery process may end up caching open/lock state in a
    situation where it should not.
    We therefore rename the function nfs41_clear_delegation_stateid as
    nfs41_check_delegation_stateid, and change it to always run through the
    delegation stateid test and recovery process as outlined in RFC5661.
    
    http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d2a80584168b48642f2ca6709a9e75bf5299661
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Mon Nov 10 18:43:56 2014 -0500

    NFSv4: Fix races between nfs_remove_bad_delegation() and delegation return
    
    commit 869f9dfa4d6d57b79e0afc3af14772c2a023eeb1 upstream.
    
    Any attempt to call nfs_remove_bad_delegation() while a delegation is being
    returned is currently a no-op. This means that we can end up looping
    forever in nfs_end_delegation_return() if something causes the delegation
    to be revoked.
    This patch adds a mechanism whereby the state recovery code can communicate
    to the delegation return code that the delegation is no longer valid and
    that it should not be used when reclaiming state.
    It also changes the return value for nfs4_handle_delegation_recall_error()
    to ensure that nfs_end_delegation_return() does not reattempt the lock
    reclaim before state recovery is done.
    
    http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47e169b1e6cf8bde9d97c38b2207ce5f615ef610
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 23 14:02:47 2014 +0200

    nfs: Fix use of uninitialized variable in nfs_getattr()
    
    commit 16caf5b6101d03335b386e77e9e14136f989be87 upstream.
    
    Variable 'err' needn't be initialized when nfs_getattr() uses it to
    check whether it should call generic_fillattr() or not. That can result
    in spurious error returns. Initialize 'err' properly.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6be41a29d000953c26a8ece8bf389677714e11d3
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Fri Oct 17 23:02:52 2014 +0300

    NFS: Don't try to reclaim delegation open state if recovery failed
    
    commit f8ebf7a8ca35dde321f0cd385fee6f1950609367 upstream.
    
    If state recovery failed, then we should not attempt to reclaim delegated
    state.
    
    http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc8ef9cbba9cb9d78bd20d801a3fe1a348453b81
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Fri Oct 17 15:15:13 2014 +0300

    NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are revoked
    
    commit c606bb8857921d3ecf4d353942d6cc7e116cc75a upstream.
    
    NFSv4.x (x>0) requires us to call TEST_STATEID+FREE_STATEID if a stateid is
    revoked. We will currently fail to do this if the stateid is a delegation.
    
    http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d9fe80759dfa4b0e1ea22ba7c5639ca15b4cdd3
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Fri Oct 17 15:10:25 2014 +0300

    NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired
    
    commit 4dfd4f7af0afd201706ad186352ca423b0f17d4b upstream.
    
    NFSv4.0 does not have TEST_STATEID/FREE_STATEID functionality, so
    unlike NFSv4.1, the recovery procedure when stateids have expired or
    have been revoked requires us to just forget the delegation.
    
    http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e7f43db86a3bb0aec93937bc6d1a98221d5de5e
Author: NeilBrown <neilb@suse.de>
Date:   Wed Oct 29 08:49:50 2014 +1100

    md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN
    
    commit 45eaf45dfa4850df16bc2e8e7903d89021137f40 upstream.
    
    md_check_recovery will skip any recovery and also clear
    MD_RECOVERY_NEEDED if MD_RECOVERY_FROZEN is set.
    So when we clear _FROZEN, we must set _NEEDED and ensure that
    md_check_recovery gets run.
    Otherwise we could miss out on something that is needed.
    
    In particular, this can make it impossible to remove a
    failed device from an array is the  'recovery-needed' processing
    didn't happen.
    Suitable for stable kernels since 3.13.
    
    Reported-and-tested-by: Joe Lawrence <joe.lawrence@stratus.com>
    Fixes: 30b8feb730f9b9b3c5de02580897da03f59b6b16
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 664653016626d15d3e898aabd0785f1b785f6400
Author: Junjie Mao <eternal.n08@gmail.com>
Date:   Fri Oct 31 21:40:38 2014 +0800

    x86, kaslr: Prevent .bss from overlaping initrd
    
    commit e6023367d779060fddc9a52d1f474085b2b36298 upstream.
    
    When choosing a random address, the current implementation does not take into
    account the reversed space for .bss and .brk sections. Thus the relocated kernel
    may overlap other components in memory. Here is an example of the overlap from a
    x86_64 kernel in qemu (the ranges of physical addresses are presented):
    
     Physical Address
    
        0x0fe00000                  --+--------------------+  <-- randomized base
                                   /  |  relocated kernel  |
                       vmlinux.bin    | (from vmlinux.bin) |
        0x1336d000    (an ELF file)   +--------------------+--
                                   \  |                    |  \
        0x1376d870                  --+--------------------+   |
                                      |    relocs table    |   |
        0x13c1c2a8                    +--------------------+   .bss and .brk
                                      |                    |   |
        0x13ce6000                    +--------------------+   |
                                      |                    |  /
        0x13f77000                    |       initrd       |--
                                      |                    |
        0x13fef374                    +--------------------+
    
    The initrd image will then be overwritten by the memset during early
    initialization:
    
    [    1.655204] Unpacking initramfs...
    [    1.662831] Initramfs unpacking failed: junk in compressed archive
    
    This patch prevents the above situation by requiring a larger space when looking
    for a random kernel base, so that existing logic can effectively avoids the
    overlap.
    
    [kees: switched to perl to avoid hex translation pain in mawk vs gawk]
    [kees: calculated overlap without relocs table]
    
    Fixes: 82fa9637a2 ("x86, kaslr: Select random position from e820 maps")
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Junjie Mao <eternal.n08@gmail.com>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Josh Triplett <josh@joshtriplett.org>
    Cc: Matt Fleming <matt.fleming@intel.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Link: http://lkml.kernel.org/r/1414762838-13067-1-git-send-email-eternal.n08@gmail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25bc2ccef6c4f2312086423da6f150d86d956d37
Author: Borislav Petkov <bp@suse.de>
Date:   Wed Nov 5 17:42:42 2014 +0100

    x86, microcode, AMD: Fix ucode patch stashing on 32-bit
    
    commit c0a717f23dccdb6e3b03471bc846fdc636f2b353 upstream.
    
    Save the patch while we're running on the BSP instead of later, before
    the initrd has been jettisoned. More importantly, on 32-bit we need to
    access the physical address instead of the virtual.
    
    This way we actually do find it on the APs instead of having to go
    through the initrd each time.
    
    Tested-by: Richard Hendershot <rshendershot@mchsi.com>
    Fixes: 5335ba5cf475 ("x86, microcode, AMD: Fix early ucode loading")
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af07bb46530c26de20eeeafea7f7272d5d5d78c1
Author: Borislav Petkov <bp@suse.de>
Date:   Wed Nov 5 17:28:06 2014 +0100

    x86, microcode: Fix accessing dis_ucode_ldr on 32-bit
    
    commit 85be07c32496dc264661308e4d9d4e9ccaff8072 upstream.
    
    We should be accessing it through a pointer, like on the BSP.
    
    Tested-by: Richard Hendershot <rshendershot@mchsi.com>
    Fixes: 65cef1311d5d ("x86, microcode: Add a disable chicken bit")
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7dd03ac653dacbf0472499a0b86a90fcf481764
Author: Borislav Petkov <bp@suse.de>
Date:   Fri Oct 31 23:23:43 2014 +0100

    x86, microcode, AMD: Fix early ucode loading on 32-bit
    
    commit 4750a0d112cbfcc744929f1530ffe3193436766c upstream.
    
    Konrad triggered the following splat below in a 32-bit guest on an AMD
    box. As it turns out, in save_microcode_in_initrd_amd() we're using the
    *physical* address of the container *after* we have enabled paging and
    thus we #PF in load_microcode_amd() when trying to access the microcode
    container in the ramdisk range.
    
    Because the ramdisk is exactly there:
    
    [    0.000000] RAMDISK: [mem 0x35e04000-0x36ef9fff]
    
    and we fault at 0x35e04304.
    
    And since this guest doesn't relocate the ramdisk, we don't do the
    computation which will give us the correct virtual address and we end up
    with the PA.
    
    So, we should actually be using virtual addresses on 32-bit too by the
    time we're freeing the initrd. Do that then!
    
    Unpacking initramfs...
    BUG: unable to handle kernel paging request at 35d4e304
    IP: [<c042e905>] load_microcode_amd+0x25/0x4a0
    *pde = 00000000
    Oops: 0000 [#1] SMP
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.17.1-302.fc21.i686 #1
    Hardware name: Xen HVM domU, BIOS 4.4.1 10/01/2014
    task: f5098000 ti: f50d0000 task.ti: f50d0000
    EIP: 0060:[<c042e905>] EFLAGS: 00010246 CPU: 0
    EIP is at load_microcode_amd+0x25/0x4a0
    EAX: 00000000 EBX: f6e9ec4c ECX: 00001ec4 EDX: 00000000
    ESI: f5d4e000 EDI: 35d4e2fc EBP: f50d1ed0 ESP: f50d1e94
     DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    CR0: 8005003b CR2: 35d4e304 CR3: 00e33000 CR4: 000406d0
    Stack:
     00000000 00000000 f50d1ebc f50d1ec4 f5d4e000 c0d7735a f50d1ed0 15a3d17f
     f50d1ec4 00600f20 00001ec4 bfb83203 f6e9ec4c f5d4e000 c0d7735a f50d1ed8
     c0d80861 f50d1ee0 c0d80429 f50d1ef0 c0d889a9 f5d4e000 c0000000 f50d1f04
    Call Trace:
    ? unpack_to_rootfs
    ? unpack_to_rootfs
    save_microcode_in_initrd_amd
    save_microcode_in_initrd
    free_initrd_mem
    populate_rootfs
    ? unpack_to_rootfs
    do_one_initcall
    ? unpack_to_rootfs
    ? repair_env_string
    ? proc_mkdir
    kernel_init_freeable
    kernel_init
    ret_from_kernel_thread
    ? rest_init
    
    Reported-and-tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    References: https://bugzilla.redhat.com/show_bug.cgi?id=1158204
    Fixes: 75a1ba5b2c52 ("x86, microcode, AMD: Unify valid container checks")
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: http://lkml.kernel.org/r/20141101100100.GA4462@pd.tnic
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea7179fc0157b82cf44ac9d1bb29a9bc5954f3aa
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Wed Oct 15 16:25:10 2014 +0200

    power: bq2415x_charger: Fix memory leak on DTS parsing error
    
    commit 21e863b233553998737e1b506c823a00bf012e00 upstream.
    
    Memory allocated for 'name' was leaking if required binding properties
    were not present.
    
    The memory for 'name' was allocated early at probe with kasprintf(). It
    was freed in error paths executed before and after parsing DTS but not
    in that error path.
    
    Fix the error path for parsing device tree properties.
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Fixes: faffd234cf85 ("bq2415x_charger: Add DT support")
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bee038ae16df1fc7cc82ae23808593f283c2521
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Wed Oct 15 16:25:09 2014 +0200

    power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle
    
    commit 0eaf437aa14949d2230aeab7364f4ab47901304a upstream.
    
    The power_supply_get_by_phandle() on error returns ENODEV or NULL.
    The driver later expects obtained pointer to power supply to be
    valid or NULL. If it is not NULL then it dereferences it in
    bq2415x_notifier_call() which would lead to dereferencing ENODEV-value
    pointer.
    
    Properly handle the power_supply_get_by_phandle() error case by
    replacing error value with NULL. This indicates that usb charger
    detection won't be used.
    
    Fix also memory leak of 'name' if power_supply_get_by_phandle() fails
    with NULL and probe should defer.
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Fixes: faffd234cf85 ("bq2415x_charger: Add DT support")
    [small fix regarding the missing ti,usb-charger-detection info message]
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5cb3367b6fde0c21983cf4deb38c9972a390c42
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Mon Oct 13 15:34:31 2014 +0200

    power: charger-manager: Fix accessing invalidated power supply after charger unbind
    
    commit cdaf3e15385d3232b52287e50692506f8fd01a09 upstream.
    
    The charger manager obtained in probe references to power supplies for
    all chargers with power_supply_get_by_name() for later usage. However
    if such charger driver was removed then this reference would point to
    old power supply (from driver which was removed).
    
    This lead to accessing invalid memory which could be observed with:
    $ echo "max77693-charger" > /sys/bus/platform/drivers/max77693-charger/unbind
    $ grep . /sys/devices/virtual/power_supply/battery/charger.0/*
    $ grep . /sys/devices/virtual/power_supply/battery/*
    [   15.339817] Unable to handle kernel paging request at virtual address 0001c12c
    [   15.346187] pgd = edd08000
    [   15.348814] [0001c12c] *pgd=6dce2831, *pte=00000000, *ppte=00000000
    [   15.355075] Internal error: Oops: 80000007 [#1] PREEMPT SMP ARM
    [   15.360967] Modules linked in:
    [   15.364010] CPU: 2 PID: 1388 Comm: grep Not tainted 3.17.0-next-20141007-00027-ga95e761db1b0 #245
    [   15.372859] task: ee03ad00 ti: edcf6000 task.ti: edcf6000
    [   15.378241] PC is at 0x1c12c
    [   15.381113] LR is at is_ext_pwr_online+0x30/0x6c
    [   15.385706] pc : [<0001c12c>]    lr : [<c0339fc4>]    psr: a0000013
    [   15.385706] sp : edcf7e88  ip : 00000000  fp : 00000000
    [   15.397161] r10: eeb02c08  r9 : c04b1f84  r8 : eeb02c00
    [   15.402369] r7 : edc69a10  r6 : eea6ac10  r5 : eea6ac10  r4 : 00000004
    [   15.408878] r3 : 0001c12c  r2 : edcf7e8c  r1 : 00000004  r0 : ee914418
    [   15.415390] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [   15.422506] Control: 10c5387d  Table: 6dd0804a  DAC: 00000015
    [   15.428236] Process grep (pid: 1388, stack limit = 0xedcf6240)
    [   15.434050] Stack: (0xedcf7e88 to 0xedcf8000)
    [   15.438395] 7e80:                   ee03ad00 00000000 edcf7f80 eea6aca8 edcf7ec4 c033b7b0
    [   15.446554] 7ea0: 00000001 ee1cc3f0 00000004 c06e1e44 eebdc000 c06e1e44 eeb02c00 c0337144
    [   15.454713] 7ec0: ee2dac68 c005cffc ee1cc3c0 c06e1e44 00000fff 00001000 eebdc000 c0278ca8
    [   15.462872] 7ee0: c0278c8c ee1cc3c0 eeb7ce00 c014422c edcf7f20 00008000 ee1cc3c0 ee9a48c0
    [   15.471030] 7f00: 00000001 00000001 edcf7f80 c0142d94 c0142d70 c01060f4 00021000 ee1cc3f0
    [   15.479190] 7f20: 00000000 00000000 c06a2150 eebdc000 2e7ec000 ee9a48c0 00008000 00021000
    [   15.487349] 7f40: edcf7f80 00008000 edcf6000 00021000 00021000 c00e39a4 00000000 ee9a48c0
    [   15.495508] 7f60: 00004000 00000000 00000000 ee9a48c0 ee9a48c0 00008000 00021000 c00e3aa0
    [   15.503668] 7f80: 00000000 00000000 0001f2e0 0001f2e0 00021000 00001000 00000003 c000f364
    [   15.511826] 7fa0: 00000000 c000f1a0 0001f2e0 00021000 00000003 00021000 00008000 00000000
    [   15.519986] 7fc0: 0001f2e0 00021000 00001000 00000003 00000001 000205e8 00000000 00021000
    [   15.528145] 7fe0: 00008000 bebbe910 0000a7ad b6edc49c 60000010 00000003 aaaaaaaa aaaaaaaa
    [   15.536320] [<c0339fc4>] (is_ext_pwr_online) from [<c033b7b0>] (charger_get_property+0x170/0x314)
    [   15.545164] [<c033b7b0>] (charger_get_property) from [<c0337144>] (power_supply_show_property+0x48/0x20c)
    [   15.554719] [<c0337144>] (power_supply_show_property) from [<c0278ca8>] (dev_attr_show+0x1c/0x48)
    [   15.563577] [<c0278ca8>] (dev_attr_show) from [<c014422c>] (sysfs_kf_seq_show+0x84/0x104)
    [   15.571725] [<c014422c>] (sysfs_kf_seq_show) from [<c0142d94>] (kernfs_seq_show+0x24/0x28)
    [   15.579973] [<c0142d94>] (kernfs_seq_show) from [<c01060f4>] (seq_read+0x1b0/0x484)
    [   15.587614] [<c01060f4>] (seq_read) from [<c00e39a4>] (vfs_read+0x88/0x144)
    [   15.594552] [<c00e39a4>] (vfs_read) from [<c00e3aa0>] (SyS_read+0x40/0x8c)
    [   15.601417] [<c00e3aa0>] (SyS_read) from [<c000f1a0>] (ret_fast_syscall+0x0/0x48)
    [   15.608877] Code: bad PC value
    [   15.611991] ---[ end trace a88fcc95208db283 ]---
    
    The charger-manager should get reference to charger power supply on
    each use of get_property callback.
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Fixes: 3bb3dbbd56ea ("power_supply: Add initial Charger-Manager driver")
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 767a001799421965635c7f524cde66ff34231701
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Mon Oct 13 15:34:30 2014 +0200

    power: charger-manager: Fix accessing invalidated power supply after fuel gauge unbind
    
    commit bdbe81445407644492b9ac69a24d35e3202d773b upstream.
    
    The charger manager obtained reference to fuel gauge power supply in probe
    with power_supply_get_by_name() for later usage. However if fuel gauge
    driver was removed and re-added then this reference would point to old
    power supply (from driver which was removed).
    
    This lead to accessing old (and probably invalid) memory which could be
    observed with:
    $ echo "12-0036" > /sys/bus/i2c/drivers/max17042/unbind
    $ echo "12-0036" > /sys/bus/i2c/drivers/max17042/bind
    $ cat /sys/devices/virtual/power_supply/battery/capacity
    [  240.480084] INFO: task cat:1393 blocked for more than 120 seconds.
    [  240.484799]       Not tainted 3.17.0-next-20141007-00028-ge60b6dd79570 #203
    [  240.491782] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  240.499589] cat             D c0469530     0  1393      1 0x00000000
    [  240.505947] [<c0469530>] (__schedule) from [<c0469d3c>] (schedule_preempt_disabled+0x14/0x20)
    [  240.514449] [<c0469d3c>] (schedule_preempt_disabled) from [<c046af08>] (mutex_lock_nested+0x1bc/0x458)
    [  240.523736] [<c046af08>] (mutex_lock_nested) from [<c0287a98>] (regmap_read+0x30/0x60)
    [  240.531647] [<c0287a98>] (regmap_read) from [<c032238c>] (max17042_get_property+0x2e8/0x350)
    [  240.540055] [<c032238c>] (max17042_get_property) from [<c03247d8>] (charger_get_property+0x264/0x348)
    [  240.549252] [<c03247d8>] (charger_get_property) from [<c0320764>] (power_supply_show_property+0x48/0x1e0)
    [  240.558808] [<c0320764>] (power_supply_show_property) from [<c027308c>] (dev_attr_show+0x1c/0x48)
    [  240.567664] [<c027308c>] (dev_attr_show) from [<c0141fb0>] (sysfs_kf_seq_show+0x84/0x104)
    [  240.575814] [<c0141fb0>] (sysfs_kf_seq_show) from [<c0140b18>] (kernfs_seq_show+0x24/0x28)
    [  240.584061] [<c0140b18>] (kernfs_seq_show) from [<c0104574>] (seq_read+0x1b0/0x484)
    [  240.591702] [<c0104574>] (seq_read) from [<c00e1e24>] (vfs_read+0x88/0x144)
    [  240.598640] [<c00e1e24>] (vfs_read) from [<c00e1f20>] (SyS_read+0x40/0x8c)
    [  240.605507] [<c00e1f20>] (SyS_read) from [<c000e760>] (ret_fast_syscall+0x0/0x48)
    [  240.612952] 4 locks held by cat/1393:
    [  240.616589]  #0:  (&p->lock){+.+.+.}, at: [<c01043f4>] seq_read+0x30/0x484
    [  240.623414]  #1:  (&of->mutex){+.+.+.}, at: [<c01417dc>] kernfs_seq_start+0x1c/0x8c
    [  240.631086]  #2:  (s_active#31){++++.+}, at: [<c01417e4>] kernfs_seq_start+0x24/0x8c
    [  240.638777]  #3:  (&map->mutex){+.+...}, at: [<c0287a98>] regmap_read+0x30/0x60
    
    The charger-manager should get reference to fuel gauge power supply on
    each use of get_property callback. The thermal zone 'tzd' field of
    power supply should not be used because of the same reason.
    
    Additionally this change solves also the issue with nested
    thermal_zone_get_temp() calls and related false lockdep positive for
    deadlock for thermal zone's mutex [1]. When fuel gauge is used as source of
    temperature then the charger manager forwards its get_temp calls to fuel
    gauge thermal zone. So actually different mutexes are used (one for
    charger manager thermal zone and second for fuel gauge thermal zone) but
    for lockdep this is one class of mutex.
    
    The recursion is removed by retrieving temperature through power
    supply's get_property().
    
    In case external thermal zone is used ('cm-thermal-zone' property is
    present in DTS) the recursion does not exist. Charger manager simply
    exports POWER_SUPPLY_PROP_TEMP_AMBIENT property (instead of
    POWER_SUPPLY_PROP_TEMP) thus no thermal zone is created for this power
    supply.
    
    [1] https://lkml.org/lkml/2014/10/6/309
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Fixes: 3bb3dbbd56ea ("power_supply: Add initial Charger-Manager driver")
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f10742e8f5cd3ed273edd7ae93223c7554e60a79
Author: Jeff Layton <jlayton@primarydata.com>
Date:   Thu Nov 13 07:30:46 2014 -0500

    sunrpc: fix sleeping under rcu_read_lock in gss_stringify_acceptor
    
    commit b3ecba096729f521312d1863ad22530695527aed upstream.
    
    Bruce reported that he was seeing the following BUG pop:
    
        BUG: sleeping function called from invalid context at mm/slab.c:2846
        in_atomic(): 0, irqs_disabled(): 0, pid: 4539, name: mount.nfs
        2 locks held by mount.nfs/4539:
        #0:  (nfs_clid_init_mutex){+.+.+.}, at: [<ffffffffa01c0a9a>] nfs4_discover_server_trunking+0x4a/0x2f0 [nfsv4]
        #1:  (rcu_read_lock){......}, at: [<ffffffffa00e3185>] gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss]
        Preemption disabled at:[<ffffffff81a4f082>] printk+0x4d/0x4f
    
        CPU: 3 PID: 4539 Comm: mount.nfs Not tainted 3.18.0-rc1-00013-g5b095e9 #3393
        Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
        ffff880021499390 ffff8800381476a8 ffffffff81a534cf 0000000000000001
        0000000000000000 ffff8800381476c8 ffffffff81097854 00000000000000d0
        0000000000000018 ffff880038147718 ffffffff8118e4f3 0000000020479f00
        Call Trace:
        [<ffffffff81a534cf>] dump_stack+0x4f/0x7c
        [<ffffffff81097854>] __might_sleep+0x114/0x180
        [<ffffffff8118e4f3>] __kmalloc+0x1a3/0x280
        [<ffffffffa00e31d8>] gss_stringify_acceptor+0x58/0xb0 [auth_rpcgss]
        [<ffffffffa00e3185>] ? gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss]
        [<ffffffffa006b438>] rpcauth_stringify_acceptor+0x18/0x30 [sunrpc]
        [<ffffffffa01b0469>] nfs4_proc_setclientid+0x199/0x380 [nfsv4]
        [<ffffffffa01b04d0>] ? nfs4_proc_setclientid+0x200/0x380 [nfsv4]
        [<ffffffffa01bdf1a>] nfs40_discover_server_trunking+0xda/0x150 [nfsv4]
        [<ffffffffa01bde45>] ? nfs40_discover_server_trunking+0x5/0x150 [nfsv4]
        [<ffffffffa01c0acf>] nfs4_discover_server_trunking+0x7f/0x2f0 [nfsv4]
        [<ffffffffa01c8e24>] nfs4_init_client+0x104/0x2f0 [nfsv4]
        [<ffffffffa01539b4>] nfs_get_client+0x314/0x3f0 [nfs]
        [<ffffffffa0153780>] ? nfs_get_client+0xe0/0x3f0 [nfs]
        [<ffffffffa01c83aa>] nfs4_set_client+0x8a/0x110 [nfsv4]
        [<ffffffffa0069708>] ? __rpc_init_priority_wait_queue+0xa8/0xf0 [sunrpc]
        [<ffffffffa01c9b2f>] nfs4_create_server+0x12f/0x390 [nfsv4]
        [<ffffffffa01c1472>] nfs4_remote_mount+0x32/0x60 [nfsv4]
        [<ffffffff81196489>] mount_fs+0x39/0x1b0
        [<ffffffff81166145>] ? __alloc_percpu+0x15/0x20
        [<ffffffff811b276b>] vfs_kern_mount+0x6b/0x150
        [<ffffffffa01c1396>] nfs_do_root_mount+0x86/0xc0 [nfsv4]
        [<ffffffffa01c1784>] nfs4_try_mount+0x44/0xc0 [nfsv4]
        [<ffffffffa01549b7>] ? get_nfs_version+0x27/0x90 [nfs]
        [<ffffffffa0161a2d>] nfs_fs_mount+0x47d/0xd60 [nfs]
        [<ffffffff81a59c5e>] ? mutex_unlock+0xe/0x10
        [<ffffffffa01606a0>] ? nfs_remount+0x430/0x430 [nfs]
        [<ffffffffa01609c0>] ? nfs_clone_super+0x140/0x140 [nfs]
        [<ffffffff81196489>] mount_fs+0x39/0x1b0
        [<ffffffff81166145>] ? __alloc_percpu+0x15/0x20
        [<ffffffff811b276b>] vfs_kern_mount+0x6b/0x150
        [<ffffffff811b5830>] do_mount+0x210/0xbe0
        [<ffffffff811b54ca>] ? copy_mount_options+0x3a/0x160
        [<ffffffff811b651f>] SyS_mount+0x6f/0xb0
        [<ffffffff81a5c852>] system_call_fastpath+0x12/0x17
    
    Sleeping under the rcu_read_lock is bad. This patch fixes it by dropping
    the rcu_read_lock before doing the allocation and then reacquiring it
    and redoing the dereference before doing the copy. If we find that the
    string has somehow grown in the meantime, we'll reallocate and try again.
    
    Reported-by: "J. Bruce Fields" <bfields@fieldses.org>
    Signed-off-by: Jeff Layton <jlayton@primarydata.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df424f3660e1b2aef66fc9263336ee33f46620af
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Nov 4 17:05:25 2014 +0100

    cpufreq: Avoid crash in resume on SMP without OPP
    
    commit 09712f557b31838092e1f22a5f2dd131a843a3de upstream.
    
    When resuming from s2ram on an SMP system without cpufreq operating
    points (e.g. there's no "operating-points" property for the CPU node in
    DT, or the platform doesn't use DT yet), the kernel crashes when
    bringing CPU 1 online:
    
        Enabling non-boot CPUs ...
        CPU1: Booted secondary processor
        Unable to handle kernel NULL pointer dereference at virtual address 0000003c
        pgd = ee5e6b00
        [0000003c] *pgd=6e579003, *pmd=6e588003, *pte=00000000
        Internal error: Oops: a07 [#1] SMP ARM
        Modules linked in:
        CPU: 0 PID: 1246 Comm: s2ram Tainted: G        W      3.18.0-rc3-koelsch-01614-g0377af242bb175c8-dirty #589
        task: eeec5240 ti: ee704000 task.ti: ee704000
        PC is at __cpufreq_add_dev.isra.24+0x24c/0x77c
        LR is at __cpufreq_add_dev.isra.24+0x244/0x77c
        pc : [<c0298efc>]    lr : [<c0298ef4>]    psr: 60000153
        sp : ee705d48  ip : ee705d48  fp : ee705d84
        r10: c04e0450  r9 : 00000000  r8 : 00000001
        r7 : c05426a8  r6 : 00000001  r5 : 00000001  r4 : 00000000
        r3 : 00000000  r2 : 00000000  r1 : 20000153  r0 : c0542734
    
    Verify that policy is not NULL before dereferencing it to fix this.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Fixes: 8414809c6a1e (cpufreq: Preserve policy structure across suspend/resume)
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c26e84e882b6095ff92c87bddbe0b933df7d293
Author: Pali Rohár <pali.rohar@gmail.com>
Date:   Sat Nov 8 23:36:09 2014 -0800

    Input: alps - ignore bad data on Dell Latitudes E6440 and E7440
    
    commit a7ef82aee91f26da79b981b9f5bca43b8817d3e4 upstream.
    
    Sometimes on Dell Latitude laptops psmouse/alps driver receive invalid ALPS
    protocol V3 packets with bit7 set in last byte. More often it can be
    reproduced on Dell Latitude E6440 or E7440 with closed lid and pushing
    cover above touchpad.
    
    If bit7 in last packet byte is set then it is not valid ALPS packet. I was
    told that ALPS devices never send these packets. It is not know yet who
    send those packets, it could be Dell EC, bug in BIOS and also bug in
    touchpad firmware...
    
    With this patch alps driver does not process those invalid packets, but
    instead of reporting PSMOUSE_BAD_DATA, getting into out of sync state,
    getting back in sync with the next byte and spam dmesg we return
    PSMOUSE_FULL_PACKET. If driver is truly out of sync we'll fail the checks
    on the next byte and report PSMOUSE_BAD_DATA then.
    
    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Tested-by: Pali Rohár <pali.rohar@gmail.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

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

commit d3746cade0256bc6a073877f81a12bf8737eac15
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 6 09:27:11 2014 -0800

    Input: synaptics - add min/max quirk for Lenovo T440s
    
    commit e4742b1e786ca386e88e6cfb2801e14e15e365cd upstream.
    
    The new Lenovo T440s laptop has a different PnP ID "LEN0039", and it
    needs the similar min/max quirk to make its clickpad working.
    
    BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=903748
    Reported-and-tested-by: Joschi Brauchle <joschibrauchle@gmx.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit 0e3592c3e6bbe98c8a8b1b6101332eb5e3a9ea0b
Author: Joe Thornber <ejt@redhat.com>
Date:   Mon Nov 10 15:03:24 2014 +0000

    dm btree: fix a recursion depth bug in btree walking code
    
    commit 9b460d3699324d570a4d4161c3741431887f102f upstream.
    
    The walk code was using a 'ro_spine' to hold it's locked btree nodes.
    But this data structure is designed for the rolling lock scheme, and
    as such automatically unlocks blocks that are two steps up the call
    chain.  This is not suitable for the simple recursive walk algorithm,
    which retraces its steps.
    
    This code is only used by the persistent array code, which in turn is
    only used by dm-cache.  In order to trigger it you need to have a
    mapping tree that is more than 2 levels deep; which equates to 8-16
    million cache blocks.  For instance a 4T ssd with a very small block
    size of 32k only just triggers this bug.
    
    The fix just places the locked blocks on the stack, and stops using
    the ro_spine altogether.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

    block: Fix computation of merged request priority
    
    commit ece9c72accdc45c3a9484dacb1125ce572647288 upstream.
    
    Priority of a merged request is computed by ioprio_best(). If one of the
    requests has undefined priority (IOPRIO_CLASS_NONE) and another request
    has priority from IOPRIO_CLASS_BE, the function will return the
    undefined priority which is wrong. Fix the function to properly return
    priority of a request with the defined priority.
    
    Fixes: d58cdfb89ce0c6bd5f81ae931a984ef298dbda20
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10c6d3ff1ea5122888e11d76cf3e8c8fb2dac973
Author: Helge Deller <deller@gmx.de>
Date:   Mon Nov 10 21:46:18 2014 +0100

    parisc: Use compat layer for msgctl, shmat, shmctl and semtimedop syscalls
    
    commit 2fe749f50b0bec07650ef135b29b1f55bf543869 upstream.
    
    Switch over the msgctl, shmat, shmctl and semtimedop syscalls to use the compat
    layer. The problem was found with the debian procenv package, which called
    	shmctl(0, SHM_INFO, &info);
    in which the shmctl syscall then overwrote parts of the surrounding areas on
    the stack on which the info variable was stored and thus lead to a segfault
    later on.
    
    Additionally fix the definition of struct shminfo64 to use unsigned longs like
    the other architectures. This has no impact on userspace since we only have a
    32bit userspace up to now.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: John David Anglin <dave.anglin@bell.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit a2fb48d2190e4b4fb630fdcb8c4b91fb672cf1fc
Author: William Cohen <wcohen@redhat.com>
Date:   Tue Nov 11 09:41:27 2014 -0500

    Correct the race condition in aarch64_insn_patch_text_sync()
    
    commit 899d5933b2dd2720f2b20b01eaa07871aa6ad096 upstream.
    
    When experimenting with patches to provide kprobes support for aarch64
    smp machines would hang when inserting breakpoints into kernel code.
    The hangs were caused by a race condition in the code called by
    aarch64_insn_patch_text_sync().  The first processor in the
    aarch64_insn_patch_text_cb() function would patch the code while other
    processors were still entering the function and incrementing the
    cpu_count field.  This resulted in some processors never observing the
    exit condition and exiting the function.  Thus, processors in the
    system hung.
    
    The first processor to enter the patching function performs the
    patching and signals that the patching is complete with an increment
    of the cpu_count field. When all the processors have incremented the
    cpu_count field the cpu_count will be num_cpus_online()+1 and they
    will return to normal execution.
    
    Fixes: ae16480785de arm64: introduce interfaces to hotpatch kernel and module code
    Signed-off-by: William Cohen <wcohen@redhat.com>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07909def7993d3fa661411526be045f02ee240f0
Author: Peng Tao <tao.peng@primarydata.com>
Date:   Wed Nov 5 22:36:50 2014 +0800

    nfs: fix pnfs direct write memory leak
    
    commit 8c393f9a721c30a030049a680e1bf896669bb279 upstream.
    
    For pNFS direct writes, layout driver may dynamically allocate ds_cinfo.buckets.
    So we need to take care to free them when freeing dreq.
    
    Ideally this needs to be done inside layout driver where ds_cinfo.buckets
    are allocated. But buckets are attached to dreq and reused across LD IO iterations.
    So I feel it's OK to free them in the generic layer.
    
    Signed-off-by: Peng Tao <tao.peng@primarydata.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3686b798620b4ed350d6b89e77d025cbf7c67a4a
Author: Simon Horman <horms+renesas@verge.net.au>
Date:   Mon Oct 27 09:14:30 2014 +0900

    ata: sata_rcar: Disable DIPM mode for r8a7790 ES1
    
    commit aa1cf25887099bba68f1f3879c0d394e08b8779f upstream.
    
    Unlike other SATA R-Car r8a7790 controllers the r8a7790 ES1 SATA R-Car
    controller needs to be run with DIPM disabled.
    
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit 366b6d927d19a7f7e48543354ab1a812be2a11ce
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Nov 13 12:22:01 2014 +0000

    arm64: efi: Fix stub cache maintenance
    
    commit 9b0b26580a753d4d6bdd2b8b4ca9a8f3f2d39065 upstream.
    
    While efi-entry.S mentions that efi_entry() will have relocated the
    kernel image, it actually means that efi_entry will have placed a copy
    of the kernel in the appropriate location, and until this is branched to
    at the end of efi_entry.S, all instructions are executed from the
    original image.
    
    Thus while the flush in efi_entry.S does ensure that the copy is visible
    to noncacheable accesses, it does not guarantee that this is true for
    the image instructions are being executed from. This could have
    disasterous effects when the MMU and caches are disabled if the image
    has not been naturally evicted to the PoC.
    
    Additionally, due to a missing dsb following the ic ialluis, the new
    kernel image is not necessarily clean in the I-cache when it is branched
    to, with similar potentially disasterous effects.
    
    This patch adds additional flushing to ensure that the currently
    executing stub text is flushed to the PoC and is thus visible to
    noncacheable accesses. As it is placed after the instructions cache
    maintenance for the new image and __flush_dcache_area already contains a
    dsb, we do not need to add a separate barrier to ensure completion of
    the icache maintenance.
    
    Comments are updated to clarify the situation with regard to the two
    images and the maintenance required for both.
    
    Fixes: 3c7f255039a2ad6ee1e3890505caf0d029b22e29
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Acked-by: Joel Schopp <joel.schopp@amd.com>
    Reviewed-by: Roy Franz <roy.franz@linaro.org>
    Tested-by: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Ian Campbell <ijc@hellion.org.uk>
    Cc: Leif Lindholm <leif.lindholm@linaro.org>
    Cc: Mark Salter <msalter@redhat.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0000e34c1c04e7b08140768deaa91cf878ab4a19
Author: Kyle McMartin <kyle@redhat.com>
Date:   Wed Nov 12 21:07:44 2014 +0000

    arm64: __clear_user: handle exceptions on strb
    
    commit 97fc15436b36ee3956efad83e22a557991f7d19d upstream.
    
    ARM64 currently doesn't fix up faults on the single-byte (strb) case of
    __clear_user... which means that we can cause a nasty kernel panic as an
    ordinary user with any multiple PAGE_SIZE+1 read from /dev/zero.
    i.e.: dd if=/dev/zero of=foo ibs=1 count=1 (or ibs=65537, etc.)
    
    This is a pretty obscure bug in the general case since we'll only
    __do_kernel_fault (since there's no extable entry for pc) if the
    mmap_sem is contended. However, with CONFIG_DEBUG_VM enabled, we'll
    always fault.
    
    if (!down_read_trylock(&mm->mmap_sem)) {
    	if (!user_mode(regs) && !search_exception_tables(regs->pc))
    		goto no_context;
    retry:
    	down_read(&mm->mmap_sem);
    } else {
    	/*
    	 * The above down_read_trylock() might have succeeded in
    	 * which
    	 * case, we'll have missed the might_sleep() from
    	 * down_read().
    	 */
    	might_sleep();
    	if (!user_mode(regs) && !search_exception_tables(regs->pc))
    		goto no_context;
    }
    
    Fix that by adding an extable entry for the strb instruction, since it
    touches user memory, similar to the other stores in __clear_user.
    
    Signed-off-by: Kyle McMartin <kyle@redhat.com>
    Reported-by: Miloš Prchlík <mprchlik@redhat.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c61c587bde0fae770cd00f6f3aa74d8a50cfc8ad
Author: Joe Thornber <ejt@redhat.com>
Date:   Fri Oct 10 09:41:09 2014 +0100

    dm thin: grab a virtual cell before looking up the mapping
    
    commit c822ed967cba38505713d59ed40a114386ef6c01 upstream.
    
    Avoids normal IO racing with discard.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c883ddfde0b06e27a2d3007cb1e8e0e188f92bd
Author: Paul Mackerras <paulus@samba.org>
Date:   Thu Nov 13 20:15:23 2014 +1100

    Fix thinko in iov_iter_single_seg_count
    
    commit ad0eab9293485d1c06237e9249f6d4dfa3d93d4d upstream.
    
    The branches of the if (i->type & ITER_BVEC) statement in
    iov_iter_single_seg_count() are the wrong way around; if ITER_BVEC is
    clear then we use i->bvec, when we should be using i->iov.  This fixes
    it.
    
    In my case, the symptom that this caused was that a KVM guest doing
    filesystem operations on a virtual disk would result in one of qemu's
    threads on the host going into an infinite loop in
    generic_perform_write().  The loop would hit the copied == 0 case and
    call iov_iter_single_seg_count() to reduce the number of bytes to try
    to process, but because of the error, iov_iter_single_seg_count()
    would just return i->count and the loop made no progress and continued
    forever.
    
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97c0bb6a458cc8937a3ca5d01bd8647da37c761c
Author: Roger Quadros <rogerq@ti.com>
Date:   Mon Nov 3 12:09:52 2014 +0200

    pinctrl: dra: dt-bindings: Fix output pull up/down
    
    commit 73b3a6657a88ef5348a0d69c9a8107d6f01ae862 upstream.
    
    For PIN_OUTPUT_PULLUP and PIN_OUTPUT_PULLDOWN we must not set the
    PULL_DIS bit which disables the PULLs.
    
    PULL_ENA is a 0 and using it in an OR operation is a NOP, so don't
    use it in the PIN_OUTPUT_PULLUP/DOWN macros.
    
    Fixes: 23d9cec07c58 ("pinctrl: dra: dt-bindings: Fix pull enable/disable")
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Acked-by: Nishanth Menon <nm@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 280145da335b06924f836bdb97eb7056e33758de
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Sat Jul 26 19:20:37 2014 +0200

    ARM: mvebu: armada xp: Generalize use of i2c quirk
    
    commit 5129ee22ce4aff7c5907d4c3d67d23f86cd6db9b upstream.
    
    A second product has come to light which makes use of the A0 stepping
    of the Armada XP SoC. A0 stepping has a hardware bug in the i2c core
    meaning that hardware offload does not work, resulting in the kernel
    failing to boot. The quirk detects that the kernel is running on an A0
    stepping SoC and disables the use of hardware offload.
    
    Currently the quirk is only enabled for PlatHome Openblocks AX3. The
    AX3 has been produced with both A0 and B0 stepping SoCs. The second
    product is the Lenovo Iomega IX4-300d. It seems likely that this
    device will also swap from A0 to B0 SoC sometime during its life.
    
    If there are two products using A0, it seems likely there are more
    products with A0. Also, since the number of A0 SoCs is limited, these
    products are also likely to transition to B0. Hence detecting at run
    time is the safest option. So enable the quirk for all Armada XP
    boards.
    
    Tested on an AX3 with A0 stepping.
    
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Fixes: 930ab3d403ae: ("i2c: mv64xxx: Add I2C Transaction Generator support")
    Link: https://lkml.kernel.org/r/1406395238-29758-2-git-send-email-andrew@lunn.ch
    Signed-off-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46cb5f8ea483228124972852b942bd0ee12d2268
Author: Roger Quadros <rogerq@ti.com>
Date:   Tue Oct 21 14:25:45 2014 +0300

    ARM: dts: am335x-evm: Fix 5th NAND partition's name
    
    commit a8ead0ecb9d4ce472f4cdab936d6f18e41e3a9ee upstream.
    
    The 5th NAND partition should be named "NAND.u-boot-spl-os"
    instead of "NAND.u-boot-spl". This is to be consistent with other
    TI boards as well as u-boot.
    
    Fixes: 91994facdd2d ("ARM: dts: am335x-evm: NAND: update MTD partition table")
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7828fc9c5e6142a2efdd5f427f0181a9aa23263c
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Nov 4 11:40:46 2014 +0100

    ARM: 8191/1: decompressor: ensure I-side picks up relocated code
    
    commit 238962ac71910d6c20162ea5230685fead1836a4 upstream.
    
    To speed up decompression, the decompressor sets up a flat, cacheable
    mapping of memory. However, when there is insufficient space to hold
    the page tables for this mapping, we don't bother to enable the caches
    and subsequently skip all the cache maintenance hooks.
    
    Skipping the cache maintenance before jumping to the relocated code
    allows the processor to predict the branch and populate the I-cache
    with stale data before the relocation loop has completed (since a
    bootloader may have SCTLR.I set, which permits normal, cacheable
    instruction fetches regardless of SCTLR.M).
    
    This patch moves the cache maintenance check into the maintenance
    routines themselves, allowing the v6/v7 versions to invalidate the
    I-cache regardless of the MMU state.
    
    Reported-by: Marc Carino <marc.ceeeee@gmail.com>
    Tested-by: Julien Grall <julien.grall@linaro.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49b6d80d46d366346c86e00745aaf79ec3685f28
Author: Nathan Lynch <nathan_lynch@mentor.com>
Date:   Mon Nov 10 23:46:27 2014 +0100

    ARM: 8198/1: make kuser helpers depend on MMU
    
    commit 08b964ff3c51b10aaf2e6ba639f40054c09f0f7a upstream.
    
    The kuser helpers page is not set up on non-MMU systems, so it does
    not make sense to allow CONFIG_KUSER_HELPERS to be enabled when
    CONFIG_MMU=n.  Allowing it to be set on !MMU results in an oops in
    set_tls (used in execve and the arm_syscall trap handler):
    
    Unhandled exception: IPSR = 00000005 LR = fffffff1
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.0-rc1-00041-ga30465a #216
    task: 8b838000 ti: 8b82a000 task.ti: 8b82a000
    PC is at flush_thread+0x32/0x40
    LR is at flush_thread+0x21/0x40
    pc : [<8f00157a>]    lr : [<8f001569>]    psr: 4100000b
    sp : 8b82be20  ip : 00000000  fp : 8b83c000
    r10: 00000001  r9 : 88018c84  r8 : 8bb85000
    r7 : 8b838000  r6 : 00000000  r5 : 8bb77400  r4 : 8b82a000
    r3 : ffff0ff0  r2 : 8b82a000  r1 : 00000000  r0 : 88020354
    xPSR: 4100000b
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.0-rc1-00041-ga30465a #216
    [<8f002bc1>] (unwind_backtrace) from [<8f002033>] (show_stack+0xb/0xc)
    [<8f002033>] (show_stack) from [<8f00265b>] (__invalid_entry+0x4b/0x4c)
    
    As best I can tell this issue existed for the set_tls ARM syscall
    before commit fbfb872f5f41 "ARM: 8148/1: flush TLS and thumbee
    register state during exec" consolidated the TLS manipulation code
    into the set_tls helper function, but now that we're using it to flush
    register state during execve, !MMU users encounter the oops at the
    first exec.
    
    Prevent CONFIG_MMU=n configurations from enabling
    CONFIG_KUSER_HELPERS.
    
    Fixes: fbfb872f5f41 (ARM: 8148/1: flush TLS and thumbee register state during exec)
    
    Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
    Reported-by: Stefan Agner <stefan@agner.ch>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93ab715c305d3527397d6724329bf1be25129276
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Nov 11 09:16:15 2014 +1000

    drm/radeon: add locking around atombios scratch space usage
    
    commit 1c9498425453bb65ef339a57705c5ef59fe1541d upstream.
    
    While developing MST support I noticed I often got the wrong data
    back from a transaction, in a racy fashion. I noticed the scratch
    space wasn't locked against concurrent users.
    
    Based on a patch by Alex, but I've made it a bit more obvious when
    things are locked.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6086d05352f65c1de633a825f3879aa76dbea7cb
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Nov 5 17:14:32 2014 -0500

    drm/radeon: add missing crtc unlock when setting up the MC
    
    commit f0d7bfb9407fccb6499ec01c33afe43512a439a2 upstream.
    
    Need to unlock the crtc after updating the blanking state.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7bfd50b96e3bdd4a59fb23acd45ad176d97b961f
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Nov 3 11:27:17 2014 -0500

    drm/radeon: use gart for DMA IB tests
    
    commit 0b021c5802fbe5addf6f89f5030f684adf04f7b7 upstream.
    
    Use gart rather than vram to avoid having to deal with
    the HDP cache.
    
    Port of adfed2b0587289013f8143c54913ddfd44ac1fd3
    (drm/radeon: use gart memory for DMA ring tests)
    to the IB tests.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b2e306f5c5470187ed535322b7d74fb96be4684
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Nov 3 09:57:46 2014 -0500

    drm/radeon: make sure mode init is complete in bandwidth_update
    
    commit 8efe82ca908400785253c8f0dfcf301e6bd93488 upstream.
    
    The power management code calls into the display code for
    certain things.  If certain power management sysfs attributes
    are called before the driver has finished initializing all of
    the hardware we can run into problems with uninitialized
    modesetting state.  Add a check to make sure modesetting
    init has completed to the bandwidth update callbacks to
    fix this.  Can be triggered by the tlp and laptop start
    up scripts depending on the timing.
    
    bugs:
    https://bugzilla.kernel.org/show_bug.cgi?id=83611
    https://bugs.freedesktop.org/show_bug.cgi?id=85771
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce4b66d9bc4031d22cdb503a09f2205038441728
Author: Jammy Zhou <Jammy.Zhou@amd.com>
Date:   Mon Nov 3 08:58:20 2014 -0500

    drm/radeon: set correct CE ram size for CIK
    
    commit dc4edad6530a9b7b66c3d905e2bc06021a05dcad upstream.
    
    CE ram size is 32k/0k/0k for GFX/CS0/CS1 with CIK
    
    Ported from amdgpu driver.
    
    Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 550b63c44ec926043e42b550dd736f0e6b0935c5
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Oct 29 11:03:26 2014 +0200

    drm/i915/dp: only use training pattern 3 on platforms that support it
    
    commit 7809a61176b385ebb3299ea43c58b1bb31ffb8c0 upstream.
    
    Ivybridge + 30" monitor prints a drm error on every modeset, since IVB
    doesn't support DP3 we should even bother trying to use it.
    
    This regression has been introduced in
    
    commit 06ea66b6bb445043dc25a9626254d5c130093199
    Author: Todd Previte <tprevite@gmail.com>
    Date:   Mon Jan 20 10:19:39 2014 -0700
    
        drm/i915: Enable 5.4Ghz (HBR2) link rate for Displayport 1.2-capable
    devices
    
    Reported-by: Dave Airlie <airlied@redhat.com>
    Reference: http://mid.gmane.org/1414566170-9868-1-git-send-email-airlied@gmail.com
    Cc: Todd Previte <tprevite@gmail.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76d0c9869b8cdbdb978caa4e13bc98840daafa2b
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date:   Wed Nov 5 16:56:36 2014 -0800

    drm/i915: Disable caches for Global GTT.
    
    commit d6a8b72edc92471283925ceb4ba12799b67c3ff8 upstream.
    
    Global GTT doesn't have pat_sel[2:0] so it always point to pat_sel = 000;
    So the only way to avoid screen corruptions is setting PAT 0 to Uncached.
    
    MOCS can still be used though. But if userspace is trusting PTE for
    cache selection the safest thing to do is to let caches disabled.
    
    BSpec: "For GGTT, there is NO pat_sel[2:0] from the entry,
    so RTL will always use the value corresponding to pat_sel = 000"
    
    - System agent ggtt writes (i.e. cpu gtt mmaps) already work before
    this patch, i.e. the same uncached + snooping access like on gen6/7
    seems to be in effect.
    - So this just fixes blitter/render access. Again it looks like it's
    not just uncached access, but uncached + snooping. So we can still
    hold onto all our assumptions wrt cpu clflushing on LLC machines.
    
    v2: Cleaner patch as suggested by Chris.
    v3: Add Daniel's comment
    
    Reference: https://bugs.freedesktop.org/show_bug.cgi?id=85576
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: James Ausmus <james.ausmus@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Tested-by: James Ausmus <james.ausmus@intel.com>
    Reviewed-by: James Ausmus <james.ausmus@intel.com>
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dc767d3e87ef4d93ab4fadc2ad3455e49b62959
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Nov 5 14:46:31 2014 +0200

    drm/i915: safeguard against too high minimum brightness
    
    commit e1c412e75754ab7b7002f3e18a2652d999c40d4b upstream.
    
    Never trust (your interpretation of) the VBT. Regression from
    
    commit 6dda730e55f412a6dfb181cae6784822ba463847
    Author: Jani Nikula <jani.nikula@intel.com>
    Date:   Tue Jun 24 18:27:40 2014 +0300
    
        drm/i915: respect the VBT minimum backlight brightness
    
    causing div by zero if VBT minimum brightness equals maximum brightness.
    
    Despite my attempts I've failed in my detective work to figure out what
    the root cause is. This is not the real fix, but we have to do
    something.
    
    Reported-by: Mike Auty <mike.auty@gmail.com>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=86551
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit c6b3055441e548ba1ee761c982c5e60c88cfb486
Author: Luciano Coelho <luciano.coelho@intel.com>
Date:   Tue Oct 28 13:33:05 2014 +0200

    mac80211: schedule the actual switch of the station before CSA count 0
    
    commit ff1e417c7c239b7abfe70aa90460a77eaafc7f83 upstream.
    
    Due to the time it takes to process the beacon that started the CSA
    process, we may be late for the switch if we try to reach exactly
    beacon 0.  To avoid that, use count - 1 when calculating the switch time.
    
    Reported-by: Jouni Malinen <j@w1.fi>
    Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d81fe319e8883f87e1330814f1cdd458b6a5e80
Author: Luciano Coelho <luciano.coelho@intel.com>
Date:   Tue Oct 28 13:33:04 2014 +0200

    mac80211: use secondary channel offset IE also beacons during CSA
    
    commit 84469a45a1bedec9918e94ab2f78c5dc0739e4a7 upstream.
    
    If we are switching from an HT40+ to an HT40- channel (or vice-versa),
    we need the secondary channel offset IE to specify what is the
    post-CSA offset to be used.  This applies both to beacons and to probe
    responses.
    
    In ieee80211_parse_ch_switch_ie() we were ignoring this IE from
    beacons and using the *current* HT information IE instead.  This was
    causing us to use the same offset as before the switch.
    
    Fix that by using the secondary channel offset IE also for beacons and
    don't ever use the pre-switch offset.  Additionally, remove the
    "beacon" argument from ieee80211_parse_ch_switch_ie(), since it's not
    needed anymore.
    
    Reported-by: Jouni Malinen <j@w1.fi>
    Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit e9bc3ea125989e71add4969d6cbbb835935c3ff6
Author: Junjie Mao <eternal.n08@gmail.com>
Date:   Tue Oct 28 09:31:47 2014 +0800

    mac80211_hwsim: release driver when ieee80211_register_hw fails
    
    commit 805dbe17d1c832ad341f14fae8cedf41b67ca6fa upstream.
    
    The driver is not released when ieee80211_register_hw fails in
    mac80211_hwsim_create_radio, leading to the access to the unregistered (and
    possibly freed) device in platform_driver_unregister:
    
    [    0.447547] mac80211_hwsim: ieee80211_register_hw failed (-2)
    [    0.448292] ------------[ cut here ]------------
    [    0.448854] WARNING: CPU: 0 PID: 1 at ../include/linux/kref.h:47 kobject_get+0x33/0x50()
    [    0.449839] CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-00001-gdd46990-dirty #2
    [    0.450813] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    [    0.451512]  00000000 00000000 78025e38 7967c6c6 78025e68 7905e09b 7988b480 00000000
    [    0.452579]  00000001 79887d62 0000002f 79170bb3 79170bb3 78397008 79ac9d74 00000001
    [    0.453614]  78025e78 7905e15d 00000009 00000000 78025e84 79170bb3 78397000 78025e8c
    [    0.454632] Call Trace:
    [    0.454921]  [<7967c6c6>] dump_stack+0x16/0x18
    [    0.455453]  [<7905e09b>] warn_slowpath_common+0x6b/0x90
    [    0.456067]  [<79170bb3>] ? kobject_get+0x33/0x50
    [    0.456612]  [<79170bb3>] ? kobject_get+0x33/0x50
    [    0.457155]  [<7905e15d>] warn_slowpath_null+0x1d/0x20
    [    0.457748]  [<79170bb3>] kobject_get+0x33/0x50
    [    0.458274]  [<7925824f>] get_device+0xf/0x20
    [    0.458779]  [<7925b5cd>] driver_detach+0x3d/0xa0
    [    0.459331]  [<7925a3ff>] bus_remove_driver+0x8f/0xb0
    [    0.459927]  [<7925bf80>] ? class_unregister+0x40/0x80
    [    0.460660]  [<7925bad7>] driver_unregister+0x47/0x50
    [    0.461248]  [<7925c033>] ? class_destroy+0x13/0x20
    [    0.461824]  [<7925d07b>] platform_driver_unregister+0xb/0x10
    [    0.462507]  [<79b51ba0>] init_mac80211_hwsim+0x3e8/0x3f9
    [    0.463161]  [<79b30c58>] do_one_initcall+0x106/0x1a9
    [    0.463758]  [<79b517b8>] ? if_spi_init_module+0xac/0xac
    [    0.464393]  [<79b517b8>] ? if_spi_init_module+0xac/0xac
    [    0.465001]  [<79071935>] ? parse_args+0x2f5/0x480
    [    0.465569]  [<7906b41e>] ? __usermodehelper_set_disable_depth+0x3e/0x50
    [    0.466345]  [<79b30dd9>] kernel_init_freeable+0xde/0x17d
    [    0.466972]  [<79b304d6>] ? do_early_param+0x7a/0x7a
    [    0.467546]  [<79677b1b>] kernel_init+0xb/0xe0
    [    0.468072]  [<79075f42>] ? schedule_tail+0x12/0x40
    [    0.468658]  [<79686580>] ret_from_kernel_thread+0x20/0x30
    [    0.469303]  [<79677b10>] ? rest_init+0xc0/0xc0
    [    0.469829] ---[ end trace ad8ac403ff8aef5c ]---
    [    0.470509] ------------[ cut here ]------------
    [    0.471047] WARNING: CPU: 0 PID: 1 at ../kernel/locking/lockdep.c:3161 __lock_acquire.isra.22+0x7aa/0xb00()
    [    0.472163] DEBUG_LOCKS_WARN_ON(id >= MAX_LOCKDEP_KEYS)
    [    0.472774] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.17.0-00001-gdd46990-dirty #2
    [    0.473815] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    [    0.474492]  78025de0 78025de0 78025da0 7967c6c6 78025dd0 7905e09b 79888931 78025dfc
    [    0.475515]  00000001 79888a93 00000c59 7907f33a 7907f33a 78028000 fffe9d09 00000000
    [    0.476519]  78025de8 7905e10e 00000009 78025de0 79888931 78025dfc 78025e24 7907f33a
    [    0.477523] Call Trace:
    [    0.477821]  [<7967c6c6>] dump_stack+0x16/0x18
    [    0.478352]  [<7905e09b>] warn_slowpath_common+0x6b/0x90
    [    0.478976]  [<7907f33a>] ? __lock_acquire.isra.22+0x7aa/0xb00
    [    0.479658]  [<7907f33a>] ? __lock_acquire.isra.22+0x7aa/0xb00
    [    0.480417]  [<7905e10e>] warn_slowpath_fmt+0x2e/0x30
    [    0.480479]  [<7907f33a>] __lock_acquire.isra.22+0x7aa/0xb00
    [    0.480479]  [<79078aa5>] ? sched_clock_cpu+0xb5/0xf0
    [    0.480479]  [<7907fd06>] lock_acquire+0x56/0x70
    [    0.480479]  [<7925b5e8>] ? driver_detach+0x58/0xa0
    [    0.480479]  [<79682d11>] mutex_lock_nested+0x61/0x2a0
    [    0.480479]  [<7925b5e8>] ? driver_detach+0x58/0xa0
    [    0.480479]  [<7925b5e8>] ? driver_detach+0x58/0xa0
    [    0.480479]  [<7925b5e8>] driver_detach+0x58/0xa0
    [    0.480479]  [<7925a3ff>] bus_remove_driver+0x8f/0xb0
    [    0.480479]  [<7925bf80>] ? class_unregister+0x40/0x80
    [    0.480479]  [<7925bad7>] driver_unregister+0x47/0x50
    [    0.480479]  [<7925c033>] ? class_destroy+0x13/0x20
    [    0.480479]  [<7925d07b>] platform_driver_unregister+0xb/0x10
    [    0.480479]  [<79b51ba0>] init_mac80211_hwsim+0x3e8/0x3f9
    [    0.480479]  [<79b30c58>] do_one_initcall+0x106/0x1a9
    [    0.480479]  [<79b517b8>] ? if_spi_init_module+0xac/0xac
    [    0.480479]  [<79b517b8>] ? if_spi_init_module+0xac/0xac
    [    0.480479]  [<79071935>] ? parse_args+0x2f5/0x480
    [    0.480479]  [<7906b41e>] ? __usermodehelper_set_disable_depth+0x3e/0x50
    [    0.480479]  [<79b30dd9>] kernel_init_freeable+0xde/0x17d
    [    0.480479]  [<79b304d6>] ? do_early_param+0x7a/0x7a
    [    0.480479]  [<79677b1b>] kernel_init+0xb/0xe0
    [    0.480479]  [<79075f42>] ? schedule_tail+0x12/0x40
    [    0.480479]  [<79686580>] ret_from_kernel_thread+0x20/0x30
    [    0.480479]  [<79677b10>] ? rest_init+0xc0/0xc0
    [    0.480479] ---[ end trace ad8ac403ff8aef5d ]---
    [    0.495478] BUG: unable to handle kernel paging request at 00200200
    [    0.496257] IP: [<79682de5>] mutex_lock_nested+0x135/0x2a0
    [    0.496923] *pde = 00000000
    [    0.497290] Oops: 0002 [#1]
    [    0.497653] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.17.0-00001-gdd46990-dirty #2
    [    0.498659] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    [    0.499321] task: 78028000 ti: 78024000 task.ti: 78024000
    [    0.499955] EIP: 0060:[<79682de5>] EFLAGS: 00010097 CPU: 0
    [    0.500620] EIP is at mutex_lock_nested+0x135/0x2a0
    [    0.501145] EAX: 00200200 EBX: 78397434 ECX: 78397460 EDX: 78025e70
    [    0.501816] ESI: 00000246 EDI: 78028000 EBP: 78025e8c ESP: 78025e54
    [    0.502497]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
    [    0.503076] CR0: 8005003b CR2: 00200200 CR3: 01b9d000 CR4: 00000690
    [    0.503773] Stack:
    [    0.503998]  00000000 00000001 00000000 7925b5e8 78397460 7925b5e8 78397474 78397460
    [    0.504944]  00200200 11111111 78025e70 78397000 79ac9d74 00000001 78025ea0 7925b5e8
    [    0.505451]  79ac9d74 fffffffe 00000001 78025ebc 7925a3ff 7a251398 78025ec8 7925bf80
    [    0.505451] Call Trace:
    [    0.505451]  [<7925b5e8>] ? driver_detach+0x58/0xa0
    [    0.505451]  [<7925b5e8>] ? driver_detach+0x58/0xa0
    [    0.505451]  [<7925b5e8>] driver_detach+0x58/0xa0
    [    0.505451]  [<7925a3ff>] bus_remove_driver+0x8f/0xb0
    [    0.505451]  [<7925bf80>] ? class_unregister+0x40/0x80
    [    0.505451]  [<7925bad7>] driver_unregister+0x47/0x50
    [    0.505451]  [<7925c033>] ? class_destroy+0x13/0x20
    [    0.505451]  [<7925d07b>] platform_driver_unregister+0xb/0x10
    [    0.505451]  [<79b51ba0>] init_mac80211_hwsim+0x3e8/0x3f9
    [    0.505451]  [<79b30c58>] do_one_initcall+0x106/0x1a9
    [    0.505451]  [<79b517b8>] ? if_spi_init_module+0xac/0xac
    [    0.505451]  [<79b517b8>] ? if_spi_init_module+0xac/0xac
    [    0.505451]  [<79071935>] ? parse_args+0x2f5/0x480
    [    0.505451]  [<7906b41e>] ? __usermodehelper_set_disable_depth+0x3e/0x50
    [    0.505451]  [<79b30dd9>] kernel_init_freeable+0xde/0x17d
    [    0.505451]  [<79b304d6>] ? do_early_param+0x7a/0x7a
    [    0.505451]  [<79677b1b>] kernel_init+0xb/0xe0
    [    0.505451]  [<79075f42>] ? schedule_tail+0x12/0x40
    [    0.505451]  [<79686580>] ret_from_kernel_thread+0x20/0x30
    [    0.505451]  [<79677b10>] ? rest_init+0xc0/0xc0
    [    0.505451] Code: 89 d8 e8 cf 9b 9f ff 8b 4f 04 8d 55 e4 89 d8 e8 72 9d 9f ff 8d 43 2c 89 c1 89 45 d8 8b 43 30 8d 55 e4 89 53 30 89 4d e4 89 45 e8 <89> 10 8b 55 dc 8b 45 e0 89 7d ec e8 db af 9f ff eb 11 90 31 c0
    [    0.505451] EIP: [<79682de5>] mutex_lock_nested+0x135/0x2a0 SS:ESP 0068:78025e54
    [    0.505451] CR2: 0000000000200200
    [    0.505451] ---[ end trace ad8ac403ff8aef5e ]---
    [    0.505451] Kernel panic - not syncing: Fatal exception
    
    Fixes: 9ea927748ced ("mac80211_hwsim: Register and bind to driver")
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Junjie Mao <eternal.n08@gmail.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfd484b59830567c7bba16df4c376209371cf1a2
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Mon Nov 3 14:01:25 2014 +0800

    macvtap: Fix csum_start when VLAN tags are present
    
    commit 3ce9b20f1971690b8b3b620e735ec99431573b39 upstream.
    
    When VLAN is in use in macvtap_put_user, we end up setting
    csum_start to the wrong place.  The result is that the whoever
    ends up doing the checksum setting will corrupt the packet instead
    of writing the checksum to the expected location, usually this
    means writing the checksum with an offset of -4.
    
    This patch fixes this by adjusting csum_start when VLAN tags are
    detected.
    
    Fixes: f09e2249c4f5 ("macvtap: restore vlan header on user read")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

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

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

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

    xtensa: re-wire umount syscall to sys_oldumount
    
    commit 2651cc6974d47fc43bef1cd8cd26966e4f5ba306 upstream.
    
    Userspace actually passes single parameter (path name) to the umount
    syscall, so new umount just fails. Fix it by requesting old umount
    syscall implementation and re-wiring umount to it.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ce8e8e8b89ef21111cf86b323ca93fb60f6a230
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Nov 11 15:45:57 2014 +0100

    ALSA: usb-audio: Fix memory leak in FTU quirk
    
    commit 1a290581ded60e87276741f8ca97b161d2b226fc upstream.
    
    M-audio FastTrack Ultra quirk doesn't release the kzalloc'ed memory.
    This patch adds the private_free callback to release it properly.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 615274ef2f87475aac9dd88d1a698798950c7f5d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 12 08:11:56 2014 +0100

    ALSA: hda - Add mute LED control for Lenovo Ideapad Z560
    
    commit 3542aed7480925eb859f7ce101982209cc19a126 upstream.
    
    Lenovo Ideapad Z560 has a mute LED that is controlled via EAPD pin
    0x1b on CX20585 codec.  (EAPD bit on corresponds to mute LED on.)
    The machine doesn't need other EAPD, so the fixup concentrates on
    controlling EAPD 0x1b following the vmaster state (but inversely).
    
    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=665315
    Reported-by: Szymon Kowalczyk <fazerxlo@o2.pl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit 16f9678ec8ff7dbf4b1aa228363791d709c6bc64
Author: Antoine Tenart <antoine.tenart@free-electrons.com>
Date:   Mon Nov 3 09:56:11 2014 +0100

    ahci: fix AHCI parameters not taken into account
    
    commit 9a23c1d6f0f5dbac4c9b73fa6cea7c9ee3d29074 upstream.
    
    Changes into the AHCI subsystem have introduced a bug by not taking into
    account the force_port_map and mask_port_map parameters when using the
    ahci_pci_save_initial_config function. This commit fixes it by setting
    the internal parameters of the ahci_port_priv structure.
    
    Fixes: 725c7b570fda
    
    Reported-and-tested-by: Zlatko Calusic <zcalusic@bitsync.net>
    Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit b5d2817720ad8f8338975a26f635dc5407df7549
Author: Daniel Thompson <daniel.thompson@linaro.org>
Date:   Tue Nov 11 16:29:46 2014 +1030

    param: fix crash on bad kernel arguments
    
    commit 3438cf549d2f3ee8e52c82acc8e2a9710ac21a5b upstream.
    
    Currently if the user passes an invalid value on the kernel command line
    then the kernel will crash during argument parsing. On most systems this
    is very hard to debug because the console hasn't been initialized yet.
    
    This is a regression due to commit 51e158c12aca ("param: hand arguments
    after -- straight to init") which, in response to the systemd debug
    controversy, made it possible to explicitly pass arguments to init. To
    achieve this parse_args() was extended from simply returning an error
    code to returning a pointer. Regretably the new init args logic does not
    perform a proper validity check on the pointer resulting in a crash.
    
    This patch fixes the validity check. Should the check fail then no arguments
    will be passed to init. This is reasonable and matches how the kernel treats
    its own arguments (i.e. no error recovery).
    
    Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe1d808aabae9f4a1d1e73eea660839c1708b680
Author: Rabin Vincent <rabin@rab.in>
Date:   Mon Nov 10 19:46:34 2014 +0100

    tracing: Do not busy wait in buffer splice
    
    commit e30f53aad2202b5526c40c36d8eeac8bf290bde5 upstream.
    
    On a !PREEMPT kernel, attempting to use trace-cmd results in a soft
    lockup:
    
     # trace-cmd record -e raw_syscalls:* -F false
     NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [trace-cmd:61]
     ...
     Call Trace:
      [<ffffffff8105b580>] ? __wake_up_common+0x90/0x90
      [<ffffffff81092e25>] wait_on_pipe+0x35/0x40
      [<ffffffff810936e3>] tracing_buffers_splice_read+0x2e3/0x3c0
      [<ffffffff81093300>] ? tracing_stats_read+0x2a0/0x2a0
      [<ffffffff812d10ab>] ? _raw_spin_unlock+0x2b/0x40
      [<ffffffff810dc87b>] ? do_read_fault+0x21b/0x290
      [<ffffffff810de56a>] ? handle_mm_fault+0x2ba/0xbd0
      [<ffffffff81095c80>] ? trace_event_buffer_lock_reserve+0x40/0x80
      [<ffffffff810951e2>] ? trace_buffer_lock_reserve+0x22/0x60
      [<ffffffff81095c80>] ? trace_event_buffer_lock_reserve+0x40/0x80
      [<ffffffff8112415d>] do_splice_to+0x6d/0x90
      [<ffffffff81126971>] SyS_splice+0x7c1/0x800
      [<ffffffff812d1edd>] tracesys_phase2+0xd3/0xd8
    
    The problem is this: tracing_buffers_splice_read() calls
    ring_buffer_wait() to wait for data in the ring buffers.  The buffers
    are not empty so ring_buffer_wait() returns immediately.  But
    tracing_buffers_splice_read() calls ring_buffer_read_page() with full=1,
    meaning it only wants to read a full page.  When the full page is not
    available, tracing_buffers_splice_read() tries to wait again with
    ring_buffer_wait(), which again returns immediately, and so on.
    
    Fix this by adding a "full" argument to ring_buffer_wait() which will
    make ring_buffer_wait() wait until the writer has left the reader's
    page, i.e.  until full-page reads will succeed.
    
    Link: http://lkml.kernel.org/r/1415645194-25379-1-git-send-email-rabin@rab.in
    
    Fixes: b1169cc69ba9 ("tracing: Remove mock up poll wait function")
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit e379a5088d52bf9cb204258777690739a2f6abc8
Author: Richard Guy Briggs <rgb@redhat.com>
Date:   Thu Oct 30 11:22:53 2014 -0400

    audit: AUDIT_FEATURE_CHANGE message format missing delimiting space
    
    commit 897f1acbb6702ddaa953e8d8436eee3b12016c7e upstream.
    
    Add a space between subj= and feature= fields to make them parsable.
    
    Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad384f7911fcf459724e0c9fa07ef38aa95ca6f1
Author: Richard Guy Briggs <rgb@redhat.com>
Date:   Sun Aug 24 20:37:52 2014 -0400

    audit: correct AUDIT_GET_FEATURE return message type
    
    commit 9ef91514774a140e468f99d73d7593521e6d25dc upstream.
    
    When an AUDIT_GET_FEATURE message is sent from userspace to the kernel, it
    should reply with a message tagged as an AUDIT_GET_FEATURE type with a struct
    audit_feature.  The current reply is a message tagged as an AUDIT_GET
    type with a struct audit_feature.
    
    This appears to have been a cut-and-paste-eo in commit b0fed40.
    
    Reported-by: Steve Grubb <sgrubb@redhat.com>
    Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2504dc6773a2e49dfd2ea971f3253feae1855759
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Fri Sep 5 15:13:52 2014 -0700

    x86, x32, audit: Fix x32's AUDIT_ARCH wrt audit
    
    commit 81f49a8fd7088cfcb588d182eeede862c0e3303e upstream.
    
    is_compat_task() is the wrong check for audit arch; the check should
    be is_ia32_task(): x32 syscalls should be AUDIT_ARCH_X86_64, not
    AUDIT_ARCH_I386.
    
    CONFIG_AUDITSYSCALL is currently incompatible with x32, so this has
    no visible effect.
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/a0138ed8c709882aec06e4acc30bfa9b623b8717.1409954077.git.luto@amacapital.net
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8241fcd56b40cac852b92b7c130e3047a686425b
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Mon Nov 3 04:30:13 2014 +0800

    tun: Fix csum_start with VLAN acceleration
    
    commit a8f9bfdf982e2b1fb9f094e4de9ab08c57f3d2fd upstream.
    
    When VLAN acceleration is in use on the xmit path, we end up
    setting csum_start to the wrong place.  The result is that the
    whoever ends up doing the checksum setting will corrupt the packet
    instead of writing the checksum to the expected location, usually
    this means writing the checksum with an offset of -4.
    
    This patch fixes this by adjusting csum_start when VLAN acceleration
    is detected.
    
    Fixes: 6680ec68eff4 ("tuntap: hardware vlan tx support")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 005eca960a867a58856b55cef19329935aa150ee
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Sun Nov 2 11:54:47 2014 +0200

    KVM: x86: Fix uninitialized op->type for some immediate values
    
    commit d29b9d7ed76c0b961603ca692b8a562556a20212 upstream.
    
    The emulator could reuse an op->type from a previous instruction for some
    immediate values.  If it mistakenly considers the operands as memory
    operands, it will performs a memory read and overwrite op->val.
    
    Consider for instance the ROR instruction - src2 (the number of times)
    would be read from memory instead of being used as immediate.
    
    Mark every immediate operand as such to avoid this problem.
    
    Fixes: c44b4c6ab80eef3a9c52c7b3f0c632942e6489aa
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bed56c3e51507d68b031c360e338a13ab378111d
Author: Tang Chen <tangchen@cn.fujitsu.com>
Date:   Thu Nov 13 15:19:41 2014 -0800

    mem-hotplug: reset node present pages when hot-adding a new pgdat
    
    commit 0bd854200873894a76f32603ff2c4c988ad6b5b5 upstream.
    
    When memory is hot-added, all the memory is in offline state.  So clear
    all zones' present_pages because they will be updated in online_pages()
    and offline_pages().  Otherwise, /proc/zoneinfo will corrupt:
    
    When the memory of node2 is offline:
    
      # cat /proc/zoneinfo
      ......
      Node 2, zone   Movable
      ......
            spanned  8388608
            present  8388608
            managed  0
    
    When we online memory on node2:
    
      # cat /proc/zoneinfo
      ......
      Node 2, zone   Movable
      ......
            spanned  8388608
            present  16777216
            managed  8388608
    
    Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
    Reviewed-by: 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bfed69cf01d1ef7aa98a178ed234037a460fcbc
Author: Tang Chen <tangchen@cn.fujitsu.com>
Date:   Thu Nov 13 15:19:39 2014 -0800

    mem-hotplug: reset node managed pages when hot-adding a new pgdat
    
    commit f784a3f19613901ca4539a5b0eed3bdc700e6ee7 upstream.
    
    In free_area_init_core(), zone->managed_pages is set to an approximate
    value for lowmem, and will be adjusted when the bootmem allocator frees
    pages into the buddy system.
    
    But free_area_init_core() is also called by hotadd_new_pgdat() when
    hot-adding memory.  As a result, zone->managed_pages of the newly added
    node's pgdat is set to an approximate value in the very beginning.
    
    Even if the memory on that node has node been onlined,
    /sys/device/system/node/nodeXXX/meminfo has wrong value:
    
      hot-add node2 (memory not onlined)
      cat /sys/device/system/node/node2/meminfo
      Node 2 MemTotal:       33554432 kB
      Node 2 MemFree:               0 kB
      Node 2 MemUsed:        33554432 kB
      Node 2 Active:                0 kB
    
    This patch fixes this problem by reset node managed pages to 0 after
    hot-adding a new node.
    
    1. Move reset_managed_pages_done from reset_node_managed_pages() to
       reset_all_zones_managed_pages()
    2. Make reset_node_managed_pages() non-static
    3. Call reset_node_managed_pages() in hotadd_new_pgdat() after pgdat
       is initialized
    
    Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
    Signed-off-by: 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5bc181edfce47c89783b525c423ccf070f7661f
Author: Greg Kurz <gkurz@linux.vnet.ibm.com>
Date:   Fri Oct 31 07:50:11 2014 +0100

    hwrng: pseries - port to new read API and fix stack corruption
    
    commit 24c65bc7037e7d0f362c0df70d17dd72ee64b8b9 upstream.
    
    The add_early_randomness() function in drivers/char/hw_random/core.c passes
    a 16-byte buffer to pseries_rng_data_read(). Unfortunately, plpar_hcall()
    returns four 64-bit values and trashes 16 bytes on the stack.
    
    This bug has been lying around for a long time. It got unveiled by:
    
    commit d3cc7996473a7bdd33256029988ea690754e4e2a
    Author: Amit Shah <amit.shah@redhat.com>
    Date:   Thu Jul 10 15:42:34 2014 +0530
    
        hwrng: fetch randomness only after device init
    
    It may trig a oops while loading or unloading the pseries-rng module for both
    PowerVM and PowerKVM guests.
    
    This patch does two things:
    - pass an intermediate well sized buffer to plpar_hcall(). This is acceptalbe
      since we're not on a hot path.
    - move to the new read API so that we know the return buffer size for sure.
    
    Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1dd50a41fbb859d47d8a5a42dab4072caabab13
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Fri Oct 10 12:48:35 2014 +0200

    mfd: max77693: Fix always masked MUIC interrupts
    
    commit c0acb8144bd6d8d88aee1dab33364b7353e9a903 upstream.
    
    All interrupts coming from MUIC were ignored because interrupt source
    register was masked.
    
    The Maxim 77693 has a "interrupt source" - a separate register and interrupts
    which give information about PMIC block triggering the individual
    interrupt (charger, topsys, MUIC, flash LED).
    
    By default bootloader could initialize this register to "mask all"
    value. In such case (observed on Trats2 board) MUIC interrupts won't be
    generated regardless of their mask status. Regmap irq chip was unmasking
    individual MUIC interrupts but the source was masked
    
    Before introducing regmap irq chip this interrupt source was unmasked,
    read and acked. Reading and acking is not necessary but unmasking is.
    
    Fixes: 342d669c1ee4 ("mfd: max77693: Handle IRQs using regmap")
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc463599ca1e8fcebf929cfb411dfed305de2327
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Fri Oct 10 10:22:01 2014 +0200

    mfd: max77693: Use proper regmap for handling MUIC interrupts
    
    commit 43fc9396cac3f7498e07a22e6a987b911462fa58 upstream.
    
    Interrupts coming from Maxim77693 MUIC block (MicroUSB Interface
    Controller) were not handled at all because wrong regmap was used for
    MUIC's regmap_irq_chip.
    
    The MUIC component of Maxim 77693 uses different I2C address thus second
    regmap is created and used by max77693 extcon driver. The registers for
    MUIC interrupts are also in that block and should be handled by that
    second regmap.
    
    However the regmap irq chip for MUIC was configured with default regmap
    which could not read MUIC registers.
    
    Fixes: 342d669c1ee4 ("mfd: max77693: Handle IRQs using regmap")
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06f09373f6502ed8c67f4bbc50a20f5163d5c298
Author: Tony Lindgren <tony@atomide.com>
Date:   Sun Nov 2 10:07:56 2014 -0800

    mfd: twl4030-power: Fix poweroff with PM configuration enabled
    
    commit 481c7f868c6d855f31a29c69b445ac4aee9625a6 upstream.
    
    Commit e7cd1d1eb16f ("mfd: twl4030-power: Add generic reset
    configuration") enabled configuring the PM features for twl4030.
    
    This caused poweroff command to fail on devices that have the
    BCI charger on twl4030 wired, or have power wired for VBUS.
    Instead of powering off, the device reboots. This is because
    voltage is detected on charger or VBUS with the default bits
    enabled for the power transition registers.
    
    To fix the issue, let's just clear VBUS and CHG bits as we want
    poweroff command to keep the system powered off.
    
    Fixes: e7cd1d1eb16f ("mfd: twl4030-power: Add generic reset configuration")
    Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 464207f65aeffd836dafabd9cf49b7a7ac2af0d5
Author: Cristian Stoica <cristian.stoica@freescale.com>
Date:   Thu Aug 14 13:51:56 2014 +0300

    crypto: caam - remove duplicated sg copy functions
    
    commit 307fd543f3d23f8f56850eca1b27b1be2fe71017 upstream.
    
    Replace equivalent (and partially incorrect) scatter-gather functions
    with ones from crypto-API.
    
    The replacement is motivated by page-faults in sg_copy_part triggered
    by successive calls to crypto_hash_update. The following fault appears
    after calling crypto_ahash_update twice, first with 13 and then
    with 285 bytes:
    
    Unable to handle kernel paging request for data at address 0x00000008
    Faulting instruction address: 0xf9bf9a8c
    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=8 CoreNet Generic
    Modules linked in: tcrypt(+) caamhash caam_jr caam tls
    CPU: 6 PID: 1497 Comm: cryptomgr_test Not tainted
    3.12.19-rt30-QorIQ-SDK-V1.6+g9fda9f2 #75
    task: e9308530 ti: e700e000 task.ti: e700e000
    NIP: f9bf9a8c LR: f9bfcf28 CTR: c0019ea0
    REGS: e700fb80 TRAP: 0300   Not tainted
    (3.12.19-rt30-QorIQ-SDK-V1.6+g9fda9f2)
    MSR: 00029002 <CE,EE,ME>  CR: 44f92024  XER: 20000000
    DEAR: 00000008, ESR: 00000000
    
    GPR00: f9bfcf28 e700fc30 e9308530 e70b1e55 00000000 ffffffdd e70b1e54 0bebf888
    GPR08: 902c7ef5 c0e771e2 00000002 00000888 c0019ea0 00000000 00000000 c07a4154
    GPR16: c08d0000 e91a8f9c 00000001 e98fb400 00000100 e9c83028 e70b1e08 e70b1d48
    GPR24: e992ce10 e70b1dc8 f9bfe4f4 e70b1e55 ffffffdd e70b1ce0 00000000 00000000
    NIP [f9bf9a8c] sg_copy+0x1c/0x100 [caamhash]
    LR [f9bfcf28] ahash_update_no_ctx+0x628/0x660 [caamhash]
    Call Trace:
    [e700fc30] [f9bf9c50] sg_copy_part+0xe0/0x160 [caamhash] (unreliable)
    [e700fc50] [f9bfcf28] ahash_update_no_ctx+0x628/0x660 [caamhash]
    [e700fcb0] [f954e19c] crypto_tls_genicv+0x13c/0x300 [tls]
    [e700fd10] [f954e65c] crypto_tls_encrypt+0x5c/0x260 [tls]
    [e700fd40] [c02250ec] __test_aead.constprop.9+0x2bc/0xb70
    [e700fe40] [c02259f0] alg_test_aead+0x50/0xc0
    [e700fe60] [c02241e4] alg_test+0x114/0x2e0
    [e700fee0] [c022276c] cryptomgr_test+0x4c/0x60
    [e700fef0] [c004f658] kthread+0x98/0xa0
    [e700ff40] [c000fd04] ret_from_kernel_thread+0x5c/0x64
    
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Cristian Stoica <cristian.stoica@freescale.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2a21a177d000ee0c6f1028b10dc67436e3064c9
Author: Tadeusz Struk <tadeusz.struk@intel.com>
Date:   Mon Oct 13 18:24:32 2014 -0700

    crypto: qat - Enforce valid numa configuration
    
    commit 09adc8789c4e895d7548fa9eb5d24ad9a5d91c5d upstream.
    
    In a system with NUMA configuration we want to enforce that the accelerator is
    connected to a node with memory to avoid cross QPI memory transaction.
    Otherwise there is no point in using the accelerator as the encryption in
    software will be faster.
    
    Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
    Tested-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Reviewed-by: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63c18e716606448a3db6535e5408b34b447a92a9
Author: Tadeusz Struk <tadeusz.struk@intel.com>
Date:   Mon Oct 13 18:24:26 2014 -0700

    crypto: qat - Prevent dma mapping zero length assoc data
    
    commit 923a6e5e5f171317ac8bb462ac4b814fa7880d3c upstream.
    
    Do not attempt to dma map associated data if it is zero length.
    
    Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
    Tested-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Reviewed-by: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28baa777a5117c4f3513507a109997a205554e5b
Author: Cristian Stoica <cristian.stoica@freescale.com>
Date:   Thu Oct 30 14:40:22 2014 +0200

    crypto: caam - fix missing dma unmap on error path
    
    commit 738459e3f88538f2ece263424dafe5d91799e46b upstream.
    
    If dma mapping for dma_addr_out fails, the descriptor memory is freed
    but the previous dma mapping for dma_addr_in remains.
    This patch resolves the missing dma unmap and groups resource
    allocations at function start.
    
    Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80d4ecfcfbce8046da51f58822d9ac5a5f958260
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Thu Nov 13 15:19:21 2014 -0800

    mm/page_alloc: restrict max order of merging on isolated pageblock
    
    commit 3c605096d3158216ba9326a16266f6ba128c2c8d upstream.
    
    Current pageblock isolation logic could isolate each pageblock
    individually.  This causes freepage accounting problem if freepage with
    pageblock order on isolate pageblock is merged with other freepage on
    normal pageblock.  We can prevent merging by restricting max order of
    merging to pageblock order if freepage is on isolate pageblock.
    
    A side-effect of this change is that there could be non-merged buddy
    freepage even if finishing pageblock isolation, because undoing
    pageblock isolation is just to move freepage from isolate buddy list to
    normal buddy list rather than to consider merging.  So, the patch also
    makes undoing pageblock isolation consider freepage merge.  When
    un-isolation, freepage with more than pageblock order and it's buddy are
    checked.  If they are on normal pageblock, instead of just moving, we
    isolate the freepage and free it in order to get merged.
    
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Cc: Tang Chen <tangchen@cn.fujitsu.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Wen Congyang <wency@cn.fujitsu.com>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Michal Nazarewicz <mina86@mina86.com>
    Cc: Laura Abbott <lauraa@codeaurora.org>
    Cc: Heesub Shin <heesub.shin@samsung.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Ritesh Harjani <ritesh.list@gmail.com>
    Cc: Gioh Kim <gioh.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37e26c7819d4863a5d4fba3a92f357793b7dc940
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Thu Nov 13 15:19:18 2014 -0800

    mm/page_alloc: move freepage counting logic to __free_one_page()
    
    commit 8f82b55dd558a74fc33d69a1f2c2605d0cd2c908 upstream.
    
    All the caller of __free_one_page() has similar freepage counting logic,
    so we can move it to __free_one_page().  This reduce line of code and
    help future maintenance.
    
    This is also preparation step for "mm/page_alloc: restrict max order of
    merging on isolated pageblock" which fix the freepage counting problem
    on freepage with more than pageblock order.
    
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Cc: Tang Chen <tangchen@cn.fujitsu.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Wen Congyang <wency@cn.fujitsu.com>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Michal Nazarewicz <mina86@mina86.com>
    Cc: Laura Abbott <lauraa@codeaurora.org>
    Cc: Heesub Shin <heesub.shin@samsung.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Ritesh Harjani <ritesh.list@gmail.com>
    Cc: Gioh Kim <gioh.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b96b131a76b4a596d571eecd6475b77be4d8292
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Thu Nov 13 15:19:14 2014 -0800

    mm/page_alloc: add freepage on isolate pageblock to correct buddy list
    
    commit 51bb1a4093cc68bc16b282548d9cee6104be0ef1 upstream.
    
    In free_pcppages_bulk(), we use cached migratetype of freepage to
    determine type of buddy list where freepage will be added.  This
    information is stored when freepage is added to pcp list, so if
    isolation of pageblock of this freepage begins after storing, this
    cached information could be stale.  In other words, it has original
    migratetype rather than MIGRATE_ISOLATE.
    
    There are two problems caused by this stale information.
    
    One is that we can't keep these freepages from being allocated.
    Although this pageblock is isolated, freepage will be added to normal
    buddy list so that it could be allocated without any restriction.  And
    the other problem is incorrect freepage accounting.  Freepages on
    isolate pageblock should not be counted for number of freepage.
    
    Following is the code snippet in free_pcppages_bulk().
    
        /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */
        __free_one_page(page, page_to_pfn(page), zone, 0, mt);
        trace_mm_page_pcpu_drain(page, 0, mt);
        if (likely(!is_migrate_isolate_page(page))) {
            __mod_zone_page_state(zone, NR_FREE_PAGES, 1);
            if (is_migrate_cma(mt))
                __mod_zone_page_state(zone, NR_FREE_CMA_PAGES, 1);
        }
    
    As you can see above snippet, current code already handle second
    problem, incorrect freepage accounting, by re-fetching pageblock
    migratetype through is_migrate_isolate_page(page).
    
    But, because this re-fetched information isn't used for
    __free_one_page(), first problem would not be solved.  This patch try to
    solve this situation to re-fetch pageblock migratetype before
    __free_one_page() and to use it for __free_one_page().
    
    In addition to move up position of this re-fetch, this patch use
    optimization technique, re-fetching migratetype only if there is isolate
    pageblock.  Pageblock isolation is rare event, so we can avoid
    re-fetching in common case with this optimization.
    
    This patch also correct migratetype of the tracepoint output.
    
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Cc: Tang Chen <tangchen@cn.fujitsu.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Wen Congyang <wency@cn.fujitsu.com>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Laura Abbott <lauraa@codeaurora.org>
    Cc: Heesub Shin <heesub.shin@samsung.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Ritesh Harjani <ritesh.list@gmail.com>
    Cc: Gioh Kim <gioh.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c538b598013e8f995cce59f0d26c158c19f1238
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Thu Nov 13 15:19:11 2014 -0800

    mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype
    
    commit ad53f92eb416d81e469fa8ea57153e59455e7175 upstream.
    
    Before describing bugs itself, I first explain definition of freepage.
    
     1. pages on buddy list are counted as freepage.
     2. pages on isolate migratetype buddy list are *not* counted as freepage.
     3. pages on cma buddy list are counted as CMA freepage, too.
    
    Now, I describe problems and related patch.
    
    Patch 1: There is race conditions on getting pageblock migratetype that
    it results in misplacement of freepages on buddy list, incorrect
    freepage count and un-availability of freepage.
    
    Patch 2: Freepages on pcp list could have stale cached information to
    determine migratetype of buddy list to go.  This causes misplacement of
    freepages on buddy list and incorrect freepage count.
    
    Patch 4: Merging between freepages on different migratetype of
    pageblocks will cause freepages accouting problem.  This patch fixes it.
    
    Without patchset [3], above problem doesn't happens on my CMA allocation
    test, because CMA reserved pages aren't used at all.  So there is no
    chance for above race.
    
    With patchset [3], I did simple CMA allocation test and get below
    result:
    
     - Virtual machine, 4 cpus, 1024 MB memory, 256 MB CMA reservation
     - run kernel build (make -j16) on background
     - 30 times CMA allocation(8MB * 30 = 240MB) attempts in 5 sec interval
     - Result: more than 5000 freepage count are missed
    
    With patchset [3] and this patchset, I found that no freepage count are
    missed so that I conclude that problems are solved.
    
    On my simple memory offlining test, these problems also occur on that
    environment, too.
    
    This patch (of 4):
    
    There are two paths to reach core free function of buddy allocator,
    __free_one_page(), one is free_one_page()->__free_one_page() and the
    other is free_hot_cold_page()->free_pcppages_bulk()->__free_one_page().
    Each paths has race condition causing serious problems.  At first, this
    patch is focused on first type of freepath.  And then, following patch
    will solve the problem in second type of freepath.
    
    In the first type of freepath, we got migratetype of freeing page
    without holding the zone lock, so it could be racy.  There are two cases
    of this race.
    
     1. pages are added to isolate buddy list after restoring orignal
        migratetype
    
        CPU1                                   CPU2
    
        get migratetype => return MIGRATE_ISOLATE
        call free_one_page() with MIGRATE_ISOLATE
    
                                    grab the zone lock
                                    unisolate pageblock
                                    release the zone lock
    
        grab the zone lock
        call __free_one_page() with MIGRATE_ISOLATE
        freepage go into isolate buddy list,
        although pageblock is already unisolated
    
    This may cause two problems.  One is that we can't use this page anymore
    until next isolation attempt of this pageblock, because freepage is on
    isolate buddy list.  The other is that freepage accouting could be wrong
    due to merging between different buddy list.  Freepages on isolate buddy
    list aren't counted as freepage, but ones on normal buddy list are
    counted as freepage.  If merge happens, buddy freepage on normal buddy
    list is inevitably moved to isolate buddy list without any consideration
    of freepage accouting so it could be incorrect.
    
     2. pages are added to normal buddy list while pageblock is isolated.
        It is similar with above case.
    
    This also may cause two problems.  One is that we can't keep these
    freepages from being allocated.  Although this pageblock is isolated,
    freepage would be added to normal buddy list so that it could be
    allocated without any restriction.  And the other problem is same as
    case 1, that it, incorrect freepage accouting.
    
    This race condition would be prevented by checking migratetype again
    with holding the zone lock.  Because it is somewhat heavy operation and
    it isn't needed in common case, we want to avoid rechecking as much as
    possible.  So this patch introduce new variable, nr_isolate_pageblock in
    struct zone to check if there is isolated pageblock.  With this, we can
    avoid to re-check migratetype in common case and do it only if there is
    isolated pageblock or migratetype is MIGRATE_ISOLATE.  This solve above
    mentioned problems.
    
    Changes from v3:
    Add one more check in free_one_page() that checks whether migratetype is
    MIGRATE_ISOLATE or not. Without this, abovementioned case 1 could happens.
    
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Cc: Tang Chen <tangchen@cn.fujitsu.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Wen Congyang <wency@cn.fujitsu.com>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Laura Abbott <lauraa@codeaurora.org>
    Cc: Heesub Shin <heesub.shin@samsung.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Ritesh Harjani <ritesh.list@gmail.com>
    Cc: Gioh Kim <gioh.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 114b5e2900e3944d9838c54a04d1cfbaa0a0c84d
Author: Weijie Yang <weijie.yang@samsung.com>
Date:   Thu Nov 13 15:19:05 2014 -0800

    zram: avoid kunmap_atomic() of a NULL pointer
    
    commit c406515239376fc93a30d5d03192182160cbd3fb upstream.
    
    zram could kunmap_atomic() a NULL pointer in a rare situation: a zram
    page becomes a full-zeroed page after a partial write io.  The current
    code doesn't handle this case and performs kunmap_atomic() on a NULL
    pointer, which panics the kernel.
    
    This patch fixes this issue.
    
    Signed-off-by: Weijie Yang <weijie.yang@samsung.com>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Dan Streetman <ddstreet@ieee.org>
    Cc: Nitin Gupta <ngupta@vflare.org>
    Cc: Weijie Yang <weijie.yang.kh@gmail.com>
    Acked-by: Jerome Marchand <jmarchan@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d837129d348a9c32378b9b2fb2631c34090c4d95
Author: Andreas Larsson <andreas@gaisler.com>
Date:   Wed Nov 5 15:52:08 2014 +0100

    sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks
    
    [ Upstream commit 1a17fdc4f4ed06b63fac1937470378a5441a663a ]
    
    Atomicity between xchg and cmpxchg cannot be guaranteed when xchg is
    implemented with a swap and cmpxchg is implemented with locks.
    Without this, e.g. mcs_spin_lock and mcs_spin_unlock are broken.
    
    Signed-off-by: Andreas Larsson <andreas@gaisler.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bf605822b8234347feb66d261196828052b295c
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Nov 7 09:50:48 2014 -0800

    sparc64: Do irq_{enter,exit}() around generic_smp_call_function*().
    
    [ Upstream commit ab5c780913bca0a5763ca05dd5c2cb5cb08ccb26 ]
    
    Otherwise rcu_irq_{enter,exit}() do not happen and we get dumps like:
    
    ====================
    [  188.275021] ===============================
    [  188.309351] [ INFO: suspicious RCU usage. ]
    [  188.343737] 3.18.0-rc3-00068-g20f3963-dirty #54 Not tainted
    [  188.394786] -------------------------------
    [  188.429170] include/linux/rcupdate.h:883 rcu_read_lock() used
    illegally while idle!
    [  188.505235]
    other info that might help us debug this:
    
    [  188.554230]
    RCU used illegally from idle CPU!
    rcu_scheduler_active = 1, debug_locks = 0
    [  188.637587] RCU used illegally from extended quiescent state!
    [  188.690684] 3 locks held by swapper/7/0:
    [  188.721932]  #0:  (&x->wait#11){......}, at: [<0000000000495de8>] complete+0x8/0x60
    [  188.797994]  #1:  (&p->pi_lock){-.-.-.}, at: [<000000000048510c>] try_to_wake_up+0xc/0x400
    [  188.881343]  #2:  (rcu_read_lock){......}, at: [<000000000048a910>] select_task_rq_fair+0x90/0xb40
    [  188.973043]stack backtrace:
    [  188.993879] CPU: 7 PID: 0 Comm: swapper/7 Not tainted 3.18.0-rc3-00068-g20f3963-dirty #54
    [  189.076187] Call Trace:
    [  189.089719]  [0000000000499360] lockdep_rcu_suspicious+0xe0/0x100
    [  189.147035]  [000000000048a99c] select_task_rq_fair+0x11c/0xb40
    [  189.202253]  [00000000004852d8] try_to_wake_up+0x1d8/0x400
    [  189.252258]  [000000000048554c] default_wake_function+0xc/0x20
    [  189.306435]  [0000000000495554] __wake_up_common+0x34/0x80
    [  189.356448]  [00000000004955b4] __wake_up_locked+0x14/0x40
    [  189.406456]  [0000000000495e08] complete+0x28/0x60
    [  189.448142]  [0000000000636e28] blk_end_sync_rq+0x8/0x20
    [  189.496057]  [0000000000639898] __blk_mq_end_request+0x18/0x60
    [  189.550249]  [00000000006ee014] scsi_end_request+0x94/0x180
    [  189.601286]  [00000000006ee334] scsi_io_completion+0x1d4/0x600
    [  189.655463]  [00000000006e51c4] scsi_finish_command+0xc4/0xe0
    [  189.708598]  [00000000006ed958] scsi_softirq_done+0x118/0x140
    [  189.761735]  [00000000006398ec] __blk_mq_complete_request_remote+0xc/0x20
    [  189.827383]  [00000000004c75d0] generic_smp_call_function_single_interrupt+0x150/0x1c0
    [  189.906581]  [000000000043e514] smp_call_function_single_client+0x14/0x40
    ====================
    
    Based almost entirely upon a patch by Paul E. McKenney.
    
    Reported-by: Meelis Roos <mroos@linux.ee>
    Tested-by: Meelis Roos <mroos@linux.ee>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76bbecb162e9a5e3b2a148655283b2b3f08691e6
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Nov 1 00:33:58 2014 -0400

    sparc64: Fix crashes in schizo_pcierr_intr_other().
    
    [ Upstream commit 7da89a2a3776442a57e918ca0b8678d1b16a7072 ]
    
    Meelis Roos reports crashes during bootup on a V480 that look like
    this:
    
    ====================
    [   61.300577] PCI: Scanning PBM /pci@9,600000
    [   61.304867] schizo f009b070: PCI host bridge to bus 0003:00
    [   61.310385] pci_bus 0003:00: root bus resource [io  0x7ffe9000000-0x7ffe9ffffff] (bus address [0x0000-0xffffff])
    [   61.320515] pci_bus 0003:00: root bus resource [mem 0x7fb00000000-0x7fbffffffff] (bus address [0x00000000-0xffffffff])
    [   61.331173] pci_bus 0003:00: root bus resource [bus 00]
    [   61.385344] Unable to handle kernel NULL pointer dereference
    [   61.390970] tsk->{mm,active_mm}->context = 0000000000000000
    [   61.396515] tsk->{mm,active_mm}->pgd = fff000b000002000
    [   61.401716]               \|/ ____ \|/
    [   61.401716]               "@'/ .. \`@"
    [   61.401716]               /_| \__/ |_\
    [   61.401716]                  \__U_/
    [   61.416362] swapper/0(0): Oops [#1]
    [   61.419837] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.18.0-rc1-00422-g2cc9188-dirty #24
    [   61.427975] task: fff000b0fd8e9c40 ti: fff000b0fd928000 task.ti: fff000b0fd928000
    [   61.435426] TSTATE: 0000004480e01602 TPC: 00000000004455e4 TNPC: 00000000004455e8 Y: 00000000    Not tainted
    [   61.445230] TPC: <schizo_pcierr_intr+0x104/0x560>
    [   61.449897] g0: 0000000000000000 g1: 0000000000000000 g2: 0000000000a10f78 g3: 000000000000000a
    [   61.458563] g4: fff000b0fd8e9c40 g5: fff000b0fdd82000 g6: fff000b0fd928000 g7: 000000000000000a
    [   61.467229] o0: 000000000000003d o1: 0000000000000000 o2: 0000000000000006 o3: fff000b0ffa5fc7e
    [   61.475894] o4: 0000000000060000 o5: c000000000000000 sp: fff000b0ffa5f3c1 ret_pc: 00000000004455cc
    [   61.484909] RPC: <schizo_pcierr_intr+0xec/0x560>
    [   61.489500] l0: fff000b0fd8e9c40 l1: 0000000000a20800 l2: 0000000000000000 l3: 000000000119a430
    [   61.498164] l4: 0000000001742400 l5: 00000000011cfbe0 l6: 00000000011319c0 l7: fff000b0fd8ea348
    [   61.506830] i0: 0000000000000000 i1: fff000b0fdb34000 i2: 0000000320000000 i3: 0000000000000000
    [   61.515497] i4: 00060002010b003f i5: 0000040004e02000 i6: fff000b0ffa5f481 i7: 00000000004a9920
    [   61.524175] I7: <handle_irq_event_percpu+0x40/0x140>
    [   61.529099] Call Trace:
    [   61.531531]  [00000000004a9920] handle_irq_event_percpu+0x40/0x140
    [   61.537681]  [00000000004a9a58] handle_irq_event+0x38/0x80
    [   61.543145]  [00000000004ac77c] handle_fasteoi_irq+0xbc/0x200
    [   61.548860]  [00000000004a9084] generic_handle_irq+0x24/0x40
    [   61.554500]  [000000000042be0c] handler_irq+0xac/0x100
    ====================
    
    The problem is that pbm->pci_bus->self is NULL.
    
    This code is trying to go through the standard PCI config space
    interfaces to read the PCI controller's PCI_STATUS register.
    
    This doesn't work, because we more often than not do not enumerate
    the PCI controller as a bonafide PCI device during the OF device
    node scan.  Therefore bus->self remains NULL.
    
    Existing common code for PSYCHO and PSYCHO-like PCI controllers
    handles this properly, by doing the config space access directly.
    
    Do the same here, pbm->pci_ops->{read,write}().
    
    Reported-by: Meelis Roos <mroos@linux.ee>
    Tested-by: Meelis Roos <mroos@linux.ee>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c39be730cbfb1c2a111eef3e5c1dc6b155ced0e5
Author: Dwight Engen <dwight.engen@oracle.com>
Date:   Thu Oct 30 15:55:35 2014 -0400

    sunvdc: don't call VD_OP_GET_VTOC
    
    [ Upstream commit 85b0c6e62c48bb9179fd5b3e954f362fb346cbd5 ]
    
    The VD_OP_GET_VTOC operation will succeed only if the vdisk backend has a
    VTOC label, otherwise it will fail. In particular, it will return error
    48 (ENOTSUP) if the disk has an EFI label. VTOC disk labels are already
    handled by directly reading the disk in block/partitions/sun.c (enabled by
    CONFIG_SUN_PARTITION which defaults to y on SPARC). Since port->label is
    unused in the driver, remove the call and the field.
    
    Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5927eef9bb2b15ed1eab14598141f68c4893df1
Author: Dwight Engen <dwight.engen@oracle.com>
Date:   Fri Sep 19 09:43:02 2014 -0400

    vio: fix reuse of vio_dring slot
    
    [ Upstream commit d0aedcd4f14a22e23b313f42b7e6e6ebfc0fbc31 ]
    
    vio_dring_avail() will allow use of every dring entry, but when the last
    entry is allocated then dr->prod == dr->cons which is indistinguishable from
    the ring empty condition. This causes the next allocation to reuse an entry.
    When this happens in sunvdc, the server side vds driver begins nack'ing the
    messages and ends up resetting the ldc channel. This problem does not effect
    sunvnet since it checks for < 2.
    
    The fix here is to just never allocate the very last dring slot so that full
    and empty are not the same condition. The request start path was changed to
    check for the ring being full a bit earlier, and to stop the blk_queue if
    there is no space left. The blk_queue will be restarted once the ring is
    only half full again. The number of ring entries was increased to 512 which
    matches the sunvnet and Solaris vdc drivers, and greatly reduces the
    frequency of hitting the ring full condition and the associated blk_queue
    stop/starting. The checks in sunvent were adjusted to account for
    vio_dring_avail() returning 1 less.
    
    Orabug: 19441666
    OraBZ: 14983
    
    Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a63fd23785bc20d06e2c46a02c907ee8d99738f5
Author: Dwight Engen <dwight.engen@oracle.com>
Date:   Fri Sep 19 09:42:53 2014 -0400

    sunvdc: limit each sg segment to a page
    
    [ Upstream commit 5eed69ffd248c9f68f56c710caf07db134aef28b ]
    
    ldc_map_sg() could fail its check that the number of pages referred to
    by the sg scatterlist was <= the number of cookies.
    
    This fixes the issue by doing a similar thing to the xen-blkfront driver,
    ensuring that the scatterlist will only ever contain a segment count <=
    port->ring_cookies, and each segment will be page aligned, and <= page
    size. This ensures that the scatterlist is always mappable.
    
    Orabug: 19347817
    OraBZ: 15945
    
    Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 300ceae5fa23f3d5277f52bd0f92fd5094748cfb
Author: Allen Pais <allen.pais@oracle.com>
Date:   Fri Sep 19 09:42:26 2014 -0400

    sunvdc: compute vdisk geometry from capacity
    
    [ Upstream commit de5b73f08468b4fc5e2f6d1505f650262622f78b ]
    
    The LDom diskserver doesn't return reliable geometry data. In addition,
    the types for all fields in the vio_disk_geom are u16, which were being
    truncated in the cast into the u8's of the Linux struct hd_geometry.
    
    Modify vdc_getgeo() to compute the geometry from the disk's capacity in a
    manner consistent with xen-blkfront::blkif_getgeo().
    
    Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b89d737bd5c1a6345fa8882273486389e807619
Author: Allen Pais <allen.pais@oracle.com>
Date:   Fri Sep 19 09:42:14 2014 -0400

    sunvdc: add cdrom and v1.1 protocol support
    
    [ Upstream commit 9bce21828d54a95143f1b74619705c2dd8e88b92 ]
    
    Interpret the media type from v1.1 protocol to support CDROM/DVD.
    
    For v1.0 protocol, a disk's size continues to be calculated from the
    geometry returned by the vdisk server. The geometry returned by the server
    can be less than the actual number of sectors available in the backing
    image/device due to the rounding in the division used to compute the
    geometry in the vdisk server.
    
    In v1.1 protocol a disk's actual size in sectors is returned during the
    handshake. Use this size when v1.1 protocol is negotiated. Since this size
    will always be larger than the former geometry computed size, disks created
    under v1.0 will be forwards compatible to v1.1, but not vice versa.
    
    Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a54857a74cf6724a872217477fa5827d6b9d26c8
Author: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Date:   Thu Nov 13 09:14:34 2014 +0100

    smsc911x: power-up phydev before doing a software reset.
    
    [ Upstream commit ccf899a27c08038db91765ff12bb0380dcd85887 ]
    
    With commit be9dad1f9f26604fb ("net: phy: suspend phydev when going
    to HALTED"), the PHY device will be put in a low-power mode using
    BMCR_PDOWN if the the interface is set down. The smsc911x driver does
    a software_reset opening the device driver (ndo_open). In such case,
    the PHY must be powered-up before access to any register and before
    calling the software_reset function. Otherwise, as the PHY is powered
    down the software reset fails and the interface can not be enabled
    again.
    
    This patch fixes this scenario that is easy to reproduce setting down
    the network interface and setting up again.
    
        $ ifconfig eth0 down
        $ ifconfig eth0 up
        ifconfig: SIOCSIFFLAGS: Input/output error
    
    Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93a1c17dae4ace8ed6e8718a0918ba19332053ee
Author: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com>
Date:   Thu Nov 13 04:24:10 2014 +0900

    netlink: Properly unbind in error conditions.
    
    [ Upstream commit 6251edd932ce3faadbfe27b0a0fe79780e0972e9 ]
    
    Even if netlink_kernel_cfg::unbind is implemented the unbind() method is
    not called, because cfg->unbind is omitted in __netlink_kernel_create().
    And fix wrong argument of test_bit() and off by one problem.
    
    At this point, no unbind() method is implemented, so there is no real
    issue.
    
    Fixes: 4f520900522f ("netlink: have netlink per-protocol bind function return an error code.")
    Signed-off-by: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com>
    Cc: Richard Guy Briggs <rgb@redhat.com>
    Acked-by: Richard Guy Briggs <rgb@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2326ed5e88f6cecd1e03f7718eb11480f046d887
Author: Richard Cochran <richardcochran@gmail.com>
Date:   Wed Nov 12 11:33:52 2014 +0100

    net: ptp: fix time stamp matching logic for VLAN packets.
    
    [ Upstream commit cca04b2854ecfb7cd1b8ee84ab38bc99af59f526 ]
    
    Commit ae5c6c6d "ptp: Classify ptp over ip over vlan packets" changed the
    code in two drivers that matches time stamps with PTP frames, with the goal
    of allowing VLAN tagged PTP packets to receive hardware time stamps.
    
    However, that commit failed to account for the VLAN header when parsing
    IPv4 packets. This patch fixes those two drivers to correctly match VLAN
    tagged IPv4/UDP PTP messages with their time stamps.
    
    This patch should also be applied to v3.17.
    
    Signed-off-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1875ee03bfb9a00c9c23efec6208a912b1946f29
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Nov 10 17:54:25 2014 -0800

    ipv6: fix IPV6_PKTINFO with v4 mapped
    
    [ Upstream commit 5337b5b75cd9bd3624a6820e3c2a084d2480061c ]
    
    Use IS_ENABLED(CONFIG_IPV6), to enable this code if IPv6 is
    a module.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Fixes: c8e6ad0829a7 ("ipv6: honor IPV6_PKTINFO with v4 mapped addresses on sendmsg")
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f92bef53b0f3306abe272be293435d445a4c3b6
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Mon Nov 10 18:00:09 2014 +0100

    net: sctp: fix memory leak in auth key management
    
    [ Upstream commit 4184b2a79a7612a9272ce20d639934584a1f3786 ]
    
    A very minimal and simple user space application allocating an SCTP
    socket, setting SCTP_AUTH_KEY setsockopt(2) on it and then closing
    the socket again will leak the memory containing the authentication
    key from user space:
    
    unreferenced object 0xffff8800837047c0 (size 16):
      comm "a.out", pid 2789, jiffies 4296954322 (age 192.258s)
      hex dump (first 16 bytes):
        01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<ffffffff816d7e8e>] kmemleak_alloc+0x4e/0xb0
        [<ffffffff811c88d8>] __kmalloc+0xe8/0x270
        [<ffffffffa0870c23>] sctp_auth_create_key+0x23/0x50 [sctp]
        [<ffffffffa08718b1>] sctp_auth_set_key+0xa1/0x140 [sctp]
        [<ffffffffa086b383>] sctp_setsockopt+0xd03/0x1180 [sctp]
        [<ffffffff815bfd94>] sock_common_setsockopt+0x14/0x20
        [<ffffffff815beb61>] SyS_setsockopt+0x71/0xd0
        [<ffffffff816e58a9>] system_call_fastpath+0x12/0x17
        [<ffffffffffffffff>] 0xffffffffffffffff
    
    This is bad because of two things, we can bring down a machine from
    user space when auth_enable=1, but also we would leave security sensitive
    keying material in memory without clearing it after use. The issue is
    that sctp_auth_create_key() already sets the refcount to 1, but after
    allocation sctp_auth_set_key() does an additional refcount on it, and
    thus leaving it around when we free the socket.
    
    Fixes: 65b07e5d0d0 ("[SCTP]: API updates to suport SCTP-AUTH extensions.")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9d8f492baeca8b76866840cb831c77e0dcba67d
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Mon Nov 10 17:54:26 2014 +0100

    net: sctp: fix NULL pointer dereference in af->from_addr_param on malformed packet
    
    [ Upstream commit e40607cbe270a9e8360907cb1e62ddf0736e4864 ]
    
    An SCTP server doing ASCONF will panic on malformed INIT ping-of-death
    in the form of:
    
      ------------ INIT[PARAM: SET_PRIMARY_IP] ------------>
    
    While the INIT chunk parameter verification dissects through many things
    in order to detect malformed input, it misses to actually check parameters
    inside of parameters. E.g. RFC5061, section 4.2.4 proposes a 'set primary
    IP address' parameter in ASCONF, which has as a subparameter an address
    parameter.
    
    So an attacker may send a parameter type other than SCTP_PARAM_IPV4_ADDRESS
    or SCTP_PARAM_IPV6_ADDRESS, param_type2af() will subsequently return 0
    and thus sctp_get_af_specific() returns NULL, too, which we then happily
    dereference unconditionally through af->from_addr_param().
    
    The trace for the log:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000078
    IP: [<ffffffffa01e9c62>] sctp_process_init+0x492/0x990 [sctp]
    PGD 0
    Oops: 0000 [#1] SMP
    [...]
    Pid: 0, comm: swapper Not tainted 2.6.32-504.el6.x86_64 #1 Bochs Bochs
    RIP: 0010:[<ffffffffa01e9c62>]  [<ffffffffa01e9c62>] sctp_process_init+0x492/0x990 [sctp]
    [...]
    Call Trace:
     <IRQ>
     [<ffffffffa01f2add>] ? sctp_bind_addr_copy+0x5d/0xe0 [sctp]
     [<ffffffffa01e1fcb>] sctp_sf_do_5_1B_init+0x21b/0x340 [sctp]
     [<ffffffffa01e3751>] sctp_do_sm+0x71/0x1210 [sctp]
     [<ffffffffa01e5c09>] ? sctp_endpoint_lookup_assoc+0xc9/0xf0 [sctp]
     [<ffffffffa01e61f6>] sctp_endpoint_bh_rcv+0x116/0x230 [sctp]
     [<ffffffffa01ee986>] sctp_inq_push+0x56/0x80 [sctp]
     [<ffffffffa01fcc42>] sctp_rcv+0x982/0xa10 [sctp]
     [<ffffffffa01d5123>] ? ipt_local_in_hook+0x23/0x28 [iptable_filter]
     [<ffffffff8148bdc9>] ? nf_iterate+0x69/0xb0
     [<ffffffff81496d10>] ? ip_local_deliver_finish+0x0/0x2d0
     [<ffffffff8148bf86>] ? nf_hook_slow+0x76/0x120
     [<ffffffff81496d10>] ? ip_local_deliver_finish+0x0/0x2d0
    [...]
    
    A minimal way to address this is to check for NULL as we do on all
    other such occasions where we know sctp_get_af_specific() could
    possibly return with NULL.
    
    Fixes: d6de3097592b ("[SCTP]: Add the handling of "Set Primary IP Address" parameter to INIT")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 511f1df2f2d1871f3a90852aa33dfb6c8d47ba08
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Nov 10 11:50:21 2014 +0100

    net: ppp: Don't call bpf_prog_create() in ppp_lock
    
    [ Upstream commit 5748eb8f8e989a9da1ac7c96dc73d68cbdedf7df ]
    
    In ppp_ioctl(), bpf_prog_create() is called inside ppp_lock, which
    eventually calls vmalloc() and hits BUG_ON() in vmalloc.c.  This patch
    works around the problem by moving the allocation outside the lock.
    
    The bug was revealed by the recent change in net/core/filter.c, as it
    allocates via vmalloc() instead of kmalloc() now.
    
    Reported-and-tested-by: Stefan Seyfried <stefan.seyfried@googlemail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b42813b304a937efec5c7566df400b0f4272ecb0
Author: Marcelo Leitner <mleitner@redhat.com>
Date:   Thu Nov 13 14:43:08 2014 -0200

    vxlan: Do not reuse sockets for a different address family
    
    [ Upstream commit 19ca9fc1445b76b60d34148f7ff837b055f5dcf3 ]
    
    Currently, we only match against local port number in order to reuse
    socket. But if this new vxlan wants an IPv6 socket and a IPv4 one bound
    to that port, vxlan will reuse an IPv4 socket as IPv6 and a panic will
    follow. The following steps reproduce it:
    
       # ip link add vxlan6 type vxlan id 42 group 229.10.10.10 \
           srcport 5000 6000 dev eth0
       # ip link add vxlan7 type vxlan id 43 group ff0e::110 \
           srcport 5000 6000 dev eth0
       # ip link set vxlan6 up
       # ip link set vxlan7 up
       <panic>
    
    [    4.187481] BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
    ...
    [    4.188076] Call Trace:
    [    4.188085]  [<ffffffff81667c4a>] ? ipv6_sock_mc_join+0x3a/0x630
    [    4.188098]  [<ffffffffa05a6ad6>] vxlan_igmp_join+0x66/0xd0 [vxlan]
    [    4.188113]  [<ffffffff810a3430>] process_one_work+0x220/0x710
    [    4.188125]  [<ffffffff810a33c4>] ? process_one_work+0x1b4/0x710
    [    4.188138]  [<ffffffff810a3a3b>] worker_thread+0x11b/0x3a0
    [    4.188149]  [<ffffffff810a3920>] ? process_one_work+0x710/0x710
    
    So address family must also match in order to reuse a socket.
    
    Reported-by: Jean-Tsung Hsiao <jhsiao@redhat.com>
    Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fee76308e4193dc38412e7ff7e7b7e369b91fb5
Author: Jesse Gross <jesse@nicira.com>
Date:   Mon Nov 10 11:45:13 2014 -0800

    udptunnel: Add SKB_GSO_UDP_TUNNEL during gro_complete.
    
    [ Upstream commit cfdf1e1ba5bf55e095cf4bcaa9585c4759f239e8 ]
    
    When doing GRO processing for UDP tunnels, we never add
    SKB_GSO_UDP_TUNNEL to gso_type - only the type of the inner protocol
    is added (such as SKB_GSO_TCPV4). The result is that if the packet is
    later resegmented we will do GSO but not treat it as a tunnel. This
    results in UDP fragmentation of the outer header instead of (i.e.) TCP
    segmentation of the inner header as was originally on the wire.
    
    Signed-off-by: Jesse Gross <jesse@nicira.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64fd58eb83e87feb32a248c01301418e51b0609c
Author: Karl Beldan <karl.beldan@rivierawaves.com>
Date:   Wed Nov 5 15:32:59 2014 +0100

    net: mv643xx_eth: reclaim TX skbs only when released by the HW
    
    [ Upstream commit 2c2a9cbd64387d6b70ac5db013e9bfe9412c7354 ]
    
    ATM, txq_reclaim will dequeue and free an skb for each tx desc released
    by the hw that has TX_LAST_DESC set. However, in case of TSO, each
    hw desc embedding the last part of a segment has TX_LAST_DESC set,
    losing the one-to-one 'last skb frag'/'TX_LAST_DESC set' correspondance,
    which causes data corruption.
    
    Fix this by checking TX_ENABLE_INTERRUPT instead of TX_LAST_DESC, and
    warn when trying to dequeue from an empty txq (which can be symptomatic
    of releasing skbs prematurely).
    
    Fixes: 3ae8f4e0b98 ('net: mv643xx_eth: Implement software TSO')
    Reported-by: Slawomir Gajzner <slawomir.gajzner@gmail.com>
    Reported-by: Julien D'Ascenzio <jdascenzio@yahoo.fr>
    Signed-off-by: Karl Beldan <karl.beldan@rivierawaves.com>
    Cc: Ian Campbell <ijc@hellion.org.uk>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
    Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fda9a0901fc790ab8b65fcbb2249ded7c6d9e58
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Mon Nov 3 09:19:30 2014 +0100

    gre6: Move the setting of dev->iflink into the ndo_init functions.
    
    [ Upstream commit f03eb128e3f4276f46442d14f3b8f864f3775821 ]
    
    Otherwise it gets overwritten by register_netdev().
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c84dd655b276930b7b8e73819a114b551fa2a7e
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Mon Nov 3 09:19:29 2014 +0100

    sit: Use ipip6_tunnel_init as the ndo_init function.
    
    [ Upstream commit ebe084aafb7e93adf210e80043c9f69adf56820d ]
    
    ipip6_tunnel_init() sets the dev->iflink via a call to
    ipip6_tunnel_bind_dev(). After that, register_netdevice()
    sets dev->iflink = -1. So we loose the iflink configuration
    for ipv6 tunnels. Fix this by using ipip6_tunnel_init() as the
    ndo_init function. Then ipip6_tunnel_init() is called after
    dev->iflink is set to -1 from register_netdevice().
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7eaceeab997281d9881ba197aad97fbd37e00560
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Mon Nov 3 09:19:28 2014 +0100

    vti6: Use vti6_dev_init as the ndo_init function.
    
    [ Upstream commit 16a0231bf7dc3fb37e9b1f1cb1a277dc220b5c5e ]
    
    vti6_dev_init() sets the dev->iflink via a call to
    vti6_link_config(). After that, register_netdevice()
    sets dev->iflink = -1. So we loose the iflink configuration
    for vti6 tunnels. Fix this by using vti6_dev_init() as the
    ndo_init function. Then vti6_dev_init() is called after
    dev->iflink is set to -1 from register_netdevice().
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 472f6466850873357b61185409990a3419e064df
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Mon Nov 3 09:19:27 2014 +0100

    ip6_tunnel: Use ip6_tnl_dev_init as the ndo_init function.
    
    [ Upstream commit 6c6151daaf2d8dc2046d9926539feed5f66bf74e ]
    
    ip6_tnl_dev_init() sets the dev->iflink via a call to
    ip6_tnl_link_config(). After that, register_netdevice()
    sets dev->iflink = -1. So we loose the iflink configuration
    for ipv6 tunnels. Fix this by using ip6_tnl_dev_init() as the
    ndo_init function. Then ip6_tnl_dev_init() is called after
    dev->iflink is set to -1 from register_netdevice().
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36edabe426f3267e0e3fa6f026244bf02c5d983c
Author: Nikolay Aleksandrov <nikolay@redhat.com>
Date:   Tue Oct 28 10:44:01 2014 +0100

    inet: frags: remove the WARN_ON from inet_evict_bucket
    
    [ Upstream commit d70127e8a942364de8dd140fe73893efda363293 ]
    
    The WARN_ON in inet_evict_bucket can be triggered by a valid case:
    inet_frag_kill and inet_evict_bucket can be running in parallel on the
    same queue which means that there has been at least one more ref added
    by a previous inet_frag_find call, but inet_frag_kill can delete the
    timer before inet_evict_bucket which will cause the WARN_ON() there to
    trigger since we'll have refcnt!=1. Now, this case is valid because the
    queue is being "killed" for some reason (removed from the chain list and
    its timer deleted) so it will get destroyed in the end by one of the
    inet_frag_put() calls which reaches 0 i.e. refcnt is still valid.
    
    CC: Florian Westphal <fw@strlen.de>
    CC: Eric Dumazet <eric.dumazet@gmail.com>
    CC: Patrick McLean <chutzpah@gentoo.org>
    
    Fixes: b13d3cbfb8e8 ("inet: frag: move eviction of queues to work queue")
    Reported-by: Patrick McLean <chutzpah@gentoo.org>
    Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d62ae5ecf4980dd90a140c25dc2db545ba5c685
Author: Nikolay Aleksandrov <nikolay@redhat.com>
Date:   Tue Oct 28 10:30:34 2014 +0100

    inet: frags: fix a race between inet_evict_bucket and inet_frag_kill
    
    [ Upstream commit 65ba1f1ec0eff1c25933468e1d238201c0c2cb29 ]
    
    When the evictor is running it adds some chosen frags to a local list to
    be evicted once the chain lock has been released but at the same time
    the *frag_queue can be running for some of the same queues and it
    may call inet_frag_kill which will wait on the chain lock and
    will then delete the queue from the wrong list since it was added in the
    eviction one. The fix is simple - check if the queue has the evict flag
    set under the chain lock before deleting it, this is safe because the
    evict flag is set only under that lock and having the flag set also means
    that the queue has been detached from the chain list, so no need to delete
    it again.
    An important note to make is that we're safe w.r.t refcnt because
    inet_frag_kill and inet_evict_bucket will sync on the del_timer operation
    where only one of the two can succeed (or if the timer is executing -
    none of them), the cases are:
    1. inet_frag_kill succeeds in del_timer
     - then the timer ref is removed, but inet_evict_bucket will not add
       this queue to its expire list but will restart eviction in that chain
    2. inet_evict_bucket succeeds in del_timer
     - then the timer ref is kept until the evictor "expires" the queue, but
       inet_frag_kill will remove the initial ref and will set
       INET_FRAG_COMPLETE which will make the frag_expire fn just to remove
       its ref.
    In the end all of the queue users will do an inet_frag_put and the one
    that reaches 0 will free it. The refcount balance should be okay.
    
    CC: Florian Westphal <fw@strlen.de>
    CC: Eric Dumazet <eric.dumazet@gmail.com>
    CC: Patrick McLean <chutzpah@gentoo.org>
    
    Fixes: b13d3cbfb8e8 ("inet: frag: move eviction of queues to work queue")
    Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
    Reported-by: Patrick McLean <chutzpah@gentoo.org>
    Tested-by: Patrick McLean <chutzpah@gentoo.org>
    Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Reviewed-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93a4b6091489a164f80b71806452dc43f0ea9935
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Mon Sep 29 12:41:56 2014 -0600

    x86/build: Add arch/x86/purgatory/ make generated files to gitignore
    
    commit 4ea48a01bb1a99f4185b77cd90cf962730336cc4 upstream.
    
    The following generated files are missing from gitignore
    and show up in git status after x86_64 build. Add them
    to gitignore.
    
        arch/x86/purgatory/kexec-purgatory.c
        arch/x86/purgatory/purgatory.ro
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Link: http://lkml.kernel.org/r/1412016116-7213-1-git-send-email-shuahkh@osg.samsung.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>