commit 00cfbb8ad0a6419f40660362b4d8b5baa30d3efe
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Apr 5 09:49:06 2013 -0700

    Linux 3.8.6

commit 0679dd509c96373a78ab52e93a5bbaef47c67091
Author: Veaceslav Falico <vfalico@redhat.com>
Date:   Tue Apr 2 05:15:16 2013 +0000

    bonding: get netdev_rx_handler_unregister out of locks
    
    [ Upstream commit fcd99434fb5c137274d2e15dd2a6a7455f0f29ff ]
    
    Now that netdev_rx_handler_unregister contains synchronize_net(), we need
    to call it outside of bond->lock, cause it might sleep. Also, remove the
    already unneded synchronize_net().
    
    Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f44fdd9d030c3e1914890d162747d2113ba743e
Author: Steve Glendinning <steve.glendinning@shawell.net>
Date:   Thu Mar 28 02:34:41 2013 +0000

    smsc75xx: fix jumbo frame support
    
    [ Upstream commit 4c51e53689569398d656e631c17308d9b8e84650 ]
    
    This patch enables RX of jumbo frames for LAN7500.
    
    Previously the driver would transmit jumbo frames succesfully but
    would drop received jumbo frames (incrementing the interface errors
    count).
    
    With this patch applied the device can succesfully receive jumbo
    frames up to MTU 9000 (9014 bytes on the wire including ethernet
    header).
    
    Signed-off-by: Steve Glendinning <steve.glendinning@shawell.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96aa045a1c51d992caba0d49193e6fecdb71b950
Author: Veaceslav Falico <vfalico@redhat.com>
Date:   Mon Mar 25 22:26:21 2013 +0000

    pch_gbe: fix ip_summed checksum reporting on rx
    
    [ Upstream commit 76a0e68129d7d24eb995a6871ab47081bbfa0acc ]
    
    skb->ip_summed should be CHECKSUM_UNNECESSARY when the driver reports that
    checksums were correct and CHECKSUM_NONE in any other case. They're
    currently placed vice versa, which breaks the forwarding scenario. Fix it
    by placing them as described above.
    
    Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd7016c4656e5f83853bed6f2d84bd61368a7b02
Author: Vijay Subramanian <subramanian.vijay@gmail.com>
Date:   Thu Mar 28 13:52:00 2013 +0000

    net: fq_codel: Fix off-by-one error
    
    [ Upstream commit cd68ddd4c29ab523440299f24ff2417fe7a0dca6 ]
    
    Currently, we hold a max of sch->limit -1 number of packets instead of
    sch->limit packets. Fix this off-by-one error.
    
    Signed-off-by: Vijay Subramanian <subramanian.vijay@gmail.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f6c504f9d65d9febc7b4b03d5a1428757e99e9d
Author: Li RongQing <roy.qing.li@gmail.com>
Date:   Wed Mar 27 23:42:41 2013 +0000

    net: fix the use of this_cpu_ptr
    
    [ Upstream commit 50eab0503a7579ada512e4968738b7c9737cf36e ]
    
    flush_tasklet is not percpu var, and percpu is percpu var, and
    	this_cpu_ptr(&info->cache->percpu->flush_tasklet)
    is not equal to
    	&this_cpu_ptr(info->cache->percpu)->flush_tasklet
    
    1f743b076(use this_cpu_ptr per-cpu helper) introduced this bug.
    
    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 4a2438e61cf83c3173766d77216b3dba25d65583
