commit 83a926f7a4e39fb6be0576024e67fe161593defa
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Dec 16 09:34:39 2014 -0800

    Linux 3.14.27

commit 32af484e0c4b7df059045df45261b3a56a3d8c6d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Dec 6 18:02:55 2014 +0100

    ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery
    
    commit 66139a48cee1530c91f37c145384b4ee7043f0b7 upstream.
    
    In snd_usbmidi_error_timer(), the driver tries to resubmit MIDI input
    URBs to reactivate the MIDI stream, but this causes the error when
    some of URBs are still pending like:
    
     WARNING: CPU: 0 PID: 0 at ../drivers/usb/core/urb.c:339 usb_submit_urb+0x5f/0x70()
     URB ef705c40 submitted while active
     CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.6-2-desktop #1
     Hardware name: FOXCONN TPS01/TPS01, BIOS 080015  03/23/2010
      c0984bfa f4009ed4 c078deaf f4009ee4 c024c884 c09a135c f4009f00 00000000
      c0984bfa 00000153 c061ac4f c061ac4f 00000009 00000001 ef705c40 e854d1c0
      f4009eec c024c8d3 00000009 f4009ee4 c09a135c f4009f00 f4009f04 c061ac4f
     Call Trace:
      [<c0205df6>] try_stack_unwind+0x156/0x170
      [<c020482a>] dump_trace+0x5a/0x1b0
      [<c0205e56>] show_trace_log_lvl+0x46/0x50
      [<c02049d1>] show_stack_log_lvl+0x51/0xe0
      [<c0205eb7>] show_stack+0x27/0x50
      [<c078deaf>] dump_stack+0x45/0x65
      [<c024c884>] warn_slowpath_common+0x84/0xa0
      [<c024c8d3>] warn_slowpath_fmt+0x33/0x40
      [<c061ac4f>] usb_submit_urb+0x5f/0x70
      [<f7974104>] snd_usbmidi_submit_urb+0x14/0x60 [snd_usbmidi_lib]
      [<f797483a>] snd_usbmidi_error_timer+0x6a/0xa0 [snd_usbmidi_lib]
      [<c02570c0>] call_timer_fn+0x30/0x130
      [<c0257442>] run_timer_softirq+0x1c2/0x260
      [<c0251493>] __do_softirq+0xc3/0x270
      [<c0204732>] do_softirq_own_stack+0x22/0x30
      [<c025186d>] irq_exit+0x8d/0xa0
      [<c0795228>] smp_apic_timer_interrupt+0x38/0x50
      [<c0794a3c>] apic_timer_interrupt+0x34/0x3c
      [<c0673d9e>] cpuidle_enter_state+0x3e/0xd0
      [<c028bb8d>] cpu_idle_loop+0x29d/0x3e0
      [<c028bd23>] cpu_startup_entry+0x53/0x60
      [<c0bfac1e>] start_kernel+0x415/0x41a
    
    For avoiding these errors, check the pending URBs and skip
    resubmitting such ones.
    
    Reported-and-tested-by: Stefan Seyfried <stefan.seyfried@googlemail.com>
    Acked-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c3ae7b813985abbeeff3053dcba739971899221
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 13 07:11:38 2014 +0100

    ALSA: hda - Fix built-in mic at resume on Lenovo Ideapad S210
    
    commit fedb2245cbb8d823e449ebdd48ba9bb35c071ce0 upstream.
    
    The built-in mic boost volume gets almost muted after suspend/resume
    on Lenovo Ideapad S210.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88121
    Reported-and-tested-by: Roman Kagan <rkagan@mail.ru>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8882f5b3a6e564a9d941cee70e4bfefbe5f693eb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Dec 9 19:58:53 2014 +0100

    ALSA: hda - Add EAPD fixup for ASUS Z99He laptop
    
    commit f62f5eff3d40a56ad1cf0d81a6cac8dd8743e8a1 upstream.
    
    The same fixup to enable EAPD is needed for ASUS Z99He with AD1986A
    codec like another ASUS machine.
    
    Reported-and-tested-by: Dmitry V. Zimin <pfzim@mail.ru>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8de0e8d9ab1c72cfbee768a168668c54a2aa5b00
