commit 155e05410f861fda0042d1e6dc5b1b7944c4c85a
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Fri Nov 16 16:47:22 2012 +0000

    Linux 3.2.34

commit c585c4e138c4688a1492e7f8f0515eadae653040
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: Ben Hutchings <ben@decadent.org.uk>

commit baf6d74e8693f8e71ccd2c47f0e1ee4480c9744f
Author: Mirko Lindner <mlindner@marvell.com>
Date:   Tue Jul 3 23:38:46 2012 +0000

    sky2: Fix for interrupt handler
    
    commit d663d181b9e92d80c2455e460e932d34e7a2a7ae upstream.
    
    Re-enable interrupts if it is not our interrupt
    
    Signed-off-by: Mirko Lindner <mlindner@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 647517abfcc508f4300a54d4e2ae285d1ce6d473
Author: Michal Schmidt <mschmidt@redhat.com>
Date:   Sun Sep 9 13:55:26 2012 +0000

    r8169: use unlimited DMA burst for TX
    
    commit aee77e4accbeb2c86b1d294cd84fec4a12dde3bd upstream.
    
    The r8169 driver currently limits the DMA burst for TX to 1024 bytes. I have
    a box where this prevents the interface from using the gigabit line to its full
    potential. This patch solves the problem by setting TX_DMA_BURST to unlimited.
    
    The box has an ASRock B75M motherboard with on-board RTL8168evl/8111evl
    (XID 0c900880). TSO is enabled.
    
    I used netperf (TCP_STREAM test) to measure the dependency of TX throughput
    on MTU. I did it for three different values of TX_DMA_BURST ('5'=512, '6'=1024,
    '7'=unlimited). This chart shows the results:
    http://michich.fedorapeople.org/r8169/r8169-effects-of-TX_DMA_BURST.png
    
    Interesting points:
     - With the current DMA burst limit (1024):
       - at the default MTU=1500 I get only 842 Mbit/s.
       - when going from small MTU, the performance rises monotonically with
         increasing MTU only up to a peak at MTU=1076 (908 MBit/s). Then there's
         a sudden drop to 762 MBit/s from which the throughput rises monotonically
         again with further MTU increases.
     - With a smaller DMA burst limit (512):
       - there's a similar peak at MTU=1076 and another one at MTU=564.
     - With unlimited DMA burst:
       - at the default MTU=1500 I get nice 940 Mbit/s.
       - the throughput rises monotonically with increasing MTU with no strange
         peaks.
    
    Notice that the peaks occur at MTU sizes that are multiples of the DMA burst
    limit plus 52. Why 52? Because:
      20 (IP header) + 20 (TCP header) + 12 (TCP options) = 52
    
    The Realtek-provided r8168 driver (v8.032.00) uses unlimited TX DMA burst too,
    except for CFG_METHOD_1 where the TX DMA burst is set to 512 bytes.
    CFG_METHOD_1 appears to be the oldest MAC version of "RTL8168B/8111B",
    i.e. RTL_GIGA_MAC_VER_11 in r8169. Not sure if this MAC version really needs
    the smaller burst limit, or if any other versions have similar requirements.
    
    Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
    Acked-by: Francois Romieu <romieu@fr.zoreil.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 90aa08b22c49fc0e59382ecd489cb43aacb9c21d
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Oct 31 14:00:46 2012 +0000

    r8169: Fix WoL on RTL8168d/8111d.
    
    commit b00e69dee4ccbb3a19989e3d4f1385bc2e3406cd upstream.
    
    This regression was spotted between Debian squeeze and Debian wheezy
    kernels (respectively based on 2.6.32 and 3.2). More info about
    Wake-on-LAN issues with Realtek's 816x chipsets can be found in the
    following thread: http://marc.info/?t=132079219400004
    
    Probable regression from d4ed95d796e5126bba51466dc07e287cebc8bd19;
    more chipsets are likely affected.
    
    Tested on top of a 3.2.23 kernel.
    
    Reported-by: Florent Fourcot <florent.fourcot@enst-bretagne.fr>
    Tested-by: Florent Fourcot <florent.fourcot@enst-bretagne.fr>
    Hinted-by: Francois Romieu <romieu@fr.zoreil.com>
    Signed-off-by: Cyril Brulebois <kibi@debian.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 12c3c3efc25e55faa0ce7a27df3047b74bf4ee89
Author: Nathan Walp <faceprint@faceprint.com>
Date:   Thu Nov 1 12:08:47 2012 +0000

    r8169: allow multicast packets on sub-8168f chipset.
    
    commit 0481776b7a70f09acf7d9d97c288c3a8403fbfe4 upstream.
    
    RTL_GIGA_MAC_VER_35 includes no multicast hardware filter.
    
    Signed-off-by: Nathan Walp <faceprint@faceprint.com>
    Suggested-by: Hayes Wang <hayeswang@realtek.com>
    Acked-by: Francois Romieu <romieu@fr.zoreil.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 50a2114dde86ea598918716f1b44fdc88f3692d8