Author: Lothar Waßmann <LW@KARO-electronics.de>
Date:   Thu Mar 21 02:20:11 2013 +0000

    net: ethernet: cpsw: fix erroneous condition in error check
    
    [ Upstream commit ce16294fda230c787ce5c35f61b2f80d14d70a72 ]
    
    The error check in cpsw_probe_dt() has an '&&' where an '||' is
    meant to be. This causes a NULL pointer dereference when incomplet DT
    data is passed to the driver ('phy_id' property for cpsw_emac1
    missing).
    
    Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09269638aab0f527678426fe9258b384fe6bb103
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Mar 29 03:01:22 2013 +0000

    net: add a synchronize_net() in netdev_rx_handler_unregister()
    
    [ Upstream commit 00cfec37484761a44a3b6f4675a54caa618210ae ]
    
    commit 35d48903e97819 (bonding: fix rx_handler locking) added a race
    in bonding driver, reported by Steven Rostedt who did a very good
    diagnosis :
    
    <quoting Steven>
    
    I'm currently debugging a crash in an old 3.0-rt kernel that one of our
    customers is seeing. The bug happens with a stress test that loads and
    unloads the bonding module in a loop (I don't know all the details as
    I'm not the one that is directly interacting with the customer). But the
    bug looks to be something that may still be present and possibly present
    in mainline too. It will just be much harder to trigger it in mainline.
    
    In -rt, interrupts are threads, and can schedule in and out just like
    any other thread. Note, mainline now supports interrupt threads so this
    may be easily reproducible in mainline as well. I don't have the ability
    to tell the customer to try mainline or other kernels, so my hands are
    somewhat tied to what I can do.
    
    But according to a core dump, I tracked down that the eth irq thread
    crashed in bond_handle_frame() here:
    
            slave = bond_slave_get_rcu(skb->dev);
            bond = slave->bond; <--- BUG
    
    the slave returned was NULL and accessing slave->bond caused a NULL
    pointer dereference.
    
    Looking at the code that unregisters the handler:
    
    void netdev_rx_handler_unregister(struct net_device *dev)
    {
    
            ASSERT_RTNL();
            RCU_INIT_POINTER(dev->rx_handler, NULL);
            RCU_INIT_POINTER(dev->rx_handler_data, NULL);
    }
    
    Which is basically:
            dev->rx_handler = NULL;
            dev->rx_handler_data = NULL;
    
    And looking at __netif_receive_skb() we have:
    
            rx_handler = rcu_dereference(skb->dev->rx_handler);
            if (rx_handler) {
                    if (pt_prev) {
                            ret = deliver_skb(skb, pt_prev, orig_dev);
                            pt_prev = NULL;
                    }
                    switch (rx_handler(&skb)) {
    
    My question to all of you is, what stops this interrupt from happening
    while the bonding module is unloading?  What happens if the interrupt
    triggers and we have this:
    
            CPU0                    CPU1
            ----                    ----
      rx_handler = skb->dev->rx_handler
    
                            netdev_rx_handler_unregister() {
                               dev->rx_handler = NULL;
                               dev->rx_handler_data = NULL;
    
      rx_handler()
       bond_handle_frame() {
        slave = skb->dev->rx_handler;
        bond = slave->bond; <-- NULL pointer dereference!!!
    
    What protection am I missing in the bond release handler that would
    prevent the above from happening?
    
    </quoting Steven>
    
    We can fix bug this in two ways. First is adding a test in
    bond_handle_frame() and others to check if rx_handler_data is NULL.
    
    A second way is adding a synchronize_net() in
    netdev_rx_handler_unregister() to make sure that a rcu protected reader
    has the guarantee to see a non NULL rx_handler_data.
    
    The second way is better as it avoids an extra test in fast path.
    
    Reported-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Jiri Pirko <jpirko@redhat.com>
    Cc: Paul E. McKenney <paulmck@us.ibm.com>
    Acked-by: Steven Rostedt <rostedt@goodmis.org>
    Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 301ccb66b7a86ef1827f9910bc8ad4a7722ab2e9
Author: Max.Nekludov@us.elster.com <Max.Nekludov@us.elster.com>
Date:   Fri Mar 29 05:27:36 2013 +0000

    ks8851: Fix interpretation of rxlen field.
    
    [ Upstream commit 14bc435ea54cb888409efb54fc6b76c13ef530e9 ]
    
    According to the Datasheet (page 52):
    15-12 Reserved
    11-0 RXBC Receive Byte Count
    This field indicates the present received frame byte size.
    
    The code has a bug:
                     rxh = ks8851_rdreg32(ks, KS_RXFHSR);
                     rxstat = rxh & 0xffff;
                     rxlen = rxh >> 16; // BUG!!! 0xFFF mask should be applied
    
    Signed-off-by: Max Nekludov <Max.Nekludov@us.elster.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3b57ba21bf0a1fe812424c51ea9229d9070ff6a
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Tue Mar 26 08:13:34 2013 +0000

    ipv6: don't accept node local multicast traffic from the wire
    
    [ Upstream commit 1c4a154e5253687c51123956dfcee9e9dfa8542d ]
    
    Erik Hugne's errata proposal (Errata ID: 3480) to RFC4291 has been
    verified: http://www.rfc-editor.org/errata_search.php?eid=3480
    
    We have to check for pkt_type and loopback flag because either the
    packets are allowed to travel over the loopback interface (in which case
    pkt_type is PACKET_HOST and IFF_LOOPBACK flag is set) or they travel
    over a non-loopback interface back to us (in which case PACKET_TYPE is
    PACKET_LOOPBACK and IFF_LOOPBACK flag is not set).
    
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Cc: Erik Hugne <erik.hugne@ericsson.com>
    Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be0013681e301ab076b472f46de5afb1407b756c
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Sun Feb 10 05:35:22 2013 +0000

    ipv6: don't accept multicast traffic with scope 0
    
    [ Upstream commit 20314092c1b41894d8c181bf9aa6f022be2416aa ]
    
    v2:
    a) moved before multicast source address check
    b) changed comment to netdev style
    
    Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Cc: Erik Hugne <erik.hugne@ericsson.com>
    Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5744c50a8b8aa1c2f1bd924f592e329dbad0518f
Author: Hong Zhiguo <honkiko@gmail.com>
Date:   Tue Mar 26 01:52:45 2013 +0800

    ipv6: fix bad free of addrconf_init_net
    
    [ Upstream commit a79ca223e029aa4f09abb337accf1812c900a800 ]
    
    Signed-off-by: Hong Zhiguo <honkiko@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7afda2f382d3b9822542a8974eb9731df6b0d4c6
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Wed Mar 20 08:19:32 2013 +0000

    fec: Fix the build as module
    
    [ Upstream commit 9d73adf431e093b23fb4990f1ade11283cb67a98 ]
    
    Since commit ff43da86c69 (NET: FEC: dynamtic check DMA desc buff type) the
    following build error happens when CONFIG_FEC=m
    
    ERROR: "fec_ptp_init" [drivers/net/ethernet/freescale/fec.ko] undefined!
    ERROR: "fec_ptp_ioctl" [drivers/net/ethernet/freescale/fec.ko] undefined!
    ERROR: "fec_ptp_start_cyclecounter" [drivers/net/ethernet/freescale/fec.ko] undefined!
    
    Fix it by exporting the required fec_ptp symbols.
    
    Reported-by: Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43d55375601124f6e20a7c8b012c334a461c52ab
Author: Joseph CHANG <josright123@gmail.com>
Date:   Thu Mar 28 23:13:42 2013 +0000

    DM9000B: driver initialization upgrade
    
    [ Upstream commit 6741f40d198c6a5feb23653a1efd4ca47f93d83d ]
    
    Fix bug for DM9000 revision B which contain a DSP PHY
    
    DM9000B use DSP PHY instead previouse DM9000 revisions' analog PHY,
    So need extra change in initialization, For
    explicity PHY Reset and PHY init parameter, and
    first DM9000_NCR reset need NCR_MAC_LBK bit by dm9000_probe().
    
    Following DM9000_NCR reset cause by dm9000_open() clear the
    NCR_MAC_LBK bit.
    
    Without this fix, Power-up FIFO pointers error happen around 2%
    rate among Davicom's customers' boards. With this fix, All above
    cases can be solved.
    
    Signed-off-by: Joseph CHANG <josright123@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2d7158e8a14b21d6ce04a9ec6e43b8187132edc
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Thu Mar 28 18:10:50 2013 +0000

    atl1e: drop pci-msi support because of packet corruption
    
    [ Upstream commit 188ab1b105c96656f6bcfb49d0d8bb1b1936b632 ]
    
    Usage of pci-msi results in corrupted dma packet transfers to the host.
    
    Reported-by: rebelyouth <rebelyouth.hacklab@gmail.com>
    Cc: Huang, Xiong <xiong@qca.qualcomm.com>
    Tested-by: Christian Sünkenberg <christian.suenkenberg@student.kit.edu>
    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 ba7e70047acbf20258380ef28e16692dad4d4828
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Mar 27 18:28:41 2013 +0000

    aoe: reserve enough headroom on skbs
    
    [ Upstream commit 91c5746425aed8f7188a351f1224a26aa232e4b3 ]
    
    Some network drivers use a non default hard_header_len
    
    Transmitted skb should take into account dev->hard_header_len, or risk
    crashes or expensive reallocations.
    
    In the case of aoe, lets reserve MAX_HEADER bytes.
    
    David reported a crash in defxx driver, solved by this patch.
    
    Reported-by: David Oostdyk <daveo@ll.mit.edu>
    Tested-by: David Oostdyk <daveo@ll.mit.edu>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Ed Cashin <ecashin@coraid.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e32a0e3e1cf3bde1c1b961c8792395e1e27ec453
Author: Andrey Vagin <avagin@openvz.org>
Date:   Thu Mar 21 20:33:46 2013 +0400

    net: fix *_DIAG_MAX constants
    
    [ Upstream commit ae5fc98728c8bbbd6d7cab0b9781671fc4419c1b ]
    
    Follow the common pattern and define *_DIAG_MAX like:
    
            [...]
            __XXX_DIAG_MAX,
    };
    
    Because everyone is used to do:
    
            struct nlattr *attrs[XXX_DIAG_MAX+1];
    
            nla_parse([...], XXX_DIAG_MAX, [...]
    
    Reported-by: Thomas Graf <tgraf@suug.ch>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Pavel Emelyanov <xemul@parallels.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrey Vagin <avagin@openvz.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28611814bd7dc326d9b4ae31004e5f2231649ff8
Author: Mugunthan V N <mugunthanvnm@ti.com>
Date:   Wed Mar 27 04:41:59 2013 +0000

    drivers: net: ethernet: cpsw: use netif_wake_queue() while restarting tx queue
    
    [ Upstream commit b56d6b3fca6d1214dbc9c5655f26e5d4ec04afc8 ]
    
    To restart tx queue use netif_wake_queue() intead of netif_start_queue()
    so that net schedule will restart transmission immediately which will
    increase network performance while doing huge data transfers.
    
    Reported-by: Dan Franke <dan.franke@schneider-electric.com>
    Suggested-by: Sriramakrishnan A G <srk@ti.com>
    Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2b73d542efb397fead8096b588da08a2a7784cb
Author: Mugunthan V N <mugunthanvnm@ti.com>
Date:   Wed Mar 27 04:42:00 2013 +0000

    drivers: net: ethernet: davinci_emac: use netif_wake_queue() while restarting tx queue
    
    To restart tx queue use netif_wake_queue() intead of netif_start_queue()
    so that net schedule will restart transmission immediately which will
    increase network performance while doing huge data transfers.
    
    Reported-by: Dan Franke <dan.franke@schneider-electric.com>
    Suggested-by: Sriramakrishnan A G <srk@ti.com>
    Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9435846fb7fa757a0fb380e2b5622d314a889a2e
Author: nikolay@redhat.com <nikolay@redhat.com>
Date:   Wed Mar 27 03:32:41 2013 +0000

    bonding: fix disabling of arp_interval and miimon
    
    [ Upstream commit 1bc7db16782c2a581fb4d53ca853631050f31611 ]
    
    Currently if either arp_interval or miimon is disabled, they both get
    disabled, and upon disabling they get executed once more which is not
    the proper behaviour. Also when doing a no-op and disabling an already
    disabled one, the other again gets disabled.
    Also fix the error messages with the proper valid ranges, and a small
    typo fix in the up delay error message (outputting "down delay", instead
    of "up delay").
    
    Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f5a394c32f8137f7ceb46180c775dd2e10da851
Author: Veaceslav Falico <vfalico@redhat.com>
Date:   Tue Mar 26 17:43:28 2013 +0100

    bonding: remove already created master sysfs link on failure
    
    [ Upstream commit 9fe16b78ee17579cb4f333534cf7043e94c67024 ]
    
    If slave sysfs symlink failes to be created - we end up without removing
    the master sysfs symlink. Remove it in case of failure.
    
    Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d7a1a25337ad50e9619685550e0b016ce23ddef
Author: Paul Moore <pmoore@redhat.com>
Date:   Mon Mar 25 03:18:33 2013 +0000

    unix: fix a race condition in unix_release()
    
    [ Upstream commit ded34e0fe8fe8c2d595bfa30626654e4b87621e0 ]
    
    As reported by Jan, and others over the past few years, there is a
    race condition caused by unix_release setting the sock->sk pointer
    to NULL before properly marking the socket as dead/orphaned.  This
    can cause a problem with the LSM hook security_unix_may_send() if
    there is another socket attempting to write to this partially
    released socket in between when sock->sk is set to NULL and it is
    marked as dead/orphaned.  This patch fixes this by only setting
    sock->sk to NULL after the socket has been marked as dead; I also
    take the opportunity to make unix_release_sock() a void function
    as it only ever returned 0/success.
    
    Dave, I think this one should go on the -stable pile.
    
    Special thanks to Jan for coming up with a reproducer for this
    problem.
    
    Reported-by: Jan Stancek <jan.stancek@gmail.com>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ae217a9770eb723640bc07587359a2b86d96e13
Author: Masatake YAMATO <yamato@redhat.com>
Date:   Mon Apr 1 14:50:40 2013 -0400

    thermal: shorten too long mcast group name
    
    [ Upstream commits 73214f5d9f33b79918b1f7babddd5c8af28dd23d
      and f1e79e208076ffe7bad97158275f1c572c04f5c7, the latter
      adds an assertion to genetlink to prevent this from happening
      again in the future. ]
    
    The original name is too long.
    
    Signed-off-by: Masatake YAMATO <yamato@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7f3bafaf31934af5cf7cb864e9d9be26ed0489e
Author: Cong Wang <amwang@redhat.com>
Date:   Fri Mar 22 19:14:07 2013 +0000

    8021q: fix a potential use-after-free
    
    [ Upstream commit 4a7df340ed1bac190c124c1601bfc10cde9fb4fb ]
    
    vlan_vid_del() could possibly free ->vlan_info after a RCU grace
    period, however, we may still refer to the freed memory area
    by 'grp' pointer. Found by code inspection.
    
    This patch moves vlan_vid_del() as behind as possible.
    
    Signed-off-by: Cong Wang <amwang@redhat.com>
    Cc: Patrick McHardy <kaber@trash.net>
    Cc: "David S. Miller" <davem@davemloft.net>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08fdc3f632fd9d5a273241d0a7729fded63dfeec
Author: Yuchung Cheng <ycheng@google.com>
Date:   Sun Mar 24 10:42:25 2013 +0000

    tcp: undo spurious timeout after SACK reneging
    
    [ Upstream commit 7ebe183c6d444ef5587d803b64a1f4734b18c564 ]
    
    On SACK reneging the sender immediately retransmits and forces a
    timeout but disables Eifel (undo). If the (buggy) receiver does not
    drop any packet this can trigger a false slow-start retransmit storm
    driven by the ACKs of the original packets. This can be detected with
    undo and TCP timestamps.
    
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1aee1b37f9fd8c622e0d127daa079293c33be9b
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Mar 21 17:36:09 2013 +0000

    tcp: preserve ACK clocking in TSO
    
    [ Upstream commit f4541d60a449afd40448b06496dcd510f505928e ]
    
    A long standing problem with TSO is the fact that tcp_tso_should_defer()
    rearms the deferred timer, while it should not.
    
    Current code leads to following bad bursty behavior :
    
    20:11:24.484333 IP A > B: . 297161:316921(19760) ack 1 win 119
    20:11:24.484337 IP B > A: . ack 263721 win 1117
    20:11:24.485086 IP B > A: . ack 265241 win 1117
    20:11:24.485925 IP B > A: . ack 266761 win 1117
    20:11:24.486759 IP B > A: . ack 268281 win 1117
    20:11:24.487594 IP B > A: . ack 269801 win 1117
    20:11:24.488430 IP B > A: . ack 271321 win 1117
    20:11:24.489267 IP B > A: . ack 272841 win 1117
    20:11:24.490104 IP B > A: . ack 274361 win 1117
    20:11:24.490939 IP B > A: . ack 275881 win 1117
    20:11:24.491775 IP B > A: . ack 277401 win 1117
    20:11:24.491784 IP A > B: . 316921:332881(15960) ack 1 win 119
    20:11:24.492620 IP B > A: . ack 278921 win 1117
    20:11:24.493448 IP B > A: . ack 280441 win 1117
    20:11:24.494286 IP B > A: . ack 281961 win 1117
    20:11:24.495122 IP B > A: . ack 283481 win 1117
    20:11:24.495958 IP B > A: . ack 285001 win 1117
    20:11:24.496791 IP B > A: . ack 286521 win 1117
    20:11:24.497628 IP B > A: . ack 288041 win 1117
    20:11:24.498459 IP B > A: . ack 289561 win 1117
    20:11:24.499296 IP B > A: . ack 291081 win 1117
    20:11:24.500133 IP B > A: . ack 292601 win 1117
    20:11:24.500970 IP B > A: . ack 294121 win 1117
    20:11:24.501388 IP B > A: . ack 295641 win 1117
    20:11:24.501398 IP A > B: . 332881:351881(19000) ack 1 win 119
    
    While the expected behavior is more like :
    
    20:19:49.259620 IP A > B: . 197601:202161(4560) ack 1 win 119
    20:19:49.260446 IP B > A: . ack 154281 win 1212
    20:19:49.261282 IP B > A: . ack 155801 win 1212
    20:19:49.262125 IP B > A: . ack 157321 win 1212
    20:19:49.262136 IP A > B: . 202161:206721(4560) ack 1 win 119
    20:19:49.262958 IP B > A: . ack 158841 win 1212
    20:19:49.263795 IP B > A: . ack 160361 win 1212
    20:19:49.264628 IP B > A: . ack 161881 win 1212
    20:19:49.264637 IP A > B: . 206721:211281(4560) ack 1 win 119
    20:19:49.265465 IP B > A: . ack 163401 win 1212
    20:19:49.265886 IP B > A: . ack 164921 win 1212
    20:19:49.266722 IP B > A: . ack 166441 win 1212
    20:19:49.266732 IP A > B: . 211281:215841(4560) ack 1 win 119
    20:19:49.267559 IP B > A: . ack 167961 win 1212
    20:19:49.268394 IP B > A: . ack 169481 win 1212
    20:19:49.269232 IP B > A: . ack 171001 win 1212
    20:19:49.269241 IP A > B: . 215841:221161(5320) ack 1 win 119
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Van Jacobson <vanj@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Nandita Dukkipati <nanditad@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02389502f72a15d13bed1355d9835219f4ac0af2
Author: Mirko Lindner <mlindner@marvell.com>
Date:   Tue Mar 26 06:38:42 2013 +0000

    sky2: Threshold for Pause Packet is set wrong
    
    [ Upstream commit 74f9f42c1c1650e74fb464f76644c9041f996851 ]
    
    The sky2 driver sets the Rx Upper Threshold for Pause Packet generation to a
    wrong value which leads to only 2kB of RAM remaining space. This can lead to
    Rx overflow errors even with activated flow-control.
    
    Fix: We should increase the value to 8192/8
    
    Signed-off-by: Mirko Lindner <mlindner@marvell.com>
    Acked-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37bfa0ab2d469f3aa5fccb284ec33e2ead5525b6
Author: Mirko Lindner <mlindner@marvell.com>
Date:   Tue Mar 26 06:38:35 2013 +0000

    sky2: Receive Overflows not counted
    
    [ Upstream commit 9cfe8b156c21cf340b3a10ecb3022fbbc1c39185 ]
    
    The sky2 driver doesn't count the Receive Overflows because the MAC
    interrupt for this event is not set in the MAC's interrupt mask.
    The MAC's interrupt mask is set only for Transmit FIFO Underruns.
    
    Fix: The correct setting should be (GM_IS_TX_FF_UR | GM_IS_RX_FF_OR)
    Otherwise the Receive Overflow event will not generate any interrupt.
    The  Receive Overflow interrupt is handled correctly
    
    Signed-off-by: Mirko Lindner <mlindner@marvell.com>
    Acked-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2441c1d702fd8986237b8b49bffe8aa44670a346
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Mar 22 14:38:28 2013 +0000

    net: remove a WARN_ON() in net_enable_timestamp()
    
    [ Upstream commit 9979a55a833883242e3a29f3596676edd7199c46 ]
    
    The WARN_ON(in_interrupt()) in net_enable_timestamp() can get false
    positive, in socket clone path, run from softirq context :
    
    [ 3641.624425] WARNING: at net/core/dev.c:1532 net_enable_timestamp+0x7b/0x80()
    [ 3641.668811] Call Trace:
    [ 3641.671254]  <IRQ>  [<ffffffff80286817>] warn_slowpath_common+0x87/0xc0
    [ 3641.677871]  [<ffffffff8028686a>] warn_slowpath_null+0x1a/0x20
    [ 3641.683683]  [<ffffffff80742f8b>] net_enable_timestamp+0x7b/0x80
    [ 3641.689668]  [<ffffffff80732ce5>] sk_clone_lock+0x425/0x450
    [ 3641.695222]  [<ffffffff8078db36>] inet_csk_clone_lock+0x16/0x170
    [ 3641.701213]  [<ffffffff807ae449>] tcp_create_openreq_child+0x29/0x820
    [ 3641.707663]  [<ffffffff807d62e2>] ? ipt_do_table+0x222/0x670
    [ 3641.713354]  [<ffffffff807aaf5b>] tcp_v4_syn_recv_sock+0xab/0x3d0
    [ 3641.719425]  [<ffffffff807af63a>] tcp_check_req+0x3da/0x530
    [ 3641.724979]  [<ffffffff8078b400>] ? inet_hashinfo_init+0x60/0x80
    [ 3641.730964]  [<ffffffff807ade6f>] ? tcp_v4_rcv+0x79f/0xbe0
    [ 3641.736430]  [<ffffffff807ab9bd>] tcp_v4_do_rcv+0x38d/0x4f0
    [ 3641.741985]  [<ffffffff807ae14a>] tcp_v4_rcv+0xa7a/0xbe0
    
    Its safe at this point because the parent socket owns a reference
    on the netstamp_needed, so we cant have a 0 -> 1 transition, which
    requires to lock a mutex.
    
    Instead of refining the check, lets remove it, as all known callers
    are safe. If it ever changes in the future, static_key_slow_inc()
    will complain anyway.
    
    Reported-by: Laurent Chavey <chavey@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1c35e08072c01f77988cef266e04a0d2f165c18
Author: Russ Dill <Russ.Dill@ti.com>
Date:   Thu Feb 14 04:46:33 2013 -0800

    regulator: Fix memory garbage dev_err printout.
    
    commit 9c7b4e8a8ad2624106fbf690fa97ab9c8c9bfa88 upstream.
    
    commit dd8004af: 'regulator: core: Log when a device causes a voltage
    constraint fail', tried to print out some information about the
    check consumer min/max uV fixup, however, it uses a garbage pointer
    left over from list_for_each_entry leading to boot messages in the
    form:
    
    '[    2.079890] <RANDOM ASCII>: Restricting voltage, 3735899821-4294967295uV'
    
    Because it references regulator->dev, it could potentially read memory from
    anywhere causing a panic.
    
    This patch instead uses rdev and the updated min/max uV values.
    
    Signed-off-by: Russ Dill <Russ.Dill@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Cc: Jonghwan Choi <jhbird.choi@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53daac550c49f62751436c1462d2b11d0f5e62eb
Author: Matt Fleming <matt.fleming@intel.com>
Date:   Thu Mar 7 11:59:14 2013 +0000

    efivars: Handle duplicate names from get_next_variable()
    
    commit e971318bbed610e28bb3fde9d548e6aaf0a6b02e upstream.
    
    Some firmware exhibits a bug where the same VariableName and
    VendorGuid values are returned on multiple invocations of
    GetNextVariableName(). See,
    
        https://bugzilla.kernel.org/show_bug.cgi?id=47631
    
    As a consequence of such a bug, Andre reports hitting the following
    WARN_ON() in the sysfs code after updating the BIOS on his, "Gigabyte
    Technology Co., Ltd. To be filled by O.E.M./Z77X-UD3H, BIOS F19e
    11/21/2012)" machine,
    
    [    0.581554] EFI Variables Facility v0.08 2004-May-17
    [    0.584914] ------------[ cut here ]------------
    [    0.585639] WARNING: at /home/andre/linux/fs/sysfs/dir.c:536 sysfs_add_one+0xd4/0x100()
    [    0.586381] Hardware name: To be filled by O.E.M.
    [    0.587123] sysfs: cannot create duplicate filename '/firmware/efi/vars/SbAslBufferPtrVar-01f33c25-764d-43ea-aeea-6b5a41f3f3e8'
    [    0.588694] Modules linked in:
    [    0.589484] Pid: 1, comm: swapper/0 Not tainted 3.8.0+ #7
    [    0.590280] Call Trace:
    [    0.591066]  [<ffffffff81208954>] ? sysfs_add_one+0xd4/0x100
    [    0.591861]  [<ffffffff810587bf>] warn_slowpath_common+0x7f/0xc0
    [    0.592650]  [<ffffffff810588bc>] warn_slowpath_fmt+0x4c/0x50
    [    0.593429]  [<ffffffff8134dd85>] ? strlcat+0x65/0x80
    [    0.594203]  [<ffffffff81208954>] sysfs_add_one+0xd4/0x100
    [    0.594979]  [<ffffffff81208b78>] create_dir+0x78/0xd0
    [    0.595753]  [<ffffffff81208ec6>] sysfs_create_dir+0x86/0xe0
    [    0.596532]  [<ffffffff81347e4c>] kobject_add_internal+0x9c/0x220
    [    0.597310]  [<ffffffff81348307>] kobject_init_and_add+0x67/0x90
    [    0.598083]  [<ffffffff81584a71>] ? efivar_create_sysfs_entry+0x61/0x1c0
    [    0.598859]  [<ffffffff81584b2b>] efivar_create_sysfs_entry+0x11b/0x1c0
    [    0.599631]  [<ffffffff8158517e>] register_efivars+0xde/0x420
    [    0.600395]  [<ffffffff81d430a7>] ? edd_init+0x2f5/0x2f5
    [    0.601150]  [<ffffffff81d4315f>] efivars_init+0xb8/0x104
    [    0.601903]  [<ffffffff8100215a>] do_one_initcall+0x12a/0x180
    [    0.602659]  [<ffffffff81d05d80>] kernel_init_freeable+0x13e/0x1c6
    [    0.603418]  [<ffffffff81d05586>] ? loglevel+0x31/0x31
    [    0.604183]  [<ffffffff816a6530>] ? rest_init+0x80/0x80
    [    0.604936]  [<ffffffff816a653e>] kernel_init+0xe/0xf0
    [    0.605681]  [<ffffffff816ce7ec>] ret_from_fork+0x7c/0xb0
    [    0.606414]  [<ffffffff816a6530>] ? rest_init+0x80/0x80
    [    0.607143] ---[ end trace 1609741ab737eb29 ]---
    
    There's not much we can do to work around and keep traversing the
    variable list once we hit this firmware bug. Our only solution is to
    terminate the loop because, as Lingzhu reports, some machines get
    stuck when they encounter duplicate names,
    
      > I had an IBM System x3100 M4 and x3850 X5 on which kernel would
      > get stuck in infinite loop creating duplicate sysfs files because,
      > for some reason, there are several duplicate boot entries in nvram
      > getting GetNextVariableName into a circle of iteration (with
      > period > 2).
    
    Also disable the workqueue, as efivar_update_sysfs_entries() uses
    GetNextVariableName() to figure out which variables have been created
    since the last iteration. That algorithm isn't going to work if
    GetNextVariableName() returns duplicates. Note that we don't disable
    EFI variable creation completely on the affected machines, it's just
    that any pstore dump-* files won't appear in sysfs until the next
    boot.
    
    [Backported for 3.8-stable. Removed code related to pstore
    workqueue but pulled in helper function variable_is_present
    from a93bc0c.]
    
    Reported-by: Andre Heider <a.heider@gmail.com>
    Reported-by: Lingzhu Xiang <lxiang@redhat.com>
    Tested-by: Lingzhu Xiang <lxiang@redhat.com>
    Cc: Seiji Aguchi <seiji.aguchi@hds.com>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8e61d5e2676e78594ad4f173b113a082a59ec84
Author: Matt Fleming <matt.fleming@intel.com>
Date:   Fri Mar 1 14:49:12 2013 +0000

    efivars: explicitly calculate length of VariableName
    
    commit ec50bd32f1672d38ddce10fb1841cbfda89cfe9a upstream.
    
    It's not wise to assume VariableNameSize represents the length of
    VariableName, as not all firmware updates VariableNameSize in the same
    way (some don't update it at all if EFI_SUCCESS is returned). There
    are even implementations out there that update VariableNameSize with
    values that are both larger than the string returned in VariableName
    and smaller than the buffer passed to GetNextVariableName(), which
    resulted in the following bug report from Michael Schroeder,
    
      > On HP z220 system (firmware version 1.54), some EFI variables are
      > incorrectly named :
      >
      > ls -d /sys/firmware/efi/vars/*8be4d* | grep -v -- -8be returns
      > /sys/firmware/efi/vars/dbxDefault-pport8be4df61-93ca-11d2-aa0d-00e098032b8c
      > /sys/firmware/efi/vars/KEKDefault-pport8be4df61-93ca-11d2-aa0d-00e098032b8c
      > /sys/firmware/efi/vars/SecureBoot-pport8be4df61-93ca-11d2-aa0d-00e098032b8c
      > /sys/firmware/efi/vars/SetupMode-Information8be4df61-93ca-11d2-aa0d-00e098032b8c
    
    The issue here is that because we blindly use VariableNameSize without
    verifying its value, we can potentially read garbage values from the
    buffer containing VariableName if VariableNameSize is larger than the
    length of VariableName.
    
    Since VariableName is a string, we can calculate its size by searching
    for the terminating NULL character.
    
    [Backported for 3.8-stable. Removed workqueue code added in
    a93bc0c 3.9-rc1.]
    
    Reported-by: Frederic Crozat <fcrozat@suse.com>
    Cc: Matthew Garrett <mjg59@srcf.ucam.org>
    Cc: Josh Boyer <jwboyer@redhat.com>
    Cc: Michael Schroeder <mls@suse.com>
    Cc: Lee, Chun-Yi <jlee@suse.com>
    Cc: Lingzhu Xiang <lxiang@redhat.com>
    Cc: Seiji Aguchi <seiji.aguchi@hds.com>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4ecd5ed2ac30f54ae58de2f8ee36226033fb236
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Thu Mar 14 15:03:53 2013 -0400

    tracing: Prevent buffer overwrite disabled for latency tracers
    
    commit 613f04a0f51e6e68ac6fe571ab79da3c0a5eb4da upstream.
    
    The latency tracers require the buffers to be in overwrite mode,
    otherwise they get screwed up. Force the buffers to stay in overwrite
    mode when latency tracers are enabled.
    
    Added a flag_changed() method to the tracer structure to allow
    the tracers to see what flags are being changed, and also be able
    to prevent the change from happing.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88d1e05fd3f0bf7aa8712da17ffae839988fe81c
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Mon Mar 25 14:11:19 2013 +0000

    xen/events: avoid race with raising an event in unmask_evtchn()
    
    commit c26377e62f4e6bfb4d99ef88526047209701a83f upstream.
    
    In unmask_evtchn(), when the mask bit is cleared after testing for
    pending and the event becomes pending between the test and clear, then
    the upcall will not become pending and the event may be lost or
    delayed.
    
    Avoid this by always clearing the mask bit before checking for
    pending.  If a hypercall is needed, remask the event as
    EVTCHNOP_unmask will only retrigger pending events if they were
    masked.
    
    This fixes a regression introduced in 3.7 by
    b5e579232d635b79a3da052964cb357ccda8d9ea (xen/events: fix
    unmask_evtchn for PV on HVM guests) which reordered the clear mask and
    check pending operations.
    
    Changes in v2:
    - set mask before hypercall.
    
    Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ee541ed9f8c55799222434d5c20a3a6417294a9
Author: Josef Bacik <jbacik@fusionio.com>
Date:   Mon Mar 25 16:03:35 2013 -0400

    Btrfs: fix space leak when we fail to reserve metadata space
    
    commit f4881bc7a83eff263789dd524b7c269d138d4af5 upstream.
    
    Dave reported a warning when running xfstest 275.  We have been leaking delalloc
    metadata space when our reservations fail.  This is because we were improperly
    calculating how much space to free for our checksum reservations.  The problem
    is we would sometimes free up space that had already been freed in another
    thread and we would end up with negative usage for the delalloc space.  This
    patch fixes the problem by calculating how much space the other threads would
    have already freed, and then calculate how much space we need to free had we not
    done the reservation at all, and then freeing any excess space.  This makes
    xfstests 275 no longer have leaked space.  Thanks
    
    Reported-by: David Sterba <dsterba@suse.cz>
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 711f821384218965ad0071501936bd8e1a0ed5ca
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Thu Jan 31 15:03:55 2013 +0200

    iwlwifi: dvm: don't send HCMD in restart flow
    
    commit 2d5d50ee596361566f7f84300117cba7d7672bc5 upstream.
    
    There is a race between the restart flow and the workers.
    The workers are cancelled after the fw is already killed
    and might send HCMD when there is fw to handle them.
    Simply check that there is a fw to which the HCMD can be
    sent before actually sending it.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c7db2bac62fc0b01ac35981144b05e355cbdb3e
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Fri Feb 22 16:53:38 2013 +0200

    drm/i915: Don't clobber crtc->fb when queue_flip fails
    
    commit 4a35f83b2b7c6aae3fc0d1c4554fdc99dc33ad07 upstream.
    
    Restore crtc->fb to the old framebuffer if queue_flip fails.
    
    While at it, kill the pointless intel_fb temp variable.
    
    v2: Update crtc->fb before queue_flip and restore it back
        after a failure.
    
    Backported for 3.8-stable. Restored an atomic_sub removed
    in 3.9 ca9c46.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reported-and-Tested-by: Mika Kuoppala <mika.kuoppala@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 624f6b4da14474588eec8249f4d45344d05e0279
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Mar 18 11:25:36 2013 +0100

    drm/i915: Use the fixed pixel clock for eDP in intel_dp_set_m_n()
    
    commit 9d1a455b0ca1c2c956b4d9ab212864a8695270f1 upstream.
    
    The eDP output on HP Z1 is still broken when X is started even after
    fixing the infinite link-train loop.  The regression was introduced in
    3.6 kernel for cleaning up the mode clock handling code in intel_dp.c
    by the commit [71244653: drm/i915: adjusted_mode->clock in the dp
    mode_fix].
    
    In the past, the clock of the reference mode was modified in
    intel_dp_mode_fixup() in the case of eDP fixed clock, and this clock was
    used for calculating in intel_dp_set_m_n().  This override was removed,
    thus the wrong mode clock is used for the calculation, resulting in a
    psychedelic smoking output in the end.
    
    This patch corrects the clock to be used in the place.
    
    v1->v2: Use intel_edp_target_clock() for checking eDP fixed clock
    instead of open code as in ironlake_set_m_n().
    
    Backported for 3.8-stable. Reverted refactoring in e69d0bc1.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
    Reviewed-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4717a20b67dfc024c6ee90c968889068b5e4b3aa
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Mar 26 14:11:13 2013 -0400

    nfsd4: reject "negative" acl lengths
    
    commit 64a817cfbded8674f345d1117b117f942a351a69 upstream.
    
    Since we only enforce an upper bound, not a lower bound, a "negative"
    length can get through here.
    
    The symptom seen was a warning when we attempt to a kmalloc with an
    excessive size.
    
    Reported-by: Toralf Förster <toralf.foerster@gmx.de>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9d3fba85c14cef1dbdace865d7825c01839c941
Author: Amit Shah <amit.shah@redhat.com>
Date:   Fri Mar 29 16:30:08 2013 +0530

    virtio: console: add locking around c_ovq operations
    
    commit 9ba5c80b1aea8648a3efe5f22dc1f7cacdfbeeb8 upstream.
    
    When multiple ovq operations are being performed (lots of open/close
    operations on virtio_console fds), the __send_control_msg() function can
    get confused without locking.
    
    A simple recipe to cause badness is:
    * create a QEMU VM with two virtio-serial ports
    * in the guest, do
      while true;do echo abc >/dev/vport0p1;done
      while true;do echo edf >/dev/vport0p2;done
    
    In one run, this caused a panic in __send_control_msg().  In another, I
    got
    
       virtio_console virtio0: control-o:id 0 is not a head!
    
    This also results repeated messages similar to these on the host:
    
      qemu-kvm: virtio-serial-bus: Unexpected port id 478762112 for device virtio-serial-bus.0
      qemu-kvm: virtio-serial-bus: Unexpected port id 478762368 for device virtio-serial-bus.0
    
    Reported-by: FuXiangChun <xfu@redhat.com>
    Signed-off-by: Amit Shah <amit.shah@redhat.com>
    Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
    Reviewed-by: Asias He <asias@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 566ccc5afe7305ad8b83ec508d843e9486a598d4
Author: Amit Shah <amit.shah@redhat.com>
Date:   Fri Mar 29 16:30:07 2013 +0530

    virtio: console: rename cvq_lock to c_ivq_lock
    
    commit 165b1b8bbc17c9469b053bab78b11b7cbce6d161 upstream.
    
    The cvq_lock was taken for the c_ivq.  Rename the lock to make that
    obvious.
    
    We'll also add a lock around the c_ovq in the next commit, so there's no
    ambiguity.
    
    Signed-off-by: Amit Shah <amit.shah@redhat.com>
    Reviewed-by: Asias He <asias@redhat.com>
    Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db38da8af5b82709188a57de11c8a3f19804dae9
Author: Rajendra Nayak <rnayak@ti.com>
Date:   Thu Mar 21 16:34:52 2013 +0530

    ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized
    
    commit ff931c821bab6713a52b768b0cd7ee7e90713b36 upstream.
    
    clk inits on OMAP happen quite early, even before slab is available.
    The dependency comes from the fact that the timer init code starts to
    use clocks and hwmod and we need clocks to be initialized by then.
    
    There are various problems doing clk inits this early, one is,
    not being able to do dynamic clk registrations and hence the
    dependency on clk-private.h. The other is, inability to debug
    early kernel crashes without enabling DEBUG_LL and earlyprintk.
    
    Doing early clk init also exposed another instance of a kernel
    panic due to a BUG() when CONFIG_DEBUG_SLAB is enabled.
    
    [    0.000000] Kernel BUG at c01174f8 [verbose debug info unavailable]
    [    0.000000] Internal error: Oops - BUG: 0 [#1] SMP ARM
    [    0.000000] Modules linked in:
    [    0.000000] CPU: 0    Not tainted  (3.9.0-rc1-12179-g72d48f9 #6)
    [    0.000000] PC is at __kmalloc+0x1d4/0x248
    [    0.000000] LR is at __clk_init+0x2e0/0x364
    [    0.000000] pc : [<c01174f8>]    lr : [<c0441f54>]    psr: 600001d3
    [    0.000000] sp : c076ff28  ip : c065cefc  fp : c0441f54
    [    0.000000] r10: 0000001c  r9 : 000080d0  r8 : c076ffd4
    [    0.000000] r7 : c074b578  r6 : c0794d88  r5 : 00000040  r4 : 00000000
    [    0.000000] r3 : 00000000  r2 : c07cac70  r1 : 000080d0  r0 : 0000001c
    [    0.000000] Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
    [    0.000000] Control: 10c53c7d  Table: 8000404a  DAC: 00000017
    [    0.000000] Process swapper (pid: 0, stack limit = 0xc076e240)
    [    0.000000] Stack: (0xc076ff28 to 0xc0770000)
    [    0.000000] ff20:                   22222222 c0794ec8 c06546e8 00000000 00000040 c0794d88
    [    0.000000] ff40: c074b578 c076ffd4 c07951c8 c076e000 00000000 c0441f54 c074b578 c076ffd4
    [    0.000000] ff60: c0793828 00000040 c0794d88 c074b578 c076ffd4 c0776900 c076e000 c07272ac
    [    0.000000] ff80: 2f800000 c074c968 c07f93d0 c0719780 c076ffa0 c076ff98 00000000 00000000
    [    0.000000] ffa0: 00000000 00000000 00000000 00000001 c074cd6c c077b1ec 8000406a c0715724
    [    0.000000] ffc0: 00000000 00000000 00000000 00000000 00000000 c074c968 10c53c7d c0776974
    [    0.000000] ffe0: c074cd6c c077b1ec 8000406a 411fc092 00000000 80008074 00000000 00000000
    [    0.000000] [<c01174f8>] (__kmalloc+0x1d4/0x248) from [<c0441f54>] (__clk_init+0x2e0/0x364)
    [    0.000000] [<c0441f54>] (__clk_init+0x2e0/0x364) from [<c07272ac>] (omap4xxx_clk_init+0xbc/0x140)
    [    0.000000] [<c07272ac>] (omap4xxx_clk_init+0xbc/0x140) from [<c0719780>] (setup_arch+0x15c/0x284)
    [    0.000000] [<c0719780>] (setup_arch+0x15c/0x284) from [<c0715724>] (start_kernel+0x7c/0x334)
    [    0.000000] [<c0715724>] (start_kernel+0x7c/0x334) from [<80008074>] (0x80008074)
    [    0.000000] Code: e5883004 e1a00006 e28dd00c e8bd8ff0 (e7f001f2)
    [    0.000000] ---[ end trace 1b75b31a2719ed1c ]---
    [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
    
    It was a know issue, that slab allocations would fail when common
    clock core tries to cache parent pointers for mux clocks on OMAP,
    and hence a patch 'clk: Allow late cache allocation for clk->parents,
    commit 7975059d' was added to work this problem around.
    A BUG() within kmalloc() with CONFIG_DEBUG_SLAB enabled was completely
    overlooked causing this regression.
    
    More details on the issue reported can be found here,
    http://www.mail-archive.com/linux-omap@vger.kernel.org/msg85932.html
    
    With all these issues around clk inits happening way too early, it
    makes sense to at least move them to a point where dynamic memory
    allocations are possible. So move them to a point just before the
    timer code starts using clocks and hwmod.
    
    This should at least pave way for clk inits on OMAP moving to dynamic
    clock registrations instead of using the static macros defined in
    clk-private.h.
    
    The issue with kernel panic while CONFIG_DEBUG_SLAB is enabled
    was reported by Piotr Haber and Tony Lindgren and this patch
    fixes the reported issue as well.
    
    Reported-by: Piotr Haber <phaber@broadcom.com>
    Reported-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Rajendra Nayak <rnayak@ti.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Reviewed-by: Mike Turquette <mturquette@linaro.org>
    Acked-by: Paul Walmsley <paul@pwsan.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9daa43beb4e7a862d2e6aa8ecbe1056dee2e6aa2
Author: Eric Hutter <hutter.eric@gmail.com>
Date:   Mon Mar 18 19:48:56 2013 +0100

    ARM: kirkwood: Fix chip-delay for GoFlex Net
    
    commit 2992714d431976c4b154875bd18ba61bf4df3b93 upstream.
    
    This fixes "Too few good blocks within range" issues on GoFlex Net by setting
    chip-delay to 40.
    
    The basic problem was discussed at http://forum.doozan.com/read.php?2,7451
    
    Signed-off-by: Eric Hutter <hutter.eric@gmail.com>
    Acked-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1df12d51667611bd288c0bc33cbe6aec60aaa011
Author: Shawn Guo <shawn.guo@linaro.org>
Date:   Tue Mar 26 16:46:07 2013 +0800

    ARM: imx: fix sync issue between imx_cpu_die and imx_cpu_kill
    
    commit 2f3edfd7e27ad4206acbc2ae99c9df5f46353024 upstream.
    
    There is a sync issue with hotplug operation.  It's possible that when
    imx_cpu_kill gets running on primary core, the imx_cpu_die execution
    on the core which is to be killed hasn't been finished yet.  The problem
    will very likely be hit when running suspend without no_console_suspend
    setting on kernel cmdline.
    
    It uses cpu jumping argument register to sync imx_cpu_die and
    imx_cpu_kill.  The register will be set in imx_cpu_die and imx_cpu_kill
    will wait for the register being cleared to actually kill the cpu.
    
    Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ece83fd9ecb8c15dff1e82c1571e0c9d76e4be77
Author: Mac Lin <mkl0301@gmail.com>
Date:   Mon Mar 25 17:23:33 2013 +0800

    ARM: cns3xxx: fix mapping of private memory region
    
    commit a3d9052c6296ad3398d3ad649c3c682c3e7ecfa6 upstream.
    
    Since commit 0536bdf33faf (ARM: move iotable mappings within the vmalloc
    region), the Cavium CNS3xxx cannot boot anymore.
    
    This is caused by the pre-defined iotable mappings is not in the vmalloc
    region. This patch move the iotable mappings into the vmalloc region, and
    merge the MPCore private memory region (containing the SCU, the GIC and
    the TWD) as a single region.
    
    Signed-off-by: Mac Lin <mkl0301@gmail.com>
    Signed-off-by: Anton Vorontsov <anton@enomsg.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 984e140cead8e398d52deba7a8d74495ceddea39
Author: Anatol Pomozov <anatol.pomozov@gmail.com>
Date:   Mon Apr 1 09:47:56 2013 -0700

    loop: prevent bdev freeing while device in use
    
    commit c1681bf8a7b1b98edee8b862a42c19c4e53205fd upstream.
    
    struct block_device lifecycle is defined by its inode (see fs/block_dev.c) -
    block_device allocated first time we access /dev/loopXX and deallocated on
    bdev_destroy_inode. When we create the device "losetup /dev/loopXX afile"
    we want that block_device stay alive until we destroy the loop device
    with "losetup -d".
    
    But because we do not hold /dev/loopXX inode its counter goes 0, and
    inode/bdev can be destroyed at any moment. Usually it happens at memory
    pressure or when user drops inode cache (like in the test below). When later in
    loop_clr_fd() we want to use bdev we have use-after-free error with following
    stack:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000280
      bd_set_size+0x10/0xa0
      loop_clr_fd+0x1f8/0x420 [loop]
      lo_ioctl+0x200/0x7e0 [loop]
      lo_compat_ioctl+0x47/0xe0 [loop]
      compat_blkdev_ioctl+0x341/0x1290
      do_filp_open+0x42/0xa0
      compat_sys_ioctl+0xc1/0xf20
      do_sys_open+0x16e/0x1d0
      sysenter_dispatch+0x7/0x1a
    
    To prevent use-after-free we need to grab the device in loop_set_fd()
    and put it later in loop_clr_fd().
    
    The issue is reprodusible on current Linus head and v3.3. Here is the test:
    
      dd if=/dev/zero of=loop.file bs=1M count=1
      while [ true ]; do
        losetup /dev/loop0 loop.file
        echo 2 > /proc/sys/vm/drop_caches
        losetup -d /dev/loop0
      done
    
    [ Doing bdgrab/bput in loop_set_fd/loop_clr_fd is safe, because every
      time we call loop_set_fd() we check that loop_device->lo_state is
      Lo_unbound and set it to Lo_bound If somebody will try to set_fd again
      it will get EBUSY.  And if we try to loop_clr_fd() on unbound loop
      device we'll get ENXIO.
    
      loop_set_fd/loop_clr_fd (and any other loop ioctl) is called under
      loop_device->lo_ctl_mutex. ]
    
    Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69fe7d3ff16b7b2566ab6aec652f020c94d10c42
Author: Andrew Morton <akpm@linux-foundation.org>
Date:   Wed Mar 13 14:59:34 2013 -0700

    kernel/signal.c: use __ARCH_HAS_SA_RESTORER instead of SA_RESTORER
    
    commit 522cff142d7d2f9230839c9e1f21a4d8bcc22a4a upstream.
    
    __ARCH_HAS_SA_RESTORER is the preferred conditional for use in 3.9 and
    later kernels, per Kees.
    
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Emese Revfy <re.emese@gmail.com>
    Cc: Emese Revfy <re.emese@gmail.com>
    Cc: PaX Team <pageexec@freemail.hu>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Serge Hallyn <serge.hallyn@canonical.com>
    Cc: Julien Tinnes <jln@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9dccad6a1590cc1f8c37e066e64155439dfc70cf
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Nov 25 22:24:19 2012 -0500

    signal: Define __ARCH_HAS_SA_RESTORER so we know whether to clear sa_restorer
    
    Vaguely based on upstream commit 574c4866e33d 'consolidate kernel-side
    struct sigaction declarations'.
    
    flush_signal_handlers() needs to know whether sigaction::sa_restorer
    is defined, not whether SA_RESTORER is defined.  Define the
    __ARCH_HAS_SA_RESTORER macro to indicate this.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf0dd5c0a89b0b5d15073fdbbefdaea627e38966
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Mar 15 14:02:14 2013 -0400

    usb: gadget: udc-core: fix a regression during gadget driver unbinding
    
    commit 511f3c5326eabe1ece35202a404c24c0aeacc246 upstream.
    
    This patch (as1666) fixes a regression in the UDC core.  The core
    takes care of unbinding gadget drivers, and it does the unbinding
    before telling the UDC driver to turn off the controller hardware.
    When the call to the udc_stop callback is made, the gadget no longer
    has a driver.  The callback routine should not be invoked with a
    pointer to the old driver; doing so can cause problems (such as
    use-after-free accesses in net2280).
    
    This patch should be applied, with appropriate context changes, to all
    the stable kernels going back to 3.1.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a9f03287a9290fb61aa74604b4f8fd7fdd3b64e
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:26 2013 +0100

    USB: ti_usb_3410_5052: fix use-after-free in TIOCMIWAIT
    
    commit fc98ab873aa3dbe783ce56a2ffdbbe7c7609521a upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8574ededb2102a6fc85e76793bd13e3840fdb37
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:13 2013 +0100

    USB: cypress_m8: fix use-after-free in TIOCMIWAIT
    
    commit 356050d8b1e526db093e9d2c78daf49d6bf418e3 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Also remove bogus test for private data pointer being NULL as it is
    never assigned in the loop.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e86d3027d5483a290ba483a2a63cb22963efe01e
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:18 2013 +0100

    USB: mct_u232: fix use-after-free in TIOCMIWAIT
    
    commit cf1d24443677a0758cfa88ca40f24858b89261c0 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74b63618655dc8fa4bb58f88e0b857cee86a71ae
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:11 2013 +0100

    USB: ark3116: fix use-after-free in TIOCMIWAIT
    
    commit 5018860321dc7a9e50a75d5f319bc981298fb5b7 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d2206e46ae13b5c724eb7d971cd45e92103cba9
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:14 2013 +0100

    USB: f81232: fix use-after-free in TIOCMIWAIT
    
    commit 508f940f1407656076a2e7d8f7fa059b567ecac2 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 621f6bbc6b0b92a3c3b8e49c8f381f48f0c557a0
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:16 2013 +0100

    USB: io_edgeport: fix use-after-free in TIOCMIWAIT
    
    commit 333576255d4cfc53efd056aad438568184b36af6 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7b4fb66f05ea6c94c9a802465d5a1e39d086327
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:12 2013 +0100

    USB: ch341: fix use-after-free in TIOCMIWAIT
    
    commit fa1e11d5231c001c80a479160b5832933c5d35fb upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5295acf893d6aecc4b411ea083c442c665c9641b
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:25 2013 +0100

    USB: ssu100: fix use-after-free in TIOCMIWAIT
    
    commit 43a66b4c417ad15f6d2f632ce67ad195bdf999e8 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e7d4b9131241a62e62111a53980e7e3ecbe6198
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:24 2013 +0100

    USB: spcp8x5: fix use-after-free in TIOCMIWAIT
    
    commit dbcea7615d8d7d58f6ff49d2c5568113f70effe9 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3b65d54d0ffaa35242ab8a7c83d3f131b3994a3
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:20 2013 +0100

    USB: mos7840: fix use-after-free in TIOCMIWAIT
    
    commit a14430db686b8e459e1cf070a6ecf391515c9ab9 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 281e3d62958d6f53cc1b40b8949374ab0030a9af
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:22 2013 +0100

    USB: pl2303: fix use-after-free in TIOCMIWAIT
    
    commit 40509ca982c00c4b70fc00be887509feca0bff15 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 586c9f1b11d993f9288002b7267368da448109fd
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:15 2013 +0100

    USB: ftdi_sio: fix use-after-free in TIOCMIWAIT
    
    commit 71ccb9b01981fabae27d3c98260ea4613207618e upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    When switching to tty ports, some lifetime assumptions were changed.
    Specifically, close can now be called before the final tty reference is
    dropped as part of hangup at device disconnect. Even with the ftdi
    private-data refcounting this means that the port private data can be
    freed while a process is sleeping on modem-status changes and thus
    cannot be relied on to detect disconnects when woken up.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46be1a4df2a4c83d5a35c141c8647dd56828597c
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:21 2013 +0100

    USB: oti6858: fix use-after-free in TIOCMIWAIT
    
    commit 8edfdab37157d2683e51b8be5d3d5697f66a9f7b upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f34a2376903eb9b72447da235fc103ac6d16a79
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:17 2013 +0100

    USB: io_ti: fix use-after-free in TIOCMIWAIT
    
    commit 7b2459690584f239650a365f3411ba2ec1c6d1e0 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfa7981463bbf902057c7c2b36c1e9e98f1651c4
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:19 2013 +0100

    USB: mos7840: fix broken TIOCMIWAIT
    
    commit e670c6af12517d08a403487b1122eecf506021cf upstream.
    
    Make sure waiting processes are woken on modem-status changes.
    
    Currently processes are only woken on termios changes regardless of
    whether the modem status has changed.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 957bed048fad74aa91c50420dc9c587d08f3ab38
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:23 2013 +0100

    USB: quatech2: fix use-after-free in TIOCMIWAIT
    
    commit 69f87f40d2b98e8b4ab82a121fd2bd584690b887 upstream.
    
    Use the port wait queue and make sure to check the serial disconnected
    flag before accessing private port data after waking up.
    
    This is is needed as the private port data (including the wait queue
    itself) can be gone when waking up after a disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7b40a0bd1697e5b4f001ed043f03e298915f7c2
Author: Ming Lei <tom.leiming@gmail.com>
Date:   Tue Mar 26 10:49:55 2013 +0800

    USB: serial: fix hang when opening port
    
    commit eba0e3c3a0ba7b96f01cbe997680f6a4401a0bfc upstream.
    
    Johan's 'fix use-after-free in TIOCMIWAIT' patchset[1] introduces
    one bug which can cause kernel hang when opening port.
    
    This patch initialized the 'port->delta_msr_wait' waitqueue head
    to fix the bug which is introduced in 3.9-rc4.
    
    [1], http://marc.info/?l=linux-usb&m=136368139627876&w=2
    
    Signed-off-by: Ming Lei <tom.leiming@gmail.com>
    Acked-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86be053a795c17acaa6721dcc501a876368fd9d4
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 19 09:21:10 2013 +0100

    USB: serial: add modem-status-change wait queue
    
    commit e5b33dc9d16053c2ae4c2c669cf008829530364b upstream.
    
    Add modem-status-change wait queue to struct usb_serial_port that
    subdrivers can use to implement TIOCMIWAIT.
    
    Currently subdrivers use a private wait queue which may have been
    released when waking up after device disconnected.
    
    Note that we're adding a new wait queue rather than reusing the tty-port
    one as we do not want to get woken up at hangup (yet).
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 795dae3bdf2ecd7d325264e5527c76a647590f43
Author: Josef Bacik <jbacik@fusionio.com>
Date:   Fri Mar 29 08:09:34 2013 -0600

    Btrfs: don't drop path when printing out tree errors in scrub
    
    commit d8fe29e9dea8d7d61fd140d8779326856478fc62 upstream.
    
    A user reported a panic where we were panicing somewhere in
    tree_backref_for_extent from scrub_print_warning.  He only captured the trace
    but looking at scrub_print_warning we drop the path right before we mess with
    the extent buffer to print out a bunch of stuff, which isn't right.  So fix this
    by dropping the path after we use the eb if we need to.  Thanks,
    
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Chris Mason <chris.mason@fusionio.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3df6391ba957b799fa30cb558d924aee647ccd34
Author: Josef Bacik <jbacik@fusionio.com>
Date:   Tue Mar 26 15:31:45 2013 -0400

    Btrfs: limit the global reserve to 512mb
    
    commit fdf30d1c1b386e1b73116cc7e0fb14e962b763b0 upstream.
    
    A user reported a problem where he was getting early ENOSPC with hundreds of
    gigs of free data space and 6 gigs of free metadata space.  This is because the
    global block reserve was taking up the entire free metadata space.  This is
    ridiculous, we have infrastructure in place to throttle if we start using too
    much of the global reserve, so instead of letting it get this huge just limit it
    to 512mb so that users can still get work done.  This allowed the user to
    complete his rsync without issues.  Thanks
    
    Reported-and-tested-by: Stefan Priebe <s.priebe@profihost.ag>
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da3cbc8328e6062dbb2bf4a7d6c5f7a4afbec9df
Author: Chris Mason <chris.mason@fusionio.com>
Date:   Tue Mar 26 13:07:00 2013 -0400

    Btrfs: fix race between mmap writes and compression
    
    commit 4adaa611020fa6ac65b0ac8db78276af4ec04e63 upstream.
    
    Btrfs uses page_mkwrite to ensure stable pages during
    crc calculations and mmap workloads.  We call clear_page_dirty_for_io
    before we do any crcs, and this forces any application with the file
    mapped to wait for the crc to finish before it is allowed to change
    the file.
    
    With compression on, the clear_page_dirty_for_io step is happening after
    we've compressed the pages.  This means the applications might be
    changing the pages while we are compressing them, and some of those
    modifications might not hit the disk.
    
    This commit adds the clear_page_dirty_for_io before compression starts
    and makes sure to redirty the page if we have to fallback to
    uncompressed IO as well.
    
    Signed-off-by: Chris Mason <chris.mason@fusionio.com>
    Reported-by: Alexandre Oliva <oliva@gnu.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e0bf542fadde9a9ef58c46fa1411dd6cdfb3b14
Author: Jan Schmidt <list.btrfs@jan-o-sch.net>
Date:   Wed Mar 20 13:49:48 2013 +0000

    Btrfs: fix locking on ROOT_REPLACE operations in tree mod log
    
    commit d9abbf1c3131b679379762700201ae69367f3f62 upstream.
    
    To resolve backrefs, ROOT_REPLACE operations in the tree mod log are
    required to be tied to at least one KEY_REMOVE_WHILE_FREEING operation.
    Therefore, those operations must be enclosed by tree_mod_log_write_lock()
    and tree_mod_log_write_unlock() calls.
    
    Those calls are private to the tree_mod_log_* functions, which means that
    removal of the elements of an old root node must be logged from
    tree_mod_log_insert_root. This partly reverts and corrects commit ba1bfbd5
    (Btrfs: fix a tree mod logging issue for root replacement operations).
    
    This fixes the brand-new version of xfstest 276 as of commit cfe73f71.
    
    Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Chris Mason <chris.mason@fusionio.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9cde88f39769f464346db07253ce926e671a6e7
Author: Josef Bacik <jbacik@fusionio.com>
Date:   Fri Mar 1 13:35:47 2013 -0500

    Btrfs: use set_nlink if our i_nlink is 0
    
    commit 9bf7a4890518186238d2579be16ecc5190a707c0 upstream.
    
    We need to inc the nlink of deleted entries when running replay so we can do the
    unlink on the fs_root and get everything cleaned up and then have the orphan
    cleanup do the right thing.  The problem is inc_nlink complains about this, even
    thought it still does the right thing.  So use set_nlink() if our i_nlink is 0
    to keep users from seeing the warnings during log replay.  Thanks,
    
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfc13c72f4642f811c159cceb921df69cd158725
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sun Mar 24 14:28:27 2013 -0700

    userns: Restrict when proc and sysfs can be mounted
    
    commit 87a8ebd637dafc255070f503909a053cf0d98d3f upstream.
    
    Only allow unprivileged mounts of proc and sysfs if they are already
    mounted when the user namespace is created.
    
    proc and sysfs are interesting because they have content that is
    per namespace, and so fresh mounts are needed when new namespaces
    are created while at the same time proc and sysfs have content that
    is shared between every instance.
    
    Respect the policy of who may see the shared content of proc and sysfs
    by only allowing new mounts if there was an existing mount at the time
    the user namespace was created.
    
    In practice there are only two interesting cases: proc and sysfs are
    mounted at their usual places, proc and sysfs are not mounted at all
    (some form of mount namespace jail).
    
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63795cc597539dff38550070dfd945dc08862eef
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Thu Mar 21 18:13:15 2013 -0700

    ipc: Restrict mounting the mqueue filesystem
    
    commit a636b702ed1805e988ad3d8ff8b52c060f8b341c upstream.
    
    Only allow mounting the mqueue filesystem if the caller has CAP_SYS_ADMIN
    rights over the ipc namespace.   The principle here is if you create
    or have capabilities over it you can mount it, otherwise you get to live
    with what other people have mounted.
    
    This information is not particularly sensitive and mqueue essentially
    only reports which posix messages queues exist.  Still when creating a
    restricted environment for an application to live any extra
    information may be of use to someone with sufficient creativity.  The
    historical if imperfect way this information has been restricted has
    been not to allow mounts and restricting this to ipc namespace
    creators maintains the spirit of the historical restriction.
    
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c773201d61272db49f8f33a83a3cb2a3fe4b14f
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Fri Mar 22 04:08:05 2013 -0700

    vfs: Carefully propogate mounts across user namespaces
    
    commit 132c94e31b8bca8ea921f9f96a57d684fa4ae0a9 upstream.
    
    As a matter of policy MNT_READONLY should not be changable if the
    original mounter had more privileges than creator of the mount
    namespace.
    
    Add the flag CL_UNPRIVILEGED to note when we are copying a mount from
    a mount namespace that requires more privileges to a mount namespace
    that requires fewer privileges.
    
    When the CL_UNPRIVILEGED flag is set cause clone_mnt to set MNT_NO_REMOUNT
    if any of the mnt flags that should never be changed are set.
    
    This protects both mount propagation and the initial creation of a less
    privileged mount namespace.
    
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Reported-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f8d2ffe267ddb8d28dbed0ebb2d8dcf47c629fd
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Fri Mar 22 03:10:15 2013 -0700

    vfs: Add a mount flag to lock read only bind mounts
    
    commit 90563b198e4c6674c63672fae1923da467215f45 upstream.
    
    When a read-only bind mount is copied from mount namespace in a higher
    privileged user namespace to a mount namespace in a lesser privileged
    user namespace, it should not be possible to remove the the read-only
    restriction.
    
    Add a MNT_LOCK_READONLY mount flag to indicate that a mount must
    remain read-only.
    
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f60ac1533f522fe257dca74fbb4c4d3820a9b0f
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Fri Mar 15 01:45:51 2013 -0700

    userns: Don't allow creation if the user is chrooted
    
    commit 3151527ee007b73a0ebd296010f1c0454a919c7d upstream.
    
    Guarantee that the policy of which files may be access that is
    established by setting the root directory will not be violated
    by user namespaces by verifying that the root directory points
    to the root of the mount namespace at the time of user namespace
    creation.
    
    Changing the root is a privileged operation, and as a matter of policy
    it serves to limit unprivileged processes to files below the current
    root directory.
    
    For reasons of simplicity and comprehensibility the privilege to
    change the root directory is gated solely on the CAP_SYS_CHROOT
    capability in the user namespace.  Therefore when creating a user
    namespace we must ensure that the policy of which files may be access
    can not be violated by changing the root directory.
    
    Anyone who runs a processes in a chroot and would like to use user
    namespace can setup the same view of filesystems with a mount
    namespace instead.  With this result that this is not a practical
    limitation for using user namespaces.
    
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Reported-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 238f455f2f1af51a8c17db666cee5f380ab2bd01
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Mar 26 02:27:11 2013 -0700

    pid: Handle the exit of a multi-threaded init.
    
    commit 751c644b95bb48aaa8825f0c66abbcc184d92051 upstream.
    
    When a multi-threaded init exits and the initial thread is not the
    last thread to exit the initial thread hangs around as a zombie
    until the last thread exits.  In that case zap_pid_ns_processes
    needs to wait until there are only 2 hashed pids in the pid
    namespace not one.
    
    v2. Replace thread_pid_vnr(me) == 1 with the test thread_group_leader(me)
        as suggested by Oleg.
    
    Reported-by: Caj Larsson <caj@omnicloud.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 882dc231e68ddd6ecc94fdb094c104b1ebe538c7
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Fri Mar 15 01:03:33 2013 -0700

    scm: Require CAP_SYS_ADMIN over the current pidns to spoof pids.
    
    commit 92f28d973cce45ef5823209aab3138eb45d8b349 upstream.
    
    Don't allow spoofing pids over unix domain sockets in the corner
    cases where a user has created a user namespace but has not yet
    created a pid namespace.
    
    Reported-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 366c19c14bfdc64a66f4eb5010fcdbb6a6a9746c
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Feb 14 12:13:53 2013 +0100

    mac80211: prevent spurious HT/VHT downgrade message
    
    commit 586e01ededf9b713a1512dd658806791a7ca1a50 upstream.
    
    Even when connecting to an AP that doesn't support VHT,
    and even when the local device doesn't support it either,
    the downgrade message gets printed. Suppress the message
    if HT and/or VHT is disabled.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Cc: Andrew Lutomirski <luto@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fe27f0f65f8e71d096e825cff5414c7ab12163c
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Mar 25 14:45:54 2013 -0300

    media: [REGRESSION] bt8xx: Fix too large height in cropcap
    
    commit 35ccecef6ed48a5602755ddf580c45a026a1dc05 upstream.
    
    Since commit a1fd287780c8e91fed4957b30c757b0c93021162:
    "[media] bttv-driver: fix two warnings"
    cropcap.defrect.height and cropcap.bounds.height for the PAL entry are 32
    resp 30 pixels too large, if a userspace app (ie xawtv) actually tries to use
    the full advertised height, the resulting image is broken in ways only a
    screenshot can describe.
    The cause of this is the fix for this warning:
    drivers/media/pci/bt8xx/bttv-driver.c:308:3: warning: initialized field overwritten [-Woverride-init]
    In this chunk of the commit:
    @@ -301,11 +301,10 @@ const struct bttv_tvnorm bttv_tvnorms[] = {
                            /* totalwidth */ 1135,
                            /* sqwidth */ 944,
                            /* vdelay */ 0x20,
    -                       /* sheight */ 576,
    -                       /* videostart0 */ 23)
                    /* bt878 (and bt848?) can capture another
                       line below active video. */
    -               .cropcap.bounds.height = (576 + 2) + 0x20 - 2,
    +                       /* sheight */ (576 + 2) + 0x20 - 2,
    +                       /* videostart0 */ 23)
            },{
                    .v4l2_id        = V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_KR,
                    .name           = "NTSC",
    Which replaces the overriding of cropcap.bounds.height initialization outside
    of the CROPCAP macro (which also initializes it), with passing a
    different sheight value to the CROPCAP macro.
    There are 2 problems with this warning fix:
    1) The sheight value is used twice in the CROPCAP macro, and the old code
       only changed one resulting value.
    2) The old code increased the .cropcap.bounds.height value (and did not
       touch the .cropcap.defrect.height value at all) by 2, where as the fixed
       code increases it by 32, as the fixed code passes (576 + 2) + 0x20 - 2
       to the CROPCAP macro, but the + 0x20 - 2 is already done by the macro so
       now is done twice for .cropcap.bounds.height, and also is applied to
       .cropcap.defrect.height where it should not be applied at all.
    This patch fixes this by adding an extraheight parameter to the CROPCAP entry
    and using it for the PAL entry.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82779912551a9abb3db5b1214c91e4e5e5d3ecf7
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Thu Mar 28 23:06:00 2013 -0700

    target: Fix RESERVATION_CONFLICT status regression for iscsi-target special case
    
    commit f85eda8d75d37a3796cee7f5a906e50e3f13d9e1 upstream.
    
    This patch fixes a regression introduced in v3.8-rc1 code where a failed
    target_check_reservation() check in target_setup_cmd_from_cdb() was causing
    an incorrect SAM_STAT_GOOD status to be returned during a WRITE operation
    performed by an unregistered / unreserved iscsi initiator port.
    
    This regression is only effecting iscsi-target due to a special case check
    for TCM_RESERVATION_CONFLICT within iscsi_target_erl1.c:iscsit_execute_cmd(),
    and was still correctly disallowing WRITE commands from backend submission
    for unregistered / unreserved initiator ports, while returning the incorrect
    SAM_STAT_GOOD status due to the missing SAM_STAT_RESERVATION_CONFLICT
    assignment.
    
    This regression was first introduced with:
    
    commit de103c93aff0bed0ae984274e5dc8b95899badab
    Author: Christoph Hellwig <hch@lst.de>
    Date:   Tue Nov 6 12:24:09 2012 -0800
    
        target: pass sense_reason as a return value
    
    Go ahead and re-add the missing SAM_STAT_RESERVATION_CONFLICT assignment
    during a target_check_reservation() failure, so that iscsi-target code
    sends the correct SCSI status.
    
    All other fabrics using target_submit_cmd_*() with a RESERVATION_CONFLICT
    call to transport_generic_request_failure() are not effected by this bug.
    
    Reported-by: Jeff Leung <jleung@curriegrad2004.ca>
    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 011ae17d3afec9e66316f7609018db8f00f0bec6
