commit 8a69ca20f06d1878aa0ee8000a60d8226ab6b6a1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Jan 21 11:45:40 2013 -0800

    Linux 3.7.4

commit e5bfd32af29d8ad915c6f1921ca10c8413a7fe28
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Fri Jan 11 12:06:27 2013 +0100

    pty: return EINVAL for TIOCGPTN for BSD ptys
    
    commit ded2f295a36d17838fe97e80d7b6ea83381474f8 upstream.
    
    Commit bbb63c514a3464342967237a51a21ea8f61ab951 (drivers:tty:fix up
    ENOIOCTLCMD error handling) changed the default return value from tty
    ioctl to be ENOTTY and not EINVAL. This is appropriate.
    
    But in case of TIOCGPTN for the old BSD ptys glibc started failing
    because it expects EINVAL to be returned. Only then it continues to
    obtain the pts name the other way around.
    
    So fix this case by explicit return of EINVAL in this case.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Reported-by: Florian Westphal <fw@strlen.de>
    Cc: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8fed561d40acfe9f0c40b7b6a252bcbcad6226be
Author: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Date:   Thu Dec 13 14:27:43 2012 +0100

    mxs: uart: fix setting RTS from software
    
    commit a6833214cfc6fa8a7c59426af77794cc190c6cfc upstream.
    
    With the patch "serial: mxs-auart: fix the wrong RTS hardware flow control" the
    mainline mxs-uart driver now sets RTSEN only when hardware flow control is
    enabled via software. It is not possible any longer to set RTS manually via
    software. However, the manual modification is a valid operation.
    Regain the possibility to set RTS via software and only set RTSEN when hardware
    flow control is explicitly enabled via settermios cflag CRTSCTS.
    
    Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
    Reviewed-by: Huang Shijie <b32955@freescale.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14baf5ca4ee2ed067e9bb326d9d2b12d46a3ce13
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Mon Jan 14 01:29:17 2013 +0000

    staging: vt6656: Fix inconsistent structure packing
    
    commit 1ee4c55fc9620451b2a825d793042a7e0775391b upstream.
    
    vt6656 has several headers that use the #pragma pack(1) directive to
    enable structure packing, but never disable it.  The layout of
    structures defined in other headers can then depend on which order the
    various headers are included in, breaking the One Definition Rule.
    
    In practice this resulted in crashes on x86_64 until the order of header
    inclusion was changed for some files in commit 11d404cb56ecd ('staging:
    vt6656: fix headers and add cfg80211.').  But we need a proper fix that
    won't be affected by future changes to the order of inclusion.
    
    This removes the #pragma pack(1) directives and adds __packed to the
    structure definitions for which packing appears to have been intended.
    
    Reported-and-tested-by: Malcolm Priestley <tvboxspy@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32fc14eae36bedec511f5589b7c4201832b31ee1
Author: Tormod Volden <debian.tormod@gmail.com>
Date:   Wed Jan 9 22:23:32 2013 +0100

    staging: wlan-ng: Fix clamping of returned SSID length
    
    commit 811a37effdb11e54e1ff1ddaa944286c88f58487 upstream.
    
    Commit 2e254212 broke listing of available network names, since it
    clamped the length of the returned SSID to WLAN_BSSID_LEN (6) instead of
    WLAN_SSID_MAXLEN (32).
    
    https://bugzilla.kernel.org/show_bug.cgi?id=52501
    
    Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e9dbb269971d77c38fca3b6c4c1a716bbc26b0e
Author: Stephen Hurd <shurd@broadcom.com>
Date:   Thu Jan 17 14:14:53 2013 -0800

    8250/16?50: Add support for Broadcom TruManage redirected serial port
    
    commit ebebd49a8eab5e9aa1b1f8f1614ccc3c2120f886 upstream.
    
    Add support for the UART device present in Broadcom TruManage capable
    NetXtreme chips (ie: 5761m 5762, and 5725).
    
    This implementation has a hidden transmit FIFO, so running in single-byte
    interrupt mode results in too many interrupts.  The UART_CAP_HFIFO
    capability was added to track this.  It continues to reload the THR as long
    as the THRE and TSRE bits are set in the LSR up to a specified limit (1024
    is used here).
    
    Signed-off-by: Stephen Hurd <shurd@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 297e293fe11d7f83262e8c1c1fc5bd960c9a393a
Author: Maxime Ripard <maxime.ripard@free-electrons.com>
Date:   Mon Jan 14 20:09:26 2013 +0100

    tty: 8250_dw: Fix inverted arguments to serial_out in IRQ handler
    
    commit 68e56cb3a068f9c30971c6117fbbd1e32918e49e upstream.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d90fcdfc2ca59a7cac5c1907007b7a701219018
Author: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Date:   Sun Dec 2 05:10:44 2012 -0500

    tty: serial: vt8500: fix return value check in vt8500_serial_probe()
    
    commit a6dd114e16cbc4410049a90a8a67b967333d108d upstream.
    
    In case of error, function of_clk_get() returns ERR_PTR()
    and never returns NULL. The NULL test in the return value
    check should be replaced with IS_ERR().
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Acked-by: Tony Prisk <linux@prisktech.co.nz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c9fc86f4ee49a91134f2946c4ced9c1499d0e7c
Author: chao bi <chao.bi@intel.com>
Date:   Wed Dec 12 11:40:56 2012 +0800

    serial:ifx6x60:Delete SPI timer when shut down port
    
    commit 014b9b4ce84281ccb3d723c792bed19815f3571a upstream.
    
    When shut down SPI port, it's possible that MRDY has been asserted and a SPI
    timer was activated waiting for SRDY assert, in the case, it needs to delete
    this timer.
    
    Signed-off-by: Chen Jun <jun.d.chen@intel.com>
    Signed-off-by: channing <chao.bi@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3ce4f75b7ff0e3d9ad6bceb715e52a77ca47abe
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu Jan 17 15:14:22 2013 +0100

    USB: option: blacklist network interface on ONDA MT8205 4G LTE
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    
    commit 2291dff02e5f8c708a46a7c4c888f2c467e26642 upstream.
    
    The driver description files gives these names to the vendor specific
    functions on this modem:
    
     Diag   VID_19D2&PID_0265&MI_00
     NMEA   VID_19D2&PID_0265&MI_01
     AT cmd VID_19D2&PID_0265&MI_02
     Modem  VID_19D2&PID_0265&MI_03
     Net    VID_19D2&PID_0265&MI_04
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bc451fcfb21c6b2870a8dddef34e5f812657a26
Author: Bjørn Mork <bjorn@mork.no>
Date:   Tue Jan 15 10:29:49 2013 +0100

    USB: option: add TP-LINK HSUPA Modem MA180
    
    commit 99beb2e9687ffd61c92a9875141eabe6f57a71b9 upstream.
    
    The driver description files gives these names to the vendor specific
    functions on this modem:
    
     Diagnostics VID_2357&PID_0201&MI_00
     NMEA        VID_2357&PID_0201&MI_01
     Modem       VID_2357&PID_0201&MI_03
     Networkcard VID_2357&PID_0201&MI_04
    
    Reported-by: Thomas Schäfer <tschaefer@t-online.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52819fb53796df728cd721d254bd7a0a79048afa
Author: Wolfgang Frisch <wfpub@roembden.net>
Date:   Thu Jan 17 01:07:02 2013 +0100

    USB: io_ti: Fix NULL dereference in chase_port()
    
    commit 1ee0a224bc9aad1de496c795f96bc6ba2c394811 upstream.
    
    The tty is NULL when the port is hanging up.
    chase_port() needs to check for this.
    
    This patch is intended for stable series.
    The behavior was observed and tested in Linux 3.2 and 3.7.1.
    
    Johan Hovold submitted a more elaborate patch for the mainline kernel.
    
    [   56.277883] usb 1-1: edge_bulk_in_callback - nonzero read bulk status received: -84
    [   56.278811] usb 1-1: USB disconnect, device number 3
    [   56.278856] usb 1-1: edge_bulk_in_callback - stopping read!
    [   56.279562] BUG: unable to handle kernel NULL pointer dereference at 00000000000001c8
    [   56.280536] IP: [<ffffffff8144e62a>] _raw_spin_lock_irqsave+0x19/0x35
    [   56.281212] PGD 1dc1b067 PUD 1e0f7067 PMD 0
    [   56.282085] Oops: 0002 [#1] SMP
    [   56.282744] Modules linked in:
    [   56.283512] CPU 1
    [   56.283512] Pid: 25, comm: khubd Not tainted 3.7.1 #1 innotek GmbH VirtualBox/VirtualBox
    [   56.283512] RIP: 0010:[<ffffffff8144e62a>]  [<ffffffff8144e62a>] _raw_spin_lock_irqsave+0x19/0x35
    [   56.283512] RSP: 0018:ffff88001fa99ab0  EFLAGS: 00010046
    [   56.283512] RAX: 0000000000000046 RBX: 00000000000001c8 RCX: 0000000000640064
    [   56.283512] RDX: 0000000000010000 RSI: ffff88001fa99b20 RDI: 00000000000001c8
    [   56.283512] RBP: ffff88001fa99b20 R08: 0000000000000000 R09: 0000000000000000
    [   56.283512] R10: 0000000000000000 R11: ffffffff812fcb4c R12: ffff88001ddf53c0
    [   56.283512] R13: 0000000000000000 R14: 00000000000001c8 R15: ffff88001e19b9f4
    [   56.283512] FS:  0000000000000000(0000) GS:ffff88001fd00000(0000) knlGS:0000000000000000
    [   56.283512] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [   56.283512] CR2: 00000000000001c8 CR3: 000000001dc51000 CR4: 00000000000006e0
    [   56.283512] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [   56.283512] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [   56.283512] Process khubd (pid: 25, threadinfo ffff88001fa98000, task ffff88001fa94f80)
    [   56.283512] Stack:
    [   56.283512]  0000000000000046 00000000000001c8 ffffffff810578ec ffffffff812fcb4c
    [   56.283512]  ffff88001e19b980 0000000000002710 ffffffff812ffe81 0000000000000001
    [   56.283512]  ffff88001fa94f80 0000000000000202 ffffffff00000001 0000000000000296
    [   56.283512] Call Trace:
    [   56.283512]  [<ffffffff810578ec>] ? add_wait_queue+0x12/0x3c
    [   56.283512]  [<ffffffff812fcb4c>] ? usb_serial_port_work+0x28/0x28
    [   56.283512]  [<ffffffff812ffe81>] ? chase_port+0x84/0x2d6
    [   56.283512]  [<ffffffff81063f27>] ? try_to_wake_up+0x199/0x199
    [   56.283512]  [<ffffffff81263a5c>] ? tty_ldisc_hangup+0x222/0x298
    [   56.283512]  [<ffffffff81300171>] ? edge_close+0x64/0x129
    [   56.283512]  [<ffffffff810612f7>] ? __wake_up+0x35/0x46
    [   56.283512]  [<ffffffff8106135b>] ? should_resched+0x5/0x23
    [   56.283512]  [<ffffffff81264916>] ? tty_port_shutdown+0x39/0x44
    [   56.283512]  [<ffffffff812fcb4c>] ? usb_serial_port_work+0x28/0x28
    [   56.283512]  [<ffffffff8125d38c>] ? __tty_hangup+0x307/0x351
    [   56.283512]  [<ffffffff812e6ddc>] ? usb_hcd_flush_endpoint+0xde/0xed
    [   56.283512]  [<ffffffff8144e625>] ? _raw_spin_lock_irqsave+0x14/0x35
    [   56.283512]  [<ffffffff812fd361>] ? usb_serial_disconnect+0x57/0xc2
    [   56.283512]  [<ffffffff812ea99b>] ? usb_unbind_interface+0x5c/0x131
    [   56.283512]  [<ffffffff8128d738>] ? __device_release_driver+0x7f/0xd5
    [   56.283512]  [<ffffffff8128d9cd>] ? device_release_driver+0x1a/0x25
    [   56.283512]  [<ffffffff8128d393>] ? bus_remove_device+0xd2/0xe7
    [   56.283512]  [<ffffffff8128b7a3>] ? device_del+0x119/0x167
    [   56.283512]  [<ffffffff812e8d9d>] ? usb_disable_device+0x6a/0x180
    [   56.283512]  [<ffffffff812e2ae0>] ? usb_disconnect+0x81/0xe6
    [   56.283512]  [<ffffffff812e4435>] ? hub_thread+0x577/0xe82
    [   56.283512]  [<ffffffff8144daa7>] ? __schedule+0x490/0x4be
    [   56.283512]  [<ffffffff8105798f>] ? abort_exclusive_wait+0x79/0x79
    [   56.283512]  [<ffffffff812e3ebe>] ? usb_remote_wakeup+0x2f/0x2f
    [   56.283512]  [<ffffffff812e3ebe>] ? usb_remote_wakeup+0x2f/0x2f
    [   56.283512]  [<ffffffff810570b4>] ? kthread+0x81/0x89
    [   56.283512]  [<ffffffff81057033>] ? __kthread_parkme+0x5c/0x5c
    [   56.283512]  [<ffffffff8145387c>] ? ret_from_fork+0x7c/0xb0
    [   56.283512]  [<ffffffff81057033>] ? __kthread_parkme+0x5c/0x5c
    [   56.283512] Code: 8b 7c 24 08 e8 17 0b c3 ff 48 8b 04 24 48 83 c4 10 c3 53 48 89 fb 41 50 e8 e0 0a c3 ff 48 89 04 24 e8 e7 0a c3 ff ba 00 00 01 00
    <f0> 0f c1 13 48 8b 04 24 89 d1 c1 ea 10 66 39 d1 74 07 f3 90 66
    [   56.283512] RIP  [<ffffffff8144e62a>] _raw_spin_lock_irqsave+0x19/0x35
    [   56.283512]  RSP <ffff88001fa99ab0>
    [   56.283512] CR2: 00000000000001c8
    [   56.283512] ---[ end trace 49714df27e1679ce ]---
    
    Signed-off-by: Wolfgang Frisch <wfpub@roembden.net>
    Cc: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f92a0e3ab08b4870d8bec4a29fb11fac6097e9ec
Author: Frediano Ziglio <frediano.ziglio@citrix.com>
Date:   Wed Jan 16 12:00:55 2013 +0000

    xen: Fix stack corruption in xen_failsafe_callback for 32bit PVOPS guests.
    
    commit 9174adbee4a9a49d0139f5d71969852b36720809 upstream.
    
    This fixes CVE-2013-0190 / XSA-40
    
    There has been an error on the xen_failsafe_callback path for failed
    iret, which causes the stack pointer to be wrong when entering the
    iret_exc error path.  This can result in the kernel crashing.
    
    In the classic kernel case, the relevant code looked a little like:
    
            popl %eax      # Error code from hypervisor
            jz 5f
            addl $16,%esp
            jmp iret_exc   # Hypervisor said iret fault
    5:      addl $16,%esp
                           # Hypervisor said segment selector fault
    
    Here, there are two identical addls on either option of a branch which
    appears to have been optimised by hoisting it above the jz, and
    converting it to an lea, which leaves the flags register unaffected.
    
    In the PVOPS case, the code looks like:
    
            popl_cfi %eax         # Error from the hypervisor
            lea 16(%esp),%esp     # Add $16 before choosing fault path
            CFI_ADJUST_CFA_OFFSET -16
            jz 5f
            addl $16,%esp         # Incorrectly adjust %esp again
            jmp iret_exc
    
    It is possible unprivileged userspace applications to cause this
    behaviour, for example by loading an LDT code selector, then changing
    the code selector to be not-present.  At this point, there is a race
    condition where it is possible for the hypervisor to return back to
    userspace from an interrupt, fault on its own iret, and inject a
    failsafe_callback into the kernel.
    
    This bug has been present since the introduction of Xen PVOPS support
    in commit 5ead97c84 (xen: Core Xen implementation), in 2.6.23.
    
    Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4cf64141c0c1ce77a9844f3532da6e64fd745db
Author: Matt Wilson <msw@amazon.com>
Date:   Tue Jan 15 13:21:27 2013 +0000

    xen/grant-table: correctly initialize grant table version 1
    
    commit d0b4d64aadb9f4a90669848de9ef3819050a98cd upstream.
    
    Commit 85ff6acb075a484780b3d763fdf41596d8fc0970 (xen/granttable: Grant
    tables V2 implementation) changed the GREFS_PER_GRANT_FRAME macro from
    a constant to a conditional expression. The expression depends on
    grant_table_version being appropriately set. Unfortunately, at init
    time grant_table_version will be 0. The GREFS_PER_GRANT_FRAME
    conditional expression checks for "grant_table_version == 1", and
    therefore returns the number of grant references per frame for v2.
    
    This causes gnttab_init() to allocate fewer pages for gnttab_list, as
    a frame can old half the number of v2 entries than v1 entries. After
    gnttab_resume() is called, grant_table_version is appropriately
    set. nr_init_grefs will then be miscalculated and gnttab_free_count
    will hold a value larger than the actual number of free gref entries.
    
    If a guest is heavily utilizing improperly initialized v1 grant
    tables, memory corruption can occur. One common manifestation is
    corruption of the vmalloc list, resulting in a poisoned pointer
    derefrence when accessing /proc/meminfo or /proc/vmallocinfo:
    
    [   40.770064] BUG: unable to handle kernel paging request at 0000200200001407
    [   40.770083] IP: [<ffffffff811a6fb0>] get_vmalloc_info+0x70/0x110
    [   40.770102] PGD 0
    [   40.770107] Oops: 0000 [#1] SMP
    [   40.770114] CPU 10
    
    This patch introduces a static variable, grefs_per_grant_frame, to
    cache the calculated value. gnttab_init() now calls
    gnttab_request_version() early so that grant_table_version and
    grefs_per_grant_frame can be appropriately set. A few BUG_ON()s have
    been added to prevent this type of bug from reoccurring in the future.
    
    Signed-off-by: Matt Wilson <msw@amazon.com>
    Reviewed-and-Tested-by: Steven Noonan <snoonan@amazon.com>
    Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Annie Li <annie.li@oracle.com>
    Cc: xen-devel@lists.xen.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08ad3d3fd7a564795bce21145348e09fe660677a
Author: Stefan Assmann <sassmann@kpanic.de>
Date:   Tue Dec 4 06:00:17 2012 +0000

    igb: release already assigned MSI-X interrupts if setup fails
    
    commit 52285b762b3681669215bf1d17ca6143448ab7d3 upstream.
    
    During MSI-X setup the system might run out of vectors. If this happens the
    already assigned vectors for this NIC should be freed before trying the
    disable MSI-X. Failing to do so results in the following oops.
    
    kernel BUG at drivers/pci/msi.c:341!
    [...]
    Call Trace:
     [<ffffffff8128f39d>] pci_disable_msix+0x3d/0x60
     [<ffffffffa037d1ce>] igb_reset_interrupt_capability+0x27/0x5c [igb]
     [<ffffffffa037d229>] igb_clear_interrupt_scheme+0x26/0x2d [igb]
     [<ffffffffa0384268>] igb_request_irq+0x73/0x297 [igb]
     [<ffffffffa0384554>] __igb_open+0xc8/0x223 [igb]
     [<ffffffffa0384815>] igb_open+0x13/0x15 [igb]
     [<ffffffff8144592f>] __dev_open+0xbf/0x120
     [<ffffffff81443e51>] __dev_change_flags+0xa1/0x180
     [<ffffffff81445828>] dev_change_flags+0x28/0x70
     [<ffffffff814af537>] devinet_ioctl+0x5b7/0x620
     [<ffffffff814b01c8>] inet_ioctl+0x88/0xa0
     [<ffffffff8142e8a0>] sock_do_ioctl+0x30/0x70
     [<ffffffff8142ecf2>] sock_ioctl+0x72/0x270
     [<ffffffff8118062c>] do_vfs_ioctl+0x8c/0x340
     [<ffffffff81180981>] sys_ioctl+0xa1/0xb0
     [<ffffffff815161a9>] system_call_fastpath+0x16/0x1b
    Code: 48 89 df e8 1f 40 ed ff 4d 39 e6 49 8b 45 10 75 b6 48 83 c4 18 5b 41 5c 41 5d 41 5e 41 5f c9 c3 48 8b 7b 20 e8 3e 91 db ff eb ae <0f> 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f 44 00 00
    RIP  [<ffffffff8128e144>] free_msi_irqs+0x124/0x130
     RSP <ffff880037503bd8>
    
    Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Abdallah Chatila <abdallah.chatila@ericsson.com>

commit ef01e4505f3338adfc2cfbd078b404be6e79b779
Author: Tom Mingarelli <thomas.mingarelli@hp.com>
Date:   Tue Nov 20 19:43:17 2012 +0000

    intel-iommu: Prevent devices with RMRRs from being placed into SI Domain
    
    commit ea2447f700cab264019b52e2b417d689e052dcfd upstream.
    
    This patch is to prevent non-USB devices that have RMRRs associated with them from
    being placed into the SI Domain during init. This fixes the issue where the RMRR info
    for devices being placed in and out of the SI Domain gets lost.
    
    Signed-off-by: Thomas Mingarelli <thomas.mingarelli@hp.com>
    Tested-by: Shuah Khan <shuah.khan@hp.com>
    Reviewed-by: Donald Dutile <ddutile@redhat.com>
    Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Joerg Roedel <joro@8bytes.org>
    Cc: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdf9d862969f1be18814273b03fb9497ec2dbdae
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Tue Dec 4 23:43:57 2012 -0800

    target: Add link_magic for fabric allow_link destination target_items
    
    commit 0ff8754981261a80f4b77db2536dfea92c2d4539 upstream.
    
    This patch adds [dev,lun]_link_magic value assignment + checks within generic
    target_fabric_port_link() and target_fabric_mappedlun_link() code to ensure
    destination config_item *target_item sent from configfs_symlink() ->
    config_item_operations->allow_link() is the underlying se_device->dev_group
    and se_lun->lun_group that we expect to symlink.
    
    Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce6696bc5ece1a3f86d6f6c228d02839b2b375cc
Author: Ilija Hadzic <ihadzic@research.bell-labs.com>
Date:   Mon Jan 7 18:21:58 2013 -0500

    drm/radeon: fix a bogus kfree
    
    commit a6b7e1a02b77ab8fe8775d20a88c53d8ba55482e upstream.
    
    parser->chunks[.].kpage[.] is not always kmalloc-ed
    by the parser initialization, so parser_fini should
    not try to kfree it if it didn't allocate it.
    
    This patch fixes a kernel oops that can be provoked
    in UMS mode.
    
    Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Shuah Khan <shuah.khan@hp.com>
    Cc: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 805067d52c93091b46f47df97a8a5088a6ccdc12
Author: Ilija Hadzic <ihadzic@research.bell-labs.com>
Date:   Mon Jan 7 18:21:57 2013 -0500

    drm/radeon: fix NULL pointer dereference in UMS mode
    
    commit ff4bd0827764e10a428a9d39e6814c5478863f94 upstream.
    
    In UMS mode parser->rdev is NULL, so dereferencing
    will cause an oops.
    
    Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14996053c9852facde38b7a1c58769041223d686
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Sat Dec 22 09:24:11 2012 -0200

    usb: chipidea: Allow disabling streaming not only in udc mode
    
    commit 929473ea05db455ad88cdc081f2adc556b8dc48f upstream.
    
    When running a scp transfer using a USB/Ethernet adapter the following crash
    happens:
    
    $ scp test.tar.gz fabio@192.168.1.100:/home/fabio
    fabio@192.168.1.100's password:
    test.tar.gz                                      0%    0     0.0KB/s   --:-- ETA
    ------------[ cut here ]------------
    WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0x2cc/0x2f0()
    NETDEV WATCHDOG: eth0 (asix): transmit queue 0 timed out
    Modules linked in:
    Backtrace:
    [<80011c94>] (dump_backtrace+0x0/0x10c) from [<804d3a5c>] (dump_stack+0x18/0x1c)
     r6:000000ff r5:80412388 r4:80685dc0 r3:80696cc0
    [<804d3a44>] (dump_stack+0x0/0x1c) from [<80021868>]
    (warn_slowpath_common+0x54/0x6c)
    [<80021814>] (warn_slowpath_common+0x0/0x6c) from [<80021924>]
    (warn_slowpath_fmt+0x38/0x40)
    ...
    
    Setting SDIS (Stream Disable Mode- bit 4 of USBMODE register) fixes the problem.
    
    However, in current code CI13XXX_DISABLE_STREAMING flag is only set in udc mode,
    so allow disabling streaming also in host mode.
    
    Tested on a mx6qsabrelite board.
    
    Suggested-by: Peter Chen <peter.chen@freescale.com>
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Reviewed-by: Peter Chen <peter.chen@freescale.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2075c715c52af830db032af46f95c5134b09113a
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Wed Nov 14 22:22:05 2012 -0500

    ext4: init pagevec in ext4_da_block_invalidatepages
    
    commit 66bea92c69477a75a5d37b9bfed5773c92a3c4b4 upstream.
    
    ext4_da_block_invalidatepages is missing a pagevec_init(),
    which means that pvec->cold contains random garbage.
    
    This affects whether the page goes to the front or
    back of the LRU when ->cold makes it to
    free_hot_cold_page()
    
    Reviewed-by: Lukas Czerner <lczerner@redhat.com>
    Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dfa9f89ba0acbb6074c545c53a67a5af33990e0
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Fri Jan 4 17:02:18 2013 +0100

    ALSA: usb - fix race in creation of M-Audio Fast track pro driver
    
    commit b98ae2729dea161edc96c9d177459b6c28bcbba5 upstream.
    
    A patch in the 3.2 kernel caused regression with hotplugging the
    M-Audio Fast track pro, or sound after suspend. I don't have the
    device so I haven't done a full analysis, but it seems userspace
    (both udev and pulseaudio) got confused when a card was created,
    immediately destroyed, and then created again.
    
    However, at least one person in the bug report (martin djfun)
    reports that this patch resolves the issue for him. It also leaves
    a message in the log:
    "snd-usb-audio: probe of 1-1.1:1.1 failed with error -5" which is
    a bit misleading. It is better than non-working audio, but maybe
    there's a more elegant solution?
    
    BugLink: https://bugs.launchpad.net/bugs/1095315
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Cc: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2372c6ef194f9b31e9e745381be02753515293f9
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed Nov 14 20:43:31 2012 +0000

    x86/Sandy Bridge: reserve pages when integrated graphics is present
    
    commit a9acc5365dbda29f7be2884efb63771dc24bd815 upstream.
    
    SNB graphics devices have a bug that prevent them from accessing certain
    memory ranges, namely anything below 1M and in the pages listed in the
    table.  So reserve those at boot if set detect a SNB gfx device on the
    CPU to avoid GPU hangs.
    
    Stephane Marchesin had a similar patch to the page allocator awhile
    back, but rather than reserving pages up front, it leaked them at
    allocation time.
    
    [ hpa: made a number of stylistic changes, marked arrays as static
      const, and made less verbose; use "memblock=debug" for full
      verbosity. ]
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Cc: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2ad0c3dc604295b2fd40531e96e713fde516409
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Mon Jan 14 16:55:55 2013 +0100

    s390/time: fix sched_clock() overflow
    
    commit ed4f20943cd4c7b55105c04daedf8d63ab6d499c upstream.
    
    Converting a 64 Bit TOD format value to nanoseconds means that the value
    must be divided by 4.096. In order to achieve that we multiply with 125
    and divide by 512.
    When used within sched_clock() this triggers an overflow after appr.
    417 days. Resulting in a sched_clock() return value that is much smaller
    than previously and therefore may cause all sort of weird things in
    subsystems that rely on a monotonic sched_clock() behaviour.
    
    To fix this implement a tod_to_ns() helper function which converts TOD
    values without overflow and call this function from both places that
    open coded the conversion: sched_clock() and kvm_s390_handle_wait().
    
    Reviewed-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c67507852d0777a8e616fb7c40da71cc40c328b3
Author: Roland Dreier <roland@purestorage.com>
Date:   Wed Jan 2 12:47:59 2013 -0800

    target: Release se_cmd when LUN lookup fails for TMR
    
    commit 5a3b6fc0092c5f8dee7820064ee54d2631d48573 upstream.
    
    When transport_lookup_tmr_lun() fails and we return a task management
    response from target_complete_tmr_failure(), we need to call
    transport_cmd_check_stop_to_fabric() to release the last ref to the
    cmd after calling se_tfo->queue_tm_rsp(), or else we will never remove
    the failed TMR from the session command list (and we'll end up waiting
    forever when trying to tear down the session).
    
    (nab: Fix minor compile breakage)
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f52375e9fcb897c1b5c1741b0531debd617a4a67
Author: Roland Dreier <roland@purestorage.com>
Date:   Wed Jan 2 12:47:58 2013 -0800

    target: Fix use-after-free in LUN RESET handling
    
    commit 72b59d6ee8adaa51f70377db0a1917ed489bead8 upstream.
    
    If a backend IO takes a really long then an initiator might abort a
    command, and then when it gives up on the abort, send a LUN reset too,
    all before we process any of the original command or the abort.  (The
    abort will wait for the backend IO to complete too)
    
    When the backend IO final completes (or fails), the abort handling
    will proceed and queue up a "return aborted status" operation.  Then,
    while that's still pending, the LUN reset might find the original
    command still on the LUN's list of commands and try to return aborted
    status again, which leads to a use-after free when the first
    se_tfo->queue_status call frees the command and then the second
    se_tfo->queue_status call runs.
    
    Fix this by removing a command from the LUN state_list when we first
    are about to queue aborted status; we shouldn't do anything
    LUN-related after we've started returning status, so this seems like
    the correct thing to do.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a153ea0afa8f709961203f2d3e56260df3d257b
Author: Roland Dreier <roland@purestorage.com>
Date:   Wed Jan 2 12:47:57 2013 -0800

    target: Fix missing CMD_T_ACTIVE bit regression for pending WRITEs
    
    commit e627c615553a356f6f70215ebb3933c6e057553e upstream.
    
    This patch fixes a regression bug introduced during v3.6.x code with
    the following commit to drop transport_add_cmd_to_queue(), which
    originally re-set CMD_T_ACTIVE during pending WRITE I/O submission:
    
    commit af8772926f019b7bddd7477b8de5f3b0f12bad21
    Author: Christoph Hellwig <hch@infradead.org>
    Date:   Sun Jul 8 15:58:49 2012 -0400
    
        target: replace the processing thread with a TMR work queue
    
    The following sequence happens for write commands (or any other
    commands with a data out phase):
    
     - The transport calls target_submit_cmd(), which sets CMD_T_ACTIVE in
       cmd->transport_state and sets cmd->t_state to TRANSPORT_NEW_CMD.
     - Things go on transport_generic_new_cmd(), which notices that the
       command needs to transfer data, so it sets cmd->t_state to
       TRANSPORT_WRITE_PENDING and calls transport_cmd_check_stop().
     - transport_cmd_check_stop() clears CMD_T_ACTIVE in cmd->transport_state
       and returns in the normal case.
     - Then we continue on to call ->se_tfo->write_pending().
     - The data comes back from the initiator, and the transport calls
       target_execute_cmd(), which sets cmd->t_state to TRANSPORT_PROCESSING
       and calls into the backend to actually write the data.
    
    At this point, the backend might take a long time to complete the
    command, since it has to do real IO.  If an abort request comes in for
    this command at this point, it will not wait for the command to finish
    since CMD_T_ACTIVE is not set.  Then when the command does finally
    finish, we blow up with use-after-free.
    
    Avoid this by setting CMD_T_ACTIVE in target_execute_cmd() so that
    transport_wait_for_tasks() waits for the command to finish executing.
    This matches the behavior from before commit 1389533ef944 ("target:
    remove transport_generic_handle_data"), when data was signaled via
    transport_generic_handle_data(), which set CMD_T_ACTIVE because it
    called transport_add_cmd_to_queue().
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Reported-by: Martin Svec <martin.svec@zoner.cz>
    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 da863dd651cc228258165d80b494c9756c73b75f
Author: Mark Rustad <mark.d.rustad@intel.com>
Date:   Fri Dec 21 10:58:19 2012 -0800

    tcm_fc: Do not report target role when target is not defined
    
    commit edec8dfefa1f372b2dd8197da555352e76a10c03 upstream.
    
    Clear the target role when no target is provided for
    the node performing a PRLI.
    
    Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
    Reviewed-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Acked by Robert Love <robert.w.love@intel.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cdaae60625299491d2b30d39a44592c3f19c4e56
Author: Mark Rustad <mark.d.rustad@intel.com>
Date:   Fri Dec 21 10:58:14 2012 -0800

    tcm_fc: Do not indicate retry capability to initiators
    
    commit f2eeba214bcd0215b7f558cab6420e5fd153042b upstream.
    
    When generating a PRLI response to an initiator, clear the
    FCP_SPPF_RETRY bit in the response.
    
    Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
    Reviewed-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Acked by Robert Love <robert.w.love@intel.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7ee9ce24c682dbec3a725def2f79c49b08ab261
Author: Hannes Reinecke <hare@suse.de>
Date:   Mon Dec 17 09:53:32 2012 +0100

    target: use correct sense code for LUN communication failure
    
    commit 18a9df42d53fabfa43b78be1104838cc8b9762e1 upstream.
    
    The ASC/ASCQ code for 'Logical Unit Communication failure' is
    0x08/0x00; 0x80/0x00 is vendor specific.
    
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Cc: Nicholas Bellinger <nab@risingtidesystems.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cfafe0fa8c1d952a0ae2ced0a0817ed9450e3f5
Author: Will Deacon <will.deacon@arm.com>
Date:   Wed Jan 9 11:08:10 2013 +0000

    arm64: mm: only wrprotect clean ptes if they are present
    
    commit 02522463c84748b3b8ad770f9424bcfa70a5b4c4 upstream.
    
    Marking non-present ptes as read-only can corrupt file ptes, breaking
    things like swap and file mappings.
    
    This patch ensures that we only manipulate user pte bits when the pte
    is marked present.
    
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4a5daeef931c0c8eb2bb631ab0c1d9e829326cb
Author: Luciano Coelho <coelho@ti.com>
Date:   Tue Jan 15 10:43:43 2013 +0200

    firmware: make sure the fw file size is not 0
    
    commit 4adf07fba3bd64472921a01aae0e116f9f948b77 upstream.
    
    If the requested firmware file size is 0 bytes in the filesytem, we
    will try to vmalloc(0), which causes a warning:
    
      vmalloc: allocation failure: 0 bytes
      kworker/1:1: page allocation failure: order:0, mode:0xd2
        __vmalloc_node_range+0x164/0x208
        __vmalloc_node+0x4c/0x58
        vmalloc+0x38/0x44
        _request_firmware_load+0x220/0x6b0
        request_firmware+0x64/0xc8
        wl18xx_setup+0xb4/0x570 [wl18xx]
        wlcore_nvs_cb+0x64/0x9f8 [wlcore]
        request_firmware_work_func+0x94/0x100
        process_one_work+0x1d0/0x750
        worker_thread+0x184/0x4ac
        kthread+0xb4/0xc0
    
    To fix this, check whether the file size is less than or equal to zero
    in fw_read_file_contents().
    
    Signed-off-by: Luciano Coelho <coelho@ti.com>
    Acked-by: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbcfcdf223fd323903b9e8ddc538c731d9d49f33
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri Nov 16 10:46:20 2012 +0100

    sh: Fix FDPIC binary loader
    
    commit 4a71997a3279a339e7336ea5d0cd27282e2dea44 upstream.
    
    Ensure that the aux table is properly initialized, even when optional features
    are missing.  Without this, the FDPIC loader did not work.  This was meant to
    be included in commit d5ab780305bb6d60a7b5a74f18cf84eb6ad153b1.
    
    Signed-off-by: Thomas Schwinge <thomas@codesourcery.com>
    Signed-off-by: Paul Mundt <lethal@linux-sh.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66b99611a03866692370848760b94750384f8c39
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Jan 15 14:44:41 2013 +0100

    ALSA: hda/hdmi - Work around "alsactl restore" errors
    
    commit 6f54c361329dbb67dac9de174e938992651d12d7 upstream.
    
    When "alsactl restore" is performed on HDMI codecs, it tries to
    restore the channel map value since the channel map controls are
    writable.  But hdmi_chmap_ctl_put() returns -EBADFD when no PCM stream
    is assigned yet, and this results in an error message from alsactl.
    Although the error is harmless, it's certainly ugly and can be
    regarded as a regression.
    
    As a workaround, this patch changes the return code in such a case to
    be zero for making others happy.  (A slight excuse is: when the chmap
    is changed through the proper alsa-lib API, the PCM status is checked
    there anyway, so we don't have to be too strict in the kernel side.)
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>