Author: Tim Sally <tsally@atomicpeace.com>
Date:   Thu Jul 12 19:10:24 2012 -0400

    eCryptfs: check for eCryptfs cipher support at mount
    
    commit 5f5b331d5c21228a6519dcb793fc1629646c51a6 upstream.
    
    The issue occurs when eCryptfs is mounted with a cipher supported by
    the crypto subsystem but not by eCryptfs. The mount succeeds and an
    error does not occur until a write. This change checks for eCryptfs
    cipher support at mount time.
    
    Resolves Launchpad issue #338914, reported by Tyler Hicks in 03/2009.
    https://bugs.launchpad.net/ecryptfs/+bug/338914
    
    Signed-off-by: Tim Sally <tsally@atomicpeace.com>
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 916fef09cb43ee4aad40129b3f9e3fd4bb1c641f
Author: Tyler Hicks <tyhicks@canonical.com>
Date:   Mon Jun 11 15:42:32 2012 -0700

    eCryptfs: Copy up POSIX ACL and read-only flags from lower mount
    
    commit 069ddcda37b2cf5bb4b6031a944c0e9359213262 upstream.
    
    When the eCryptfs mount options do not include '-o acl', but the lower
    filesystem's mount options do include 'acl', the MS_POSIXACL flag is not
    flipped on in the eCryptfs super block flags. This flag is what the VFS
    checks in do_last() when deciding if the current umask should be applied
    to a newly created inode's mode or not. When a default POSIX ACL mask is
    set on a directory, the current umask is incorrectly applied to new
    inodes created in the directory. This patch ignores the MS_POSIXACL flag
    passed into ecryptfs_mount() and sets the flag on the eCryptfs super
    block depending on the flag's presence on the lower super block.
    
    Additionally, it is incorrect to allow a writeable eCryptfs mount on top
    of a read-only lower mount. This missing check did not allow writes to
    the read-only lower mount because permissions checks are still performed
    on the lower filesystem's objects but it is best to simply not allow a
    rw mount on top of ro mount. However, a ro eCryptfs mount on top of a rw
    mount is valid and still allowed.
    
    https://launchpad.net/bugs/1009207
    
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Reported-by: Stefan Beller <stefanbeller@googlemail.com>
    Cc: John Johansen <john.johansen@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2a40657242f3675a8820a00f59c2e96cbed25d23
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: Ben Hutchings <ben@decadent.org.uk>

commit 09fa6cbf9ffc8dddc11263dba070e3e14adea723
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: Ben Hutchings <ben@decadent.org.uk>

commit 20f2d6825ac85669edc96717f584a7194c4f3af6
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: Ben Hutchings <ben@decadent.org.uk>

commit df769f065d7bebf0ddc5f61605dbb1d8ea5ee2d8
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: Ben Hutchings <ben@decadent.org.uk>

commit a6057bf0949d9764a5d5defd9a58ec03e80bbcdc
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: Ben Hutchings <ben@decadent.org.uk>

commit 379e38f89ef5e17a048482c900af4acb3afb86ef
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: Ben Hutchings <ben@decadent.org.uk>

commit e8c9f482ed9dc59f3747a065e497854ddd174e60
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: Ben Hutchings <ben@decadent.org.uk>

commit 9e4ac2075cbf126be9e37762c8c1c6aec714dcc5
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: Ben Hutchings <ben@decadent.org.uk>

commit de77b7955c3985ca95f64af3cb10557eb17eacee
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: Ben Hutchings <ben@decadent.org.uk>

commit ab0a15b099b6cae3e53d6799c3fce654e124b73c
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: Ben Hutchings <ben@decadent.org.uk>

commit ab0f58dfbdf8eecb506df9b856e0afc0e4f47121
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: Ben Hutchings <ben@decadent.org.uk>

commit 3f2a7f33cab017aaf692a499439b8cd6b8998c7f
Author: Takamori Yamaguchi <takamori.yamaguchi@jp.sony.com>
Date:   Thu Nov 8 15:53:39 2012 -0800

    mm: bugfix: set current->reclaim_state to NULL while returning from kswapd()
    
    commit b0a8cc58e6b9aaae3045752059e5e6260c0b94bc upstream.
    
    In kswapd(), set current->reclaim_state to NULL before returning, as
    current->reclaim_state holds reference to variable on kswapd()'s stack.
    
    In rare cases, while returning from kswapd() during memory offlining,
    __free_slab() and freepages() can access the dangling pointer of
    current->reclaim_state.
    
    Signed-off-by: Takamori Yamaguchi <takamori.yamaguchi@jp.sony.com>
    Signed-off-by: Aaditya Kumar <aaditya.kumar@ap.sony.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ca6072f097be890dc39ad6423522ab7bda42d0b7