Author: Vivek Gautam <gautam.vivek@samsung.com>
Date:   Thu Mar 21 12:06:48 2013 +0530

    usb: xhci: Fix TRB transfer length macro used for Event TRB.
    
    commit 1c11a172cb30492f5f6a82c6e118fdcd9946c34f upstream.
    
    Use proper macro while extracting TRB transfer length from
    Transfer event TRBs. Adding a macro EVENT_TRB_LEN (bits 0:23)
    for the same, and use it instead of TRB_LEN (bits 0:16) in
    case of event TRBs.
    
    This patch should be backported to kernels as old as 2.6.31, that
    contain the commit b10de142119a676552df3f0d2e3a9d647036c26a "USB: xhci:
    Bulk transfer support".  This patch will have issues applying to older
    kernels.
    
    Signed-off-by: Vivek gautam <gautam.vivek@samsung.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a71bc1f8b0653715a41c4114559e66d01e693bbc
Author: Soeren Moch <smoch@web.de>
Date:   Fri Mar 22 12:16:52 2013 -0400

    USB: EHCI: fix bug in iTD/siTD DMA pool allocation
    
    commit 85ecd0322b9a1a9f451d9150e9460ab42fd17219 upstream.
    
    [Description written by Alan Stern]
    
    Soeren tracked down a very difficult bug in ehci-hcd's DMA pool
    management of iTD and siTD structures.  Some background: ehci-hcd
    gives each isochronous endpoint its own set of active and free itd's
    (or sitd's for full-speed devices).  When a new itd is needed, it is
    taken from the head of the free list, if possible.  However, itd's
    must not be used twice in a single frame because the hardware
    continues to access the data structure for the entire duration of a
    frame.  Therefore if the itd at the head of the free list has its
    "frame" member equal to the current value of ehci->now_frame, it
    cannot be reused and instead a new itd is allocated from the DMA pool.
    The entries on the free list are not released back to the pool until
    the endpoint is no longer in use.
    
    The bug arises from the fact that sometimes an itd can be moved back
    onto the free list before itd->frame has been set properly.  In
    Soeren's case, this happened because ehci-hcd can allocate one more
    itd than it actually needs for an URB; the extra itd may or may not be
    required depending on how the transfer aligns with a frame boundary.
    For example, an URB with 8 isochronous packets will cause two itd's to
    be allocated.  If the URB is scheduled to start in microframe 3 of
    frame N then it will require both itds: one for microframes 3 - 7 of
    frame N and one for microframes 0 - 2 of frame N+1.  But if the URB
    had been scheduled to start in microframe 0 then it would require only
    the first itd, which could cover microframes 0 - 7 of frame N.  The
    second itd would be returned to the end of the free list.
    
    The itd allocation routine initializes the entire structure to 0, so
    the extra itd ends up on the free list with itd->frame set to 0
    instead of a meaningful value.  After a while the itd reaches the head
    of the list, and occasionally this happens when ehci->now_frame is
    equal to 0.  Then, even though it would be okay to reuse this itd, the
    driver thinks it must get another itd from the DMA pool.
    
    For as long as the isochronous endpoint remains in use, this flaw in
    the mechanism causes more and more itd's to be taken slowly from the
    DMA pool.  Since none are released back, the pool eventually becomes
    exhausted.
    
    This reuslts in memory allocation failures, which typically show up
    during a long-running audio stream.  Video might suffer the same
    effect.
    
    The fix is very simple.  To prevent allocations from the pool when
    they aren't needed, make sure that itd's sent back to the free list
    prematurely have itd->frame set to an invalid value which can never be
    equal to ehci->now_frame.
    
    This should be applied to -stable kernels going back to 3.6.
    
    Signed-off-by: Soeren Moch <smoch@web.de>
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31d34ef4e00e43651a9102a4215233f17c5607fb
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Tue Mar 26 18:25:57 2013 -0400

    Nest rename_lock inside vfsmount_lock
    
    commit 7ea600b5314529f9d1b9d6d3c41cb26fce6a7a4a upstream.
    
    ... lest we get livelocks between path_is_under() and d_path() and friends.
    
    The thing is, wrt fairness lglocks are more similar to rwsems than to rwlocks;
    it is possible to have thread B spin on attempt to take lock shared while thread
    A is already holding it shared, if B is on lower-numbered CPU than A and there's
    a thread C spinning on attempt to take the same lock exclusive.
    
    As the result, we need consistent ordering between vfsmount_lock (lglock) and
    rename_lock (seq_lock), even though everything that takes both is going to take
    vfsmount_lock only shared.
    
    Spotted-by: Brad Spengler <spender@grsecurity.net>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cdc03d8c552990fa4fbd5acfdfa44fe6d3a32a9
Author: Kees Cook <keescook@chromium.org>
Date:   Wed Mar 20 05:19:24 2013 +0000

    net/irda: add missing error path release_sock call
    
    commit 896ee0eee6261e30c3623be931c3f621428947df upstream.
    
    This makes sure that release_sock is called for all error conditions in
    irda_getsockopt.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reported-by: Brad Spengler <spender@grsecurity.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6395499fa70ab4825e2db322481e25b05f25bf1
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Wed Mar 20 13:03:00 2013 -0400

    NFSv4.1: Always clear the NFS_INO_LAYOUTCOMMIT in layoutreturn
    
    commit 24956804349ca0eadcdde032d65e8c00b4214096 upstream.
    
    Note that clearing NFS_INO_LAYOUTCOMMIT is tricky, since it requires
    you to also clear the NFS_LSEG_LAYOUTCOMMIT bits from the layout
    segments.
    The only two sites that need to do this are the ones that call
    pnfs_return_layout() without first doing a layout commit.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Acked-by: Benny Halevy <bhalevy@tonian.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b8e85ac297b3fdfadd58f98cb09fb937555f678
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Wed Mar 20 12:34:32 2013 -0400

    NFSv4.1: Fix a race in pNFS layoutcommit
    
    commit a073dbff359f4741013ae4b8395f5364c5e00b48 upstream.
    
    We need to clear the NFS_LSEG_LAYOUTCOMMIT bits atomically with the
    NFS_INO_LAYOUTCOMMIT bit, otherwise we may end up with situations
    where the two are out of sync.
    The first half of the problem is to ensure that pnfs_layoutcommit_inode
    clears the NFS_LSEG_LAYOUTCOMMIT bit through pnfs_list_write_lseg.
    We still need to keep the reference to those segments until the RPC call
    is finished, so in order to make it clear _where_ those references come
    from, we add a helper pnfs_list_write_lseg_done() that cleans up after
    pnfs_list_write_lseg.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Acked-by: Benny Halevy <bhalevy@tonian.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c648a421337d1dea3bb05ff035f03b88c4320299
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Fri Mar 8 12:56:37 2013 -0500

    NFSv4: Fix the string length returned by the idmapper
    
    commit cf4ab538f1516606d3ae730dce15d6f33d96b7e1 upstream.
    
    Functions like nfs_map_uid_to_name() and nfs_map_gid_to_group() are
    expected to return a string without any terminating NUL character.
    Regression introduced by commit 57e62324e469e092ecc6c94a7a86fe4bd6ac5172
    (NFS: Store the legacy idmapper result in the keyring).
    
    Reported-by: Dave Chiluk <dave.chiluk@canonical.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Cc: Bryan Schumaker <bjschuma@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 880a4e09e465c4fbb3f2f773803240f58d5ef078
Author: fanchaoting <fanchaoting@cn.fujitsu.com>
Date:   Thu Mar 21 09:15:30 2013 +0800

    pnfs-block: removing DM device maybe cause oops when call dev_remove
    
    commit 4376c94618c26225e69e17b7c91169c45a90b292 upstream.
    
    when pnfs block using device mapper,if umounting later,it maybe
    cause oops. we apply "1 + sizeof(bl_umount_request)" memory for
    msg->data, the memory maybe overflow when we do "memcpy(&dataptr
    [sizeof(bl_msg)], &bl_umount_request, sizeof(bl_umount_request))",
    because the size of bl_msg is more than 1 byte.
    
    Signed-off-by: fanchaoting<fanchaoting@cn.fujitsu.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d50fe196140b67c14c5f969e67e0b8583e3ead8
