commit 2f9ac85b35cce77eb36e415f8f7a36aefb7d977d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Dec 6 15:55:43 2014 -0800

    Linux 3.10.62

commit 617e78c952e4c7d6720b9d01650d3a973f6e80df
Author: Sergio Gelato <Sergio.Gelato@astro.su.se>
Date:   Wed Sep 24 08:47:24 2014 +0200

    nfsd: Fix ACL null pointer deref
    
    BugLink: http://bugs.launchpad.net/bugs/1348670
    
    Fix regression introduced in pre-3.14 kernels by cherry-picking
    aa07c713ecfc0522916f3cd57ac628ea6127c0ec
    (NFSD: Call ->set_acl with a NULL ACL structure if no entries).
    
    The affected code was removed in 3.14 by commit
    4ac7249ea5a0ceef9f8269f63f33cc873c3fac61
    (nfsd: use get_acl and ->set_acl).
    The ->set_acl methods are already able to cope with a NULL argument.
    
    Signed-off-by: Sergio Gelato <Sergio.Gelato@astro.su.se>
    [bwh: Rewrite the subject]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Moritz Mühlenhoff <muehlenhoff@univention.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de8a7ea2e766700fd2bd692647ca4a2b07d24e99
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Tue Oct 7 16:12:36 2014 +1100

    powerpc/powernv: Honor the generic "no_64bit_msi" flag
    
    commit 360743814c4082515581aa23ab1d8e699e1fbe88 upstream.
    
    Instead of the arch specific quirk which we are deprecating
    and that drivers don't understand.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e3c025ae90c863fcb174da911d39a2fc8c76c8d
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Thu Nov 20 11:17:33 2014 +0100

    bnx2fc: do not add shared skbs to the fcoe_rx_list
    
    commit 01a4cc4d0cd6a836c7b923760e8eb1cbb6a47258 upstream.
    
    In some cases, the fcoe_rx_list may contains multiple instances
    of the same skb (the so called "shared skbs").
    
    the bnx2fc_l2_rcv thread is a loop that extracts a skb from the list,
    modifies (and destroys) its content and then proceed to the next one.
    The problem is that if the skb is shared, the remaining instances will
    be corrupted.
    
    The solution is to use skb_share_check() before adding the skb to the
    fcoe_rx_list.
    
    [ 6286.808725] ------------[ cut here ]------------
    [ 6286.808729] WARNING: at include/scsi/fc_frame.h:173 bnx2fc_l2_rcv_thread+0x425/0x450 [bnx2fc]()
    [ 6286.808748] Modules linked in: bnx2x(-) mdio dm_service_time bnx2fc cnic uio fcoe libfcoe 8021q garp stp mrp libfc llc scsi_transport_fc scsi_tgt sg iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel e1000e ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper ptp cryptd hpilo serio_raw hpwdt lpc_ich pps_core ipmi_si pcspkr mfd_core ipmi_msghandler shpchp pcc_cpufreq mperf nfsd auth_rpcgss nfs_acl lockd sunrpc dm_multipath xfs libcrc32c ata_generic pata_acpi sd_mod crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit ata_piix drm_kms_helper ttm drm libata i2c_core hpsa dm_mirror dm_region_hash dm_log dm_mod [last unloaded: mdio]
    [ 6286.808750] CPU: 3 PID: 1304 Comm: bnx2fc_l2_threa Not tainted 3.10.0-121.el7.x86_64 #1
    [ 6286.808750] Hardware name: HP ProLiant DL120 G7, BIOS J01 07/01/2013
    [ 6286.808752]  0000000000000000 000000000b36e715 ffff8800deba1e00 ffffffff815ec0ba
    [ 6286.808753]  ffff8800deba1e38 ffffffff8105dee1 ffffffffa05618c0 ffff8801e4c81888
    [ 6286.808754]  ffffe8ffff663868 ffff8801f402b180 ffff8801f56bc000 ffff8800deba1e48
    [ 6286.808754] Call Trace:
    [ 6286.808759]  [<ffffffff815ec0ba>] dump_stack+0x19/0x1b
    [ 6286.808762]  [<ffffffff8105dee1>] warn_slowpath_common+0x61/0x80
    [ 6286.808763]  [<ffffffff8105e00a>] warn_slowpath_null+0x1a/0x20
    [ 6286.808765]  [<ffffffffa054f415>] bnx2fc_l2_rcv_thread+0x425/0x450 [bnx2fc]
    [ 6286.808767]  [<ffffffffa054eff0>] ? bnx2fc_disable+0x90/0x90 [bnx2fc]
    [ 6286.808769]  [<ffffffff81085aef>] kthread+0xcf/0xe0
    [ 6286.808770]  [<ffffffff81085a20>] ? kthread_create_on_node+0x140/0x140
    [ 6286.808772]  [<ffffffff815fc76c>] ret_from_fork+0x7c/0xb0
    [ 6286.808773]  [<ffffffff81085a20>] ? kthread_create_on_node+0x140/0x140
    [ 6286.808774] ---[ end trace c6cdb939184ccb4e ]---
    
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Acked-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4fee5b24ca8bb48fabb26ecc69cf2629564c28c
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Thu Aug 15 16:55:26 2013 -0400

    nfsd4: fix leak of inode reference on delegation failure
    
    commit bf7bd3e98be5c74813bee6ad496139fb0a011b3b upstream.
    
    This fixes a regression from 68a3396178e6688ad7367202cdf0af8ed03c8727
    "nfsd4: shut down more of delegation earlier".
    
    After that commit, nfs4_set_delegation() failures result in
    nfs4_put_delegation being called, but nfs4_put_delegation doesn't free
    the nfs4_file that has already been set by alloc_init_deleg().
    
    This can result in an oops on later unmounting the exported filesystem.
    
    Note also delaying the fi_had_conflict check we're able to return a
    better error (hence give 4.1 clients a better idea why the delegation
    failed; though note CONFLICT isn't an exact match here, as that's
    supposed to indicate a current conflict, but all we know here is that
    there was one recently).
    
    Reported-by: Toralf Förster <toralf.foerster@gmx.de>
    Tested-by: Toralf Förster <toralf.foerster@gmx.de>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    [tuomasjjrasanen: backported to 3.10
       Conflicts fs/nfsd/nfs4state.c:
         Delegation type flags have been removed from upstream code. In 3.10-series,
         they still exists and therefore the commit caused few conflicts in function
         signatures.
    ]
    Signed-off-by: Tuomas Räsänen <tuomasjjrasanen@opinsys.fi>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfa09bfcfb3a6f172f3c6c623e5b376f8e73fd15
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Wed Nov 19 12:47:50 2014 -0500

    nfsd: Fix slot wake up race in the nfsv4.1 callback code
    
    commit c6c15e1ed303ffc47e696ea1c9a9df1761c1f603 upstream.
    
    The currect code for nfsd41_cb_get_slot() and nfsd4_cb_done() has no
    locking in order to guarantee atomicity, and so allows for races of
    the form.
    
    Task 1                                  Task 2
    ======                                  ======
    if (test_and_set_bit(0) != 0) {
                                            clear_bit(0)
                                            rpc_wake_up_next(queue)
            rpc_sleep_on(queue)
            return false;
    }
    
    This patch breaks the race condition by adding a retest of the bit
    after the call to rpc_sleep_on().
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 158a695a37743947958ca415fcea2dbd88ee7661
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Tue Nov 11 14:28:47 2014 +0100

    rt2x00: do not align payload on modern H/W
    
    commit cfd9167af14eb4ec21517a32911d460083ee3d59 upstream.
    
    RT2800 and newer hardware require padding between header and payload if
    header length is not multiple of 4.
    
    For historical reasons we also align payload to to 4 bytes boundary, but
    such alignment is not needed on modern H/W.
    
    Patch fixes skb_under_panic problems reported from time to time:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=84911
    https://bugzilla.kernel.org/show_bug.cgi?id=72471
    http://marc.info/?l=linux-wireless&m=139108549530402&w=2
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1087591
    
    Panic happened because we eat 4 bytes of skb headroom on each
    (re)transmission when sending frame without the payload and the header
    length not being multiple of 4 (i.e. QoS header has 26 bytes). On such
    case because paylad_aling=2 is bigger than header_align=0 we increase
    header_align by 4 bytes. To prevent that we could change the check to:
    
    	if (payload_length && payload_align > header_align)
    		header_align += 4;
    
    but not aligning payload at all is more effective and alignment is not
    really needed by H/W (that has been tested on OpenWrt project for few
    years now).
    
    Reported-and-tested-by: Antti S. Lankila <alankila@bel.fi>
    Debugged-by: Antti S. Lankila <alankila@bel.fi>
    Reported-by: Henrik Asp <solenskiner@gmail.com>
    Originally-From: Helmut Schaa <helmut.schaa@googlemail.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e5837921cf4416edadae6ff6add38917175ac8e
