commit 16286083befef95045f84ecc10f19b1a14fc7283
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Nov 17 13:16:56 2012 -0800

    Linux 3.4.19

commit 2ce3809e3420701b66bb4a6bebc69ddaf850394f
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Nov 13 11:22:48 2012 +0100

    ALSA: usb-audio: Fix mutex deadlock at disconnection
    
    commit 10e44239f67d0b6fb74006e61a7e883b8075247a upstream.
    
    The recent change for USB-audio disconnection race fixes introduced a
    mutex deadlock again.  There is a circular dependency between
    chip->shutdown_rwsem and pcm->open_mutex, depicted like below, when a
    device is opened during the disconnection operation:
    
    A. snd_usb_audio_disconnect() ->
         card.c::register_mutex ->
           chip->shutdown_rwsem (write) ->
             snd_card_disconnect() ->
               pcm.c::register_mutex ->
                 pcm->open_mutex
    
    B. snd_pcm_open() ->
         pcm->open_mutex ->
           snd_usb_pcm_open() ->
             chip->shutdown_rwsem (read)
    
    Since the chip->shutdown_rwsem protection in the case A is required
    only for turning on the chip->shutdown flag and it doesn't have to be
    taken for the whole operation, we can reduce its window in
    snd_usb_audio_disconnect().
    
    Reported-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32896690903c576809f21724115612a82a102a52
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 8 14:36:18 2012 +0100

    ALSA: Fix card refcount unbalance
    
    commit 8bb4d9ce08b0a92ca174e41d92c180328f86173f upstream.
    
    There are uncovered cases whether the card refcount introduced by the
    commit a0830dbd isn't properly increased or decreased:
    - OSS PCM and mixer success paths
    - When lookup function gets NULL
    
    This patch fixes these places.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=50251
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13ec0431e7523a5a2d45dd6513b12b5f6b4ddec9
Author: Dave Chinner <dchinner@redhat.com>
Date:   Fri Nov 2 11:38:44 2012 +1100

    xfs: fix reading of wrapped log data
    
    commit 6ce377afd1755eae5c93410ca9a1121dfead7b87 upstream.
    
    Commit 4439647 ("xfs: reset buffer pointers before freeing them") in
    3.0-rc1 introduced a regression when recovering log buffers that
    wrapped around the end of log. The second part of the log buffer at
    the start of the physical log was being read into the header buffer
    rather than the data buffer, and hence recovery was seeing garbage
    in the data buffer when it got to the region of the log buffer that
    was incorrectly read.
    
    Reported-by: Torsten Kaiser <just.for.lkml@googlemail.com>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mark Tinguely <tinguely@sgi.com>
    Signed-off-by: Ben Myers <bpm@sgi.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2834bc7007eb6e8e375f8edbf7f6f52b2a14db13
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Nov 8 18:28:59 2012 +0100

    USB: mos7840: remove unused variable
    
    Fix warning about unused variable introduced by commit e681b66f2e19fa
    ("USB: mos7840: remove invalid disconnect handling") upstream.
    
    A subsequent fix which removed the disconnect function got rid of the
    warning but that one was only backported to v3.6.
    
    Reported-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6903f0a9f2370fced066ad21c757b364a962bfea
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sun Oct 21 12:52:39 2012 +0200

    drm/i915: clear the entire sdvo infoframe buffer
    
    commit b6e0e543f75729f207b9c72b0162ae61170635b2 upstream.
    
    Like in the case of native hdmi, which is fixed already in
    
    commit adf00b26d18e1b3570451296e03bcb20e4798cdd
    Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Date:   Tue Sep 25 13:23:34 2012 -0300
    
        drm/i915: make sure we write all the DIP data bytes
    
    we need to clear the entire sdvo buffer to avoid upsetting the
    display.
    
    Since infoframe buffer writing is now a bit more elaborate, extract it
    into it's own function. This will be useful if we ever get around to
    properly update the ELD for sdvo. Also #define proper names for the
    two buffer indexes with fixed usage.
    
    v2: Cite the right commit above, spotted by Paulo Zanoni.
    
    v3: I'm too stupid to paste the right commit.
    
    v4: Ben Hutchings noticed that I've failed to handle an underflow in
    my loop logic, breaking it for i >= length + 8. Since I've just lost C
    programmer license, use his solution. Also, make the frustrated 0-base
    buffer size a notch more clear.
    
    Reported-and-tested-by: Jürg Billeter <j@bitron.ch>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=25732
    Cc: Paulo Zanoni <przanoni@gmail.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c97430309917c78fd47def652ec1573f6e53c735
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sat May 12 20:22:00 2012 +0200

    drm/i915: fixup infoframe support for sdvo
    
    commit 81014b9d0b55fb0b48f26cd2a943359750d532db upstream.
    
    At least the worst offenders:
    - SDVO specifies that the encoder should compute the ecc. Testing also
      shows that we must not send the ecc field, so copy the dip_infoframe
      struct to a temporay place and avoid the ecc field. This way the avi
      infoframe is exactly 17 bytes long, which agrees with what the spec
      mandates as a minimal storage capacity (with the ecc field it would
      be 18 bytes).
    - Only 17 when sending the avi infoframe. The SDVO spec explicitly
      says that sending more data than what the device announces results
      in undefined behaviour.
    - Add __attribute__((packed)) to the avi and spd infoframes, for
      otherwise they're wrongly aligned. Noticed because the avi infoframe
      ended up being 18 bytes large instead of 17. We haven't noticed this
      yet because we don't use the uint16_t fields yet (which are the only
      ones that would be wrongly aligned).
    
    This regression has been introduce by
    
    3c17fe4b8f40a112a85758a9ab2aebf772bdd647 is the first bad commit
    commit 3c17fe4b8f40a112a85758a9ab2aebf772bdd647
    Author: David Härdeman <david@hardeman.nu>
    Date:   Fri Sep 24 21:44:32 2010 +0200
    
        i915: enable AVI infoframe for intel_hdmi.c [v4]
    
    Patch tested on my g33 with a sdvo hdmi adaptor.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=25732
    Tested-by: Peter Ross <pross@xvid.org> (G35 SDVO-HDMI)
    Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 511c41c7b657821172b6b1cde7f1f2ce7a73d43e
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Nov 8 10:13:24 2012 -0500

    drm/radeon/si: add some missing regs to the VM reg checker
    
    commit f418b88aad0c42b4caf4d79a0cf8d14a5d0a2284 upstream.
    
    This register is needed for streamout to work properly.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c436fd2bc1d4255f888dfd68a9f73098cebf30a7
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Nov 8 10:08:04 2012 -0500

    drm/radeon/cayman: add some missing regs to the VM reg checker
    
    commit 860fe2f05fa2eacac84368e23547ec8cf3cc6652 upstream.
    
    These regs were being wronly rejected leading to rendering
    issues.
    
    fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=56876
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fa1f62322efae688e5412a6e483777553898cf6
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Fri Nov 9 10:45:14 2012 +0100

    drm/vmwgfx: Fix a case where the code would BUG when trying to pin GMR memory
    
    commit afcc87aa6a233e52df73552dc1dc9ae3881b7cc8 upstream.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Brian Paul <brianp@vmware.com>
    Reviewed-by: Dmitry Torokhov <dtor@vmware.com>
    Cc: linux-graphics-maintainer@vmware.com
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9feda1930e8fed6bb74d9375d00581f7c9ff2995
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Fri Nov 9 10:05:57 2012 +0100

    drm/vmwgfx: Fix hibernation device reset
    
    commit 95e8f6a21996c4cc2c4574b231c6e858b749dce3 upstream.
    
    The device would not reset properly when resuming from hibernation.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Brian Paul <brianp@vmware.com>
    Reviewed-by: Dmitry Torokhov <dtor@vmware.com>
    Cc: linux-graphics-maintainer@vmware.com
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1e729c67400d3a766befa6f739f971021788878
Author: Chris Ball <cjb@laptop.org>
Date:   Mon Nov 5 14:29:49 2012 -0500

    mmc: sdhci: fix NULL dereference in sdhci_request() tuning
    
    commit 14efd957209461bbdf285bf0d67e931955d04a4c upstream.
    
    Commit 473b095a72a9 ("mmc: sdhci: fix incorrect command used in tuning")
    introduced a NULL dereference at resume-time if an SD 3.0 host controller
    raises the SDHCI_NEEDS_TUNING flag while no card is inserted.  Seen on an
    OLPC XO-4 with sdhci-pxav3, but presumably affects other controllers too.
    
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4cbedfda2227df82126c9dd5e7593565bf45d21
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Oct 23 22:29:38 2012 +0200

    futex: Handle futex_pi OWNER_DIED take over correctly
    
    commit 59fa6245192159ab5e1e17b8e31f15afa9cff4bf upstream.
    
    Siddhesh analyzed a failure in the take over of pi futexes in case the
    owner died and provided a workaround.
    See: http://sourceware.org/bugzilla/show_bug.cgi?id=14076
    
    The detailed problem analysis shows:
    
    Futex F is initialized with PTHREAD_PRIO_INHERIT and
    PTHREAD_MUTEX_ROBUST_NP attributes.
    
    T1 lock_futex_pi(F);
    
    T2 lock_futex_pi(F);
       --> T2 blocks on the futex and creates pi_state which is associated
           to T1.
    
    T1 exits
       --> exit_robust_list() runs
           --> Futex F userspace value TID field is set to 0 and
               FUTEX_OWNER_DIED bit is set.
    
    T3 lock_futex_pi(F);
       --> Succeeds due to the check for F's userspace TID field == 0
       --> Claims ownership of the futex and sets its own TID into the
           userspace TID field of futex F
       --> returns to user space
    
    T1 --> exit_pi_state_list()
           --> Transfers pi_state to waiter T2 and wakes T2 via
           	   rt_mutex_unlock(&pi_state->mutex)
    
    T2 --> acquires pi_state->mutex and gains real ownership of the
           pi_state
       --> Claims ownership of the futex and sets its own TID into the
           userspace TID field of futex F
       --> returns to user space
    
    T3 --> observes inconsistent state
    
    This problem is independent of UP/SMP, preemptible/non preemptible
    kernels, or process shared vs. private. The only difference is that
    certain configurations are more likely to expose it.
    
    So as Siddhesh correctly analyzed the following check in
    futex_lock_pi_atomic() is the culprit:
    
    	if (unlikely(ownerdied || !(curval & FUTEX_TID_MASK))) {
    
    We check the userspace value for a TID value of 0 and take over the
    futex unconditionally if that's true.
    
    AFAICT this check is there as it is correct for a different corner
    case of futexes: the WAITERS bit became stale.
    
    Now the proposed change
    
    -	if (unlikely(ownerdied || !(curval & FUTEX_TID_MASK))) {
    +       if (unlikely(ownerdied ||
    +                       !(curval & (FUTEX_TID_MASK | FUTEX_WAITERS)))) {
    
    solves the problem, but it's not obvious why and it wreckages the
    "stale WAITERS bit" case.
    
    What happens is, that due to the WAITERS bit being set (T2 is blocked
    on that futex) it enforces T3 to go through lookup_pi_state(), which
    in the above case returns an existing pi_state and therefor forces T3
    to legitimately fight with T2 over the ownership of the pi_state (via
    pi_state->mutex). Probelm solved!
    
    Though that does not work for the "WAITERS bit is stale" problem
    because if lookup_pi_state() does not find existing pi_state it
    returns -ERSCH (due to TID == 0) which causes futex_lock_pi() to
    return -ESRCH to user space because the OWNER_DIED bit is not set.
    
    Now there is a different solution to that problem. Do not look at the
    user space value at all and enforce a lookup of possibly available
    pi_state. If pi_state can be found, then the new incoming locker T3
    blocks on that pi_state and legitimately races with T2 to acquire the
    rt_mutex and the pi_state and therefor the proper ownership of the
    user space futex.
    
    lookup_pi_state() has the correct order of checks. It first tries to
    find a pi_state associated with the user space futex and only if that
    fails it checks for futex TID value = 0. If no pi_state is available
    nothing can create new state at that point because this happens with
    the hash bucket lock held.
    
    So the above scenario changes to:
    
    T1 lock_futex_pi(F);
    
    T2 lock_futex_pi(F);
       --> T2 blocks on the futex and creates pi_state which is associated
           to T1.
    
    T1 exits
       --> exit_robust_list() runs
           --> Futex F userspace value TID field is set to 0 and
               FUTEX_OWNER_DIED bit is set.
    
    T3 lock_futex_pi(F);
       --> Finds pi_state and blocks on pi_state->rt_mutex
    
    T1 --> exit_pi_state_list()
           --> Transfers pi_state to waiter T2 and wakes it via
           	   rt_mutex_unlock(&pi_state->mutex)
    
    T2 --> acquires pi_state->mutex and gains ownership of the pi_state
       --> Claims ownership of the futex and sets its own TID into the
           userspace TID field of futex F
       --> returns to user space
    
    This covers all gazillion points on which T3 might come in between
    T1's exit_robust_list() clearing the TID field and T2 fixing it up. It
    also solves the "WAITERS bit stale" problem by forcing the take over.
    
    Another benefit of changing the code this way is that it makes it less
    dependent on untrusted user space values and therefor minimizes the
    possible wreckage which might be inflicted.
    
    As usual after staring for too long at the futex code my brain hurts
    so much that I really want to ditch that whole optimization of
    avoiding the syscall for the non contended case for PI futexes and rip
    out the maze of corner case handling code. Unfortunately we can't as
    user space relies on that existing behaviour, but at least thinking
    about it helps me to preserve my mental sanity. Maybe we should
    nevertheless :)
    
    Reported-and-tested-by: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
    Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1210232138540.2756@ionos
    Acked-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0d6767af2ece14b24064258dffbc816c4258ae5
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Tue Nov 6 16:18:41 2012 +0000

    ipv6: send unsolicited neighbour advertisements to all-nodes
    
    [ Upstream commit 60713a0ca7fd6651b951cc1b4dbd528d1fc0281b ]
    
    As documented in RFC4861 (Neighbor Discovery for IP version 6) 7.2.6.,
    unsolicited neighbour advertisements should be sent to the all-nodes
    multicast address.
    
    Signed-off-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 0f2835b0b762391fb8e1d1da3bdb8f1d90a5d53e
Author: Eric Leblond <eric@regit.org>
Date:   Tue Nov 6 02:10:10 2012 +0000

    af-packet: fix oops when socket is not present
    
    [ Upstream commit a3d744e995d2b936c500585ae39d99ee251c89b4 ]
    
    Due to a NULL dereference, the following patch is causing oops
    in normal trafic condition:
    
    commit c0de08d04215031d68fa13af36f347a6cfa252ca
    Author: Eric Leblond <eric@regit.org>
    Date:   Thu Aug 16 22:02:58 2012 +0000
    
        af_packet: don't emit packet on orig fanout group
    
    This buggy patch was a feature fix and has reached most stable
    branches.
    
    When skb->sk is NULL and when packet fanout is used, there is a
    crash in match_fanout_group where skb->sk is accessed.
    This patch fixes the issue by returning false as soon as the
    socket is NULL: this correspond to the wanted behavior because
    the kernel as to resend the skb to all the listening socket in
    this case.
    
    Signed-off-by: Eric Leblond <eric@regit.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecdebbf0aedbedc96ee784046d06d0be8152d5a4
Author: Cyrill Gorcunov <gorcunov@openvz.org>
Date:   Sat Nov 3 09:30:34 2012 +0000

    net: inet_diag -- Return error code if protocol handler is missed
    
    [ Upstream commit cacb6ba0f36ab14a507f4ee7697e8332899015d2 ]
    
    We've observed that in case if UDP diag module is not
    supported in kernel the netlink returns NLMSG_DONE without
    notifying a caller that handler is missed.
    
    This patch makes __inet_diag_dump to return error code instead.
    
    So as example it become possible to detect such situation
    and handle it gracefully on userspace level.
    
    Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
    CC: David Miller <davem@davemloft.net>
    CC: Eric Dumazet <eric.dumazet@gmail.com>
    CC: Pavel Emelyanov <xemul@parallels.com>
    Acked-by: Pavel Emelyanov <xemul@parallels.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 988aaa6d344cdd838db420919dc26b3c0248e65a
Author: Tom Parkin <tparkin@katalix.com>
Date:   Mon Oct 29 23:41:48 2012 +0000

    l2tp: fix oops in l2tp_eth_create() error path
    
    [ Upstream commit 789336360e0a2aeb9750c16ab704a02cbe035e9e ]
    
    When creating an L2TPv3 Ethernet session, if register_netdev() should fail for
    any reason (for example, automatic naming for "l2tpeth%d" interfaces hits the
    32k-interface limit), the netdev is freed in the error path.  However, the
    l2tp_eth_sess structure's dev pointer is left uncleared, and this results in
    l2tp_eth_delete() then attempting to unregister the same netdev later in the
    session teardown.  This results in an oops.
    
    To avoid this, clear the session dev pointer in the error path.
    
    Signed-off-by: Tom Parkin <tparkin@katalix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 808235fefa3de34ff292cc86b0edfad17a6f056e
Author: Peter Senna Tschudin <peter.senna@gmail.com>
Date:   Sun Oct 28 06:12:00 2012 +0000

    drivers/net/ethernet/nxp/lpc_eth.c: Call mdiobus_unregister before mdiobus_free
    
    [ Upstream commit 57c10b61c84bfed68b1b317d6f507a392724b9c4 ]
    
    Based on commit b27393aecf66199f5ddad37c302d3e0cfadbe6c0
    
    Calling mdiobus_free without calling mdiobus_unregister causes
    BUG_ON(). This patch fixes the issue.
    
    The semantic patch that found this issue(http://coccinelle.lip6.fr/):
    // <smpl>
    @@
    expression E;
    @@
      ... when != mdiobus_unregister(E);
    
    + mdiobus_unregister(E);
      mdiobus_free(E);
    // </smpl>
    
    Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
    Tested-by: Roland Stigge <stigge@antcom.de>
    Tested-by: Alexandre Pereira da Silva <aletes.xgr@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b97ecda6f44e089c4a25be7aaa44b3337c860d56
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Wed Oct 31 02:45:32 2012 +0000

    net: fix divide by zero in tcp algorithm illinois
    
    [ Upstream commit 8f363b77ee4fbf7c3bbcf5ec2c5ca482d396d664 ]
    
    Reading TCP stats when using TCP Illinois congestion control algorithm
    can cause a divide by zero kernel oops.
    
    The division by zero occur in tcp_illinois_info() at:
     do_div(t, ca->cnt_rtt);
    where ca->cnt_rtt can become zero (when rtt_reset is called)
    
    Steps to Reproduce:
     1. Register tcp_illinois:
         # sysctl -w net.ipv4.tcp_congestion_control=illinois
     2. Monitor internal TCP information via command "ss -i"
         # watch -d ss -i
     3. Establish new TCP conn to machine
    
    Either it fails at the initial conn, or else it needs to wait
    for a loss or a reset.
    
    This is only related to reading stats.  The function avg_delay() also
    performs the same divide, but is guarded with a (ca->cnt_rtt > 0) at its
    calling point in update_params().  Thus, simply fix tcp_illinois_info().
    
    Function tcp_illinois_info() / get_info() is called without
    socket lock.  Thus, eliminate any race condition on ca->cnt_rtt
    by using a local stack variable.  Simply reuse info.tcpv_rttcnt,
    as its already set to ca->cnt_rtt.
    Function avg_delay() is not affected by this race condition, as
    its called with the socket lock.
    
    Cc: Petr Matousek <pmatouse@redhat.com>
    Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 545bc464cb07b204fbfb387a7010f31352e03625
Author: Hemant Kumar <hemantk@codeaurora.org>
Date:   Thu Oct 25 18:17:54 2012 +0000

    net: usb: Fix memory leak on Tx data path
    
    [ Upstream commit 39707c2a3ba5011038b363f84d37c8a98d2d9db1 ]
    
    Driver anchors the tx urbs and defers the urb submission if
    a transmit request comes when the interface is suspended.
    Anchoring urb increments the urb reference count. These
    deferred urbs are later accessed by calling usb_get_from_anchor()
    for submission during interface resume. usb_get_from_anchor()
    unanchors the urb but urb reference count remains same.
    This causes the urb reference count to remain non-zero
    after usb_free_urb() gets called and urb never gets freed.
    Hence call usb_put_urb() after anchoring the urb to properly
    balance the reference count for these deferred urbs. Also,
    unanchor these deferred urbs during disconnect, to free them
    up.
    
    Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
    Acked-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d707b52912bfa83176b75efd40da193c18eef1e0
Author: Li RongQing <roy.qing.li@gmail.com>
Date:   Wed Oct 24 14:01:18 2012 +0800

    ipv6: Set default hoplimit as zero.
    
    [ Upstream commit 14edd87dc67311556f1254a8f29cf4dd6cb5b7d1 ]
    
    Commit a02e4b7dae4551(Demark default hoplimit as zero) only changes the
    hoplimit checking condition and default value in ip6_dst_hoplimit, not
    zeros all hoplimit default value.
    
    Keep the zeroing ip6_template_metrics[RTAX_HOPLIMIT - 1] to force it as
    const, cause as a37e6e344910(net: force dst_default_metrics to const
    section)
    
    Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1a94e022b36342cbdb156a9693bca95aab11ca4
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 18 09:14:12 2012 +0000

    tcp: fix FIONREAD/SIOCINQ
    
    [ Upstream commit a3374c42aa5f7237e87ff3b0622018636b0c847e ]
    
    tcp_ioctl() tries to take into account if tcp socket received a FIN
    to report correct number bytes in receive queue.
    
    But its flaky because if the application ate the last skb,
    we return 1 instead of 0.
    
    Correct way to detect that FIN was received is to test SOCK_DONE.
    
    Reported-by: Elliot Hughes <enh@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Tom Herbert <therbert@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f04b9af7ce98a3db1c4401cced1fef321a9dd57
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 18 03:21:55 2012 +0000

    netlink: use kfree_rcu() in netlink_release()
    
    [ Upstream commit 6d772ac5578f711d1ce7b03535d1c95bffb21dff ]
    
    On some suspend/resume operations involving wimax device, we have
    noticed some intermittent memory corruptions in netlink code.
    
    Stéphane Marchesin tracked this corruption in netlink_update_listeners()
    and suggested a patch.
    
    It appears netlink_release() should use kfree_rcu() instead of kfree()
    for the listeners structure as it may be used by other cpus using RCU
    protection.
    
    netlink_release() must set to NULL the listeners pointer when
    it is about to be freed.
    
    Also have to protect netlink_update_listeners() and
    netlink_has_listeners() if listeners is NULL.
    
    Add a nl_deref_protected() lockdep helper to properly document which
    locks protects us.
    
    Reported-by: Jonathan Kliegman <kliegs@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Stéphane Marchesin <marcheu@google.com>
    Cc: Sam Leffler <sleffler@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2f5b7507ac5d808f29287d77ee6148358d7fbfe
Author: Zijie Pan <zijie.pan@6wind.com>
Date:   Mon Oct 15 03:56:39 2012 +0000

    sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter()
    
    [ Upstream commit f6e80abeab928b7c47cc1fbf53df13b4398a2bec ]
    
    Bug introduced by commit edfee0339e681a784ebacec7e8c2dc97dc6d2839
    (sctp: check src addr when processing SACK to update transport state)
    
    Signed-off-by: Zijie Pan <zijie.pan@6wind.com>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9de4f2694044af68a826a568f0c97b1b83b5b173
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 12:42:48 2012 +0100

    ALSA: Avoid endless sleep after disconnect
    
    commit 0914f7961babbf28aaa2f19b453951fb4841c03f upstream.
    
    When disconnect callback is called, each component should wake up
    sleepers and check card->shutdown flag for avoiding the endless sleep
    blocking the proper resource release.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41a496238dae4c117548be819b0a3b3edbc48dc8
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 12:42:47 2012 +0100

    ALSA: Add a reference counter to card instance
    
    commit a0830dbd4e42b38aefdf3fb61ba5019a1a99ea85 upstream.
    
    For more strict protection for wild disconnections, a refcount is
    introduced to the card instance, and let it up/down when an object is
    referred via snd_lookup_*() in the open ops.
    
    The free-after-last-close check is also changed to check this refcount
    instead of the empty list, too.
    
    Reported-by: Matthieu CASTET <matthieu.castet@parrot.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c694ffc72666085a5ad880fef913ee2c8c69c4a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 12:42:46 2012 +0100

    ALSA: usb-audio: Fix races at disconnection in mixer_quirks.c
    
    commit 888ea7d5ac6815ba16b3b3a20f665a92c7af6724 upstream.
    
    Similar like the previous commit, cover with chip->shutdown_rwsem
    and chip->shutdown checks.
    
    Reported-by: Matthieu CASTET <matthieu.castet@parrot.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49e44e317fdb73d75a00a058df75a6b6fe172c08
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 12:42:45 2012 +0100

    ALSA: usb-audio: Use rwsem for disconnect protection
    
    commit 34f3c89fda4fba9fe689db22253ca8db2f5e6386 upstream.
    
    Replace mutex with rwsem for codec->shutdown protection so that
    concurrent accesses are allowed.
    
    Also add the protection to snd_usb_autosuspend() and
    snd_usb_autoresume(), too.
    
    Reported-by: Matthieu CASTET <matthieu.castet@parrot.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 799c92f2aecb348e4a4c6dab80c7206e48caf201
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 12:42:44 2012 +0100

    ALSA: usb-audio: Fix races at disconnection
    
    commit 978520b75f0a1ce82b17e1e8186417250de6d545 upstream.
    
    Close some races at disconnection of a USB audio device by adding the
    chip->shutdown_mutex and chip->shutdown check at appropriate places.
    
    The spots to put bandaids are:
    - PCM prepare, hw_params and hw_free
    - where the usb device is accessed for communication or get speed, in
     mixer.c and others; the device speed is now cached in subs->speed
     instead of accessing to chip->dev
    
    The accesses in PCM open and close don't need the mutex protection
    because these are already handled in the core PCM disconnection code.
    
    The autosuspend/autoresume codes are still uncovered by this patch
    because of possible mutex deadlocks.  They'll be covered by the
    upcoming change to rwsem.
    
    Also the mixer codes are untouched, too.  These will be fixed in
    another patch, too.
    
    Reported-by: Matthieu CASTET <matthieu.castet@parrot.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fee99c200f8138f3eb1cd6b3d69b199b3d86686
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 12:39:51 2012 +0100

    ALSA: PCM: Fix some races at disconnection
    
    commit 9b0573c07f278e9888c352aa9724035c75784ea0 upstream.
    
    Fix races at PCM disconnection:
    - while a PCM device is being opened or closed
    - while the PCM state is being changed without lock in prepare,
      hw_params, hw_free ops
    
    Reported-by: Matthieu CASTET <matthieu.castet@parrot.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45820dcb6cfe07b7ebb6ae5a5688f06b83996478
Author: Jean Delvare <khali@linux-fr.org>
Date:   Mon Nov 5 21:54:39 2012 +0100

    hwmon: (w83627ehf) Force initial bank selection
    
    commit 3300fb4f88688029fff8dfb9ec0734f6e4cba3e7 upstream.
    
    Don't assume bank 0 is selected at device probe time. This may not be
    the case. Force bank selection at first register access to guarantee
    that we read the right registers upon driver loading.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47baf0d8ba90a5765f8f51130f9b20dc49ff6da4
Author: Ilija Hadzic <ilijahadzic@gmail.com>
Date:   Mon Oct 29 17:35:00 2012 +0000

    drm: restore open_count if drm_setup fails
    
    commit 0f1cb1bd94a9c967cd4ad3de51cfdabe61eb5dcc upstream.
    
    If drm_setup (called at first open) fails, the whole
    open call has failed, so we should not keep the
    open_count incremented.
    
    Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
    Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cde52501359fecbcb5832c77c49f11af2cfaa21b
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Wed Aug 22 16:08:17 2012 -0400

    NFS: Fix Oopses in nfs_lookup_revalidate and nfs4_lookup_revalidate
    
    [Fixed upstream as part of 0b728e1911c, but that's a much larger patch,
    this is only the nfs portion backported as needed.]
    
    Fix the following Oops in 3.5.1:
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
     IP: [<ffffffffa03789cd>] nfs_lookup_revalidate+0x2d/0x480 [nfs]
     PGD 337c63067 PUD 0
     Oops: 0000 [#1] SMP
     CPU 5
     Modules linked in: nfs fscache nfsd lockd nfs_acl auth_rpcgss sunrpc af_packet binfmt_misc cpufreq_conservative cpufreq_userspace cpufreq_powersave dm_mod acpi_cpufreq mperf coretemp gpio_ich kvm_intel joydev kvm ioatdma hid_generic igb lpc_ich i7core_edac edac_core ptp serio_raw dca pcspkr i2c_i801 mfd_core sg pps_core usbhid crc32c_intel microcode button autofs4 uhci_hcd ttm drm_kms_helper drm i2c_algo_bit sysimgblt sysfillrect syscopyarea ehci_hcd usbcore usb_common scsi_dh_rdac scsi_dh_emc scsi_dh_hp_sw scsi_dh_alua scsi_dh edd fan ata_piix thermal processor thermal_sys
    
     Pid: 30431, comm: java Not tainted 3.5.1-2-default #1 Supermicro X8DTT/X8DTT
     RIP: 0010:[<ffffffffa03789cd>]  [<ffffffffa03789cd>] nfs_lookup_revalidate+0x2d/0x480 [nfs]
     RSP: 0018:ffff8801b418bd38  EFLAGS: 00010292
     RAX: 00000000fffffff6 RBX: ffff88032016d800 RCX: 0000000000000020
     RDX: ffffffff00000000 RSI: 0000000000000000 RDI: ffff8801824a7b00
     RBP: ffff8801b418bdf8 R08: 7fffff0034323030 R09: fffffffff04c03ed
     R10: ffff8801824a7b00 R11: 0000000000000002 R12: ffff8801824a7b00
     R13: ffff8801824a7b00 R14: 0000000000000000 R15: ffff8803201725d0
     FS:  00002b53a46cb700(0000) GS:ffff88033fc20000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000038 CR3: 000000020a426000 CR4: 00000000000007e0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
     Process java (pid: 30431, threadinfo ffff8801b418a000, task ffff8801b5d20600)
     Stack:
      ffff8801b418be44 ffff88032016d800 ffff8801b418bdf8 0000000000000000
      ffff8801824a7b00 ffff8801b418bdd7 ffff8803201725d0 ffffffff8116a9c0
      ffff8801b5c38dc0 0000000000000007 ffff88032016d800 0000000000000000
     Call Trace:
      [<ffffffff8116a9c0>] lookup_dcache+0x80/0xe0
      [<ffffffff8116aa43>] __lookup_hash+0x23/0x90
      [<ffffffff8116b4a5>] lookup_one_len+0xc5/0x100
      [<ffffffffa03869a3>] nfs_sillyrename+0xe3/0x210 [nfs]
      [<ffffffff8116cadf>] vfs_unlink.part.25+0x7f/0xe0
      [<ffffffff8116f22c>] do_unlinkat+0x1ac/0x1d0
      [<ffffffff815717b9>] system_call_fastpath+0x16/0x1b
      [<00002b5348b5f527>] 0x2b5348b5f526
     Code: ec 38 b8 f6 ff ff ff 4c 89 64 24 18 4c 89 74 24 28 49 89 fc 48 89 5c 24 08 48 89 6c 24 10 49 89 f6 4c 89 6c 24 20 4c 89 7c 24 30 <f6> 46 38 40 0f 85 d1 00 00 00 e8 c4 c4 df e0 48 8b 58 30 49 89
     RIP  [<ffffffffa03789cd>] nfs_lookup_revalidate+0x2d/0x480 [nfs]
      RSP <ffff8801b418bd38>
     CR2: 0000000000000038
     ---[ end trace 845113ed191985dd ]---
    
    This Oops affects 3.5 kernels and older, and is due to lookup_one_len()
    calling down to the dentry revalidation code with a NULL pointer
    to struct nameidata.
    
    It is fixed upstream by commit 0b728e1911c (stop passing nameidata *
    to ->d_revalidate())
    
    Reported-by: Richard Ems <richard.ems@cape-horn-eng.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 088eb1bed178645788538611ac31ba9991cd88c4
Author: NeilBrown <neilb@suse.de>
Date:   Wed Oct 31 12:16:01 2012 +1100

    NFS: fix bug in legacy DNS resolver.
    
    commit 8d96b10639fb402357b75b055b1e82a65ff95050 upstream.
    
    The DNS resolver's use of the sunrpc cache involves a 'ttl' number
    (relative) rather that a timeout (absolute).  This confused me when
    I wrote
      commit c5b29f885afe890f953f7f23424045cdad31d3e4
         "sunrpc: use seconds since boot in expiry cache"
    
    and I managed to break it.  The effect is that any TTL is interpreted
    as 0, and nothing useful gets into the cache.
    
    This patch removes the use of get_expiry() - which really expects an
    expiry time - and uses get_uint() instead, treating the int correctly
    as a ttl.
    
    This fixes a regression that has been present since 2.6.37, causing
    certain NFS accesses in certain environments to incorrectly fail.
    
    Reported-by: Chuck Lever <chuck.lever@oracle.com>
    Tested-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 588c72e88125b1abe50efb3f1b6b768b98302e2c
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Jun 12 16:54:16 2012 -0400

    nfsd: add get_uint for u32's
    
    commit a007c4c3e943ecc054a806c259d95420a188754b upstream.
    
    I don't think there's a practical difference for the range of values
    these interfaces should see, but it would be safer to be unambiguous.
    
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ada2107a13f1b1ae8bdd5fec32912bc40f4e679
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Mon Oct 29 18:37:40 2012 -0400

    NFSv4.1: We must release the sequence id when we fail to get a session slot
    
    commit 2240a9e2d013d8269ea425b73e1d7a54c7bc141f upstream.
    
    If we do not release the sequence id in cases where we fail to get a
    session slot, then we can deadlock if we hit a recovery scenario.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8827f3112b5f3bd0ffa21dc647cb22b197558c59
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Mon Oct 29 18:53:23 2012 -0400

    NFSv4: nfs4_locku_done must release the sequence id
    
    commit 2b1bc308f492589f7d49012ed24561534ea2be8c upstream.
    
    If the state recovery machinery is triggered by the call to
    nfs4_async_handle_error() then we can deadlock.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43113027b701f7b3f63c577056a9160dd3053f37
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Oct 21 19:23:52 2012 +0100

    nfs: Show original device name verbatim in /proc/*/mount{s,info}
    
    commit 97a54868262da1629a3e65121e65b8e8c4419d9f upstream.
    
    Since commit c7f404b ('vfs: new superblock methods to override
    /proc/*/mount{s,info}'), nfs_path() is used to generate the mounted
    device name reported back to userland.
    
    nfs_path() always generates a trailing slash when the given dentry is
    the root of an NFS mount, but userland may expect the original device
    name to be returned verbatim (as it used to be).  Make this
    canonicalisation optional and change the callers accordingly.
    
    [jrnieder@gmail.com: use flag instead of bool argument]
    Reported-and-tested-by: Chris Hiestand <chiestand@salk.edu>
    Reference: http://bugs.debian.org/669314
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b37d05604ce92f1c118fb6aeb2af8af71998d3e7
Author: Scott Mayhew <smayhew@redhat.com>
Date:   Tue Oct 16 13:22:19 2012 -0400

    nfsv3: Make v3 mounts fail with ETIMEDOUTs instead EIO on mountd timeouts
    
    commit acce94e68a0f346115fd41cdc298197d2d5a59ad upstream.
    
    In very busy v3 environment, rpc.mountd can respond to the NULL
    procedure but not the MNT procedure in a timely manner causing
    the MNT procedure to time out. The problem is the mount system
    call returns EIO which causes the mount to fail, instead of
    ETIMEDOUT, which would cause the mount to be retried.
    
    This patch sets the RPC_TASK_SOFT|RPC_TASK_TIMEOUT flags to
    the rpc_call_sync() call in nfs_mount() which causes
    ETIMEDOUT to be returned on timed out connections.
    
    Signed-off-by: Steve Dickson <steved@redhat.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1feb89af489539f927fc9ff0de99c945eec181c2
Author: Antonio Quartulli <ordex@autistici.org>
Date:   Fri Oct 26 18:54:25 2012 +0200

    mac80211: fix SSID copy on IBSS JOIN
    
    commit badecb001a310408d3473b1fc2ed5aefd0bc92a9 upstream.
    
    The 'ssid' field of the cfg80211_ibss_params is a u8 pointer and
    its length is likely to be less than IEEE80211_MAX_SSID_LEN most
    of the time.
    
    This patch fixes the ssid copy in ieee80211_ibss_join() by using
    the SSID length to prevent it from reading beyond the string.
    
    Signed-off-by: Antonio Quartulli <ordex@autistici.org>
    [rewrapped commit message, small rewording]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d39904cae2cb6e0dcbee3f80692b6052515e43ea
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Oct 26 00:41:23 2012 +0200

    mac80211: make sure data is accessible in EAPOL check
    
    commit 6dbda2d00d466225f9db1dc695ff852443f28832 upstream.
    
    The code to allow EAPOL frames even when the station
    isn't yet marked associated needs to check that the
    incoming frame is long enough and due to paged RX it
    also can't assume skb->data contains the right data,
    it must use skb_copy_bits(). Fix this to avoid using
    data that doesn't really exist.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4435990b6d456a8c5cac203c025d1f10e0b48a93
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Oct 26 00:36:40 2012 +0200

    mac80211: verify that skb data is present
    
    commit 9b395bc3be1cebf0144a127c7e67d56dbdac0930 upstream.
    
    A number of places in the mesh code don't check that
    the frame data is present and in the skb header when
    trying to access. Add those checks and the necessary
    pskb_may_pull() calls. This prevents accessing data
    that doesn't actually exist.
    
    To do this, export ieee80211_get_mesh_hdrlen() to be
    able to use it in mac80211.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 537d86c490a03bcb56dfa24c0327c18e61b1ced5
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Oct 26 00:33:36 2012 +0200

    mac80211: check management frame header length
    
    commit 4a4f1a5808c8bb0b72a4f6e5904c53fb8c9cd966 upstream.
    
    Due to pskb_may_pull() checking the skb length, all
    non-management frames are checked on input whether
    their 802.11 header is fully present. Also add that
    check for management frames and remove a check that
    is now duplicate. This prevents accessing skb data
    beyond the frame end.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b51c17efde8501badb4bf7355172eb262407ad8
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 1 13:47:09 2012 +1000

    drm/udl: fix stride issues scanning out stride != width*bpp
    
    commit 3916e1d71b62b120888aa50bcc8d9a6200fc19a7 upstream.
    
    When buffer sharing with the i915 and using a 1680x1050 monitor,
    the i915 gives is a 6912 buffer for the 6720 width, the code doesn't
    render this properly as it uses one value to set the base address for
    reading from the vmap and for where to start on the device.
    
    This fixes it by calculating the values correctly for the device and
    for the pixmap. No idea how I haven't seen this before now.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f93a53b38d63be316156ad8a332ed982ad33a59d
Author: Egbert Eich <eich@suse.de>
Date:   Wed Oct 24 18:29:49 2012 +0200

    DRM/Radeon: Fix Load Detection on legacy primary DAC.
    
    commit 83325d072185899b706de2956170b246585aaec9 upstream.
    
    An uninitialized variable led to broken load detection.
    
    Signed-off-by: Egbert Eich <eich@suse.de>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7be001e0fa58fa84e81fcc8a7951a3f3fe7c642c
Author: Javier Cardona <javier@cozybit.com>
Date:   Thu Oct 25 11:10:18 2012 -0700

    mac80211: don't inspect Sequence Control field on control frames
    
    commit f7fbf70ee9db6da6033ae50d100e017ac1f26555 upstream.
    
    Per IEEE Std. 802.11-2012, Sec 8.2.4.4.1, the sequence Control field is
    not present in control frames.  We noticed this problem when processing
    Block Ack Requests.
    
    Signed-off-by: Javier Cardona <javier@cozybit.com>
    Signed-off-by: Javier Lopez <jlopex@cozybit.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 739b9fa801cab6bd63d51de7d7a97b7bd8bbbdc8
Author: Javier Cardona <javier@cozybit.com>
Date:   Wed Oct 24 12:43:30 2012 -0700

    mac80211: Only process mesh config header on frames that RA_MATCH
    
    commit 555cb715be8ef98b8ec362b23dfc254d432a35b1 upstream.
    
    Doing otherwise is wrong, and may wreak havoc on the mpp tables,
    specially if the frame is encrypted.
    
    Reported-by: Chaoxing Lin <Chaoxing.Lin@ultra-3eti.com>
    Signed-off-by: Javier Cardona <javier@cozybit.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fec9a0c8f048db2807646fea92bdd87dc8adbade
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Oct 24 14:19:53 2012 +0200

    mac80211: use blacklist for duplicate IE check
    
    commit 9690fb169b433a66485c808e4fc352b8a0f8d866 upstream.
    
    Instead of the current whitelist which accepts duplicates
    only for the quiet and vendor IEs, use a blacklist of all
    IEs (that we currently parse) that can't be duplicated.
    
    This avoids detecting a beacon as corrupt in the future
    when new IEs are added that can be duplicated.
    
    Signed-off-by: Paul Stewart <pstew@chromium.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2404ce30fd4e4c46d3c3869093a5987c0d56fee6
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Oct 25 21:51:59 2012 +0200

    wireless: drop invalid mesh address extension frames
    
    commit 7dd111e8ee10cc6816669eabcad3334447673236 upstream.
    
    The mesh header can have address extension by a 4th
    or a 5th and 6th address, but never both. Drop such
    frames in 802.11 -> 802.3 conversion along with any
    frames that have the wrong extension.
    
    Reviewed-by: Javier Cardona <javier@cozybit.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91721d4a83437f183d29ae6397a3934fcfa28436
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Wed Oct 17 13:56:19 2012 +0200

    cfg80211: fix antenna gain handling
    
    commit c4a9fafc77a5318f5ed26c509bbcddf03e18c201 upstream.
    
    No driver initializes chan->max_antenna_gain to something sensible, and
    the only place where it is being used right now is inside ath9k. This
    leads to ath9k potentially using less tx power than it can use, which can
    decrease performance/range in some rare cases.
    
    Rather than going through every single driver, this patch initializes
    chan->orig_mag in wiphy_register(), ignoring whatever value the driver
    left in there. If a driver for some reason wishes to limit it independent
    from regulatory rulesets, it can do so internally.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfc5de3bc907e97b9aabce6d6517a55d5ed6d791
Author: Steve Hodgson <steve@purestorage.com>
Date:   Wed Oct 31 10:24:02 2012 -0700

    target: Fix incorrect usage of nested IRQ spinlocks in ABORT_TASK path
    
    commit ab74b3d62f05192bf8fb8f169e7999d1183b2e08 upstream.
    
    This patch changes core_tmr_abort_task() to use spin_lock -> spin_unlock
    around se_cmd->t_state_lock while spin_lock_irqsave is held via
    se_sess->sess_cmd_lock.
    
    Signed-off-by: Steve Hodgson <steve@purestorage.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f83bc1f1bff2e9b89b3a505750b067f0073fe5c
Author: Roland Dreier <roland@purestorage.com>
Date:   Wed Oct 31 09:16:46 2012 -0700

    iscsi-target: Fix missed wakeup race in TX thread
    
    commit d5627acba9ae584cf4928af19f7ddf5f6837de32 upstream.
    
    The sleeping code in iscsi_target_tx_thread() is susceptible to the classic
    missed wakeup race:
    
     - TX thread finishes handle_immediate_queue() and handle_response_queue(),
       thinks both queues are empty.
     - Another thread adds a queue entry and does wake_up_process(), which does
       nothing because the TX thread is still awake.
     - TX thread does schedule_timeout() and sleeps forever.
    
    In practice this can kill an iSCSI connection if for example an initiator
    does single-threaded writes and the target misses the wakeup window when
    queueing an R2T; in this case the connection will be stuck until the
    initiator loses patience and does some task management operation (or kills
    the connection entirely).
    
    Fix this by converting to wait_event_interruptible(), which does not
    suffer from this sort of race.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Cc: Andy Grover <agrover@redhat.com>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 227ab73196544a25f0c03338c5b49d3fdc1d1e38
Author: Roland Dreier <roland@purestorage.com>
Date:   Wed Oct 31 09:16:45 2012 -0700

    target: Avoid integer overflow in se_dev_align_max_sectors()
    
    commit 3e03989b5868acf69a391a424dc71fcd6cc48167 upstream.
    
    The expression (max_sectors * block_size) might overflow a u32
    (indeed, since iblock sets max_hw_sectors to UINT_MAX, it is
    guaranteed to overflow and end up with a much-too-small result in many
    common cases).  Fix this by doing an equivalent calculation that
    doesn't require multiplication.
    
    While we're touching this code, avoid splitting a printk format across
    two lines and use pr_info(...) instead of printk(KERN_INFO ...).
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 506485a3c6d926cc01e6d05088eac94adf1d6ae5
Author: Roland Dreier <roland@purestorage.com>
Date:   Wed Oct 31 09:16:44 2012 -0700

    target: Don't return success from module_init() if setup fails
    
    commit 0d0f9dfb31e0a6c92063e235417b42df185b3275 upstream.
    
    If the call to core_dev_release_virtual_lun0() fails, then nothing
    sets ret to anything other than 0, so even though everything is
    torn down and freed, target_core_init_configfs() will seem to succeed
    and the module will be loaded.  Fix this by passing the return value
    on up the chain.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75d1ac720f8e92d2334ff7cc4e9a58ddb5213636
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Thu Oct 25 09:51:39 2012 +0200

    rt2800: validate step value for temperature compensation
    
    commit bf7e1abe434ba9e22e8dc04a4cba4ab504b788b8 upstream.
    
    Some hardware has correct (!= 0xff) value of tssi_bounds[4] in the
    EEPROM, but step is equal to 0xff. This results on ridiculous delta
    calculations and completely broke TX power settings.
    
    Reported-and-tested-by: Pavel Lucik <pavel.lucik@gmail.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7bbaeecbffccbb38fcaf5f7c6af466c16e095d4b
Author: Sven Eckelmann <sven@narfation.org>
Date:   Mon Oct 29 13:25:20 2012 +0100

    ath9k: Test for TID only in BlockAcks while checking tx status
    
    commit 6fe7cc71bbf3a0bc28c9cec3c00bc11e81344412 upstream.
    
    The ath9k xmit functions for AMPDUs can send frames as non-aggregate in case
    only one frame is currently available. The client will then answer using a
    normal Ack instead of a BlockAck. This acknowledgement has no TID stored and
    therefore the hardware is not able to provide us the corresponding TID.
    
    The TID set by the hardware in the tx status descriptor has to be seen as
    undefined and not as a valid TID value for normal acknowledgements. Doing
    otherwise results in a massive amount of retransmissions and stalls of
    connections.
    
    Users may experience low bandwidth and complete connection stalls in
    environments with transfers using multiple TIDs.
    
    This regression was introduced in b11b160defc48e4daa283f785192ea3a23a51f8e
    ("ath9k: validate the TID in the tx status information").
    
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
    Acked-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2fad9a26b1a8a6e9732925cd97bd7b9ee25d6cc
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Fri Oct 26 00:31:11 2012 +0200

    ath9k: fix stale pointers potentially causing access to free'd skbs
    
    commit 8c6e30936a7893a85f6222084f0f26aceb81137a upstream.
    
    bf->bf_next is only while buffers are chained as part of an A-MPDU
    in the tx queue. When a tid queue is flushed (e.g. on tearing down
    an aggregation session), frames can be enqueued again as normal
    transmission, without bf_next being cleared. This can lead to the
    old pointer being dereferenced again later.
    
    This patch might fix crashes and "Failed to stop TX DMA!" messages.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 180bed351c02841004ee1c9d45a7efb1e207acf1
Author: Rolf Eike Beer <eike-kernel@sf-tec.de>
Date:   Tue Oct 30 23:39:10 2012 -0700

    Input: tsc40 - remove wrong announcement of pressure support
    
    commit 32ed1911fc79908d704023317d4ddeb3883fd07e upstream.
    
    The tsc40 driver announces it supports the pressure event, but will never
    send one. The announcement will cause tslib to wait for such events and
    sending all touch events with a pressure of 0. Removing the announcement
    will make tslib fall back to emulating the pressure on touch events so
    everything works as expected.
    
    Signed-off-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da205c80275a7f7a90c2baab423783c55c406878
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date:   Wed Oct 31 12:38:31 2012 -0400

    xen/mmu: Use Xen specific TLB flush instead of the generic one.
    
    commit 95a7d76897c1e7243d4137037c66d15cbf2cce76 upstream.
    
    As Mukesh explained it, the MMUEXT_TLB_FLUSH_ALL allows the
    hypervisor to do a TLB flush on all active vCPUs. If instead
    we were using the generic one (which ends up being xen_flush_tlb)
    we end up making the MMUEXT_TLB_FLUSH_LOCAL hypercall. But
    before we make that hypercall the kernel will IPI all of the
    vCPUs (even those that were asleep from the hypervisor
    perspective). The end result is that we needlessly wake them
    up and do a TLB flush when we can just let the hypervisor
    do it correctly.
    
    This patch gives around 50% speed improvement when migrating
    idle guest's from one host to another.
    
    Oracle-bug: 14630170
    
    Tested-by:  Jingjie Jiang <jingjie.jiang@oracle.com>
    Suggested-by:  Mukesh Rathor <mukesh.rathor@oracle.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccd37ab3230af7b32db1a139d9fe95918813bc23
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Wed Oct 24 12:39:02 2012 +0100

    xen/gntdev: don't leak memory from IOCTL_GNTDEV_MAP_GRANT_REF
    
    commit a67baeb77375199bbd842fa308cb565164dd1f19 upstream.
    
    map->kmap_ops allocated in gntdev_alloc_map() wasn't freed by
    gntdev_put_map().
    
    Add a gntdev_free_map() helper function to free everything allocated
    by gntdev_alloc_map().
    
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>