Author: Eric Paris <eparis@redhat.com>
Date:   Thu Nov 8 15:53:37 2012 -0800

    fanotify: fix missing break
    
    commit 848561d368751a1c0f679b9f045a02944506a801 upstream.
    
    Anders Blomdell noted in 2010 that Fanotify lost events and provided a
    test case.  Eric Paris confirmed it was a bug and posted a fix to the
    list
    
      https://groups.google.com/forum/?fromgroups=#!topic/linux.kernel/RrJfTfyW2BE
    
    but never applied it.  Repeated attempts over time to actually get him
    to apply it have never had a reply from anyone who has raised it
    
    So apply it anyway
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Reported-by: Anders Blomdell <anders.blomdell@control.lth.se>
    Cc: Eric Paris <eparis@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a4dd8a8ecfe148e6a6a361237208292e4061d46f
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: Ben Hutchings <ben@decadent.org.uk>

commit 80b36c5e0e38ce18815c392a1fcbb16cd1480853
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: Ben Hutchings <ben@decadent.org.uk>

commit 3eda424af1fc17bf94b019eced3c6c5b7134556d
Author: Kailang Yang <kailang@realtek.com>
Date:   Thu Nov 8 10:25:37 2012 +0100

    ALSA: hda - Add new codec ALC668 and ALC900 (default name ALC1150)
    
    commit 19a62823eae453619604636082085812c14ee391 upstream.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3108747fc8d5c940d626e2f4f106c431169c0ec1
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 10:37:48 2012 +0100

    ALSA: hda - Fix invalid connections in VT1802 codec
    
    commit ef4da45828603df57e5e21b8aa21a66ce309f79b upstream.
    
    VT1802 codec provides the invalid connection lists of NID 0x24 and
    0x33 containing the routes to a non-exist widget 0x3e.  This confuses
    the auto-parser.  Fix it up in the driver by overriding these
    connections.
    
    Reported-by: Massimo Del Fedele <max@veneto.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 93939c34d9fa85c8fa27346b6a9ef08bd77984ce
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 7 10:32:47 2012 +0100

    ALSA: hda - Fix empty DAC filling in patch_via.c
    
    commit 5b3761954dac2d1393beef8210eb8cee81d16b8d upstream.
    
    In via_auto_fill_adc_nids(), the parser tries to fill dac_nids[] at
    the point of the current line-out (i).  When no valid path is found
    for this output, this results in dac = 0, thus it creates a hole in
    dac_nids[].  This confuses is_empty_dac() and trims the detected DAC
    in later reference.
    
    This patch fixes the bug by appending DAC properly to dac_nids[] in
    via_auto_fill_adc_nids().
    
    Reported-by: Massimo Del Fedele <max@veneto.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 859f2c0d443558ff604c370cb238182ef2786410
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: Ben Hutchings <ben@decadent.org.uk>

commit e636bd393f3e2aad218933fb879caacb2d112738
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: Ben Hutchings <ben@decadent.org.uk>

commit 4ab8c7f8b9dbd7d20960f2e430c7d9c0eac3fa88
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Nov 5 12:32:46 2012 +0100

    ALSA: hda - Force to reset IEC958 status bits for AD codecs
    
    commit ae24c3191ba2ab03ec6b4be323e730e00404b4b6 upstream.
    
    Several bug reports suggest that the forcibly resetting IEC958 status
    bits is required for AD codecs to get the SPDIF output working
    properly after changing streams.
    
    Original fix credit to Javeed Shaikh.
    
    BugLink: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361
    
    Reported-by: Robin Kreis <r.kreis@uni-bremen.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f385bbf0ada36111df8069110e386556dcd94279
Author: Daniel J Blueman <daniel@quora.org>
Date:   Sun Nov 4 13:19:03 2012 +0800

    ALSA: HDA: Fix digital microphone on CS420x
    
    commit 16337e028a6dae9fbdd718c0d42161540a668ff3 upstream.
    
    Correctly enable the digital microphones with the right bits in the
    right coeffecient registers on Cirrus CS4206/7 codecs. It also
    prevents misconfiguring ADC1/2.
    
    This fixes the digital mic on the Macbook Pro 10,1/Retina.
    
    Based-on-patch-by: Alexander Stein <alexander.stein@systec-electronic.com>
    Signed-off-by: Daniel J Blueman <daniel@quora.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a28f21520d0f525681f1ced0c72265548558b0cc