Author: Thomas Körper <thomas.koerper@esd.eu>
Date:   Fri Oct 31 07:33:54 2014 +0100

    can: dev: avoid calling kfree_skb() from interrupt context
    
    commit 5247a589c24022ab34e780039cc8000c48f2035e upstream.
    
    ikfree_skb() is Called in can_free_echo_skb(), which might be called from (TX
    Error) interrupt, which triggers the folloing warning:
    
    [ 1153.360705] ------------[ cut here ]------------
    [ 1153.360715] WARNING: CPU: 0 PID: 31 at net/core/skbuff.c:563 skb_release_head_state+0xb9/0xd0()
    [ 1153.360772] Call Trace:
    [ 1153.360778]  [<c167906f>] dump_stack+0x41/0x52
    [ 1153.360782]  [<c105bb7e>] warn_slowpath_common+0x7e/0xa0
    [ 1153.360784]  [<c158b909>] ? skb_release_head_state+0xb9/0xd0
    [ 1153.360786]  [<c158b909>] ? skb_release_head_state+0xb9/0xd0
    [ 1153.360788]  [<c105bc42>] warn_slowpath_null+0x22/0x30
    [ 1153.360791]  [<c158b909>] skb_release_head_state+0xb9/0xd0
    [ 1153.360793]  [<c158be90>] skb_release_all+0x10/0x30
    [ 1153.360795]  [<c158bf06>] kfree_skb+0x36/0x80
    [ 1153.360799]  [<f8486938>] ? can_free_echo_skb+0x28/0x40 [can_dev]
    [ 1153.360802]  [<f8486938>] can_free_echo_skb+0x28/0x40 [can_dev]
    [ 1153.360805]  [<f849a12c>] esd_pci402_interrupt+0x34c/0x57a [esd402]
    [ 1153.360809]  [<c10a75b5>] handle_irq_event_percpu+0x35/0x180
    [ 1153.360811]  [<c10a7623>] ? handle_irq_event_percpu+0xa3/0x180
    [ 1153.360813]  [<c10a7731>] handle_irq_event+0x31/0x50
    [ 1153.360816]  [<c10a9c7f>] handle_fasteoi_irq+0x6f/0x120
    [ 1153.360818]  [<c10a9c10>] ? handle_edge_irq+0x110/0x110
    [ 1153.360822]  [<c1011b61>] handle_irq+0x71/0x90
    [ 1153.360823]  <IRQ>  [<c168152c>] do_IRQ+0x3c/0xd0
    [ 1153.360829]  [<c1680b6c>] common_interrupt+0x2c/0x34
    [ 1153.360834]  [<c107d277>] ? finish_task_switch+0x47/0xf0
    [ 1153.360836]  [<c167c27b>] __schedule+0x35b/0x7e0
    [ 1153.360839]  [<c10a5334>] ? console_unlock+0x2c4/0x4d0
    [ 1153.360842]  [<c13df500>] ? n_tty_receive_buf_common+0x890/0x890
    [ 1153.360845]  [<c10707b6>] ? process_one_work+0x196/0x370
    [ 1153.360847]  [<c167c723>] schedule+0x23/0x60
    [ 1153.360849]  [<c1070de1>] worker_thread+0x161/0x460
    [ 1153.360852]  [<c1090fcf>] ? __wake_up_locked+0x1f/0x30
    [ 1153.360854]  [<c1070c80>] ? rescuer_thread+0x2f0/0x2f0
    [ 1153.360856]  [<c1074f01>] kthread+0xa1/0xc0
    [ 1153.360859]  [<c1680401>] ret_from_kernel_thread+0x21/0x30
    [ 1153.360861]  [<c1074e60>] ? kthread_create_on_node+0x110/0x110
    [ 1153.360863] ---[ end trace 5ff83639cbb74b35 ]---
    
    This patch replaces the kfree_skb() by dev_kfree_skb_any().
    
    Signed-off-by: Thomas Körper <thomas.koerper@esd.eu>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c661315b77e219bc44b67c77567bf7833ff900c