Author: Bing Zhao <bzhao@marvell.com>
Date:   Fri Mar 15 18:47:07 2013 -0700

    mwifiex: cancel cmd timer and free curr_cmd in shutdown process
    
    commit 084c7189acb3f969c855536166042e27f5dd703f upstream.
    
    curr_cmd points to the command that is in processing or waiting
    for its command response from firmware. If the function shutdown
    happens to occur at this time we should cancel the cmd timer and
    put the command back to free queue.
    
    Tested-by: Marco Cesarano <marco@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a35577b77d5bc0f532b91d2b1eaa8acadbed13ec
Author: Bing Zhao <bzhao@marvell.com>
Date:   Fri Mar 15 18:47:06 2013 -0700

    mwifiex: skip pending commands after function shutdown
    
    commit a3e240cacc93a06bff3313e28938e980d01a2160 upstream.
    
    During rmmod mwifiex_sdio processing FUNC_SHUTDOWN command is
    sent to firmware. Firmware expcets only FUNC_INIT once WLAN
    function is shut down.
    
    Any command pending in the command queue should be ignored and
    freed.
    
    Tested-by: Daniel Drake <dsd@laptop.org>
    Tested-by: Marco Cesarano <marco@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d89ab3195a0e8dc8990d9f3c42e5f880bf6c56c9