Author: Alexander Stein <alexander.stein@systec-electronic.com>
Date:   Thu Nov 1 13:42:37 2012 +0100

    ALSA: hda: Cirrus: Fix coefficient index for beep configuration
    
    commit 5a83b4b5a391f07141b157ac9daa51c409e71ab5 upstream.
    
    Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1bdf24e3eac6291b98ada856cbec78fdf58725ff
Author: Jeff Layton <jlayton@redhat.com>
Date:   Sat Nov 3 09:37:28 2012 -0400

    cifs: fix potential buffer overrun in cifs.idmap handling code
    
    commit 36960e440ccf94349c09fb944930d3bfe4bc473f upstream.
    
    The userspace cifs.idmap program generally works with the wbclient libs
    to generate binary SIDs in userspace. That program defines the struct
    that holds these values as having a max of 15 subauthorities. The kernel
    idmapping code however limits that value to 5.
    
    When the kernel copies those values around though, it doesn't sanity
    check the num_subauths value handed back from userspace or from the
    server. It's possible therefore for userspace to hand us back a bogus
    num_subauths value (or one that's valid, but greater than 5) that could
    cause the kernel to walk off the end of the cifs_sid->sub_auths array.
    
    Fix this by defining a new routine for copying sids and using that in
    all of the places that copy it. If we end up with a sid that's longer
    than expected then this approach will just lop off the "extra" subauths,
    but that's basically what the code does today already. Better approaches
    might be to fix this code to reject SIDs with >5 subauths, or fix it
    to handle the subauths array dynamically.
    
    At the same time, change the kernel to check the length of the data
    returned by userspace. If it's shorter than struct cifs_sid, reject it
    and return -EIO. If that happens we'll end up with fields that are
    basically uninitialized.
    
    Long term, it might make sense to redefine cifs_sid using a flexarray at
    the end, to allow for variable-length subauth lists, and teach the code
    to handle the case where the subauths array being passed in from
    userspace is shorter than 5 elements.
    
    Note too, that I don't consider this a security issue since you'd need
    a compromised cifs.idmap program. If you have that, you can do all sorts
    of nefarious stuff. Still, this is probably reasonable for stable.
    
    Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
    Signed-off-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2934c2b2710d91472eda799de71b51571417cd59
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: Ben Hutchings <ben@decadent.org.uk>

commit 620cc1df7f260855bfa05f56483ced4be702d57b
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: Ben Hutchings <ben@decadent.org.uk>

commit ca8b38a5d0489f39245404acea9a1524b29d1cbb
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: Ben Hutchings <ben@decadent.org.uk>

commit c7685e47cf98dbaeaf523b7c235bf251bba1354f
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: Ben Hutchings <ben@decadent.org.uk>

commit bb3cbd2f2ba8ea7b05a62782111f6fb174782908
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>
    [bwh: Backported to 3.2:
     - Adjust context
     - nfs_show_devname() still takes a pointer to struct vfsmount]

commit 305180b3aff6c202cb4f81fc3a28d2ad11769d2b
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: Ben Hutchings <ben@decadent.org.uk>

commit 0a616792682920177b89dd9a01f96240020a6472
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: Ben Hutchings <ben@decadent.org.uk>

commit 4360e736de7c705c936132431ec765803e3c313e
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: Ben Hutchings <ben@decadent.org.uk>

commit d6d5a8514ee883d824427e5a70103c180ffbb6e9
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>
    [bwh: Backported to 3.2:
     - Adjust context
     - nfs4_setup_sequence() has an additional 'cache_reply' parameter]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0182399b8032adcc5123ac9ab4634c1f060cb7fd
Author: Bryan Schumaker <bjschuma@netapp.com>
Date:   Tue Oct 30 16:06:35 2012 -0400

    NFS: Wait for session recovery to finish before returning
    
    commit 399f11c3d872bd748e1575574de265a6304c7c43 upstream.
    
    Currently, we will schedule session recovery and then return to the
    caller of nfs4_handle_exception.  This works for most cases, but causes
    a hang on the following test case:
    
    	Client				Server
    	------				------
    	Open file over NFS v4.1
    	Write to file
    					Expire client
    	Try to lock file
    
    The server will return NFS4ERR_BADSESSION, prompting the client to
    schedule recovery.  However, the client will continue placing lock
    attempts and the open recovery never seems to be scheduled.  The
    simplest solution is to wait for session recovery to run before retrying
    the lock.
    
    Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c2ba72569bfde13675ef00ed3f44f500f0d7c10a
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: Ben Hutchings <ben@decadent.org.uk>

commit a265603048f8340597e1d6eab7a2500094484fb5
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Fri Oct 19 13:28:46 2012 +0200

    HID: microsoft: fix invalid rdesc for 3k kbd
    
    commit 3ccc60f9d8c39180c205dba1a020735bda1b2491 upstream.
    
    Microsoft Digital Media Keyboard 3000 has two interfaces, and the
    second one has a report descriptor with a bug. The second collection
    says:
    05 01 -- global; usage page -- 01 -- Generic Desktop Controls
    09 80 -- local; usage -- 80 -- System Control
    a1 01 -- main; collection -- 01 -- application
    
    85 03 -- global; report ID -- 03
    19 00 -- local; Usage Minimum -- 00
    29 ff -- local; Usage Maximum -- ff
    15 00 -- global; Logical Minimum -- 0
    26 ff 00 -- global; Logical Maximum -- ff
    81 00 -- main; input
    
    c0 -- main; End Collection
    
    I.e. it makes us think that there are all kinds of usages of system
    control. That the keyboard is a not only a keyboard, but also a
    joystick, mouse, gamepad, keypad, etc. The same as for the Wireless
    Desktop Receiver, this should be Physical Min/Max. So fix that
    appropriately.
    
    References: https://bugzilla.novell.com/show_bug.cgi?id=776834
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8074390b8da38ff0693f6119b2c72adc7cfdc891
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: Ben Hutchings <ben@decadent.org.uk>

commit 1d60939abd811d472171dfe714c3d25804fc2693
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Thu Oct 25 10:49:25 2012 +1030

    module: fix out-by-one error in kallsyms
    
    commit 59ef28b1f14899b10d6b2682c7057ca00a9a3f47 upstream.
    
    Masaki found and patched a kallsyms issue: the last symbol in a
    module's symtab wasn't transferred.  This is because we manually copy
    the zero'th entry (which is always empty) then copy the rest in a loop
    starting at 1, though from src[0].  His fix was minimal, I prefer to
    rewrite the loops in more standard form.
    
    There are two loops: one to get the size, and one to copy.  Make these
    identical: always count entry 0 and any defined symbol in an allocated
    non-init section.
    
    This bug exists since the following commit was introduced.
       module: reduce symbol table for loaded modules (v2)
       commit: 4a4962263f07d14660849ec134ee42b63e95ea9a
    
    LKML: http://lkml.org/lkml/2012/10/24/27
    Reported-by: Masaki Kimura <masaki.kimura.kz@hitachi.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    [bwh: Backported to 3.2: we're still using a bitmap to compress the string
     table]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ee5e9ba331c346da00557849bbe75ba7e2be3333
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>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a34f5ed64db4412c1f1cd13b11ca3bc7a88d4066
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: Ben Hutchings <ben@decadent.org.uk>

commit de1e9234c8d6aa740d2c8b6df0bca372663481d9
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: Ben Hutchings <ben@decadent.org.uk>

commit 5b4478f5dabb7f764e2fce480b47204e06095a73
Author: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Date:   Mon Aug 27 20:56:54 2012 -0300

    floppy: properly handle failure on add_disk loop
    
    commit d60e7ec18c3fb2cbf90969ccd42889eb2d03aef9 upstream.
    
    On floppy initialization, if something failed inside the loop we call
    add_disk, there was no cleanup of previous iterations in the error
    handling.
    
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ae1ab6ee65fe4cf7d6752b5aefffd97fc84984b2
Author: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Date:   Mon Aug 27 20:56:52 2012 -0300

    floppy: do put_disk on current dr if blk_init_queue fails
    
    commit 238ab78469c6ab7845b43d5061cd3c92331b2452 upstream.
    
    If blk_init_queue fails, we do not call put_disk on the current dr
    (dr is decremented first in the error handling loop).
    
    Reviewed-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit aba58442cc2198273c9815253030e83ba6f42edc
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>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0884603402e58608f62f17306aedb33b862d7b6d
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: Ben Hutchings <ben@decadent.org.uk>

commit b0f5b374eadb79d66dedd9cec7b0f4e7bb6f70c4
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: Ben Hutchings <ben@decadent.org.uk>

commit c63cddefa8d6360353ba0e60f42b6c82f1c11b3c
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: Ben Hutchings <ben@decadent.org.uk>

commit 38f0512e7ed39ee586e125b82a358e962a34f9a8
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: Ben Hutchings <ben@decadent.org.uk>

commit e03a4913b8696586da297393a752c3b0a6b01314
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: Ben Hutchings <ben@decadent.org.uk>

commit 600c1eef55f14967c43819a34108ca2c7dabbbdd
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: Ben Hutchings <ben@decadent.org.uk>

commit e39761ee8faf2e80dc4ad22bfac43a122d9fd3a8
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>
    [bwh: Backported to 3.2: we have a large block conditional on
     IEEE80211_RX_RA_MATCH rather than a goto conditional on the opposite,
     so delete the condition]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c5cb6b2df5fa914f57a36b7b03b01a4d9d29030f
Author: Bo Shen <voice.shen@atmel.com>
Date:   Mon Oct 15 17:30:27 2012 +0800

    ARM: at91/i2c: change id to let i2c-gpio work
    
    commit 7840487cd6298f9f931103b558290d8d98d41c49 upstream.
    
    The i2c core driver will turn the platform device ID to busnum
    When using platfrom device ID as -1, it means dynamically assigned
    the busnum. When writing code, we need to make sure the busnum,
    and call i2c_register_board_info(int busnum, ...) to register device
    if using -1, we do not know the value of busnum
    
    In order to solve this issue, set the platform device ID as a fix number
    Here using 0 to match the busnum used in i2c_regsiter_board_info()
    
    Signed-off-by: Bo Shen <voice.shen@atmel.com>
    Acked-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 51e7f9ffd8d337512bc0663a9e56a7bdd1b55f37
Author: Ivan Shugov <ivan.shugov@gmail.com>
Date:   Wed Oct 24 11:02:44 2012 +0200

    ARM: at91: at91sam9g10: fix SOC type detection
    
    commit 3d9a0183dd3423353e9e363bcc261c1220d05f9f upstream.
    
    Newer at91sam9g10 SoC revision can't be detected, so the kernel can't boot with
    this kind of kernel panic:
    "AT91: Impossible to detect the SOC type"
    
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: Atmel AT91SAM9G10-EK
    Ignoring tag cmdline (using the default kernel command line)
    bootconsole [earlycon0] enabled
    Memory policy: ECC disabled, Data cache writeback
    Kernel panic - not syncing: AT91: Impossible to detect the SOC type
    [<c00133d4>] (unwind_backtrace+0x0/0xe0) from [<c02366dc>] (panic+0x78/0x1cc)
    [<c02366dc>] (panic+0x78/0x1cc) from [<c02fa35c>] (at91_map_io+0x90/0xc8)
    [<c02fa35c>] (at91_map_io+0x90/0xc8) from [<c02f9860>] (paging_init+0x564/0x6d0)
    [<c02f9860>] (paging_init+0x564/0x6d0) from [<c02f7914>] (setup_arch+0x464/0x704)
    [<c02f7914>] (setup_arch+0x464/0x704) from [<c02f44f8>] (start_kernel+0x6c/0x2d4)
    [<c02f44f8>] (start_kernel+0x6c/0x2d4) from [<20008040>] (0x20008040)
    
    The reason for this is that the Debug Unit Chip ID Register has changed between
    Engineering Sample and definitive revision of the SoC. Changing the check of
    cidr to socid will address the problem. We do not integrate this check to the
    list just above because we also have to make sure that the extended id is
    disregarded.
    
    Signed-off-by: Ivan Shugov <ivan.shugov@gmail.com>
    [nicolas.ferre@atmel.com: change commit message]
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6ae9425d0d643c68945b7772c6adf3ea1f40e864
Author: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Date:   Sun Oct 21 20:42:28 2012 +0300

    crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent data corruption
    
    commit 9efade1b3e981f5064f9db9ca971b4dc7557ae42 upstream.
    
    cryptd_queue_worker attempts to prevent simultaneous accesses to crypto
    workqueue by cryptd_enqueue_request using preempt_disable/preempt_enable.
    However cryptd_enqueue_request might be called from softirq context,
    so add local_bh_disable/local_bh_enable to prevent data corruption and
    panics.
    
    Bug report at http://marc.info/?l=linux-crypto-vger&m=134858649616319&w=2
    
    v2:
     - Disable software interrupts instead of hardware interrupts
    
    Reported-by: Gurucharan Shetty <gurucharan.shetty@gmail.com>
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7381ef4c90bd96b8fa02b28077eb657a154ba156
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: Ben Hutchings <ben@decadent.org.uk>

commit 86be6e6c2342c42c32d0f5a8afd1280bd159c9d8
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>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 769ac5b16b1d66dcc6eb9edba11db1a98ad8d77f
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Oct 22 12:55:55 2012 +0200

    drm/i915: fix overlay on i830M
    
    commit a9193983f4f292a82a00c72971c17ec0ee8c6c15 upstream.
    
    The overlay on the i830M has a peculiar failure mode: It works the
    first time around after boot-up, but consistenly hangs the second time
    it's used.
    
    Chris Wilson has dug out a nice errata:
    
    "1.5.12 Clock Gating Disable for Display Register
    Address Offset:	06200h–06203h
    
    "Bit 3
    Ovrunit Clock Gating Disable.
    0 = Clock gating controlled by unit enabling logic
    1 = Disable clock gating function
    DevALM Errata ALM049: Overlay Clock Gating Must be Disabled:  Overlay
    & L2 Cache clock gating must be disabled in order to prevent device
    hangs when turning off overlay.SW must turn off Ovrunit clock gating
    (6200h) and L2 Cache clock gating (C8h)."
    
    Now I've nowhere found that 0xc8 register and hence couldn't apply the
    l2 cache workaround. But I've remembered that part of the magic that
    the OVERLAY_ON/OFF commands are supposed to do is to rearrange cache
    allocations so that the overlay scaler has some scratch space.
    
    And while pondering how that could explain the hang the 2nd time we
    enable the overlay, I've remembered that the old ums overlay code did
    _not_ issue the OVERLAY_OFF cmd.
    
    And indeed, disabling the OFF cmd results in the overlay working
    flawlessly, so I guess we can workaround the lack of the above
    workaround by simply never disabling the overlay engine once it's
    enabled.
    
    Note that we have the first part of the above w/a already implemented
    in i830_init_clock_gating - leave that as-is to avoid surprises.
    
    v2: Add a comment in the code.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47827
    Tested-by: Rhys <rhyspuk@gmail.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [bwh: Backported to 3.2:
     - Adjust context
     - s/intel_ring_emit(ring, /OUT_RING(/]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c54acd7da1a73f24ceb15c0edc92a5f8d3b09b23
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: Ben Hutchings <ben@decadent.org.uk>

commit 5a7b9047f5512e10e6ef89cd36e5b572bf13f60e
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Oct 11 09:56:35 2012 +0300

    gpio-timberdale: fix a potential wrapping issue
    
    commit d79550a7bc35c16476ebdc27c78378d8093390ec upstream.
    
    ->last_ier is an unsigned long but the high bits can't be used int the
    original code because the shift wraps.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bdf24c170f3ac62c564392ca60a682baa0e7ef58
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Sun Mar 4 12:32:10 2012 +0000

    rtnetlink: fix rtnl_calcit() and rtnl_dump_ifinfo()
    
    commit a4b64fbe482c7766f7925f03067fc637716bfa3f upstream.
    
    nlmsg_parse() might return an error, so test its return value before
    potential random memory accesses.
    
    Errors introduced in commit 115c9b81928 (rtnetlink: Fix problem with
    buffer allocation)
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: Greg Rose <gregory.v.rose@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d318a127e273716c9531fe70d497ca24db4c0bf1
Author: Greg Rose <gregory.v.rose@intel.com>
Date:   Tue Feb 21 16:54:48 2012 -0500

    rtnetlink: Fix problem with buffer allocation
    
    commit 115c9b81928360d769a76c632bae62d15206a94a upstream.
    
    Implement a new netlink attribute type IFLA_EXT_MASK.  The mask
    is a 32 bit value that can be used to indicate to the kernel that
    certain extended ifinfo values are requested by the user application.
    At this time the only mask value defined is RTEXT_FILTER_VF to
    indicate that the user wants the ifinfo dump to send information
    about the VFs belonging to the interface.
    
    This patch fixes a bug in which certain applications do not have
    large enough buffers to accommodate the extra information returned
    by the kernel with large numbers of SR-IOV virtual functions.
    Those applications will not send the new netlink attribute with
    the interface info dump request netlink messages so they will
    not get unexpectedly large request buffers returned by the kernel.
    
    Modifies the rtnl_calcit function to traverse the list of net
    devices and compute the minimum buffer size that can hold the
    info dumps of all matching devices based upon the filter passed
    in via the new netlink attribute filter mask.  If no filter
    mask is sent then the buffer allocation defaults to NLMSG_GOODSIZE.
    
    With this change it is possible to add yet to be defined netlink
    attributes to the dump request which should make it fairly extensible
    in the future.
    
    Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [bwh: Backported to 3.2: drop the change in do_setlink() that reverts
     commit f18da14565819ba43b8321237e2426a2914cc2ef, which we never applied]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ca9d9980c95b9cb3cbacb39408873d0f9b06fa7b
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: Ben Hutchings <ben@decadent.org.uk>

commit e423cb5f6c73f011e99c352b2d804a28fc2e36e9
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Nov 5 16:34:58 2012 +0000

    drm/radeon: fix typo in evergreen_mc_resume()
    
    commit 695ddeb457584a602f2ba117d08ce37cf6ec1589 upstream.
    
    Add missing index that may have led us to enabling
    more crtcs than necessary.
    
    May also fix:
    https://bugs.freedesktop.org/show_bug.cgi?id=56139
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 38638f09259204fd9e6c6486867d8e2771ec5a4d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Oct 16 16:43:39 2012 +0200

    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: Ben Hutchings <ben@decadent.org.uk>

commit 3b4a36722e5e518e4bdd3a215d8a1c5adc18e911
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Oct 16 13:05:59 2012 +0200

    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: Ben Hutchings <ben@decadent.org.uk>

commit f6415ce55f2430e38f674d8421511e489b2c71b0
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Oct 15 12:40:37 2012 +0200

    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: Ben Hutchings <ben@decadent.org.uk>

commit 49b950b1fb8fe2f629b2e362d8461709d18cd27c
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Oct 15 12:16:02 2012 +0200

    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: Ben Hutchings <ben@decadent.org.uk>

commit b40a2450225ea92981da4540f437e34661c6180b
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Oct 12 15:12:55 2012 +0200

    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: Ben Hutchings <ben@decadent.org.uk>

commit 700949d473671e3b20434d5a4cde71a04db88787
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Oct 12 15:07:34 2012 +0200

    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: Ben Hutchings <ben@decadent.org.uk>

commit e2f0e7307a7fd8b30bff60c4fb17ce23fc0d773b
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>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9a8dc834132f413ba8206768b39577b0cde1742c
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Wed Oct 31 12:16:06 2012 +1000

    drm/nouveau: headless mode by default if pci class != vga display
    
    commit e412e95a268fa8544858ebfe066826b290430d51 upstream.
    
    This is to prevent nouveau from taking over the console on headless boards
    such as Tesla.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9b945af86d364b8f0aff0eddd022d1673f703979
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Thu Nov 1 16:16:31 2012 +1000

    drm/nouveau: fix suspend/resume when in headless mode
    
    commit 9430738d80223a1cd791a2baa74fa170d3df1262 upstream.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    [jrnieder@gmail.com: backport to 3.2: make fbcon suspend/resume
     handling conditional in a vague hope that this will approximate what
     the original does for 3.3+]
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 19ceff5d73472322b13e00c8547e3f02312da633
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Oct 29 09:03:07 2012 +1000

    drm/nouveau: silence modesetting spam on pre-gf8 chipsets
    
    commit cee59f15a60cc6269a25e3f6fbf1a577d6ab8115 upstream.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 76b9718bcb7a2e6b6bf87dd29565dce513c65559
Author: Len Brown <len.brown@intel.com>
Date:   Thu Mar 29 14:49:17 2012 -0700

    x86: Remove the ancient and deprecated disable_hlt() and enable_hlt() facility
    
    commit f6365201d8a21fb347260f89d6e9b3e718d63c70 upstream.
    
    The X86_32-only disable_hlt/enable_hlt mechanism was used by the
    32-bit floppy driver. Its effect was to replace the use of the
    HLT instruction inside default_idle() with cpu_relax() - essentially
    it turned off the use of HLT.
    
    This workaround was commented in the code as:
    
     "disable hlt during certain critical i/o operations"
    
     "This halt magic was a workaround for ancient floppy DMA
      wreckage. It should be safe to remove."
    
    H. Peter Anvin additionally adds:
    
     "To the best of my knowledge, no-hlt only existed because of
      flaky power distributions on 386/486 systems which were sold to
      run DOS.  Since DOS did no power management of any kind,
      including HLT, the power draw was fairly uniform; when exposed
      to the much hhigher noise levels you got when Linux used HLT
      caused some of these systems to fail.
    
      They were by far in the minority even back then."
    
    Alan Cox further says:
    
     "Also for the Cyrix 5510 which tended to go castors up if a HLT
      occurred during a DMA cycle and on a few other boxes HLT during
      DMA tended to go astray.
    
      Do we care ? I doubt it. The 5510 was pretty obscure, the 5520
      fixed it, the 5530 is probably the oldest still in any kind of
      use."
    
    So, let's finally drop this.
    
    Signed-off-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Josh Boyer <jwboyer@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: "H. Peter Anvin" <hpa@zytor.com>
    Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: Stephen Hemminger <shemminger@vyatta.com
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/n/tip-3rhk9bzf0x9rljkv488tloib@git.kernel.org
    [ If anyone cares then alternative instruction patching could be
      used to replace HLT with a one-byte NOP instruction. Much simpler. ]
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.2: adjust filename, context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b27a988127fda1856eddfcec63c801091efb5aec
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Fri Nov 16 16:46:46 2012 +0000

    Bluetooth: Avoid calling undefined smp_conn_security()
    
    Commit ff03261adc8b4bdd8291f1783c079b53a892b429 ('Bluetooth: Fix
    sending a HCI Authorization Request over LE links', commit
    d8343f125710fb596f7a88cd756679f14f4e77b9 upstream) added an
    call to smp_conn_security() from hci_conn_security().  The
    former is only defined if CONFIG_BT_L2CAP=y.
    
    This is not required in mainline since commit
    f1e91e1640d808d332498a6b09b2bcd01462eff9 ('Bluetooth: Always compile
    SCO and L2CAP in Bluetooth Core') removed that option.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>