Author: Thor Thayer <tthayer@opensource.altera.com>
Date:   Thu Nov 6 13:54:27 2014 -0600

    spi: dw: Fix dynamic speed change.
    
    commit 0a8727e69778683495058852f783eeda141a754e upstream.
    
    An IOCTL call that calls spi_setup() and then dw_spi_setup() will
    overwrite the persisted last transfer speed. On each transfer, the
    SPI speed is compared to the last transfer speed to determine if the
    clock divider registers need to be updated (did the speed change?).
    This bug was observed with the spidev driver using spi-config to
    update the max transfer speed.
    
    This fix: Don't overwrite the persisted last transaction clock speed
    when updating the SPI parameters in dw_spi_setup(). On the next
    transaction, the new speed won't match the persisted last speed
    and the hardware registers will be updated.
    On initialization, the persisted last transaction clock
    speed will be 0 but will be updated after the first SPI
    transaction.
    
    Move zeroed clock divider check into clock change test because
    chip->clk_div is zero on startup and would cause a divide-by-zero
    error. The calculation was wrong as well (can't support odd #).
    
    Reported-by: Vlastimil Setka <setka@vsis.cz>
    Signed-off-by: Vlastimil Setka <setka@vsis.cz>
    Signed-off-by: Thor Thayer <tthayer@opensource.altera.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11b926d128d5362664f98840f7ca1bf05521077a
Author: Sagi Grimberg <sagig@dev.mellanox.co.il>
Date:   Tue Oct 28 13:45:03 2014 -0700

    iser-target: Handle DEVICE_REMOVAL event on network portal listener correctly
    
    commit 3b726ae2de02a406cc91903f80132daee37b6f1b upstream.
    
    In this case the cm_id->context is the isert_np, and the cm_id->qp
    is NULL, so use that to distinct the cases.
    
    Since we don't expect any other events on this cm_id we can
    just return -1 for explicit termination of the cm_id by the
    cma layer.
    
    Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit adbde413d06062edf380d4aad15caf32492e4872
Author: Roland Dreier <roland@purestorage.com>
Date:   Tue Oct 14 14:16:24 2014 -0700

    target: Don't call TFO->write_pending if data_length == 0
    
    commit 885e7b0e181c14e4d0ddd26c688bad2b84c1ada9 upstream.
    
    If an initiator sends a zero-length command (e.g. TEST UNIT READY) but
    sets the transfer direction in the transport layer to indicate a
    data-out phase, we still shouldn't try to transfer data.  At best it's
    a NOP, and depending on the transport, we might crash on an
    uninitialized sg list.
    
    Reported-by: Craig Watson <craig.watson@vanguard-rugged.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b5ba6a22b7a4afe1f3e57d8f462c80c77cb8599
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Sun Oct 19 18:05:33 2014 +0300

    srp-target: Retry when QP creation fails with ENOMEM
    
    commit ab477c1ff5e0a744c072404bf7db51bfe1f05b6e upstream.
    
    It is not guaranteed to that srp_sq_size is supported
    by the HCA. So if we failed to create the QP with ENOMEM,
    try with a smaller srp_sq_size. Keep it up until we hit
    MIN_SRPT_SQ_SIZE, then fail the connection.
    
    Reported-by: Mark Lehrer <lehrer@gmail.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee57215c5a86a829b257f09e58f510696e9e022c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Nov 25 00:38:17 2014 -0800

    Input: xpad - use proper endpoint type
    
    commit a1f9a4072655843fc03186acbad65990cc05dd2d upstream.
    
    The xpad wireless endpoint is not a bulk endpoint on my devices, but
    rather an interrupt one, so the USB core complains when it is submitted.
    I'm guessing that the author really did mean that this should be an
    interrupt urb, but as there are a zillion different xpad devices out
    there, let's cover out bases and handle both bulk and interrupt
    endpoints just as easily.
    
    Signed-off-by: "Pierre-Loup A. Griffais" <pgriffais@valvesoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e1baa82767fb291617f442393c8ec0f31ef0e31
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Tue Nov 25 18:43:15 2014 +0100

    ARM: 8222/1: mvebu: enable strex backoff delay
    
    commit 995ab5189d1d7264e79e665dfa032a19b3ac646e upstream.
    
    Under extremely rare conditions, in an MPCore node consisting of at
    least 3 CPUs, two CPUs trying to perform a STREX to data on the same
    shared cache line can enter a livelock situation.
    
    This patch enables the HW mechanism that overcomes the bug. This fixes
    the incorrect setup of the STREX backoff delay bit due to a wrong
    description in the specification.
    
    Note that enabling the STREX backoff delay mechanism is done by
    leaving the bit *cleared*, while the bit was currently being set by
    the proc-v7.S code.
    
    [Thomas: adapt to latest mainline, slightly reword the commit log, add
    stable markers.]
    
    Fixes: de4901933f6d ("arm: mm: Add support for PJ4B cpu and init routines")
    
    Signed-off-by: Nadav Haklai <nadavh@marvell.com>
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Acked-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf58b9734a076083e370eb757c6faeee3687271b
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Fri Nov 21 15:29:00 2014 +0100

    ARM: 8216/1: xscale: correct auxiliary register in suspend/resume
    
    commit ef59a20ba375aeb97b3150a118318884743452a8 upstream.
    
    According to the manuals I have, XScale auxiliary register should be
    reached with opc_2 = 1 instead of crn = 1. cpu_xscale_proc_init
    correctly uses c1, c0, 1 arguments, but cpu_xscale_do_suspend and
    cpu_xscale_do_resume use c1, c1, 0. Correct suspend/resume functions to
    also use c1, c0, 1.
    
    The issue was primarily noticed thanks to qemu reporing "unsupported
    instruction" on the pxa suspend path. Confirmed in PXA210/250 and PXA255
    XScale Core manuals and in PXA270 and PXA320 Developers Guides.
    
    Harware tested by me on tosa (pxa255). Robert confirmed on pxa270 board.
    
    Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6fb28961fd55796a9258b8c2fd424d00429193c
Author: Jurgen Kramer <gtmkramer@xs4all.nl>
Date:   Sat Nov 15 14:01:21 2014 +0100

    ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices
    
    commit 6e84a8d7ac3ba246ef44e313e92bc16a1da1b04a upstream.
    
    This patch adds a USB control message delay quirk for a few specific Marantz/Denon
    devices. Without the delay the DACs will not work properly and produces the
    following type of messages:
    
    Nov 15 10:09:21 orwell kernel: [   91.342880] usb 3-13: clock source 41 is not valid, cannot use
    Nov 15 10:09:21 orwell kernel: [   91.343775] usb 3-13: clock source 41 is not valid, cannot use
    
    There are likely other Marantz/Denon devices using the same USB module which exhibit the
    same problems. But as this cannot be verified I limited the patch to the devices
    I could test.
    
    The following two devices are covered by this path:
    - Marantz SA-14S1
    - Marantz HD-DAC1
    
    Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b248afd9f29ad863bbafa7ae71a488e547720b20
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Sat Oct 11 00:31:07 2014 +0400

    can: esd_usb2: fix memory leak on disconnect
    
    commit efbd50d2f62fc1f69a3dcd153e63ba28cc8eb27f upstream.
    
    It seems struct esd_usb2 dev is not deallocated on disconnect. The patch adds
    the missing deallocation.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

    USB: xhci: don't start a halted endpoint before its new dequeue is set
    
    commit c3492dbfa1050debf23a5b5cd2bc7514c5b37896 upstream.
    
    A halted endpoint ring must first be reset, then move the ring
    dequeue pointer past the problematic TRB. If we start the ring too
    early after reset, but before moving the dequeue pointer we
    will end up executing the same problematic TRB again.
    
    As we always issue a set transfer dequeue command after a reset
    endpoint command we can skip starting endpoint rings at reset endpoint
    command completion.
    
    Without this fix we end up trying to handle the same faulty TD for
    contol endpoints. causing timeout, and failing testusb ctrl_out write
    tests.
    
    Fixes: e9df17e (USB: xhci: Correct assumptions about number of rings per endpoint.)
    Tested-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 165a550e415dcdb200d89da589c5a9fde2d3d4ab
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Nov 24 11:22:38 2014 +0100

    usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000
    
    commit 263e80b43559a6103e178a9176938ce171b23872 upstream.
    
    This wireless mouse receiver needs a reset-resume quirk to properly come
    out of reset.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1165206
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59a9f90cdfec6781f3d447179220cb5e5043f424
Author: Troy Clark <tclark@matrixorbital.ca>
Date:   Mon Nov 17 14:33:17 2014 -0800

    usb: serial: ftdi_sio: add PIDs for Matrix Orbital products
    
    commit 204ec6e07ea7aff863df0f7c53301f9cbbfbb9d3 upstream.
    
    Add PIDs for new Matrix Orbital GTT series products.
    
    Signed-off-by: Troy Clark <tclark@matrixorbital.ca>
    [johan: shorten commit message ]
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03a1363b6fc8007b54822af7b8ad1720d6dd940d
Author: Preston Fick <pffick@gmail.com>
Date:   Fri Nov 7 23:26:11 2014 -0600

    USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick
    
    commit ffcfe30ebd8dd703d0fc4324ffe56ea21f5479f4 upstream.
    
    Signed-off-by: Preston Fick <pffick@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af8fbc24e2754668514574c4854c9ab3f0369c3c
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Nov 18 11:25:19 2014 +0100

    USB: keyspan: fix tty line-status reporting
    
    commit 5d1678a33c731b56e245e888fdae5e88efce0997 upstream.
    
    Fix handling of TTY error flags, which are not bitmasks and must
    specifically not be ORed together as this prevents the line discipline
    from recognising them.
    
    Also insert null characters when reporting overrun errors as these are
    not associated with the received character.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6230c46086bac77b03a03271258ef86ee6b37d92
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Nov 18 11:25:20 2014 +0100

    USB: keyspan: fix overrun-error reporting
    
    commit 855515a6d3731242d85850a206f2ec084c917338 upstream.
    
    Fix reporting of overrun errors, which are not associated with a
    character. Instead insert a null character and report only once.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20bec8eb8d2e40328c9278128e7082ec4bffc6d6
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Nov 18 11:25:21 2014 +0100

    USB: ssu100: fix overrun-error reporting
    
    commit 75bcbf29c284dd0154c3e895a0bd1ef0e796160e upstream.
    
    Fix reporting of overrun errors, which should only be reported once
    using the inserted null character.
    
    Fixes: 6b8f1ca5581b ("USB: ssu100: set tty_flags in ssu100_process_packet")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8743a13960c87427b29e2c8b3b6ea2c6f9313f7c
Author: Cristina Ciocan <cristina.ciocan@intel.com>
Date:   Tue Nov 11 16:07:42 2014 +0200

    iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
    
    commit ccf54555da9a5e91e454b909ca6a5303c7d6b910 upstream.
    
    The direction field is set on 7 bits, thus we need to AND it with 0111 111 mask
    in order to retrieve it, that is 0x7F, not 0xCF as it is now.
    
    Fixes: ade7ef7ba (staging:iio: Differential channel handling)
    Signed-off-by: Cristina Ciocan <cristina.ciocan@intel.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e7500e0cbffc4bc6619ffd1ca7b34825c54de00
Author: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Date:   Mon Nov 24 15:07:53 2014 +0100

    powerpc/pseries: Fix endiannes issue in RTAS call from xmon
    
    commit 3b8a3c01096925a824ed3272601082289d9c23a5 upstream.
    
    On pseries system (LPAR) xmon failed to enter when running in LE mode,
    system is hunging. Inititating xmon will lead to such an output on the
    console:
    
    SysRq : Entering xmon
    cpu 0x15: Vector: 0  at [c0000003f39ffb10]
        pc: c00000000007ed7c: sysrq_handle_xmon+0x5c/0x70
        lr: c00000000007ed7c: sysrq_handle_xmon+0x5c/0x70
        sp: c0000003f39ffc70
       msr: 8000000000009033
      current = 0xc0000003fafa7180
      paca    = 0xc000000007d75e80	 softe: 0	 irq_happened: 0x01
        pid   = 14617, comm = bash
    Bad kernel stack pointer fafb4b0 at eca7cc4
    cpu 0x15: Vector: 300 (Data Access) at [c000000007f07d40]
        pc: 000000000eca7cc4
        lr: 000000000eca7c44
        sp: fafb4b0
       msr: 8000000000001000
       dar: 10000000
     dsisr: 42000000
      current = 0xc0000003fafa7180
      paca    = 0xc000000007d75e80	 softe: 0	 irq_happened: 0x01
        pid   = 14617, comm = bash
    cpu 0x15: Exception 300 (Data Access) in xmon, returning to main loop
    xmon: WARNING: bad recursive fault on cpu 0x15
    
    The root cause is that xmon is calling RTAS to turn off the surveillance
    when entering xmon, and RTAS is requiring big endian parameters.
    
    This patch is byte swapping the RTAS arguments when running in LE mode.
    
    Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e90e3b342f4462d5930a103ca3cf01ccca1450ec
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Tue Oct 7 16:12:55 2014 +1100

    powerpc/pseries: Honor the generic "no_64bit_msi" flag
    
    commit 415072a041bf50dbd6d56934ffc0cbbe14c97be8 upstream.
    
    Instead of the arch specific quirk which we are deprecating
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a8649204902251b90ebbb0927418e0501d3399e
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Fri Nov 14 17:55:03 2014 +1100

    of/base: Fix PowerPC address parsing hack
    
    commit 746c9e9f92dde2789908e51a354ba90a1962a2eb upstream.
    
    We have a historical hack that treats missing ranges properties as the
    equivalent of an empty one. This is needed for ancient PowerMac "bad"
    device-trees, and shouldn't be enabled for any other PowerPC platform,
    otherwise we get some nasty layout of devices in sysfs or even
    duplication when a set of otherwise identically named devices is
    created multiple times under a different parent node with no ranges
    property.
    
    This fix is needed for the PowerNV i2c busses to be exposed properly
    and will fix a number of other embedded cases.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: Grant Likely <grant.likely@linaro.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6633e461b5f4fec7d116f94c74076890428ab23a
Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Date:   Mon Nov 17 10:48:21 2014 +0000

    ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use
    
    commit 9da7a5a9fdeeb76b2243f6b473363a7e6147ab6f upstream.
    
    We should not free any buffers associated with writing out coefficients
    to the DSP until all the async writes have completed. This patch updates
    the out of memory path when allocating a new buffer to include a call to
    regmap_async_complete.
    
    Reported-by: JS Park <aitdark.park@samsung.com>
    Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2fe35401e2f611964eff6f1fb0b7b689cb30f04b
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Fri Nov 14 02:14:47 2014 -0200

    ASoC: sgtl5000: Fix SMALL_POP bit definition
    
    commit c251ea7bd7a04f1f2575467e0de76e803cf59149 upstream.
    
    On a mx28evk with a sgtl5000 codec we notice a loud 'click' sound  to happen
    5 seconds after the end of a playback.
    
    The SMALL_POP bit should fix this, but its definition is incorrect:
    according to the sgtl5000 manual it is bit 0 of CHIP_REF_CTRL register, not
    bit 1.
    
    Fix the definition accordingly and enable the bit as intended per the code
    comment.
    
    After applying this change, no loud 'click' sound is heard after playback
    
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c8ecdca12c28dbe26fd7ad5b8a8f28cd6dadfac
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Fri Oct 3 15:13:24 2014 +1000

    PCI/MSI: Add device flag indicating that 64-bit MSIs don't work
    
    commit f144d1496b47e7450f41b767d0d91c724c2198bc upstream.
    
    This can be set by quirks/drivers to be used by the architecture code
    that assigns the MSI addresses.
    
    We additionally add verification in the core MSI code that the values
    assigned by the architecture do satisfy the limitation in order to fail
    gracefully if they don't (ie. the arch hasn't been updated to deal with
    that quirk yet).
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e5b12de56d8fae345d3b331a14bc06f7609a992
Author: Jiri Bohac <jbohac@suse.cz>
Date:   Wed Nov 19 23:05:49 2014 +0100

    ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg
    
    [ Upstream commit 01462405f0c093b2f8dfddafcadcda6c9e4c5cdf ]
    
    This fixes an old regression introduced by commit
    b0d0d915 (ipx: remove the BKL).
    
    When a recvmsg syscall blocks waiting for new data, no data can be sent on the
    same socket with sendmsg because ipx_recvmsg() sleeps with the socket locked.
    
    This breaks mars-nwe (NetWare emulator):
    - the ncpserv process reads the request using recvmsg
    - ncpserv forks and spawns nwconn
    - ncpserv calls a (blocking) recvmsg and waits for new requests
    - nwconn deadlocks in sendmsg on the same socket
    
    Commit b0d0d915 has simply replaced BKL locking with
    lock_sock/release_sock. Unlike now, BKL got unlocked while
    sleeping, so a blocking recvmsg did not block a concurrent
    sendmsg.
    
    Only keep the socket locked while actually working with the socket data and
    release it prior to calling skb_recv_datagram().
    
    Signed-off-by: Jiri Bohac <jbohac@suse.cz>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0eed5a220e777b9e01b9eb45d7e387a35f1f6fa