Author: Ronald Wahl <ronald.wahl@raritan.com>
Date:   Thu Nov 6 11:52:13 2014 +0100

    mac80211: Fix regression that triggers a kernel BUG with CCMP
    
    commit 4f031fa9f188b2b0641ac20087d9e16bcfb4e49d upstream.
    
    Commit 7ec7c4a9a686c608315739ab6a2b0527a240883c (mac80211: port CCMP to
    cryptoapi's CCM driver) introduced a regression when decrypting empty
    packets (data_len == 0). This will lead to backtraces like:
    
    (scatterwalk_start) from [<c01312f4>] (scatterwalk_map_and_copy+0x2c/0xa8)
    (scatterwalk_map_and_copy) from [<c013a5a0>] (crypto_ccm_decrypt+0x7c/0x25c)
    (crypto_ccm_decrypt) from [<c032886c>] (ieee80211_aes_ccm_decrypt+0x160/0x170)
    (ieee80211_aes_ccm_decrypt) from [<c031c628>] (ieee80211_crypto_ccmp_decrypt+0x1ac/0x238)
    (ieee80211_crypto_ccmp_decrypt) from [<c032ef28>] (ieee80211_rx_handlers+0x870/0x1d24)
    (ieee80211_rx_handlers) from [<c0330c7c>] (ieee80211_prepare_and_rx_handle+0x8a0/0x91c)
    (ieee80211_prepare_and_rx_handle) from [<c0331260>] (ieee80211_rx+0x568/0x730)
    (ieee80211_rx) from [<c01d3054>] (__carl9170_rx+0x94c/0xa20)
    (__carl9170_rx) from [<c01d3324>] (carl9170_rx_stream+0x1fc/0x320)
    (carl9170_rx_stream) from [<c01cbccc>] (carl9170_usb_tasklet+0x80/0xc8)
    (carl9170_usb_tasklet) from [<c00199dc>] (tasklet_hi_action+0x88/0xcc)
    (tasklet_hi_action) from [<c00193c8>] (__do_softirq+0xcc/0x200)
    (__do_softirq) from [<c0019734>] (irq_exit+0x80/0xe0)
    (irq_exit) from [<c0009c10>] (handle_IRQ+0x64/0x80)
    (handle_IRQ) from [<c000c3a0>] (__irq_svc+0x40/0x4c)
    (__irq_svc) from [<c0009d44>] (arch_cpu_idle+0x2c/0x34)
    
    Such packets can appear for example when using the carl9170 wireless driver
    because hardware sometimes generates garbage when the internal FIFO overruns.
    
    This patch adds an additional length check.
    
    Fixes: 7ec7c4a9a686 ("mac80211: port CCMP to cryptoapi's CCM driver")
    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Ronald Wahl <ronald.wahl@raritan.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dc228a54777c8a9c80bef0d376fafde76ce1d2b
Author: Anton Blanchard <anton@samba.org>
Date:   Thu Nov 27 08:11:28 2014 +1100

    powerpc: 32 bit getcpu VDSO function uses 64 bit instructions
    
    commit 152d44a853e42952f6c8a504fb1f8eefd21fd5fd upstream.
    
    I used some 64 bit instructions when adding the 32 bit getcpu VDSO
    function. Fix it.
    
    Fixes: 18ad51dd342a ("powerpc: Add VDSO version of getcpu")
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d4a6dae27501820b234c81dc178901cddfceeda
Author: Todd Fujinaka <todd.fujinaka@intel.com>
Date:   Tue Jun 17 06:58:11 2014 +0000

    igb: bring link up when PHY is powered up
    
    commit aec653c43b0c55667355e26d7de1236bda9fb4e3 upstream.
    
    Call igb_setup_link() when the PHY is powered up.
    
    Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
    Reported-by: Jeff Westfahl <jeff.westfahl@ni.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Vincent Donnefort <vdonnefort@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e06c8fdf30ebd0060dff15d4e50122d5d637620
Author: Kan Liang <kan.liang@intel.com>
Date:   Mon Jul 14 12:25:56 2014 -0700

    perf/x86/intel: Protect LBR and extra_regs against KVM lying
    
    commit 338b522ca43cfd32d11a370f4203bcd089c6c877 upstream.
    
    With -cpu host, KVM reports LBR and extra_regs support, if the host has
    support.
    
    When the guest perf driver tries to access LBR or extra_regs MSR,
    it #GPs all MSR accesses,since KVM doesn't handle LBR and extra_regs support.
    So check the related MSRs access right once at initialization time to avoid
    the error access at runtime.
    
    For reproducing the issue, please build the kernel with CONFIG_KVM_INTEL = y
    (for host kernel).
    And CONFIG_PARAVIRT = n and CONFIG_KVM_GUEST = n (for guest kernel).
    Start the guest with -cpu host.
    Run perf record with --branch-any or --branch-filter in guest to trigger LBR
    Run perf stat offcore events (E.g. LLC-loads/LLC-load-misses ...) in guest to
    trigger offcore_rsp #GP
    
    Signed-off-by: Kan Liang <kan.liang@intel.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Maria Dimakopoulou <maria.n.dimakopoulou@gmail.com>
    Cc: Mark Davies <junk@eslaf.co.uk>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Yan, Zheng <zheng.z.yan@intel.com>
    Link: http://lkml.kernel.org/r/1405365957-20202-1-git-send-email-kan.liang@intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Dongsu Park <dongsu.park@profitbricks.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 729ae1da461bbaf1ab1a1a7be7ce60f969a47b54
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Wed Dec 3 12:13:58 2014 +0100

    net: sctp: use MAX_HEADER for headroom reserve in output path
    
    [ Upstream commit 9772b54c55266ce80c639a80aa68eeb908f8ecf5 ]
    
    To accomodate for enough headroom for tunnels, use MAX_HEADER instead
    of LL_MAX_HEADER. Robert reported that he has hit after roughly 40hrs
    of trinity an skb_under_panic() via SCTP output path (see reference).
    I couldn't reproduce it from here, but not using MAX_HEADER as elsewhere
    in other protocols might be one possible cause for this.
    
    In any case, it looks like accounting on chunks themself seems to look
    good as the skb already passed the SCTP output path and did not hit
    any skb_over_panic(). Given tunneling was enabled in his .config, the
    headroom would have been expanded by MAX_HEADER in this case.
    
    Reported-by: Robert Święcki <robert@swiecki.net>
    Reference: https://lkml.org/lkml/2014/12/1/507
    Fixes: 594ccc14dfe4d ("[SCTP] Replace incorrect use of dev_alloc_skb with alloc_skb in sctp_packet_transmit().")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: 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 f4d35c2957a3a1f80c7554f2326cac11677888a1
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Dec 2 04:30:59 2014 -0800

    net: mvneta: fix race condition in mvneta_tx()
    
    [ Upstream commit 5f478b41033606d325e420df693162e2524c2b94 ]
    
    mvneta_tx() dereferences skb to get skb->len too late,
    as hardware might have completed the transmit and TX completion
    could have freed the skb from another cpu.
    
    Fixes: 71f6d1b31fb1 ("net: mvneta: replace Tx timer with a real interrupt")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e50385979b82c896e9c3b3162b4a5f09a8efd72d
Author: willy tarreau <w@1wt.eu>
Date:   Tue Dec 2 08:13:04 2014 +0100

    net: mvneta: fix Tx interrupt delay
    
    [ Upstream commit aebea2ba0f7495e1a1c9ea5e753d146cb2f6b845 ]
    
    The mvneta driver sets the amount of Tx coalesce packets to 16 by
    default. Normally that does not cause any trouble since the driver
    uses a much larger Tx ring size (532 packets). But some sockets
    might run with very small buffers, much smaller than the equivalent
    of 16 packets. This is what ping is doing for example, by setting
    SNDBUF to 324 bytes rounded up to 2kB by the kernel.
    
    The problem is that there is no documented method to force a specific
    packet to emit an interrupt (eg: the last of the ring) nor is it
    possible to make the NIC emit an interrupt after a given delay.
    
    In this case, it causes trouble, because when ping sends packets over
    its raw socket, the few first packets leave the system, and the first
    15 packets will be emitted without an IRQ being generated, so without
    the skbs being freed. And since the socket's buffer is small, there's
    no way to reach that amount of packets, and the ping ends up with
    "send: no buffer available" after sending 6 packets. Running with 3
    instances of ping in parallel is enough to hide the problem, because
    with 6 packets per instance, that's 18 packets total, which is enough
    to grant a Tx interrupt before all are sent.
    
    The original driver in the LSP kernel worked around this design flaw
    by using a software timer to clean up the Tx descriptors. This timer
    was slow and caused terrible network performance on some Tx-bound
    workloads (such as routing) but was enough to make tools like ping
    work correctly.
    
    Instead here, we simply set the packet counts before interrupt to 1.
    This ensures that each packet sent will produce an interrupt. NAPI
    takes care of coalescing interrupts since the interrupt is disabled
    once generated.
    
    No measurable performance impact nor CPU usage were observed on small
    nor large packets, including when saturating the link on Tx, and this
    fixes tools like ping which rely on too small a send buffer. If one
    wants to increase this value for certain workloads where it is safe
    to do so, "ethtool -C $dev tx-frames" will override this default
    setting.
    
    This fix needs to be applied to stable kernels starting with 3.10.
    
    Tested-By: Maggie Mae Roxas <maggie.mae.roxas@gmail.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c737a52c8742f427b439d71dfb4ce4e4a2ffc5e6
Author: Tom Herbert <therbert@google.com>
Date:   Sat Nov 29 09:59:45 2014 -0800

    gre: Set inner mac header in gro complete
    
    [ Upstream commit 6fb2a756739aa507c1fd5b8126f0bfc2f070dc46 ]
    
    Set the inner mac header to point to the GRE payload when
    doing GRO. This is needed if we proceed to send the packet
    through GRE GSO which now uses the inner mac header instead
    of inner network header to determine the length of encapsulation
    headers.
    
    Fixes: 14051f0452a2 ("gre: Use inner mac length when computing tunnel length")
    Reported-by: Wolfgang Walter <linux@stwm.de>
    Signed-off-by: Tom Herbert <therbert@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ee9f7cf65cd69d61b718eb40a53a9d2e3477827
Author: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date:   Thu Nov 27 10:16:15 2014 +0100

    rtnetlink: release net refcnt on error in do_setlink()
    
    [ Upstream commit e0ebde0e131b529fd721b24f62872def5ec3718c ]
    
    rtnl_link_get_net() holds a reference on the 'struct net', we need to release
    it in case of error.
    
    CC: Eric W. Biederman <ebiederm@xmission.com>
    Fixes: b51642f6d77b ("net: Enable a userns root rtnl calls that are safe for unprivilged users")
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e4410bb077de97319cb6d2e6a74e39f9d9a9503
Author: Jack Morgenstein <jackm@dev.mellanox.co.il>
Date:   Tue Nov 25 11:54:31 2014 +0200

    net/mlx4_core: Limit count field to 24 bits in qp_alloc_res
    
    [ Upstream commit 2d5c57d7fbfaa642fb7f0673df24f32b83d9066c ]
    
    Some VF drivers use the upper byte of "param1" (the qp count field)
    in mlx4_qp_reserve_range() to pass flags which are used to optimize
    the range allocation.
    
    Under the current code, if any of these flags are set, the 32-bit
    count field yields a count greater than 2^24, which is out of range,
    and this VF fails.
    
    As these flags represent a "best-effort" allocation hint anyway, they may
    safely be ignored. Therefore, the PF driver may simply mask out the bits.
    
    Fixes: c82e9aa0a8 "mlx4_core: resource tracking for HCA resources used by guests"
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfe35fa73e531c9ce88d2fbdb5bd5716e9c190e6
Author: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Date:   Tue Nov 25 14:21:11 2014 -0200

    tg3: fix ring init when there are more TX than RX channels
    
    [ Upstream commit a620a6bc1c94c22d6c312892be1e0ae171523125 ]
    
    If TX channels are set to 4 and RX channels are set to less than 4,
    using ethtool -L, the driver will try to initialize more RX channels
    than it has allocated, causing an oops.
    
    This fix only initializes the RX ring if it has been allocated.
    
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ea1f339310488810be0440e188024d466bbcccf
Author: Marcelo Leitner <mleitner@redhat.com>
Date:   Thu Dec 11 10:02:22 2014 -0200

    Fix race condition between vxlan_sock_add and vxlan_sock_release
    
    [ Upstream commit 00c83b01d58068dfeb2e1351cca6fccf2a83fa8f ]
    
    Currently, when trying to reuse a socket, vxlan_sock_add will grab
    vn->sock_lock, locate a reusable socket, inc refcount and release
    vn->sock_lock.
    
    But vxlan_sock_release() will first decrement refcount, and then grab
    that lock. refcnt operations are atomic but as currently we have
    deferred works which hold vs->refcnt each, this might happen, leading to
    a use after free (specially after vxlan_igmp_leave):
    
      CPU 1                            CPU 2
    
    deferred work                    vxlan_sock_add
      ...                              ...
                                       spin_lock(&vn->sock_lock)
                                       vs = vxlan_find_sock();
      vxlan_sock_release
        dec vs->refcnt, reaches 0
        spin_lock(&vn->sock_lock)
                                       vxlan_sock_hold(vs), refcnt=1
                                       spin_unlock(&vn->sock_lock)
        hlist_del_rcu(&vs->hlist);
        vxlan_notify_del_rx_port(vs)
        spin_unlock(&vn->sock_lock)
    
    So when we look for a reusable socket, we check if it wasn't freed
    already before reusing it.
    
    Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
    Fixes: 7c47cedf43a8b3 ("vxlan: move IGMP join/leave to work queue")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f586488c8825e4c1193a76653a89102a8ff8625a
Author: Yuri Chislov <yuri.chislov@gmail.com>
Date:   Mon Nov 24 11:25:15 2014 +0100

    ipv6: gre: fix wrong skb->protocol in WCCP
    
    [ Upstream commit be6572fdb1bfbe23b2624d477de50af50b02f5d6 ]
    
    When using GRE redirection in WCCP, it sets the wrong skb->protocol,
    that is, ETH_P_IP instead of ETH_P_IPV6 for the encapuslated traffic.
    
    Fixes: c12b395a4664 ("gre: Support GRE over IPv6")
    Cc: Dmitry Kozlov <xeb@mail.ru>
    Signed-off-by: Yuri Chislov <yuri.chislov@gmail.com>
    Tested-by: Yuri Chislov <yuri.chislov@gmail.com>
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3358f1a698eea1cb6ca4a96136c7a95db90a0657
Author: lucien <lucien.xin@gmail.com>
Date:   Sun Nov 23 15:04:11 2014 +0800

    ip_tunnel: the lack of vti_link_ops' dellink() cause kernel panic
    
    [ Upstream commit 20ea60ca9952bd19d4b0d74719daba305aef5178 ]
    
    Now the vti_link_ops do not point the .dellink, for fb tunnel device
    (ip_vti0), the net_device will be removed as the default .dellink is
    unregister_netdevice_queue,but the tunnel still in the tunnel list,
    then if we add a new vti tunnel, in ip_tunnel_find():
    
            hlist_for_each_entry_rcu(t, head, hash_node) {
                    if (local == t->parms.iph.saddr &&
                        remote == t->parms.iph.daddr &&
                        link == t->parms.link &&
    ==>                 type == t->dev->type &&
                        ip_tunnel_key_match(&t->parms, flags, key))
                            break;
            }
    
    the panic will happen, cause dev of ip_tunnel *t is null:
    [ 3835.072977] IP: [<ffffffffa04103fd>] ip_tunnel_find+0x9d/0xc0 [ip_tunnel]
    [ 3835.073008] PGD b2c21067 PUD b7277067 PMD 0
    [ 3835.073008] Oops: 0000 [#1] SMP
    .....
    [ 3835.073008] Stack:
    [ 3835.073008]  ffff8800b72d77f0 ffffffffa0411924 ffff8800bb956000 ffff8800b72d78e0
    [ 3835.073008]  ffff8800b72d78a0 0000000000000000 ffffffffa040d100 ffff8800b72d7858
    [ 3835.073008]  ffffffffa040b2e3 0000000000000000 0000000000000000 0000000000000000
    [ 3835.073008] Call Trace:
    [ 3835.073008]  [<ffffffffa0411924>] ip_tunnel_newlink+0x64/0x160 [ip_tunnel]
    [ 3835.073008]  [<ffffffffa040b2e3>] vti_newlink+0x43/0x70 [ip_vti]
    [ 3835.073008]  [<ffffffff8150d4da>] rtnl_newlink+0x4fa/0x5f0
    [ 3835.073008]  [<ffffffff812f68bb>] ? nla_strlcpy+0x5b/0x70
    [ 3835.073008]  [<ffffffff81508fb0>] ? rtnl_link_ops_get+0x40/0x60
    [ 3835.073008]  [<ffffffff8150d11f>] ? rtnl_newlink+0x13f/0x5f0
    [ 3835.073008]  [<ffffffff81509cf4>] rtnetlink_rcv_msg+0xa4/0x270
    [ 3835.073008]  [<ffffffff8126adf5>] ? sock_has_perm+0x75/0x90
    [ 3835.073008]  [<ffffffff81509c50>] ? rtnetlink_rcv+0x30/0x30
    [ 3835.073008]  [<ffffffff81529e39>] netlink_rcv_skb+0xa9/0xc0
    [ 3835.073008]  [<ffffffff81509c48>] rtnetlink_rcv+0x28/0x30
    ....
    
    modprobe ip_vti
    ip link del ip_vti0 type vti
    ip link add ip_vti0 type vti
    rmmod ip_vti
    
    do that one or more times, kernel will panic.
    
    fix it by assigning ip_tunnel_dellink to vti_link_ops' dellink, in
    which we skip the unregister of fb tunnel device. do the same on ip6_vti.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96869221b4ccab68ccbda3e9cef84bdd39a6fd9e
Author: Dmitry Torokhov <dtor@chromium.org>
Date:   Fri Nov 14 13:39:05 2014 -0800

    sata_fsl: fix error handling of irq_of_parse_and_map
    
    commit aad0b624129709c94c2e19e583b6053520353fa8 upstream.
    
    irq_of_parse_and_map() returns 0 on error (the result is unsigned int),
    so testing for negative result never works.
    
    Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 711c15b65ef1ac58353e5fe7a0ba8622f52252af
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Dec 4 13:13:28 2014 -0500

    ahci: disable MSI on SAMSUNG 0xa800 SSD
    
    commit 2b21ef0aae65f22f5ba86b13c4588f6f0c2dbefb upstream.
    
    Just like 0x1600 which got blacklisted by 66a7cbc303f4 ("ahci: disable
    MSI instead of NCQ on Samsung pci-e SSDs on macbooks"), 0xa800 chokes
    on NCQ commands if MSI is enabled.  Disable MSI.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Dominik Mierzejewski <dominik@greysector.net>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=89171
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97b4e2bd4a3bf7729356e47355c00428a2607a84
Author: Devin Ryles <devin.ryles@intel.com>
Date:   Fri Nov 7 17:59:05 2014 -0500

    AHCI: Add DeviceIDs for Sunrise Point-LP SATA controller
    
    commit 249cd0a187ed4ef1d0af7f74362cc2791ec5581b upstream.
    
    This patch adds DeviceIDs for Sunrise Point-LP.
    
    Signed-off-by: Devin Ryles <devin.ryles@intel.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit ca09672ce470aa60493917347966ae84d1e83564
Author: Sakari Ailus <sakari.ailus@iki.fi>
Date:   Thu Nov 6 17:49:45 2014 -0300

    media: smiapp: Only some selection targets are settable
    
    commit b31eb901c4e5eeef4c83c43dfbc7fe0d4348cb21 upstream.
    
    Setting a non-settable selection target caused BUG() to be called. The check
    for valid selections only takes the selection target into account, but does
    not tell whether it may be set, or only get. Fix the issue by simply
    returning an error to the user.
    
    Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1811f07e9f65f7dfe30106361ebb5bd6308af08
Author: Chris Clayton <chris2553@googlemail.com>
Date:   Sat Nov 22 09:51:10 2014 +0000

    x86: Use $(OBJDUMP) instead of plain objdump
    
    commit e2e68ae688b0a3766cd75aedf4ed4e39be402009 upstream.
    
    commit e6023367d779 'x86, kaslr: Prevent .bss from overlaping initrd'
    broke the cross compile of x86. It added a objdump invocation, which
    invokes the host native objdump and ignores an active cross tool
    chain.
    
    Use $(OBJDUMP) instead which takes the CROSS_COMPILE prefix into
    account.
    
    [ tglx: Massage changelog and use $(OBJDUMP) ]
    
    Fixes: e6023367d779 'x86, kaslr: Prevent .bss from overlaping initrd'
    Signed-off-by: Chris Clayton <chris2553@googlemail.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Acked-by: Borislav Petkov <bp@suse.de>
    Cc: Junjie Mao <eternal.n08@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: H. Peter Anvin <hpa@linux.intel.com>
    Link: http://lkml.kernel.org/r/54705C8E.1080400@googlemail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d29eee814d6a5641b058bd972bbba9650e1ffd83
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Dec 1 17:56:54 2014 +0100

    drm/i915: Unlock panel even when LVDS is disabled
    
    commit b0616c5306b342ceca07044dbc4f917d95c4f825 upstream.
    
    Otherwise we'll have backtraces in assert_panel_unlocked because the
    BIOS locks the register. In the reporter's case this regression was
    introduced in
    
    commit c31407a3672aaebb4acddf90944a114fa5c8af7b
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Thu Oct 18 21:07:01 2012 +0100
    
        drm/i915: Add no-lvds quirk for Supermicro X7SPA-H
    
    Reported-by: Alexey Orishko <alexey.orishko@gmail.com>
    Cc: Alexey Orishko <alexey.orishko@gmail.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Francois Tigeot <ftigeot@wolfpond.org>
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
    Tested-by: Alexey Orishko <alexey.orishko@gmail.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 227cd6819d6a94aa48f0397dce726d24a9ef4078
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Nov 24 17:02:45 2014 +0100

    drm/i915: More cautious with pch fifo underruns
    
    commit b68362278af94e1171f5be9d4e44988601fb0439 upstream.
    
    Apparently PCH fifo underruns are tricky, we have plenty reports that
    we see the occasional underrun (especially at boot-up).
    
    So for a change let's see what happens when we don't re-enable pch
    fifo underrun reporting when the pipe is disabled. This means that the
    kernel can't catch pch fifo underruns when they happen (except when
    all pipes are on on the pch). But we'll still catch underruns when
    disabling the pipe again. So not a terrible reduction in test
    coverage.
    
    Since the DRM_ERROR is new and hence a regression plan B would be to
    revert it back to a debug output. Which would be a lot worse than this
    hack for underrun test coverage in the wild. See the referenced
    discussions for more.
    
    References: http://mid.gmane.org/CA+gsUGRfGe3t4NcjdeA=qXysrhLY3r4CEu7z4bjTwxi1uOfy+g@mail.gmail.com
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85898
    References: https://bugs.freedesktop.org/show_bug.cgi?id=85898
    References: https://bugs.freedesktop.org/show_bug.cgi?id=86233
    References: https://bugs.freedesktop.org/show_bug.cgi?id=86478
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
    Tested-by: lu hua <huax.lu@intel.com>
    Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ed6c54d26edabea4e4b7b5623d797c2d17fca73
Author: Petr Mladek <pmladek@suse.cz>
Date:   Thu Nov 27 16:57:21 2014 +0100

    drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with 3.18.0-rc6
    
    commit f5475cc43c899e33098d4db44b7c5e710f16589d upstream.
    
    I was unable too boot 3.18.0-rc6 because of the following kernel
    panic in drm_calc_vbltimestamp_from_scanoutpos():
    
        [drm] Initialized drm 1.1.0 20060810
        [drm] radeon kernel modesetting enabled.
        [drm] initializing kernel modesetting (RV100 0x1002:0x515E 0x15D9:0x8080).
        [drm] register mmio base: 0xC8400000
        [drm] register mmio size: 65536
        radeon 0000:0b:01.0: VRAM: 128M 0x00000000D0000000 - 0x00000000D7FFFFFF (16M used)
        radeon 0000:0b:01.0: GTT: 512M 0x00000000B0000000 - 0x00000000CFFFFFFF
        [drm] Detected VRAM RAM=128M, BAR=128M
        [drm] RAM width 16bits DDR
        [TTM] Zone  kernel: Available graphics memory: 3829346 kiB
        [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
        [TTM] Initializing pool allocator
        [TTM] Initializing DMA pool allocator
        [drm] radeon: 16M of VRAM memory ready
        [drm] radeon: 512M of GTT memory ready.
        [drm] GART: num cpu pages 131072, num gpu pages 131072
        [drm] PCI GART of 512M enabled (table at 0x0000000037880000).
        radeon 0000:0b:01.0: WB disabled
        radeon 0000:0b:01.0: fence driver on ring 0 use gpu addr 0x00000000b0000000 and cpu addr 0xffff8800bbbfa000
        [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
        [drm] Driver supports precise vblank timestamp query.
        [drm] radeon: irq initialized.
        [drm] Loading R100 Microcode
        radeon 0000:0b:01.0: Direct firmware load for radeon/R100_cp.bin failed with error -2
        radeon_cp: Failed to load firmware "radeon/R100_cp.bin"
        [drm:r100_cp_init] *ERROR* Failed to load firmware!
        radeon 0000:0b:01.0: failed initializing CP (-2).
        radeon 0000:0b:01.0: Disabling GPU acceleration
        [drm] radeon: cp finalized
        BUG: unable to handle kernel NULL pointer dereference at 000000000000025c
        IP: [<ffffffff8150423b>] drm_calc_vbltimestamp_from_scanoutpos+0x4b/0x320
        PGD 0
        Oops: 0000 [#1] SMP
        Modules linked in:
        CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.18.0-rc6-4-default #2649
        Hardware name: Supermicro X7DB8/X7DB8, BIOS 6.00 07/26/2006
        task: ffff880234da2010 ti: ffff880234da4000 task.ti: ffff880234da4000
        RIP: 0010:[<ffffffff8150423b>]  [<ffffffff8150423b>] drm_calc_vbltimestamp_from_scanoutpos+0x4b/0x320
        RSP: 0000:ffff880234da7918  EFLAGS: 00010086
        RAX: ffffffff81557890 RBX: 0000000000000000 RCX: ffff880234da7a48
        RDX: ffff880234da79f4 RSI: 0000000000000000 RDI: ffff880232e15000
        RBP: ffff880234da79b8 R08: 0000000000000000 R09: 0000000000000000
        R10: 000000000000000a R11: 0000000000000001 R12: ffff880232dda1c0
        R13: ffff880232e1518c R14: 0000000000000292 R15: ffff880232e15000
        FS:  0000000000000000(0000) GS:ffff88023fc40000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: 000000000000025c CR3: 0000000002014000 CR4: 00000000000007e0
        Stack:
         ffff880234da79d8 0000000000000286 ffff880232dcbc00 0000000000002480
         ffff880234da7958 0000000000000296 ffff880234da7998 ffffffff8151b51d
         ffff880234da7a48 0000000032dcbeb0 ffff880232dcbc00 ffff880232dcbc58
        Call Trace:
         [<ffffffff8151b51d>] ? drm_vma_offset_remove+0x1d/0x110
         [<ffffffff8152dc98>] radeon_get_vblank_timestamp_kms+0x38/0x60
         [<ffffffff8152076a>] ? ttm_bo_release_list+0xba/0x180
         [<ffffffff81503751>] drm_get_last_vbltimestamp+0x41/0x70
         [<ffffffff81503933>] vblank_disable_and_save+0x73/0x1d0
         [<ffffffff81106b2f>] ? try_to_del_timer_sync+0x4f/0x70
         [<ffffffff81505245>] drm_vblank_cleanup+0x65/0xa0
         [<ffffffff815604fa>] radeon_irq_kms_fini+0x1a/0x70
         [<ffffffff8156c07e>] r100_init+0x26e/0x410
         [<ffffffff8152ae3e>] radeon_device_init+0x7ae/0xb50
         [<ffffffff8152d57f>] radeon_driver_load_kms+0x8f/0x210
         [<ffffffff81506965>] drm_dev_register+0xb5/0x110
         [<ffffffff8150998f>] drm_get_pci_dev+0x8f/0x200
         [<ffffffff815291cd>] radeon_pci_probe+0xad/0xe0
         [<ffffffff8141a365>] local_pci_probe+0x45/0xa0
         [<ffffffff8141b741>] pci_device_probe+0xd1/0x130
         [<ffffffff81633dad>] driver_probe_device+0x12d/0x3e0
         [<ffffffff8163413b>] __driver_attach+0x9b/0xa0
         [<ffffffff816340a0>] ? __device_attach+0x40/0x40
         [<ffffffff81631cd3>] bus_for_each_dev+0x63/0xa0
         [<ffffffff8163378e>] driver_attach+0x1e/0x20
         [<ffffffff81633390>] bus_add_driver+0x180/0x240
         [<ffffffff81634914>] driver_register+0x64/0xf0
         [<ffffffff81419cac>] __pci_register_driver+0x4c/0x50
         [<ffffffff81509bf5>] drm_pci_init+0xf5/0x120
         [<ffffffff821dc871>] ? ttm_init+0x6a/0x6a
         [<ffffffff821dc908>] radeon_init+0x97/0xb5
         [<ffffffff810002fc>] do_one_initcall+0xbc/0x1f0
         [<ffffffff810e3278>] ? __wake_up+0x48/0x60
         [<ffffffff8218e256>] kernel_init_freeable+0x18a/0x215
         [<ffffffff8218d983>] ? initcall_blacklist+0xc0/0xc0
         [<ffffffff818a78f0>] ? rest_init+0x80/0x80
         [<ffffffff818a78fe>] kernel_init+0xe/0xf0
         [<ffffffff818c0c3c>] ret_from_fork+0x7c/0xb0
         [<ffffffff818a78f0>] ? rest_init+0x80/0x80
        Code: 45 ac 0f 88 a8 01 00 00 3b b7 d0 01 00 00 49 89 ff 0f 83 99 01 00 00 48 8b 47 20 48 8b 80 88 00 00 00 48 85 c0 0f 84 cd 01 00 00 <41> 8b b1 5c 02 00 00 41 8b 89 58 02 00 00 89 75 98 41 8b b1 60
        RIP  [<ffffffff8150423b>] drm_calc_vbltimestamp_from_scanoutpos+0x4b/0x320
         RSP <ffff880234da7918>
        CR2: 000000000000025c
        ---[ end trace ad2c0aadf48e2032 ]---
        Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
    
    It has helped me to add a NULL pointer check that was suggested at
    http://lists.freedesktop.org/archives/dri-devel/2014-October/070663.html
    
    I am not familiar with the code. But the change looks sane
    and we need something fast at this stage of 3.18 development.
    
    Suggested-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Petr Mladek <pmladek@suse.cz>
    Tested-by: Petr Mladek <pmladek@suse.cz>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d959b0f790125652e944f96d83fc71d4cccc8049
Author: Grygorii Strashko <grygorii.strashko@ti.com>
Date:   Mon Dec 1 17:34:04 2014 +0200

    i2c: davinci: generate STP always when NACK is received
    
    commit 9ea359f7314132cbcb5a502d2d8ef095be1f45e4 upstream.
    
    According to I2C specification the NACK should be handled as follows:
    "When SDA remains HIGH during this ninth clock pulse, this is defined as the Not
    Acknowledge signal. The master can then generate either a STOP condition to
    abort the transfer, or a repeated START condition to start a new transfer."
    [I2C spec Rev. 6, 3.1.6: http://www.nxp.com/documents/user_manual/UM10204.pdf]
    
    Currently the Davinci i2c driver interrupts the transfer on receipt of a
    NACK but fails to send a STOP in some situations and so makes the bus
    stuck until next I2C IP reset (idle/enable).
    
    For example, the issue will happen during SMBus read transfer which
    consists from two i2c messages write command/address and read data:
    
    S Slave Address Wr A Command Code A Sr Slave Address Rd A D1..Dn A P
    <--- write -----------------------> <--- read --------------------->
    
    The I2C client device will send NACK if it can't recognize "Command Code"
    and it's expected from I2C master to generate STP in this case.
    But now, Davinci i2C driver will just exit with -EREMOTEIO and STP will
    not be generated.
    
    Hence, fix it by generating Stop condition (STP) always when NACK is received.
    
    This patch fixes Davinci I2C in the same way it was done for OMAP I2C
    commit cda2109a26eb ("i2c: omap: query STP always when NACK is received").
    
    Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Reported-by: Hein Tibosch <hein_tibosch@yahoo.es>
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9134ea22bc9f6230be60437045c6343bf691a404
Author: Alexander Kochetkov <al.kochet@gmail.com>
Date:   Fri Nov 21 04:16:51 2014 +0400

    i2c: omap: fix i207 errata handling
    
    commit ccfc866356674cb3a61829d239c685af6e85f197 upstream.
    
    commit 6d9939f651419a63e091105663821f9c7d3fec37 (i2c: omap: split out [XR]DR
    and [XR]RDY) changed the way how errata i207 (I2C: RDR Flag May Be Incorrectly
    Set) get handled. 6d9939f6514 code doesn't correspond to workaround provided by
    errata.
    
    According to errata ISR must filter out spurious RDR before data read not after.
    ISR must read RXSTAT to get number of bytes available to read. Because RDR
    could be set while there could no data in the receive FIFO.
    
    Restored pre 6d9939f6514 way of handling errata.
    
    Found by code review. Real impact haven't seen.
    Tested on Beagleboard XM C.
    
    Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
    Fixes: 6d9939f651419a63e09110 i2c: omap: split out [XR]DR and [XR]RDY
    Tested-by: Felipe Balbi <balbi@ti.com>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7966971cf79e8938cbf9953b615c548d0274ec14
Author: Alexander Kochetkov <al.kochet@gmail.com>
Date:   Tue Nov 18 21:00:58 2014 +0400

    i2c: omap: fix NACK and Arbitration Lost irq handling
    
    commit 27caca9d2e01c92b26d0690f065aad093fea01c7 upstream.
    
    commit 1d7afc95946487945cc7f5019b41255b72224b70 (i2c: omap: ack IRQ in parts)
    changed the interrupt handler to complete transfers without clearing
    XRDY (AL case) and ARDY (NACK case) flags. XRDY or ARDY interrupts will be
    fired again. As a result, ISR keep processing transfer after it was already
    complete (from the driver code point of view).
    
    A didn't see real impacts of the 1d7afc9, but it is really bad idea to
    have ISR running on user data after transfer was complete.
    
    It looks, what 1d7afc9 violate TI specs in what how AL and NACK should be
    handled (see Note 1, sprugn4r, Figure 17-31 and Figure 17-32).
    
    According to specs (if I understood correctly), in case of NACK and AL driver
    must reset NACK, AL, ARDY, RDR, and RRDY (Master Receive Mode), and
    NACK, AL, ARDY, and XDR (Master Transmitter Mode).
    
    All that is done down the code under the if condition:
    if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK | OMAP_I2C_STAT_AL)) ...
    
    The patch restore pre 1d7afc9 logic of handling NACK and AL interrupts, so
    no interrupts is fired after ISR informs the rest of driver what transfer
    complete.
    
    Note: instead of removing break under NACK case, we could just replace 'break'
    with 'continue' and allow NACK transfer to finish using ARDY event. I found
    that NACK and ARDY bits usually set together. That case confirm TI wiki:
    http://processors.wiki.ti.com/index.php/I2C_Tips#Detecting_and_handling_NACK
    
    In order if someone interested in the event traces for NACK and AL cases,
    I sent them to mailing list.
    
    Tested on Beagleboard XM C.
    
    Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
    Fixes: 1d7afc9 i2c: omap: ack IRQ in parts
    Acked-by: Felipe Balbi <balbi@ti.com>
    Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aea356313de306bd8ea6555bd19ec7ef159913a5
Author: Seth Forshee <seth.forshee@canonical.com>
Date:   Tue Nov 25 20:28:24 2014 -0600

    xen-netfront: Remove BUGs on paged skb data which crosses a page boundary
    
    commit 8d609725d4357f499e2103e46011308b32f53513 upstream.
    
    These BUGs can be erroneously triggered by frags which refer to
    tail pages within a compound page. The data in these pages may
    overrun the hardware page while still being contained within the
    compound page, but since compound_order() evaluates to 0 for tail
    pages the assertion fails. The code already iterates through
    subsequent pages correctly in this scenario, so the BUGs are
    unnecessary and can be removed.
    
    Fixes: f36c374782e4 ("xen/netfront: handle compound page fragments on transmit")
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 867dc3a68f2c888e4c1a9110bc71e35f369bd05b
Author: Daniel Forrest <dan.forrest@ssec.wisc.edu>
Date:   Tue Dec 2 15:59:42 2014 -0800

    mm: fix anon_vma_clone() error treatment
    
    commit c4ea95d7cd08d9ffd7fa75e6c5e0332d596dd11e upstream.
    
    Andrew Morton noticed that the error return from anon_vma_clone() was
    being dropped and replaced with -ENOMEM (which is not itself a bug
    because the only error return value from anon_vma_clone() is -ENOMEM).
    
    I did an audit of callers of anon_vma_clone() and discovered an actual
    bug where the error return was being lost.  In __split_vma(), between
    Linux 3.11 and 3.12 the code was changed so the err variable is used
    before the call to anon_vma_clone() and the default initial value of
    -ENOMEM is overwritten.  So a failure of anon_vma_clone() will return
    success since err at this point is now zero.
    
    Below is a patch which fixes this bug and also propagates the error
    return value from anon_vma_clone() in all cases.
    
    Fixes: ef0855d334e1 ("mm: mempolicy: turn vma_set_policy() into vma_dup_policy()")
    Signed-off-by: Daniel Forrest <dan.forrest@ssec.wisc.edu>
    Reviewed-by: Michal Hocko <mhocko@suse.cz>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Tim Hartrick <tim@edgecast.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    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 f7c6aba54aad614d0440762053f6f316559b8e54
Author: Hugh Dickins <hughd@google.com>
Date:   Tue Dec 2 15:59:39 2014 -0800

    mm: fix swapoff hang after page migration and fork
    
    commit 2022b4d18a491a578218ce7a4eca8666db895a73 upstream.
    
    I've been seeing swapoff hangs in recent testing: it's cycling around
    trying unsuccessfully to find an mm for some remaining pages of swap.
    
    I have been exercising swap and page migration more heavily recently,
    and now notice a long-standing error in copy_one_pte(): it's trying to
    add dst_mm to swapoff's mmlist when it finds a swap entry, but is doing
    so even when it's a migration entry or an hwpoison entry.
    
    Which wouldn't matter much, except it adds dst_mm next to src_mm,
    assuming src_mm is already on the mmlist: which may not be so.  Then if
    pages are later swapped out from dst_mm, swapoff won't be able to find
    where to replace them.
    
    There's already a !non_swap_entry() test for stats: move that up before
    the swap_duplicate() and the addition to mmlist.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Cc: Kelley Nielsen <kelleynnn@gmail.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 e2a794f1c3b445e89364d08625782ea550b2b5ef
Author: Andrew Morton <akpm@linux-foundation.org>
Date:   Tue Dec 2 15:59:28 2014 -0800

    mm/vmpressure.c: fix race in vmpressure_work_fn()
    
    commit 91b57191cfd152c02ded0745250167d0263084f8 upstream.
    
    In some android devices, there will be a "divide by zero" exception.
    vmpr->scanned could be zero before spin_lock(&vmpr->sr_lock).
    
    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=88051
    
    [akpm@linux-foundation.org: neaten]
    Reported-by: ji_ang <ji_ang@163.com>
    Cc: Anton Vorontsov <anton.vorontsov@linaro.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 a2eb17df16893ccdaf3a7417fe5fe7aaba27c8b7
Author: Weijie Yang <weijie.yang@samsung.com>
Date:   Tue Dec 2 15:59:25 2014 -0800

    mm: frontswap: invalidate expired data on a dup-store failure
    
    commit fb993fa1a2f669215fa03a09eed7848f2663e336 upstream.
    
    If a frontswap dup-store failed, it should invalidate the expired page
    in the backend, or it could trigger some data corruption issue.
    Such as:
     1. use zswap as the frontswap backend with writeback feature
     2. store a swap page(version_1) to entry A, success
     3. dup-store a newer page(version_2) to the same entry A, fail
     4. use __swap_writepage() write version_2 page to swapfile, success
     5. zswap do shrink, writeback version_1 page to swapfile
     6. version_2 page is overwrited by version_1, data corrupt.
    
    This patch fixes this issue by invalidating expired data immediately
    when meet a dup-store failure.
    
    Signed-off-by: Weijie Yang <weijie.yang@samsung.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Seth Jennings <sjennings@variantweb.net>
    Cc: Dan Streetman <ddstreet@ieee.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Bob Liu <bob.liu@oracle.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>