Author: Amitkumar Karwar <akarwar@marvell.com>
Date:   Fri Mar 15 18:47:05 2013 -0700

    mwifiex: fix race when queuing commands
    
    commit 00d7ea11ff0783e24fe70778f3141270b561aaa1 upstream.
    
    Running the following script repeatedly on XO-4 with SD8787
    produces command timeout and system lockup.
    
    insmod mwifiex_sdio.ko
    sleep 1
    ifconfig eth0 up
    iwlist eth0 scan &
    sleep 0.5
    rmmod mwifiex_sdio
    
    mwifiex_send_cmd_async() is called for sync as well as async
    commands. (mwifiex_send_cmd_sync() internally calls it for
    sync command.)
    
    "adapter->cmd_queued" gets filled inside mwifiex_send_cmd_async()
    routine for both types of commands. But it is used only for sync
    commands in mwifiex_wait_queue_complete(). This could lead to a
    race when two threads try to queue a sync command with another
    sync/async command simultaneously.
    
    Get rid of global variable and pass command node as a parameter
    to mwifiex_wait_queue_complete() to fix the problem.
    
    Reported-by: Daniel Drake <dsd@laptop.org>
    Tested-by: Daniel Drake <dsd@laptop.org>
    Tested-by: Marco Cesarano <marco@marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 240e18740d9f9f45fc31b6a5b792eefc25561c27
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Tue Mar 26 20:30:17 2013 -0400

    vt: synchronize_rcu() under spinlock is not nice...
    
    commit e8cd81693bbbb15db57d3c9aa7dd90eda4842874 upstream.
    
    vcs_poll_data_free() calls unregister_vt_notifier(), which calls
    atomic_notifier_chain_unregister(), which calls synchronize_rcu().
    Do it *after* we'd dropped ->f_lock.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f80725b652aca0871ea2cc8b2e037edf67de7630