Author: Mathias Krause <minipli@googlemail.com>
Date:   Wed Nov 19 18:05:26 2014 +0100

    pptp: fix stack info leak in pptp_getname()
    
    [ Upstream commit a5f6fc28d6e6cc379c6839f21820e62262419584 ]
    
    pptp_getname() only partially initializes the stack variable sa,
    particularly only fills the pptp part of the sa_addr union. The code
    thereby discloses 16 bytes of kernel stack memory via getsockname().
    
    Fix this by memset(0)'ing the union before.
    
    Cc: Dmitry Kozlov <xeb@mail.ru>
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b0c6ddf7b237a203de34024de655cbb30e928b2
Author: Martin Hauke <mardnh@gmx.de>
Date:   Sun Nov 16 19:55:25 2014 +0100

    qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem
    
    [ Upstream commit bb2bdeb83fb125c95e47fc7eca2a3e8f868e2a74 ]
    
    Added the USB VID/PID for the HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e)
    
    Signed-off-by: Martin Hauke <mardnh@gmx.de>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b0bf252b2d8c47cdff5f52b4f112ca87d18503a
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Sat Nov 15 02:11:59 2014 +0300

    ieee802154: fix error handling in ieee802154fake_probe()
    
    [ Upstream commit 8c2dd54485ccee7fc4086611e188478584758c8d ]
    
    In case of any failure ieee802154fake_probe() just calls unregister_netdev().
    But it does not look safe to unregister netdevice before it was registered.
    
    The patch implements straightforward resource deallocation in case of
    failure in ieee802154fake_probe().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbac8911f1fee9e5af0266eeef30ceaaffbc9338
Author: Panu Matilainen <pmatilai@redhat.com>
Date:   Fri Nov 14 13:14:32 2014 +0200

    ipv4: Fix incorrect error code when adding an unreachable route
    
    [ Upstream commit 49dd18ba4615eaa72f15c9087dea1c2ab4744cf5 ]
    
    Trying to add an unreachable route incorrectly returns -ESRCH if
    if custom FIB rules are present:
    
    [root@localhost ~]# ip route add 74.125.31.199 dev eth0 via 1.2.3.4
    RTNETLINK answers: Network is unreachable
    [root@localhost ~]# ip rule add to 55.66.77.88 table 200
    [root@localhost ~]# ip route add 74.125.31.199 dev eth0 via 1.2.3.4
    RTNETLINK answers: No such process
    [root@localhost ~]#
    
    Commit 83886b6b636173b206f475929e58fac75c6f2446 ("[NET]: Change "not found"
    return value for rule lookup") changed fib_rules_lookup()
    to use -ESRCH as a "not found" code internally, but for user space it
    should be translated into -ENETUNREACH. Handle the translation centrally in
    ipv4-specific fib_lookup(), leaving the DECnet case alone.
    
    On a related note, commit b7a71b51ee37d919e4098cd961d59a883fd272d8
    ("ipv4: removed redundant conditional") removed a similar translation from
    ip_route_input_slow() prematurely AIUI.
    
    Fixes: b7a71b51ee37 ("ipv4: removed redundant conditional")
    Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07729b8d98ea785c58acf3272fe875e44daeb260
Author: Vincent BENAYOUN <vincent.benayoun@trust-in-soft.com>
Date:   Thu Nov 13 13:47:26 2014 +0100

    inetdevice: fixed signed integer overflow
    
    [ Upstream commit 84bc88688e3f6ef843aa8803dbcd90168bb89faf ]
    
    There could be a signed overflow in the following code.
    
    The expression, (32-logmask) is comprised between 0 and 31 included.
    It may be equal to 31.
    In such a case the left shift will produce a signed integer overflow.
    According to the C99 Standard, this is an undefined behavior.
    A simple fix is to replace the signed int 1 with the unsigned int 1U.
    
    Signed-off-by: Vincent BENAYOUN <vincent.benayoun@trust-in-soft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1b9c49bd036057cd4f2cfc9a97fd64d8b830deb
Author: David S. Miller <davem@davemloft.net>
Date:   Sun Nov 16 13:19:32 2014 -0800

    sparc64: Fix constraints on swab helpers.
    
    [ Upstream commit 5a2b59d3993e8ca4f7788a48a23e5cb303f26954 ]
    
    We are reading the memory location, so we have to have a memory
    constraint in there purely for the sake of showing the data flow
    to the compiler.
    
    Reported-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0061b518b1b85224bd697f2474d72b18b67a8d53
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Fri Nov 21 13:26:07 2014 -0800

    uprobes, x86: Fix _TIF_UPROBE vs _TIF_NOTIFY_RESUME
    
    commit 82975bc6a6df743b9a01810fb32cb65d0ec5d60b upstream.
    
    x86 call do_notify_resume on paranoid returns if TIF_UPROBE is set but
    not on non-paranoid returns.  I suspect that this is a mistake and that
    the code only works because int3 is paranoid.
    
    Setting _TIF_NOTIFY_RESUME in the uprobe code was probably a workaround
    for the x86 bug.  With that bug fixed, we can remove _TIF_NOTIFY_RESUME
    from the uprobes code.
    
    Reported-by: Oleg Nesterov <oleg@redhat.com>
    Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Acked-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b15c16c4f4a7c62c3c0f99b7ef8ddfcdab2ae66
Author: Kees Cook <keescook@chromium.org>
Date:   Fri Nov 14 11:47:37 2014 -0800

    x86, mm: Set NX across entire PMD at boot
    
    commit 45e2a9d4701d8c624d4a4bcdd1084eae31e92f58 upstream.
    
    When setting up permissions on kernel memory at boot, the end of the
    PMD that was split from bss remained executable. It should be NX like
    the rest. This performs a PMD alignment instead of a PAGE alignment to
    get the correct span of memory.
    
    Before:
    ---[ High Kernel Mapping ]---
    ...
    0xffffffff8202d000-0xffffffff82200000  1868K     RW       GLB NX pte
    0xffffffff82200000-0xffffffff82c00000    10M     RW   PSE GLB NX pmd
    0xffffffff82c00000-0xffffffff82df5000  2004K     RW       GLB NX pte
    0xffffffff82df5000-0xffffffff82e00000    44K     RW       GLB x  pte
    0xffffffff82e00000-0xffffffffc0000000   978M                     pmd
    
    After:
    ---[ High Kernel Mapping ]---
    ...
    0xffffffff8202d000-0xffffffff82200000  1868K     RW       GLB NX pte
    0xffffffff82200000-0xffffffff82e00000    12M     RW   PSE GLB NX pmd
    0xffffffff82e00000-0xffffffffc0000000   978M                     pmd
    
    [ tglx: Changed it to roundup(_brk_end, PMD_SIZE) and added a comment.
            We really should unmap the reminder along with the holes
            caused by init,initdata etc. but thats a different issue ]
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Toshi Kani <toshi.kani@hp.com>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: David Vrabel <david.vrabel@citrix.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/20141114194737.GA3091@www.outflux.net
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c97aaf68301be4943f3f1aa0943d8150165a8f61
Author: Dave Hansen <dave.hansen@linux.intel.com>
Date:   Tue Nov 11 14:01:33 2014 -0800

    x86: Require exact match for 'noxsave' command line option
    
    commit 2cd3949f702692cf4c5d05b463f19cd706a92dd3 upstream.
    
    We have some very similarly named command-line options:
    
    arch/x86/kernel/cpu/common.c:__setup("noxsave", x86_xsave_setup);
    arch/x86/kernel/cpu/common.c:__setup("noxsaveopt", x86_xsaveopt_setup);
    arch/x86/kernel/cpu/common.c:__setup("noxsaves", x86_xsaves_setup);
    
    __setup() is designed to match options that take arguments, like
    "foo=bar" where you would have:
    
    	__setup("foo", x86_foo_func...);
    
    The problem is that "noxsave" actually _matches_ "noxsaves" in
    the same way that "foo" matches "foo=bar".  If you boot an old
    kernel that does not know about "noxsaves" with "noxsaves" on the
    command line, it will interpret the argument as "noxsave", which
    is not what you want at all.
    
    This makes the "noxsave" handler only return success when it finds
    an *exact* match.
    
    [ tglx: We really need to make __setup() more robust. ]
    
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: x86@kernel.org
    Link: http://lkml.kernel.org/r/20141111220133.FE053984@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69c5d32d83e9f2a7cb4dfd5a5c631470e816bf6a
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Sat Nov 22 18:00:33 2014 -0800

    x86_64, traps: Rework bad_iret
    
    commit b645af2d5905c4e32399005b867987919cbfc3ae upstream.
    
    It's possible for iretq to userspace to fail.  This can happen because
    of a bad CS, SS, or RIP.
    
    Historically, we've handled it by fixing up an exception from iretq to
    land at bad_iret, which pretends that the failed iret frame was really
    the hardware part of #GP(0) from userspace.  To make this work, there's
    an extra fixup to fudge the gs base into a usable state.
    
    This is suboptimal because it loses the original exception.  It's also
    buggy because there's no guarantee that we were on the kernel stack to
    begin with.  For example, if the failing iret happened on return from an
    NMI, then we'll end up executing general_protection on the NMI stack.
    This is bad for several reasons, the most immediate of which is that
    general_protection, as a non-paranoid idtentry, will try to deliver
    signals and/or schedule from the wrong stack.
    
    This patch throws out bad_iret entirely.  As a replacement, it augments
    the existing swapgs fudge into a full-blown iret fixup, mostly written
    in C.  It's should be clearer and more correct.
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd5683d05ef451c15c24b30050bcd7d14bc50a1d
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Sat Nov 22 18:00:32 2014 -0800

    x86_64, traps: Stop using IST for #SS
    
    commit 6f442be2fb22be02cafa606f1769fa1e6f894441 upstream.
    
    On a 32-bit kernel, this has no effect, since there are no IST stacks.
    
    On a 64-bit kernel, #SS can only happen in user code, on a failed iret
    to user space, a canonical violation on access via RSP or RBP, or a
    genuine stack segment violation in 32-bit kernel code.  The first two
    cases don't need IST, and the latter two cases are unlikely fatal bugs,
    and promoting them to double faults would be fine.
    
    This fixes a bug in which the espfix64 code mishandles a stack segment
    violation.
    
    This saves 4k of memory per CPU and a tiny bit of code.
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea21cb1f6b15abb6f6c039654412ff460175cb0f
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Sat Nov 22 18:00:31 2014 -0800

    x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C
    
    commit af726f21ed8af2cdaa4e93098dc211521218ae65 upstream.
    
    There's nothing special enough about the espfix64 double fault fixup to
    justify writing it in assembly.  Move it to C.
    
    This also fixes a bug: if the double fault came from an IST stack, the
    old asm code would return to a partially uninitialized stack frame.
    
    Fixes: 3891a04aafd668686239349ea58f3314ea2af86b
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5e905d72508585bbb75622f0f75564d120084cb
Author: Aaro Koskinen <aaro.koskinen@iki.fi>
Date:   Thu Nov 20 01:05:38 2014 +0200

    MIPS: Loongson: Make platform serial setup always built-in.
    
    commit 26927f76499849e095714452b8a4e09350f6a3b9 upstream.
    
    If SERIAL_8250 is compiled as a module, the platform specific setup
    for Loongson will be a module too, and it will not work very well.
    At least on Loongson 3 it will trigger a build failure,
    since loongson_sysconf is not exported to modules.
    
    Fix by making the platform specific serial code always built-in.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Reported-by: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: Markos Chandras <Markos.Chandras@imgtec.com>
    Patchwork: https://patchwork.linux-mips.org/patch/8533/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1f2094bd9a8919b38744f6a49ef8c29dc2b68e2
Author: Aaro Koskinen <aaro.koskinen@nsn.com>
Date:   Fri Oct 17 18:10:24 2014 +0300

    MIPS: oprofile: Fix backtrace on 64-bit kernel
    
    commit bbaf113a481b6ce32444c125807ad3618643ce57 upstream.
    
    Fix incorrect cast that always results in wrong address for the new
    frame on 64-bit kernels.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/8110/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>