Author: Konstantin Holoborodko <klh.kernel@gmail.com>
Date:   Fri Mar 29 00:06:13 2013 +0900

    usb: ftdi_sio: Add support for Mitsubishi FX-USB-AW/-BD
    
    commit 482b0b5d82bd916cc0c55a2abf65bdc69023b843 upstream.
    
    It enhances the driver for FTDI-based USB serial adapters
    to recognize Mitsubishi Electric Corp. USB/RS422 Converters
    as FT232BM chips and support them.
    https://search.meau.com/?q=FX-USB-AW
    
    Signed-off-by: Konstantin Holoborodko <klh.kernel@gmail.com>
    Tested-by: Konstantin Holoborodko <klh.kernel@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b3d641e3e7c5968808d2cff1392a317860f1e10
Author: Pawel Wieczorkiewicz <wpawel@gmail.com>
Date:   Wed Feb 20 17:26:20 2013 +0100

    tty: atmel_serial_probe(): index of atmel_ports[] fix
    
    commit 503bded92da283b2f31d87e054c4c6d30c3c2340 upstream.
    
    Index of atmel_ports[ATMEL_MAX_UART] should be smaller
    than ATMEL_MAX_UART.
    
    Signed-off-by: Pawel Wieczorkiewicz <wpawel@gmail.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f6000e86f269103e3126b014c25a6bdd3b96ba0
Author: Roger Pau Monne <roger.pau@citrix.com>
Date:   Mon Mar 18 17:49:34 2013 +0100

    xen-blkfront: switch from llist to list
    
    commit 155b7edb51430a280f86c1e21b7be308b0d219d4 upstream.
    
    The git commit f84adf4921ae3115502f44ff467b04bf2f88cf04
    (xen-blkfront: drop the use of llist_for_each_entry_safe)
    
    was a stop-gate to fix a GCC4.1 bug. The appropiate way
    is to actually use an list instead of using an llist.
    
    As such this patch replaces the usage of llist with an
    list.
    
    Since we always manipulate the list while holding the io_lock, there's
    no need for additional locking (llist used previously is safe to use
    concurrently without additional locking).
    
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    [v1: Redid the git commit description]
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e90381b0d45eb96e1963db7ebe27adbc4f599e6f
Author: Jan Beulich <JBeulich@suse.com>
Date:   Mon Mar 11 09:39:55 2013 +0000

    xen-blkback: fix dispatch_rw_block_io() error path
    
    commit 0e5e098ac22dae38f957e951b70d3cf73beff0f7 upstream.
    
    Commit 7708992 ("xen/blkback: Seperate the bio allocation and the bio
    submission") consolidated the pendcnt updates to just a single write,
    neglecting the fact that the error path relied on it getting set to 1
    up front (such that the decrement in __end_block_io_op() would actually
    drop the count to zero, triggering the necessary cleanup actions).
    
    Also remove a misleading and a stale (after said commit) comment.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccaa606d2301cb33da35a463951e1ed117d927cc
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Thu Mar 7 17:32:01 2013 +0000

    xen/blkback: correctly respond to unknown, non-native requests
    
    commit 0e367ae46503cfe7791460c8ba8434a5d60b2bd5 upstream.
    
    If the frontend is using a non-native protocol (e.g., a 64-bit
    frontend with a 32-bit backend) and it sent an unrecognized request,
    the request was not translated and the response would have the
    incorrect ID.  This may cause the frontend driver to behave
    incorrectly or crash.
    
    Since the ID field in the request is always in the same place,
    regardless of the request type we can get the correct ID and make a
    valid response (which will report BLKIF_RSP_EOPNOTSUPP).
    
    This bug affected 64-bit SLES 11 guests when using a 32-bit backend.
    This guest does a BLKIF_OP_RESERVED_1 (BLKIF_OP_PACKET in the SLES
    source) and would crash in blkif_int() as the ID in the response would
    be invalid.
    
    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>

commit a420a7e3a40a8396104d9a62f676205f2db1a671
Author: Jan Beulich <JBeulich@suse.com>
Date:   Tue Mar 12 15:06:23 2013 +0000

    xen-pciback: notify hypervisor about devices intended to be assigned to guests
    
    commit 909b3fdb0dd4f3db07b2d75425a00a2adb551383 upstream.
    
    For MSI-X capable devices the hypervisor wants to write protect the
    MSI-X table and PBA, yet it can't assume that resources have been
    assigned to their final values at device enumeration time. Thus have
    pciback do that notification, as having the device controlled by it is
    a prerequisite to assigning the device to guests anyway.
    
    This is the kernel part of hypervisor side commit 4245d33 ("x86/MSI:
    add mechanism to fully protect MSI-X table from PV guest accesses") on
    the master branch of git://xenbits.xen.org/xen.git.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e131628113867748a05c9080b9aaf67740d24057
Author: Joerg Roedel <joro@8bytes.org>
Date:   Tue Mar 26 22:48:23 2013 +0100

    iommu/amd: Make sure dma_ops are set for hotplug devices
    
    commit c2a2876e863356b092967ea62bebdb4dd663af80 upstream.
    
    There is a bug introduced with commit 27c2127 that causes
    devices which are hot unplugged and then hot-replugged to
    not have per-device dma_ops set. This causes these devices
    to not function correctly. Fixed with this patch.
    
    Reported-by: Andreas Degert <andreas.degert@googlemail.com>
    Signed-off-by: Joerg Roedel <joro@8bytes.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 964909a72f6446115ce437637b0756b985df68e4
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Mar 6 23:17:08 2013 +0100

    mac80211: always synchronize_net() during station removal
    
    commit 27a737ff7cb062fb9cbceba9b44d60aa74862bfa upstream.
    
    If there are keys left during station removal, then a
    synchronize_net() will be done (for each key, I have a
    patch to address this for 3.10), otherwise it won't be
    done at all which causes issues because the station
    could be used for TX while it's being removed from the
    driver -- that might confuse the driver.
    
    Fix this by always doing synchronize_net() if no key
    was present any more.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3f6fd302bab90e11c1d7952c3565e3f3c244824
Author: Kees Cook <keescook@chromium.org>
Date:   Wed Mar 27 06:40:50 2013 +0000

    tg3: fix length overflow in VPD firmware parsing
    
    commit 715230a44310a8cf66fbfb5a46f9a62a9b2de424 upstream.
    
    Commit 184b89044fb6e2a74611dafa69b1dce0d98612c6 ("tg3: Use VPD fw version
    when present") introduced VPD parsing that contained a potential length
    overflow.
    
    Limit the hardware's reported firmware string length (max 255 bytes) to
    stay inside the driver's firmware string length (32 bytes). On overflow,
    truncate the formatted firmware string instead of potentially overwriting
    portions of the tg3 struct.
    
    http://cansecwest.com/slides/2013/PrivateCore%20CSW%202013.pdf
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reported-by: Oded Horovitz <oded@privatecore.com>
    Reported-by: Brad Spengler <spender@grsecurity.net>
    Cc: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 225e4f15b55729554988b843eef41c990a04b0bd
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Wed Mar 27 08:37:08 2013 +0100

    b43: N-PHY: use more bits for offset in RSSI calibration
    
    commit 2e1253d640eb7f8707d2591c93097c1e9f9c71d5 upstream.
    
    When calculating "offset" for final RSSI calibration we're using numbers
    bigger than s8 can hold. We have for example:
    offset[j] = 232 - poll_results[j];
    formula. If poll_results[j] is small enough (it usually is) we treat
    number's bit as a sign bit. For example 232 - 1 becomes:
    0xE8 - 0x1 = 0xE7, which is not 231 but -25.
    
    This code was introduced in e0c9a0219a8f542e3946fe972a68aacf8c3f906c
    and caused stability regression on some cards, for ex. BCM4322.
    
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

commit df27b773250ee2a3f5ff0ac87bf912feb8c4a1b4
Author: Iestyn C. Elfick <isedev@gmail.com>
Date:   Wed Mar 20 14:02:31 2013 -0500

    b43: A fix for DMA transmission sequence errors
    
    commit b251412db99ccd4495ce372fec7daee27bf06923 upstream.
    
    Intermittently, b43 will report "Out of order TX status report on DMA ring".
    When this happens, the driver must be reset before communication can resume.
    The cause of the problem is believed to be an error in the closed-source
    firmware; however, all versions of the firmware are affected.
    
    This change uses the observation that the expected status is always 2 less
    than the observed value, and supplies a fake status report to skip one
    header/data pair.
    
    Not all devices suffer from this problem, but it can occur several times
    per second under heavy load. As each occurence kills the unmodified driver,
    this patch makes if possible for the affected devices to function. The patch
    logs only the first instance of the reset operation to prevent spamming
    the logs.
    
    Tested-by: Chris Vine <chris@cvine.freeserve.co.uk>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a3e9039d7323c0be222cff4c5c133ca37f4fefa
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Tue Mar 19 07:52:48 2013 +0100

    b43: N-PHY: increase initial value of "mind" in RSSI calibration
    
    commit e67dd874e60529dbd2e8232babb1e23479ba2ffa upstream.
    
    We're using "mind" variable to find the VCM that got the best polling
    results. For each VCM we calculte "currd" which is compared to the
    "mind". For PHY rev3+ "currd" gets values around 14k-40k. Looking for a
    value smaller than 40 makes no sense, so increase the initial value.
    
    This fixes a regression introduced in 3.4 by commit:
    e0c9a0219a8f542e3946fe972a68aacf8c3f906c
    (my BCM4322 performance dropped from 18,4Mb/s to 9,26Mb/s)
    
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d8e86bcaa87d05c3d7ffe428f54feacf24d11f8
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Thu Mar 14 08:35:06 2013 +0200

    iwlwifi: fix length check in multi-TB HCMD
    
    commit cc904c7188c29847817f35e6966fec3014c7479b upstream.
    
    As reported by Ben Hutchings, there was a harmless issue in
    the checks being done on the lengths of the TBs while
    building the TFD for a multi-TB host command.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8937760b75606528a7b0837215eda91100e2b988
Author: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Date:   Sun Mar 17 11:54:04 2013 +0200

    rtlwifi: usb: add missing freeing of skbuff
    
    commit 36ef0b473fbf43d5db23eea4616cc1d18cec245f upstream.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2df1789d4bb9ca9a0757048846ff665a82771f7
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Mon Mar 18 15:50:10 2013 +0100

    HID: usbhid: fix build problem
    
    commit 570637dc8eeb2faba06228d497ff40bb019bcc93 upstream.
    
    Fix build problem caused by typo introduced by 620ae90ed8
    ("HID: usbhid: quirk for MSI GX680R led panel").
    
    Reported-by: fengguang.wu@intel.com
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 989bd9a0e0111d4508692a3349d1819a18993890
Author: Josh Boyer <jwboyer@redhat.com>
Date:   Mon Mar 18 09:47:02 2013 -0400

    HID: usbhid: quirk for MSI GX680R led panel
    
    commit 620ae90ed8ca8b6e40cb9e10279b4f5ef9f0ab81 upstream.
    
    This keyboard backlight device causes a 10 second delay to boot.  Add it
    to the quirk list with HID_QUIRK_NO_INIT_REPORTS.
    
    This fixes Red Hat bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=907221
    
    Signed-off-by: Josh Boyer <jwboyer@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4911ece4056be5d62a8a3db13d80bf86166bcf7a
Author: Josh Boyer <jwboyer@redhat.com>
Date:   Mon Mar 18 09:45:42 2013 -0400

    HID: usbhid: quirk for Realtek Multi-card reader
    
    commit 3d464d9b71ef2f2b40a4bc9dcf06794fd1be9d12 upstream.
    
    This device needs to be added to the quirks list with HID_QUIRK_NO_INIT_REPORTS,
    otherwise it causes 10 seconds timeout during report initialization.
    
    This fixes Red Hat bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=806587
    
    Signed-off-by: Josh Boyer <jwboyer@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0ab571b05319c8ee352d583a9a179884377d641
Author: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Date:   Mon Mar 25 11:27:46 2013 -0700

    ath9k: avoid queueing hw check work when suspended
    
    commit 7fc0357479eeff4ca808c4d8c09bc7631f576b8d upstream.
    
    The following issue was reported.
    
    WARNING: at net/mac80211/util.c:599 ieee80211_can_queue_work.isra.7+0x32/0x40 [mac80211]()
    Hardware name: iMac12,1
    queueing ieee80211 work while going to suspend
    Pid: 0, comm: swapper/0 Tainted: PF          O 3.8.2-206.fc18.x86_64 #1
    Call Trace: Mar 16 09:39:17 Parags-iMac kernel: [ 3993.642992]  <IRQ>
    [<ffffffff8105e61f>] warn_slowpath_common+0x7f/0xc0
    [<ffffffffa0581420>] ? ath_start_rx_poll+0x70/0x70 [ath9k]
    <ffffffff8105e716>] warn_slowpath_fmt+0x46/0x50
    [<ffffffffa045b542>] ieee80211_can_queue_work.isra.7+0x32/0x40
    
    Fix this by avoiding to queue the work if our device has
    already been marked as suspended or stopped.
    
    Reported-by: Parag Warudkar <parag.lkml@gmail.com>
    Tested-by: Parag Warudkar <parag.lkml@gmail.com>
    Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43fc83309418db7dda135ec0c3d6ca49224063c7
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Fri Mar 15 16:18:44 2013 +0100

    ath9k: limit tx path hang check to normal data queues
    
    commit 01d4ab96d2e7fceaad204e5a8710ce34e229b8c5 upstream.
    
    The beacon and multicast-buffer queues are managed by the beacon
    tasklet, and the generic tx path hang check does not help in any way
    here. Running it on those queues anyway can introduce some race
    conditions leading to unnecessary chip resets.
    
    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 f5ae2331e22224e68fa18eb2087c3f3e0c9a67bb
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Fri Mar 15 14:53:31 2013 +0100

    ath9k_hw: revert chainmask to user configuration after calibration
    
    commit 74632d11a133b5baf6b9d622dd19d2f944d93d94 upstream.
    
    The commit 'ath9k_hw: fix calibration issues on chainmask that don't
    include chain 0' changed the hardware chainmask to the chip chainmask
    for the duration of the calibration, but the revert to user
    configuration in the reset path runs too early.
    
    That causes some issues with limiting the number of antennas (including
    spurious failure in hardware-generated packets).
    
    Fix this by reverting the chainmask after the essential parts of the
    calibration that need the workaround, and before NF calibration is run.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Reported-by: Wojciech Dubowik <Wojciech.Dubowik@neratec.com>
    Tested-by: Wojciech Dubowik <Wojciech.Dubowik@neratec.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d95e938c1d975948e5eb02b1cdf996df9bba64fd
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Wed Mar 27 11:36:42 2013 +0100

    can: sja1000: fix define conflict on SH
    
    commit f901b6bc404b67d96eca739857c097e022727b71 upstream.
    
    Thias patch fixes a define conflict between the SH architecture and the sja1000
    driver:
    
        drivers/net/can/sja1000/sja1000.h:59:0: warning:
            "REG_SR" redefined [enabled by default]
        arch/sh/include/asm/ptrace_32.h:25:0: note:
             this is the location of the previous definition
    
    A SJA1000_ prefix is added to the offending sja1000 define only, to make a
    minimal patch suited for stable. A later patch will add a SJA1000_ prefix to
    all defines in sja1000.h.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f67b04d44657c874c34ea461633463803755a7c9
Author: Ming Lei <ming.lei@canonical.com>
Date:   Wed Mar 20 23:25:25 2013 +0800

    sysfs: handle failure path correctly for readdir()
    
    commit e5110f411d2ee35bf8d202ccca2e89c633060dca upstream.
    
    In case of 'if (filp->f_pos ==  0 or 1)' of sysfs_readdir(),
    the failure from filldir() isn't handled, and the reference counter
    of the sysfs_dirent object pointed by filp->private_data will be
    released without clearing filp->private_data, so use after free
    bug will be triggered later.
    
    This patch returns immeadiately under the situation for fixing the bug,
    and it is reasonable to return from readdir() when filldir() fails.
    
    Reported-by: Dave Jones <davej@redhat.com>
    Tested-by: Sasha Levin <levinsasha928@gmail.com>
    Signed-off-by: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e14083e68a88bc48631d59a3bbdf4a800c1646c
Author: Ming Lei <ming.lei@canonical.com>
Date:   Wed Mar 20 23:25:24 2013 +0800

    sysfs: fix race between readdir and lseek
    
    commit 991f76f837bf22c5bb07261cfd86525a0a96650c upstream.
    
    While readdir() is running, lseek() may set filp->f_pos as zero,
    then may leave filp->private_data pointing to one sysfs_dirent
    object without holding its reference counter, so the sysfs_dirent
    object may be used after free in next readdir().
    
    This patch holds inode->i_mutex to avoid the problem since
    the lock is always held in readdir path.
    
    Reported-by: Dave Jones <davej@redhat.com>
    Tested-by: Sasha Levin <levinsasha928@gmail.com>
    Signed-off-by: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64fb82641f3d112fcd8234badd4832e45da59090
Author: Horia Geanta <horia.geanta@freescale.com>
Date:   Wed Mar 20 16:31:58 2013 +0200

    Revert "crypto: caam - add IPsec ESN support"
    
    commit 246bbedb9aaf27e2207501d93a869023a439fce5 upstream.
    
    This reverts commit 891104ed008e8646c7860fe5bc70b0aac55dcc6c.
    
    Current IPsec ESN implementation for authencesn(cbc(aes), hmac(sha))
    (separate encryption and integrity algorithms) does not conform
    to RFC4303.
    
    ICV is generated by hashing the sequence
    SPI, SeqNum-High, SeqNum-Low, IV, Payload
    instead of
    SPI, SeqNum-Low, IV, Payload, SeqNum-High.
    
    Reported-by: Chaoxing Lin <Chaoxing.Lin@ultra-3eti.com>
    Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
    Reviewed-by: Kim Phillips <kim.phillips@freescale.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 101314e1bdd21979f80f45e7dc3deeb62731914d
Author: Horia Geanta <horia.geanta@freescale.com>
Date:   Wed Mar 20 16:31:38 2013 +0200

    Revert "crypto: talitos - add IPsec ESN support"
    
    commit 991155bacb91c988c45586525771758ddadd44ce upstream.
    
    This reverts commit e763eb699be723fb41af818118068c6b3afdaf8d.
    
    Current IPsec ESN implementation for authencesn(cbc(aes), hmac(sha))
    (separate encryption and integrity algorithms) does not conform
    to RFC4303.
    
    ICV is generated by hashing the sequence
    SPI, SeqNum-High, SeqNum-Low, IV, Payload
    instead of
    SPI, SeqNum-Low, IV, Payload, SeqNum-High.
    
    Reported-by: Chaoxing Lin <Chaoxing.Lin@ultra-3eti.com>
    Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
    Reviewed-by: Kim Phillips <kim.phillips@freescale.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95e93985ffa3b1b54808608f8e7e237a70149d7e
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Mar 22 15:16:29 2013 +0000

    staging: comedi: s626: fix continuous acquisition
    
    commit e4317ce877a31dbb9d96375391c1c4ad2210d637 upstream.
    
    For the s626 driver, there is a bug in the handling of asynchronous
    commands on the AI subdevice when the stop source is `TRIG_NONE`.  The
    command should run continuously until cancelled, but the interrupt
    handler stops the command running after the first scan.
    
    The command set-up function `s626_ai_cmd()` contains this code:
    
    	switch (cmd->stop_src) {
    	case TRIG_COUNT:
    		/*  data arrives as one packet */
    		devpriv->ai_sample_count = cmd->stop_arg;
    		devpriv->ai_continous = 0;
    		break;
    	case TRIG_NONE:
    		/*  continous acquisition */
    		devpriv->ai_continous = 1;
    		devpriv->ai_sample_count = 0;
    		break;
    	}
    
    The interrupt handler `s626_irq_handler()` contains this code:
    
    		if (!(devpriv->ai_continous))
    			devpriv->ai_sample_count--;
    		if (devpriv->ai_sample_count <= 0) {
    			devpriv->ai_cmd_running = 0;
    			/* ... */
    		}
    
    So `devpriv->ai_sample_count` is only decremented for the `TRIG_COUNT`
    case, but `devpriv->ai_cmd_running` is set to 0 (and the command
    stopped) regardless.
    
    Fix this in `s626_ai_cmd()` by setting `devpriv->ai_sample_count = 1`
    for the `TRIG_NONE` case.  The interrupt handler will not decrement it
    so it will remain greater than 0 and the check for stopping the
    acquisition will fail.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f20fc097981d5f4ff88a71bc3ea338b17fdc8091
Author: Ming Lei <ming.lei@canonical.com>
Date:   Mon Mar 18 23:45:11 2013 +0800

    Bluetooth: Add support for Dell[QCA 0cf3:817a]
    
    commit ebaf5795ef57a70a042ea259448a465024e2821d upstream.
    
    Add support for the AR9462 chip
    
    T:  Bus=03 Lev=01 Prnt=01 Port=08 Cnt=01 Dev#=  5 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cf3 ProdID=817a Rev= 0.02
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Ming Lei <ming.lei@canonical.com>
    Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba4463c1da7d5d3e9886f9ac8345b6cd572cb5d3
Author: Ming Lei <ming.lei@canonical.com>
Date:   Fri Mar 15 11:00:39 2013 +0800

    Bluetooth: Add support for Dell[QCA 0cf3:0036]
    
    commit d66629c1325399cf080ba8b2fb086c10e5439cdd upstream.
    
    Add support for the AR9462 chip
    
    T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  3 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cf3 ProdID=0036 Rev= 0.02
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=01
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Ming Lei <ming.lei@canonical.com>
    Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e386b9a46fce2d33c8eeae9883763524e0ba2a7a
Author: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
Date:   Wed Mar 13 19:46:20 2013 -0300

    Bluetooth: Fix not closing SCO sockets in the BT_CONNECT2 state
    
    commit eb20ff9c91ddcb2d55c1849a87d3db85af5e88a9 upstream.
    
    With deferred setup for SCO, it is possible that userspace closes the
    socket when it is in the BT_CONNECT2 state, after the Connect Request is
    received but before the Accept Synchonous Connection is sent.
    
    If this happens the following crash was observed, when the connection is
    terminated:
    
    [  +0.000003] hci_sync_conn_complete_evt: hci0 status 0x10
    [  +0.000005] sco_connect_cfm: hcon ffff88003d1bd800 bdaddr 40:98:4e:32:d7:39 status 16
    [  +0.000003] sco_conn_del: hcon ffff88003d1bd800 conn ffff88003cc8e300, err 110
    [  +0.000015] BUG: unable to handle kernel NULL pointer dereference at 0000000000000199
    [  +0.000906] IP: [<ffffffff810620dd>] __lock_acquire+0xed/0xe82
    [  +0.000000] PGD 3d21f067 PUD 3d291067 PMD 0
    [  +0.000000] Oops: 0002 [#1] SMP
    [  +0.000000] Modules linked in: rfcomm bnep btusb bluetooth
    [  +0.000000] CPU 0
    [  +0.000000] Pid: 1481, comm: kworker/u:2H Not tainted 3.9.0-rc1-25019-gad82cdd #1 Bochs Bochs
    [  +0.000000] RIP: 0010:[<ffffffff810620dd>]  [<ffffffff810620dd>] __lock_acquire+0xed/0xe82
    [  +0.000000] RSP: 0018:ffff88003c3c19d8  EFLAGS: 00010002
    [  +0.000000] RAX: 0000000000000001 RBX: 0000000000000246 RCX: 0000000000000000
    [  +0.000000] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88003d1be868
    [  +0.000000] RBP: ffff88003c3c1a98 R08: 0000000000000002 R09: 0000000000000000
    [  +0.000000] R10: ffff88003d1be868 R11: ffff88003e20b000 R12: 0000000000000002
    [  +0.000000] R13: ffff88003aaa8000 R14: 000000000000006e R15: ffff88003d1be850
    [  +0.000000] FS:  0000000000000000(0000) GS:ffff88003e200000(0000) knlGS:0000000000000000
    [  +0.000000] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [  +0.000000] CR2: 0000000000000199 CR3: 000000003c1cb000 CR4: 00000000000006b0
    [  +0.000000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  +0.000000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [  +0.000000] Process kworker/u:2H (pid: 1481, threadinfo ffff88003c3c0000, task ffff88003aaa8000)
    [  +0.000000] Stack:
    [  +0.000000]  ffffffff81b16342 0000000000000000 0000000000000000 ffff88003d1be868
    [  +0.000000]  ffffffff00000000 00018c0c7863e367 000000003c3c1a28 ffffffff8101efbd
    [  +0.000000]  0000000000000000 ffff88003e3d2400 ffff88003c3c1a38 ffffffff81007c7a
    [  +0.000000] Call Trace:
    [  +0.000000]  [<ffffffff8101efbd>] ? kvm_clock_read+0x34/0x3b
    [  +0.000000]  [<ffffffff81007c7a>] ? paravirt_sched_clock+0x9/0xd
    [  +0.000000]  [<ffffffff81007fd4>] ? sched_clock+0x9/0xb
    [  +0.000000]  [<ffffffff8104fd7a>] ? sched_clock_local+0x12/0x75
    [  +0.000000]  [<ffffffff810632d1>] lock_acquire+0x93/0xb1
    [  +0.000000]  [<ffffffffa0022339>] ? spin_lock+0x9/0xb [bluetooth]
    [  +0.000000]  [<ffffffff8105f3d8>] ? lock_release_holdtime.part.22+0x4e/0x55
    [  +0.000000]  [<ffffffff814f6038>] _raw_spin_lock+0x40/0x74
    [  +0.000000]  [<ffffffffa0022339>] ? spin_lock+0x9/0xb [bluetooth]
    [  +0.000000]  [<ffffffff814f6936>] ? _raw_spin_unlock+0x23/0x36
    [  +0.000000]  [<ffffffffa0022339>] spin_lock+0x9/0xb [bluetooth]
    [  +0.000000]  [<ffffffffa00230cc>] sco_conn_del+0x76/0xbb [bluetooth]
    [  +0.000000]  [<ffffffffa002391d>] sco_connect_cfm+0x2da/0x2e9 [bluetooth]
    [  +0.000000]  [<ffffffffa000862a>] hci_proto_connect_cfm+0x38/0x65 [bluetooth]
    [  +0.000000]  [<ffffffffa0008d30>] hci_sync_conn_complete_evt.isra.79+0x11a/0x13e [bluetooth]
    [  +0.000000]  [<ffffffffa000cd96>] hci_event_packet+0x153b/0x239d [bluetooth]
    [  +0.000000]  [<ffffffff814f68ff>] ? _raw_spin_unlock_irqrestore+0x48/0x5c
    [  +0.000000]  [<ffffffffa00025f6>] hci_rx_work+0xf3/0x2e3 [bluetooth]
    [  +0.000000]  [<ffffffff8103efed>] process_one_work+0x1dc/0x30b
    [  +0.000000]  [<ffffffff8103ef83>] ? process_one_work+0x172/0x30b
    [  +0.000000]  [<ffffffff8103e07f>] ? spin_lock_irq+0x9/0xb
    [  +0.000000]  [<ffffffff8103fc8d>] worker_thread+0x123/0x1d2
    [  +0.000000]  [<ffffffff8103fb6a>] ? manage_workers+0x240/0x240
    [  +0.000000]  [<ffffffff81044211>] kthread+0x9d/0xa5
    [  +0.000000]  [<ffffffff81044174>] ? __kthread_parkme+0x60/0x60
    [  +0.000000]  [<ffffffff814f75bc>] ret_from_fork+0x7c/0xb0
    [  +0.000000]  [<ffffffff81044174>] ? __kthread_parkme+0x60/0x60
    [  +0.000000] Code: d7 44 89 8d 50 ff ff ff 4c 89 95 58 ff ff ff e8 44 fc ff ff 44 8b 8d 50 ff ff ff 48 85 c0 4c 8b 95 58 ff ff ff 0f 84 7a 04 00 00 <f0> ff 80 98 01 00 00 83 3d 25 41 a7 00 00 45 8b b5 e8 05 00 00
    [  +0.000000] RIP  [<ffffffff810620dd>] __lock_acquire+0xed/0xe82
    [  +0.000000]  RSP <ffff88003c3c19d8>
    [  +0.000000] CR2: 0000000000000199
    [  +0.000000] ---[ end trace e73cd3b52352dd34 ]---
    
    Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
    Tested-by: Frederic Dalleau <frederic.dalleau@intel.com>
    Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c253d16b1b0f45b67a536db973f1bbc42a85996
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Fri Mar 29 13:50:21 2013 -0400

    tile: expect new initramfs name from hypervisor file system
    
    commit ff7f3efb9abf986f4ecd8793a9593f7ca4d6431a upstream.
    
    The current Tilera boot infrastructure now provides the initramfs
    to Linux as a Tilera-hypervisor file named "initramfs", rather than
    "initramfs.cpio.gz", as before.  (This makes it reasonable to use
    other compression techniques than gzip on the file without having to
    worry about the name causing confusion.)  Adapt to use the new name,
    but also fall back to checking for the old name.
    
    Cc'ing to stable so that older kernels will remain compatible with
    newer Tilera boot infrastructure.
    
    Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a5f3c127942a1c5bdcdc06de9bbe2dff529ab64
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Mon Mar 25 11:23:40 2013 -0400

    SUNRPC: Add barriers to ensure read ordering in rpc_wake_up_task_queue_locked
    
    commit 1166fde6a923c30f4351515b6a9a1efc513e7d00 upstream.
    
    We need to be careful when testing task->tk_waitqueue in
    rpc_wake_up_task_queue_locked, because it can be changed while we
    are holding the queue->lock.
    By adding appropriate memory barriers, we can ensure that it is safe to
    test task->tk_waitqueue for equality if the RPC_TASK_QUEUED bit is set.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>