commit be70188832b22a8f1a49d0e3a3eb2209f9cfdc8a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Nov 14 08:48:23 2014 -0800

    Linux 3.10.60

commit f05c0daaf68e424d05d271c7fb2fbfd5750a315e
Author: Ilya Dryomov <idryomov@redhat.com>
Date:   Fri Oct 10 16:39:05 2014 +0400

    libceph: ceph-msgr workqueue needs a resque worker
    
    commit f9865f06f7f18c6661c88d0511f05c48612319cc upstream.
    
    Commit f363e45fd118 ("net/ceph: make ceph_msgr_wq non-reentrant")
    effectively removed WQ_MEM_RECLAIM flag from ceph_msgr_wq.  This is
    wrong - libceph is very much a memory reclaim path, so restore it.
    
    Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
    Tested-by: Micha Krause <micha@krausam.de>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58f382ffaf2570032da636a348aa6c045a166f4e
Author: Chris Mason <clm@fb.com>
Date:   Tue Nov 4 06:59:04 2014 -0800

    Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup
    
    commit 6e5aafb27419f32575b27ef9d6a31e5d54661aca upstream.
    
    If we hit any errors in btrfs_lookup_csums_range, we'll loop through all
    the csums we allocate and free them.  But the code was using list_entry
    incorrectly, and ended up trying to free the on-stack list_head instead.
    
    This bug came from commit 0678b6185
    
    btrfs: Don't BUG_ON kzalloc error in btrfs_lookup_csums_range()
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Reported-by: Erik Berg <btrfs@slipsprogrammoer.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96db973853b1d5a93836261b0edcc877ddc335a4
Author: Grant Likely <grant.likely@linaro.org>
Date:   Mon Nov 3 15:15:35 2014 +0000

    of: Fix overflow bug in string property parsing functions
    
    commit a87fa1d81a9fb5e9adca9820e16008c40ad09f33 upstream.
    
    The string property read helpers will run off the end of the buffer if
    it is handed a malformed string property. Rework the parsers to make
    sure that doesn't happen. At the same time add new test cases to make
    sure the functions behave themselves.
    
    The original implementations of of_property_read_string_index() and
    of_property_count_strings() both open-coded the same block of parsing
    code, each with it's own subtly different bugs. The fix here merges
    functions into a single helper and makes the original functions static
    inline wrappers around the helper.
    
    One non-bugfix aspect of this patch is the addition of a new wrapper,
    of_property_read_string_array(). The new wrapper is needed by the
    device_properties feature that Rafael is working on and planning to
    merge for v3.19. The implementation is identical both with and without
    the new static inline wrapper, so it just got left in to reduce the
    churn on the header file.
    
    Signed-off-by: Grant Likely <grant.likely@linaro.org>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Darren Hart <darren.hart@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit afb16d3e8e031b25993df65dfdb92e503f596916
Author: Yijing Wang <wangyijing@huawei.com>
Date:   Fri Nov 7 12:05:49 2014 +0800

    sysfs: driver core: Fix glue dir race condition by gdp_mutex
    
    commit e4a60d139060975eb956717e4f63ae348d4d8cc5 upstream.
    
    There is a race condition when removing glue directory.
    It can be reproduced in following test:
    
    path 1: Add first child device
    device_add()
        get_device_parent()
                /*find parent from glue_dirs.list*/
                list_for_each_entry(k, &dev->class->p->glue_dirs.list, entry)
                        if (k->parent == parent_kobj) {
                                kobj = kobject_get(k);
                                break;
                        }
                ....
                class_dir_create_and_add()
    
    path2: Remove last child device under glue dir
    device_del()
        cleanup_device_parent()
                cleanup_glue_dir()
                        kobject_put(glue_dir);
    
    If path2 has been called cleanup_glue_dir(), but not
    call kobject_put(glue_dir), the glue dir is still
    in parent's kset list. Meanwhile, path1 find the glue
    dir from the glue_dirs.list. Path2 may release glue dir
    before path1 call kobject_get(). So kernel will report
    the warning and bug_on.
    
    This is a "classic" problem we have of a kref in a list
    that can be found while the last instance could be removed
    at the same time.
    
    This patch reuse gdp_mutex to fix this race condition.
    
    The following calltrace is captured in kernel 3.4, but
    the latest kernel still has this bug.
    
    -----------------------------------------------------
    <4>[ 3965.441471] WARNING: at ...include/linux/kref.h:41 kobject_get+0x33/0x40()
    <4>[ 3965.441474] Hardware name: Romley
    <4>[ 3965.441475] Modules linked in: isd_iop(O) isd_xda(O)...
    ...
    <4>[ 3965.441605] Call Trace:
    <4>[ 3965.441611]  [<ffffffff8103717a>] warn_slowpath_common+0x7a/0xb0
    <4>[ 3965.441615]  [<ffffffff810371c5>] warn_slowpath_null+0x15/0x20
    <4>[ 3965.441618]  [<ffffffff81215963>] kobject_get+0x33/0x40
    <4>[ 3965.441624]  [<ffffffff812d1e45>] get_device_parent.isra.11+0x135/0x1f0
    <4>[ 3965.441627]  [<ffffffff812d22d4>] device_add+0xd4/0x6d0
    <4>[ 3965.441631]  [<ffffffff812d0dbc>] ? dev_set_name+0x3c/0x40
    ....
    <2>[ 3965.441912] kernel BUG at ..../fs/sysfs/group.c:65!
    <4>[ 3965.441915] invalid opcode: 0000 [#1] SMP
    ...
    <4>[ 3965.686743]  [<ffffffff811a677e>] sysfs_create_group+0xe/0x10
    <4>[ 3965.686748]  [<ffffffff810cfb04>] blk_trace_init_sysfs+0x14/0x20
    <4>[ 3965.686753]  [<ffffffff811fcabb>] blk_register_queue+0x3b/0x120
    <4>[ 3965.686756]  [<ffffffff812030bc>] add_disk+0x1cc/0x490
    ....
    -------------------------------------------------------
    
    Signed-off-by: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Weng Meiling <wengmeiling.weng@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fae0f7488f7817eadc0c2dfa70a416da2cafb3b
Author: Wolfram Sang <wsa@the-dreams.de>
Date:   Mon Nov 3 21:16:16 2014 +0100

    i2c: at91: don't account as iowait
    
    commit 11cfbfb098b22d3e57f1f2be217cad20e2d48463 upstream.
    
    iowait is for blkio [1]. I2C shouldn't use it.
    
    [1] https://lkml.org/lkml/2014/11/3/317
    
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 018fd7f83f65eed43a6c655686e05c95bab03637
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Oct 22 16:06:38 2014 +0200

    acer-wmi: Add acpi_backlight=video quirk for the Acer KAV80
    
    commit 183fd8fcd7f8afb7ac5ec68f83194872f9fecc84 upstream.
    
    The acpi-video backlight interface on the Acer KAV80 is broken, and worse
    it causes the entire machine to slow down significantly after a suspend/resume.
    
    Blacklist it, and use the acer-wmi backlight interface instead. Note that
    the KAV80 is somewhat unique in that it is the only Acer model where we
    fall back to acer-wmi after blacklisting, rather then using the native
    (e.g. intel) backlight driver. This is done because there is no native
    backlight interface on this model.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1128309
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f693fddf24d1808a835b15c72c04d30c2df1e6e7
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 22 09:17:24 2014 +0200

    rbd: Fix error recovery in rbd_obj_read_sync()
    
    commit a8d4205623ae965e36c68629db306ca0695a2771 upstream.
    
    When we fail to allocate page vector in rbd_obj_read_sync() we just
    basically ignore the problem and continue which will result in an oops
    later. Fix the problem by returning proper error.
    
    CC: Yehuda Sadeh <yehuda@inktank.com>
    CC: Sage Weil <sage@inktank.com>
    CC: ceph-devel@vger.kernel.org
    Coverity-id: 1226882
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5157bf1f2b4e8796bf5dc197155f7daacc9053ee
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Sun Oct 26 15:18:42 2014 -0400

    drm/radeon: remove invalid pci id
    
    commit 8c3e434769b1707fd2d24de5a2eb25fedc634c4a upstream.
    
    0x4c6e is a secondary device id so should not be used
    by the driver.
    
    Noticed-by: Mark Kettenis <mark.kettenis@xs4all.nl>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42a1d0367d05b8a4cb2147948c53cc956df6fd59
Author: Felipe Balbi <balbi@ti.com>
Date:   Mon Nov 10 09:06:20 2014 -0600

    usb: gadget: udc: core: fix kernel oops with soft-connect
    
    [ Upstream commit bfa6b18c680450c17512c741ed1d818695747621 ]
    
    Currently, there's no guarantee that udc->driver
    will be valid when using soft_connect sysfs
    interface. In fact, we can very easily trigger
    a NULL pointer dereference by trying to disconnect
    when a gadget driver isn't loaded.
    
    Fix this bug:
    
    ~# echo disconnect > soft_connect
    [   33.685743] Unable to handle kernel NULL pointer dereference at virtual address 00000014
    [   33.694221] pgd = ed0cc000
    [   33.697174] [00000014] *pgd=ae351831, *pte=00000000, *ppte=00000000
    [   33.703766] Internal error: Oops: 17 [#1] SMP ARM
    [   33.708697] Modules linked in: xhci_plat_hcd xhci_hcd snd_soc_davinci_mcasp snd_soc_tlv320aic3x snd_soc_edma snd_soc_omap snd_soc_evm snd_soc_core dwc3 snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd lis3lv02d_i2c matrix_keypad lis3lv02d dwc3_omap input_polldev soundcore
    [   33.734372] CPU: 0 PID: 1457 Comm: bash Not tainted 3.17.0-09740-ga93416e-dirty #345
    [   33.742457] task: ee71ce00 ti: ee68a000 task.ti: ee68a000
    [   33.748116] PC is at usb_udc_softconn_store+0xa4/0xec
    [   33.753416] LR is at mark_held_locks+0x78/0x90
    [   33.758057] pc : [<c04df128>]    lr : [<c00896a4>]    psr: 20000013
    [   33.758057] sp : ee68bec8  ip : c0c00008  fp : ee68bee4
    [   33.770050] r10: ee6b394c  r9 : ee68bf80  r8 : ee6062c0
    [   33.775508] r7 : 00000000  r6 : ee6062c0  r5 : 0000000b  r4 : ee739408
    [   33.782346] r3 : 00000000  r2 : 00000000  r1 : ee71d390  r0 : ee664170
    [   33.789168] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [   33.796636] Control: 10c5387d  Table: ad0cc059  DAC: 00000015
    [   33.802638] Process bash (pid: 1457, stack limit = 0xee68a248)
    [   33.808740] Stack: (0xee68bec8 to 0xee68c000)
    [   33.813299] bec0:                   0000000b c0411284 ee6062c0 00000000 ee68bef4 ee68bee8
    [   33.821862] bee0: c04112ac c04df090 ee68bf14 ee68bef8 c01c2868 c0411290 0000000b ee6b3940
    [   33.830419] bf00: 00000000 00000000 ee68bf4c ee68bf18 c01c1a24 c01c2818 00000000 00000000
    [   33.838990] bf20: ee61b940 ee2f47c0 0000000b 000ce408 ee68bf80 c000f304 ee68a000 00000000
    [   33.847544] bf40: ee68bf7c ee68bf50 c0152dd8 c01c1960 ee68bf7c c0170af8 ee68bf7c ee2f47c0
    [   33.856099] bf60: ee2f47c0 000ce408 0000000b c000f304 ee68bfa4 ee68bf80 c0153330 c0152d34
    [   33.864653] bf80: 00000000 00000000 0000000b 000ce408 b6e7fb50 00000004 00000000 ee68bfa8
    [   33.873204] bfa0: c000f080 c01532e8 0000000b 000ce408 00000001 000ce408 0000000b 00000000
    [   33.881763] bfc0: 0000000b 000ce408 b6e7fb50 00000004 0000000b 00000000 000c5758 00000000
    [   33.890319] bfe0: 00000000 bec2c924 b6de422d b6e1d226 40000030 00000001 75716d2f 00657565
    [   33.898890] [<c04df128>] (usb_udc_softconn_store) from [<c04112ac>] (dev_attr_store+0x28/0x34)
    [   33.907920] [<c04112ac>] (dev_attr_store) from [<c01c2868>] (sysfs_kf_write+0x5c/0x60)
    [   33.916200] [<c01c2868>] (sysfs_kf_write) from [<c01c1a24>] (kernfs_fop_write+0xd0/0x194)
    [   33.924773] [<c01c1a24>] (kernfs_fop_write) from [<c0152dd8>] (vfs_write+0xb0/0x1bc)
    [   33.932874] [<c0152dd8>] (vfs_write) from [<c0153330>] (SyS_write+0x54/0xb0)
    [   33.940247] [<c0153330>] (SyS_write) from [<c000f080>] (ret_fast_syscall+0x0/0x48)
    [   33.948160] Code: e1a01007 e12fff33 e5140004 e5143008 (e5933014)
    [   33.954625] ---[ end trace f849bead94eab7ea ]---
    
    Fixes: 2ccea03 (usb: gadget: introduce UDC Class)
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1786a65707397a5670998eb3c217179b2e3db8f5
Author: Felipe Balbi <balbi@ti.com>
Date:   Mon Nov 10 08:56:40 2014 -0600

    usb: gadget: function: acm: make f_acm pass USB20CV Chapter9
    
    [ Upstream commit 52ec49a5e56a27c5b6f8217708783eff39f24c16 ]
    
    During Halt Endpoint Test, our interrupt endpoint
    will be disabled, which will clear out ep->desc
    to NULL. Unless we call config_ep_by_speed() again,
    we will not be able to enable this endpoint which
    will make us fail that test.
    
    Fixes: f9c56cd (usb: gadget: Clear usb_endpoint_descriptor
    	inside the struct usb_ep on disable)
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d5137586f7ce78e2ac5e11e2f9bfe9a12a4c496
Author: Felipe Balbi <balbi@ti.com>
Date:   Mon Nov 10 08:55:44 2014 -0600

    usb: dwc3: gadget: fix set_halt() bug with pending transfers
    
    [ Upstream commit 7a60855972f0d3c014093046cb6f013a1ee5bb19 ]
    
    According to our Gadget Framework API documentation,
    ->set_halt() *must* return -EAGAIN if we have pending
    transfers (on either direction) or FIFO isn't empty (on
    TX endpoints).
    
    Fix this bug so that the mass storage gadget can be used
    without stall=0 parameter.
    
    This patch should be backported to all kernels since v3.2.
    
    Suggested-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 591189c21235f0c2884cfae24b65ecfb5e120325
Author: Ondrej Kozina <okozina@redhat.com>
Date:   Mon Aug 25 11:49:54 2014 +0200

    crypto: algif - avoid excessive use of socket buffer in skcipher
    
    commit e2cffb5f493a8b431dc87124388ea59b79f0bccb upstream.
    
    On archs with PAGE_SIZE >= 64 KiB the function skcipher_alloc_sgl()
    fails with -ENOMEM no matter what user space actually requested.
    This is caused by the fact sock_kmalloc call inside the function tried
    to allocate more memory than allowed by the default kernel socket buffer
    size (kernel param net.core.optmem_max).
    
    Signed-off-by: Ondrej Kozina <okozina@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b089fe5b6d7fe1ad383dd2ffcb2e4ce4ee0c574d
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:35:00 2014 +1100

    mm: Remove false WARN_ON from pagecache_isize_extended()
    
    commit f55fefd1a5a339b1bd08c120b93312d6eb64a9fb upstream.
    
    The WARN_ON checking whether i_mutex is held in
    pagecache_isize_extended() was wrong because some filesystems (e.g.
    XFS) use different locks for serialization of truncates / writes. So
    just remove the check.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d1fef447d8e19ac23b8226e4655b78f072569bd
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Wed Oct 15 10:12:07 2014 -0700

    x86, apic: Handle a bad TSC more gracefully
    
    commit b47dcbdc5161d3d5756f430191e2840d9b855492 upstream.
    
    If the TSC is unusable or disabled, then this patch fixes:
    
     - Confusion while trying to clear old APIC interrupts.
     - Division by zero and incorrect programming of the TSC deadline
       timer.
    
    This fixes boot if the CPU has a TSC deadline timer but a missing or
    broken TSC.  The failure to boot can be observed with qemu using
    -cpu qemu64,-tsc,+tsc-deadline
    
    This also happens to me in nested KVM for unknown reasons.
    With this patch, I can boot cleanly (although without a TSC).
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Cc: Bandan Das <bsd@redhat.com>
    Link: http://lkml.kernel.org/r/e2fa274e498c33988efac0ba8b7e3120f7f92d78.1413393027.git.luto@amacapital.net
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9b6264a0fdf9268e61a065177dde1c8f823dfc0
Author: Mathias Krause <minipli@googlemail.com>
Date:   Sat Oct 4 23:06:39 2014 +0200

    posix-timers: Fix stack info leak in timer_create()
    
    commit 6891c4509c792209c44ced55a60f13954cb50ef4 upstream.
    
    If userland creates a timer without specifying a sigevent info, we'll
    create one ourself, using a stack local variable. Particularly will we
    use the timer ID as sival_int. But as sigev_value is a union containing
    a pointer and an int, that assignment will only partially initialize
    sigev_value on systems where the size of a pointer is bigger than the
    size of an int. On such systems we'll copy the uninitialized stack bytes
    from the timer_create() call to userland when the timer actually fires
    and we're going to deliver the signal.
    
    Initialize sigev_value with 0 to plug the stack info leak.
    
    Found in the PaX patch, written by the PaX Team.
    
    Fixes: 5a9fa7307285 ("posix-timers: kill ->it_sigev_signo and...")
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Brad Spengler <spender@grsecurity.net>
    Cc: PaX Team <pageexec@freemail.hu>
    Link: http://lkml.kernel.org/r/1412456799-32339-1-git-send-email-minipli@googlemail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c31f4eca5d2633c78fb06be7d781583d4bf1cfa
Author: Karl Beldan <karl.beldan@rivierawaves.com>
Date:   Mon Oct 13 14:34:41 2014 +0200

    mac80211: fix typo in starting baserate for rts_cts_rate_idx
    
    commit c7abf25af0f41be4b50d44c5b185d52eea360cb8 upstream.
    
    It affects non-(V)HT rates and can lead to selecting an rts_cts rate
    that is not a basic rate or way superior to the reference rate (ATM
    rates[0] used for the 1st attempt of the protected frame data).
    
    E.g, assuming drivers register growing (bitrate) sorted tables of
    ieee80211_rate-s, having :
    - rates[0].idx == d'2 and basic_rates == b'10100
    will select rts_cts idx b'10011 & ~d'(BIT(2)-1), i.e. 1, likewise
    - rates[0].idx == d'2 and basic_rates == b'10001
    will select rts_cts idx b'10000
    The first is not a basic rate and the second is > rates[0].
    
    Also, wrt severity of the addressed misbehavior, ATM we only have one
    rts_cts_rate_idx rather than one per rate table entry, so this idx might
    still point to bitrates > rates[1..MAX_RATES].
    
    Fixes: 5253ffb8c9e1 ("mac80211: always pick a basic rate to tx RTS/CTS for pre-HT rates")
    Signed-off-by: Karl Beldan <karl.beldan@rivierawaves.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1eaaef74ada050d820e5dd2132a56fd3c66b1549
Author: Imre Deak <imre.deak@intel.com>
Date:   Fri Oct 24 20:29:10 2014 +0300

    PM / Sleep: fix recovery during resuming from hibernation
    
    commit 94fb823fcb4892614f57e59601bb9d4920f24711 upstream.
    
    If a device's dev_pm_ops::freeze callback fails during the QUIESCE
    phase, we don't rollback things correctly calling the thaw and complete
    callbacks. This could leave some devices in a suspended state in case of
    an error during resuming from hibernation.
    
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a88f5eaa6802026c97ebe34c2b961d60ad9c5bfa
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Thu Oct 16 13:51:30 2014 -0400

    tty: Fix high cpu load if tty is unreleaseable
    
    commit 37b164578826406a173ca7c20d9ba7430134d23e upstream.
    
    Kernel oops can cause the tty to be unreleaseable (for example, if
    n_tty_read() crashes while on the read_wait queue). This will cause
    tty_release() to endlessly loop without sleeping.
    
    Use a killable sleep timeout which grows by 2n+1 jiffies over the interval
    [0, 120 secs.) and then jumps to forever (but still killable).
    
    NB: killable just allows for the task to be rewoken manually, not
    to be terminated.
    
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33d90ee4d0318fb1ec5bba6a8b9f4fa2d5333d3c
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 22 09:06:49 2014 +0200

    quota: Properly return errors from dquot_writeback_dquots()
    
    commit 474d2605d119479e5aa050f738632e63589d4bb5 upstream.
    
    Due to a switched left and right side of an assignment,
    dquot_writeback_dquots() never returned error. This could result in
    errors during quota writeback to not be reported to userspace properly.
    Fix it.
    
    Coverity-id: 1226884
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b57203e1fdfb7fa7e7b00d777fb6c83d73f8ce36
Author: Jan Kara <jack@suse.cz>
Date:   Tue Sep 16 22:23:10 2014 +0200

    ext3: Don't check quota format when there are no quota files
    
    commit 7938db449bbc55bbeb164bec7af406212e7e98f1 upstream.
    
    The check whether quota format is set even though there are no
    quota files with journalled quota is pointless and it actually
    makes it impossible to turn off journalled quotas (as there's
    no way to unset journalled quota format). Just remove the check.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b51649f0c028f5cecd2bc55ee5b5901515f2ffc6
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Wed Oct 22 14:46:29 2014 -0400

    nfsd4: fix crash on unknown operation number
    
    commit 51904b08072a8bf2b9ed74d1bd7a5300a614471d upstream.
    
    Unknown operation numbers are caught in nfsd4_decode_compound() which
    sets op->opnum to OP_ILLEGAL and op->status to nfserr_op_illegal.  The
    error causes the main loop in nfsd4_proc_compound() to skip most
    processing.  But nfsd4_proc_compound also peeks ahead at the next
    operation in one case and doesn't take similar precautions there.
    
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 770600e703e72e27b66149550ea683b53b758b0c
Author: Jason Baron <jbaron@akamai.com>
Date:   Wed Oct 15 20:47:28 2014 +0000

    cpc925_edac: Report UE events properly
    
    commit fa19ac4b92bc2b5024af3e868f41f81fa738567a upstream.
    
    Fix UE event being reported as HW_EVENT_ERR_CORRECTED.
    
    Signed-off-by: Jason Baron <jbaron@akamai.com>
    Link: http://lkml.kernel.org/r/8beb13803500076fef827eab33d523e355d83759.1413405053.git.jbaron@akamai.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fbba82d28916b7f639915d10a1d7da97afc75b7
Author: Jason Baron <jbaron@akamai.com>
Date:   Sat Oct 18 16:06:32 2014 +0200

    e7xxx_edac: Report CE events properly
    
    commit 8030122a9ccf939186f8db96c318dbb99b5463f6 upstream.
    
    Fix CE event being reported as HW_EVENT_ERR_UNCORRECTED.
    
    Signed-off-by: Jason Baron <jbaron@akamai.com>
    Link: http://lkml.kernel.org/r/e6dd616f2cd51583a7e77af6f639b86313c74144.1413405053.git.jbaron@akamai.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10069449db937d0f1df94ec165dd0691100a5987
Author: Jason Baron <jbaron@akamai.com>
Date:   Wed Oct 15 20:47:21 2014 +0000

    i3200_edac: Report CE events properly
    
    commit 8a3f075d6c9b3612b4a5fb2af8db82b38b20caf0 upstream.
    
    Fix CE event being reported as HW_EVENT_ERR_UNCORRECTED.
    
    Signed-off-by: Jason Baron <jbaron@akamai.com>
    Link: http://lkml.kernel.org/r/d02465b4f30314b390c12c061502eda5e9d29c52.1413405053.git.jbaron@akamai.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d280a6fa05199651ed7134a394999a3f434d07f
Author: Jason Baron <jbaron@akamai.com>
Date:   Wed Oct 15 20:47:24 2014 +0000

    i82860_edac: Report CE events properly
    
    commit ab0543de6ff0877474f57a5aafbb51a61e88676f upstream.
    
    Fix CE event being reported as HW_EVENT_ERR_UNCORRECTED.
    
    Signed-off-by: Jason Baron <jbaron@akamai.com>
    Link: http://lkml.kernel.org/r/7aee8e244a32ff86b399a8f966c4aae70296aae0.1413405053.git.jbaron@akamai.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d3a9bd9615685af8858e208aecccbf285022b99
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 22 20:13:39 2014 -0600

    scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND
    
    commit 84ce0f0e94ac97217398b3b69c21c7a62ebeed05 upstream.
    
    When sg_scsi_ioctl() fails to prepare request to submit in
    blk_rq_map_kern() we jump to a label where we just end up copying
    (luckily zeroed-out) kernel buffer to userspace instead of reporting
    error. Fix the problem by jumping to the right label.
    
    CC: Jens Axboe <axboe@kernel.dk>
    CC: linux-scsi@vger.kernel.org
    Coverity-id: 1226871
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Fixed up the, now unused, out label.
    
    Signed-off-by: Jens Axboe <axboe@fb.com>

commit 8b080e3470f4c01a27cc5fc8b73676300c6be12d
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 29 14:50:44 2014 -0700

    lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}()
    
    commit ea5d05b34aca25c066e0699512d0ffbd8ee6ac3e upstream.
    
    If __bitmap_shift_left() or __bitmap_shift_right() are asked to shift by
    a multiple of BITS_PER_LONG, they will try to shift a long value by
    BITS_PER_LONG bits which is undefined.  Change the functions to avoid
    the undefined shift.
    
    Coverity id: 1192175
    Coverity id: 1192174
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c8ad60fef55353a5add4d9e5aabecc1d01968c3
Author: Wang Nan <wangnan0@huawei.com>
Date:   Wed Oct 29 14:50:18 2014 -0700

    cgroup/kmemleak: add kmemleak_free() for cgroup deallocations.
    
    commit 401507d67d5c2854f5a88b3f93f64fc6f267bca5 upstream.
    
    Commit ff7ee93f4715 ("cgroup/kmemleak: Annotate alloc_page() for cgroup
    allocations") introduces kmemleak_alloc() for alloc_page_cgroup(), but
    corresponding kmemleak_free() is missing, which makes kmemleak be
    wrongly disabled after memory offlining.  Log is pasted at the end of
    this commit message.
    
    This patch add kmemleak_free() into free_page_cgroup().  During page
    offlining, this patch removes corresponding entries in kmemleak rbtree.
    After that, the freed memory can be allocated again by other subsystems
    without killing kmemleak.
    
      bash # for x in 1 2 3 4; do echo offline > /sys/devices/system/memory/memory$x/state ; sleep 1; done ; dmesg | grep leak
    
      Offlined Pages 32768
      kmemleak: Cannot insert 0xffff880016969000 into the object search tree (overlaps existing)
      CPU: 0 PID: 412 Comm: sleep Not tainted 3.17.0-rc5+ #86
      Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      Call Trace:
        dump_stack+0x46/0x58
        create_object+0x266/0x2c0
        kmemleak_alloc+0x26/0x50
        kmem_cache_alloc+0xd3/0x160
        __sigqueue_alloc+0x49/0xd0
        __send_signal+0xcb/0x410
        send_signal+0x45/0x90
        __group_send_sig_info+0x13/0x20
        do_notify_parent+0x1bb/0x260
        do_exit+0x767/0xa40
        do_group_exit+0x44/0xa0
        SyS_exit_group+0x17/0x20
        system_call_fastpath+0x16/0x1b
    
      kmemleak: Kernel memory leak detector disabled
      kmemleak: Object 0xffff880016900000 (size 524288):
      kmemleak:   comm "swapper/0", pid 0, jiffies 4294667296
      kmemleak:   min_count = 0
      kmemleak:   count = 0
      kmemleak:   flags = 0x1
      kmemleak:   checksum = 0
      kmemleak:   backtrace:
            log_early+0x63/0x77
            kmemleak_alloc+0x4b/0x50
            init_section_page_cgroup+0x7f/0xf5
            page_cgroup_init+0xc5/0xd0
            start_kernel+0x333/0x408
            x86_64_start_reservations+0x2a/0x2c
            x86_64_start_kernel+0xf5/0xfc
    
    Fixes: ff7ee93f4715 (cgroup/kmemleak: Annotate alloc_page() for cgroup allocations)
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Acked-by: Michal Hocko <mhocko@suse.cz>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0daafbbf3cb9ea341f72e5e26f1a8fcea977c0e
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Oct 1 11:29:14 2014 +0200

    usb: Do not allow usb_alloc_streams on unconfigured devices
    
    commit 90a646c770c50cc206ceba0d7b50453c46c13c36 upstream.
    
    This commit fixes the following oops:
    
    [10238.622067] scsi host3: uas_eh_bus_reset_handler start
    [10240.766164] usb 3-4: reset SuperSpeed USB device number 3 using xhci_hcd
    [10245.779365] usb 3-4: device descriptor read/8, error -110
    [10245.883331] usb 3-4: reset SuperSpeed USB device number 3 using xhci_hcd
    [10250.897603] usb 3-4: device descriptor read/8, error -110
    [10251.058200] BUG: unable to handle kernel NULL pointer dereference at  0000000000000040
    [10251.058244] IP: [<ffffffff815ac6e1>] xhci_check_streams_endpoint+0x91/0x140
    <snip>
    [10251.059473] Call Trace:
    [10251.059487]  [<ffffffff815aca6c>] xhci_calculate_streams_and_bitmask+0xbc/0x130
    [10251.059520]  [<ffffffff815aeb5f>] xhci_alloc_streams+0x10f/0x5a0
    [10251.059548]  [<ffffffff810a4685>] ? check_preempt_curr+0x75/0xa0
    [10251.059575]  [<ffffffff810a46dc>] ? ttwu_do_wakeup+0x2c/0x100
    [10251.059601]  [<ffffffff810a49e6>] ? ttwu_do_activate.constprop.111+0x66/0x70
    [10251.059635]  [<ffffffff815779ab>] usb_alloc_streams+0xab/0xf0
    [10251.059662]  [<ffffffffc0616b48>] uas_configure_endpoints+0x128/0x150 [uas]
    [10251.059694]  [<ffffffffc0616bac>] uas_post_reset+0x3c/0xb0 [uas]
    [10251.059722]  [<ffffffff815727d9>] usb_reset_device+0x1b9/0x2a0
    [10251.059749]  [<ffffffffc0616f42>] uas_eh_bus_reset_handler+0xb2/0x190 [uas]
    [10251.059781]  [<ffffffff81514293>] scsi_try_bus_reset+0x53/0x110
    [10251.059808]  [<ffffffff815163b7>] scsi_eh_bus_reset+0xf7/0x270
    <snip>
    
    The problem is the following call sequence (simplified):
    
    1) usb_reset_device
    2)  usb_reset_and_verify_device
    2)   hub_port_init
    3)    hub_port_finish_reset
    3)     xhci_discover_or_reset_device
            This frees xhci->devs[slot_id]->eps[ep_index].ring for all eps but 0
    4)    usb_get_device_descriptor
           This fails
    5)   hub_port_init fails
    6)  usb_reset_and_verify_device fails, does not restore device config
    7)  uas_post_reset
    8)   xhci_alloc_streams
          NULL deref on the free-ed ring
    
    This commit fixes this by not allowing usb_alloc_streams to continue if
    the device is not configured.
    
    Note that we do allow usb_free_streams to continue after a (logical)
    disconnect, as it is necessary to explicitly free the streams at the xhci
    controller level.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 547d682d568271cf537af2850a066a287a51b62b
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Oct 29 09:07:31 2014 +0100

    USB: opticon: fix non-atomic allocation in write path
    
    commit e681286de221af78fc85db9222b6a203148c005a upstream.
    
    Write may be called from interrupt context so make sure to use
    GFP_ATOMIC for all allocations in write.
    
    Fixes: 0d930e51cfe6 ("USB: opticon: Add Opticon OPN2001 write support")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0476c87764ac62d79390678cefb3821308a5d08
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Oct 31 14:49:47 2014 -0400

    usb-storage: handle a skipped data phase
    
    commit 93c9bf4d1838d5851a18ca398b0ad66397f05056 upstream.
    
    Sometimes mass-storage devices using the Bulk-only transport will
    mistakenly skip the data phase of a command.  Rather than sending the
    data expected by the host or sending a zero-length packet, they go
    directly to the status phase and send the CSW.
    
    This causes problems for usb-storage, for obvious reasons.  The driver
    will interpret the CSW as a short data transfer and will wait to
    receive a CSW.  The device won't have anything left to send, so the
    command eventually times out.
    
    The SCSI layer doesn't retry commands after they time out (this is a
    relatively recent change).  Therefore we should do our best to detect
    a skipped data phase and handle it promptly.
    
    This patch adds code to do that.  If usb-storage receives a short
    13-byte data transfer from the device, and if the first four bytes of
    the data match the CSW signature, the driver will set the residue to
    the full transfer length and interpret the data as a CSW.
    
    This fixes Bugzilla #86611.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
    Tested-by: Paul Osmialowski <newchief@king.net.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c822fb57ba12fbf0b989c201e400a5f71c9fade5
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Thu Nov 6 14:08:29 2014 +0300

    spi: pxa2xx: toggle clocks on suspend if not disabled by runtime PM
    
    commit 2b9375b91bef65b837bed61a05fb387159b38ddf upstream.
    
    If PM_RUNTIME is enabled, it is easy to trigger the following backtrace
    on pxa2xx hosts:
    
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 1 at /home/lumag/linux/arch/arm/mach-pxa/clock.c:35 clk_disable+0xa0/0xa8()
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-00007-g1b3d2ee-dirty #104
    [<c000de68>] (unwind_backtrace) from [<c000c078>] (show_stack+0x10/0x14)
    [<c000c078>] (show_stack) from [<c001d75c>] (warn_slowpath_common+0x6c/0x8c)
    [<c001d75c>] (warn_slowpath_common) from [<c001d818>] (warn_slowpath_null+0x1c/0x24)
    [<c001d818>] (warn_slowpath_null) from [<c0015e80>] (clk_disable+0xa0/0xa8)
    [<c0015e80>] (clk_disable) from [<c02507f8>] (pxa2xx_spi_suspend+0x2c/0x34)
    [<c02507f8>] (pxa2xx_spi_suspend) from [<c0200360>] (platform_pm_suspend+0x2c/0x54)
    [<c0200360>] (platform_pm_suspend) from [<c0207fec>] (dpm_run_callback.isra.14+0x2c/0x74)
    [<c0207fec>] (dpm_run_callback.isra.14) from [<c0209254>] (__device_suspend+0x120/0x2f8)
    [<c0209254>] (__device_suspend) from [<c0209a94>] (dpm_suspend+0x50/0x208)
    [<c0209a94>] (dpm_suspend) from [<c00455ac>] (suspend_devices_and_enter+0x8c/0x3a0)
    [<c00455ac>] (suspend_devices_and_enter) from [<c0045ad4>] (pm_suspend+0x214/0x2a8)
    [<c0045ad4>] (pm_suspend) from [<c04b5c34>] (test_suspend+0x14c/0x1dc)
    [<c04b5c34>] (test_suspend) from [<c000880c>] (do_one_initcall+0x8c/0x1fc)
    [<c000880c>] (do_one_initcall) from [<c04aecfc>] (kernel_init_freeable+0xf4/0x1b4)
    [<c04aecfc>] (kernel_init_freeable) from [<c0378078>] (kernel_init+0x8/0xec)
    [<c0378078>] (kernel_init) from [<c0009590>] (ret_from_fork+0x14/0x24)
    ---[ end trace 46524156d8faa4f6 ]---
    
    This happens because suspend function tries to disable a clock that is
    already disabled by runtime_suspend callback. Add if
    (!pm_runtime_suspended()) checks to suspend/resume path.
    
    Fixes: 7d94a505858 (spi/pxa2xx: add support for runtime PM)
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Reported-by: Andrea Adami <andrea.adami@gmail.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8be23c660a778cdab39bcde9cd3696ebc097f6f
Author: Ray Jui <rjui@broadcom.com>
Date:   Thu Oct 9 11:44:54 2014 -0700

    spi: pl022: Fix incorrect dma_unmap_sg
    
    commit 3ffa6158f002e096d28ede71be4e0ee8ab20baa2 upstream.
    
    When mapped RX DMA entries are unmapped in an error condition when DMA
    is firstly configured in the driver, the number of TX DMA entries was
    passed in, which is incorrect
    
    Signed-off-by: Ray Jui <rjui@broadcom.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b93e3669cb10c50dd9441f3eabc63b8d43749d0
Author: Jack Pham <jackp@codeaurora.org>
Date:   Tue Oct 21 16:31:10 2014 -0700

    usb: dwc3: gadget: Properly initialize LINK TRB
    
    commit 1200a82a59b6aa65758ccc92c3447b98c53cd7a2 upstream.
    
    On ISOC endpoints the last trb_pool entry used as a
    LINK TRB is not getting zeroed out correctly due to
    memset being called incorrectly and in the wrong place.
    If pool allocated from DMA was not zero-initialized
    to begin with this will result in the size and ctrl
    values being random garbage. Call memset correctly after
    assignment of the trb_link pointer.
    
    Fixes: f6bafc6a1c ("usb: dwc3: convert TRBs into bitshifts")
    Signed-off-by: Jack Pham <jackp@codeaurora.org>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9add88d00d8d86a2721d489d6acc7621c0747972
Author: Cyril Brulebois <kibi@debian.org>
Date:   Tue Oct 28 16:42:41 2014 +0100

    wireless: rt2x00: add new rt2800usb device
    
    commit 664d6a792785cc677c2091038ce10322c8d04ae1 upstream.
    
    0x1b75 0xa200 AirLive WN-200USB wireless 11b/g/n dongle
    
    References: https://bugs.debian.org/766802
    Reported-by: Martin Mokrejs <mmokrejs@fold.natur.cuni.cz>
    Signed-off-by: Cyril Brulebois <kibi@debian.org>
    Acked-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 f9e91f45dac49e401eff3fd1d63413d0fd2107e6
Author: Dan Williams <dcbw@redhat.com>
Date:   Tue Oct 14 11:10:41 2014 -0500

    USB: option: add Haier CE81B CDMA modem
    
    commit 012eee1522318b5ccd64d277d50ac32f7e9974fe upstream.
    
    Port layout:
    
    0: QCDM/DIAG
    1: NMEA
    2: AT
    3: AT/PPP
    
    Signed-off-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f4a15711a844a835a28a46ec7ab9e6f1c957561
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Tue Oct 14 10:47:37 2014 +0200

    usb: option: add support for Telit LE910
    
    commit 2d0eb862dd477c3c4f32b201254ca0b40e6f465c upstream.
    
    Add VID/PID for Telit LE910 modem. Interfaces description is almost the
    same than LE920, except that the qmi interface is number 2 (instead than
    5).
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a18a875f45d56777394323e725ea8be378b068c
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Nov 5 18:41:59 2014 +0100

    USB: cdc-acm: only raise DTR on transitions from B0
    
    commit 4473d054ceb572557954f9536731d39b20937b0c upstream.
    
    Make sure to only raise DTR on transitions from B0 in set_termios.
    
    Also allow set_termios to be called from open with a termios_old of
    NULL. Note that DTR will not be raised prematurely in this case.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e2dedaa4d57a7aa681a542358dcbada0cf7d896
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 27 18:34:33 2014 +0100

    USB: cdc-acm: add device id for GW Instek AFG-2225
    
    commit cf84a691a61606a2e7269907d3727e2d9fa148ee upstream.
    
    Add device-id entry for GW Instek AFG-2225, which has a byte swapped
    bInterfaceSubClass (0x20).
    
    Reported-by: Karl Palsson <karlp@tweak.net.au>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 066ef018e21e253ee96eea26f1b8b1cde4a68ca2
Author: Perry Hung <iperry@gmail.com>
Date:   Wed Oct 22 23:31:34 2014 -0400

    usb: serial: ftdi_sio: add "bricked" FTDI device PID
    
    commit 7f2719f0003da1ad13124ef00f48d7514c79e30d upstream.
    
    An official recent Windows driver from FTDI detects counterfeit devices
    and reprograms the internal EEPROM containing the USB PID to 0, effectively
    bricking the device.
    
    Add support for this VID/PID pair to correctly bind the driver on these
    devices.
    
    See:
    http://hackaday.com/2014/10/22/watch-that-windows-update-ftdi-drivers-are-killing-fake-chips/
    
    Signed-off-by: Perry Hung <iperry@gmail.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 652fe31da6f78f2cdb4e92fff646aed03b50fdf8
Author: Frans Klaver <frans.klaver@xsens.com>
Date:   Fri Oct 10 11:52:08 2014 +0200

    usb: serial: ftdi_sio: add Awinda Station and Dongle products
    
    commit edd74ffab1f6909eee400c7de8ce621870aacac9 upstream.
    
    Add new IDs for the Xsens Awinda Station and Awinda Dongle.
    
    While at it, order the definitions by PID and add a logical separation
    between devices using Xsens' VID and those using FTDI's VID.
    
    Signed-off-by: Frans Klaver <frans.klaver@xsens.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6cc7e9f66ba2a8cd0eb1cd4987df44d30eac649e
Author: Nathaniel Ting <nathaniel.ting@silabs.com>
Date:   Fri Oct 3 12:01:20 2014 -0400

    USB: serial: cp210x: add Silicon Labs 358x VID and PID
    
    commit 35cc83eab097e5720a9cc0ec12bdc3a726f58381 upstream.
    
    Enable Silicon Labs Ember VID chips to enumerate with the cp210x usb serial
    driver. EM358x devices operating with the Ember Z-Net 5.1.2 stack may now
    connect to host PCs over a USB serial link.
    
    Signed-off-by: Nathaniel Ting <nathaniel.ting@silabs.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8fb82d5f59da4d42a722043566376a82a3b4644
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Thu Oct 16 13:46:38 2014 -0400

    serial: Fix divide-by-zero fault in uart_get_divisor()
    
    commit 547039ec502076e60034eeb79611df3433a99b7d upstream.
    
    uart_get_baud_rate() will return baud == 0 if the max rate is set
    to the "magic" 38400 rate and the SPD_* flags are also specified.
    On the first iteration, if the current baud rate is higher than the
    max, the baud rate is clamped at the max (which in the degenerate
    case is 38400). On the second iteration, the now-"magic" 38400 baud
    rate selects the possibly higher alternate baud rate indicated by
    the SPD_* flag. Since only two loop iterations are performed, the
    loop is exited, a kernel WARNING is generated and a baud rate of
    0 is returned.
    
    Reproducible with:
     setserial /dev/ttyS0 spd_hi base_baud 38400
    
    Only perform the "magic" 38400 -> SPD_* baud transform on the first
    loop iteration, which prevents the degenerate case from recognizing
    the clamped baud rate as the "magic" 38400 value.
    
    Reported-by: Robert Święcki <robert@swiecki.net>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a316af4f979bb8825a4db9cf77be89e645231b3a
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Tue Nov 4 18:03:16 2014 +0100

    staging:iio:ade7758: Remove "raw" from channel name
    
    commit b598aacc29331e7e638cd509108600e916c6331b upstream.
    
    "raw" is a property of a channel, but should not be part of the name of
    channel.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fdbedf5569be1dbd53cb6d87743e155b1eb032a
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Tue Nov 4 18:03:15 2014 +0100

    staging:iio:ade7758: Fix check if channels are enabled in prenable
    
    commit 79fa64eb2ee8ccb4bcad7f54caa2699730b10b22 upstream.
    
    We should check if a channel is enabled, not if no channels are enabled.
    
    Fixes: 550268ca1111 ("staging:iio: scrap scan_count and ensure all drivers use active_scan_mask")
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 035bc79c51a0c5cfca17f1692f9ad9de0d3ae829
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Tue Nov 4 18:03:14 2014 +0100

    staging:iio:ade7758: Fix NULL pointer deref when enabling buffer
    
    commit e10554738cab4224e097c2f9d975ea781a4fcde4 upstream.
    
    In older versions of the IIO framework it was possible to pass a completely
    different set of channels to iio_buffer_register() as the one that is
    assigned to the IIO device. Commit 959d2952d124 ("staging:iio: make
    iio_sw_buffer_preenable much more general.") introduced a restriction that
    requires that the set of channels that is passed to iio_buffer_register() is
    a subset of the channels assigned to the IIO device as the IIO core will use
    the list of channels that is assigned to the device to lookup a channel by
    scan index in iio_compute_scan_bytes(). If it can not find the channel the
    function will crash. This patch fixes the issue by making sure that the same
    set of channels is assigned to the IIO device and passed to
    iio_buffer_register().
    
    Note that we need to remove the IIO_CHAN_INFO_RAW and IIO_CHAN_INFO_SCALE
    info attributes from the channels since we don't actually want those to be
    registered.
    
    Fixes the following crash:
    	Unable to handle kernel NULL pointer dereference at virtual address 00000016
    	pgd = d2094000
    	[00000016] *pgd=16e39831, *pte=00000000, *ppte=00000000
    	Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    	Modules linked in:
    	CPU: 1 PID: 1695 Comm: bash Not tainted 3.17.0-06329-g29461ee #9686
    	task: d7768040 ti: d5bd4000 task.ti: d5bd4000
    	PC is at iio_compute_scan_bytes+0x38/0xc0
    	LR is at iio_compute_scan_bytes+0x34/0xc0
    	pc : [<c0316de8>]    lr : [<c0316de4>]    psr: 60070013
    	sp : d5bd5ec0  ip : 00000000  fp : 00000000
    	r10: d769f934  r9 : 00000000  r8 : 00000001
    	r7 : 00000000  r6 : c8fc6240  r5 : d769f800  r4 : 00000000
    	r3 : d769f800  r2 : 00000000  r1 : ffffffff  r0 : 00000000
    	Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    	Control: 18c5387d  Table: 1209404a  DAC: 00000015
    	Process bash (pid: 1695, stack limit = 0xd5bd4240)
    	Stack: (0xd5bd5ec0 to 0xd5bd6000)
    	5ec0: d769f800 d7435640 c8fc6240 d769f984 00000000 c03175a4 d7435690 d7435640
    	5ee0: d769f990 00000002 00000000 d769f800 d5bd4000 00000000 000b43a8 c03177f4
    	5f00: d769f810 0162b8c8 00000002 c8fc7e00 d77f1d08 d77f1da8 c8fc7e00 c01faf1c
    	5f20: 00000002 c010694c c010690c d5bd5f88 00000002 c8fc6840 c8fc684c c0105e08
    	5f40: 00000000 00000000 d20d1580 00000002 000af408 d5bd5f88 c000de84 c00b76d4
    	5f60: d20d1580 000af408 00000002 d20d1580 d20d1580 00000002 000af408 c000de84
    	5f80: 00000000 c00b7a44 00000000 00000000 00000002 b6ebea78 00000002 000af408
    	5fa0: 00000004 c000dd00 b6ebea78 00000002 00000001 000af408 00000002 00000000
    	5fc0: b6ebea78 00000002 000af408 00000004 bee96a4c 000a6094 00000000 000b43a8
    	5fe0: 00000000 bee969cc b6e2eb77 b6e6525c 40070010 00000001 00000000 00000000
    	[<c0316de8>] (iio_compute_scan_bytes) from [<c03175a4>] (__iio_update_buffers+0x248/0x438)
    	[<c03175a4>] (__iio_update_buffers) from [<c03177f4>] (iio_buffer_store_enable+0x60/0x7c)
    	[<c03177f4>] (iio_buffer_store_enable) from [<c01faf1c>] (dev_attr_store+0x18/0x24)
    	[<c01faf1c>] (dev_attr_store) from [<c010694c>] (sysfs_kf_write+0x40/0x4c)
    	[<c010694c>] (sysfs_kf_write) from [<c0105e08>] (kernfs_fop_write+0x110/0x154)
    	[<c0105e08>] (kernfs_fop_write) from [<c00b76d4>] (vfs_write+0xbc/0x170)
    	[<c00b76d4>] (vfs_write) from [<c00b7a44>] (SyS_write+0x40/0x78)
    	[<c00b7a44>] (SyS_write) from [<c000dd00>] (ret_fast_syscall+0x0/0x30)
    
    Fixes: 959d2952d124 ("staging:iio: make iio_sw_buffer_preenable much more general.")
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af29aab040d017a634dd626ad14e35526213633b
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Thu Sep 25 15:27:00 2014 +0100

    staging:iio:ad5933: Drop "raw" from channel names
    
    commit 6822ee34ad57b29a3b44df2c2829910f03c34fa4 upstream.
    
    "raw" is the name of a channel property, but should not be part of the
    channel name itself.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81548735844bf3de7ee6d5a5afde9841de697a7e
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Thu Sep 25 15:27:00 2014 +0100

    staging:iio:ad5933: Fix NULL pointer deref when enabling buffer
    
    commit 824269c5868d2a7a26417e5ef3841a27d42c6139 upstream.
    
    In older versions of the IIO framework it was possible to pass a
    completely different set of channels to iio_buffer_register() as the one
    that is assigned to the IIO device. Commit 959d2952d124 ("staging:iio: make
    iio_sw_buffer_preenable much more general.") introduced a restriction that
    requires that the set of channels that is passed to iio_buffer_register() is
    a subset of the channels assigned to the IIO device as the IIO core will use
    the list of channels that is assigned to the device to lookup a channel by
    scan index in iio_compute_scan_bytes(). If it can not find the channel the
    function will crash. This patch fixes the issue by making sure that the same
    set of channels is assigned to the IIO device and passed to
    iio_buffer_register().
    
    Fixes the follow NULL pointer derefernce kernel crash:
    	Unable to handle kernel NULL pointer dereference at virtual address 00000016
    	pgd = d53d0000
    	[00000016] *pgd=1534e831, *pte=00000000, *ppte=00000000
    	Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    	Modules linked in:
    	CPU: 1 PID: 1626 Comm: bash Not tainted 3.15.0-19969-g2a180eb-dirty #9545
    	task: d6c124c0 ti: d539a000 task.ti: d539a000
    	PC is at iio_compute_scan_bytes+0x34/0xa8
    	LR is at iio_compute_scan_bytes+0x34/0xa8
    	pc : [<c03052e4>]    lr : [<c03052e4>]    psr: 60070013
    	sp : d539beb8  ip : 00000001  fp : 00000000
    	r10: 00000002  r9 : 00000000  r8 : 00000001
    	r7 : 00000000  r6 : d6dc8800  r5 : d7571000  r4 : 00000002
    	r3 : d7571000  r2 : 00000044  r1 : 00000001  r0 : 00000000
    	Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    	Control: 18c5387d  Table: 153d004a  DAC: 00000015
    	Process bash (pid: 1626, stack limit = 0xd539a240)
    	Stack: (0xd539beb8 to 0xd539c000)
    	bea0:                                                       c02fc0e4 d7571000
    	bec0: d76c1640 d6dc8800 d757117c 00000000 d757112c c0305b04 d76c1690 d76c1640
    	bee0: d7571188 00000002 00000000 d7571000 d539a000 00000000 000dd1c8 c0305d54
    	bf00: d7571010 0160b868 00000002 c69d3900 d7573278 d7573308 c69d3900 c01ece90
    	bf20: 00000002 c0103fac c0103f6c d539bf88 00000002 c69d3b00 c69d3b0c c0103468
    	bf40: 00000000 00000000 d7694a00 00000002 000af408 d539bf88 c000dd84 c00b2f94
    	bf60: d7694a00 000af408 00000002 d7694a00 d7694a00 00000002 000af408 c000dd84
    	bf80: 00000000 c00b32d0 00000000 00000000 00000002 b6f1aa78 00000002 000af408
    	bfa0: 00000004 c000dc00 b6f1aa78 00000002 00000001 000af408 00000002 00000000
    	bfc0: b6f1aa78 00000002 000af408 00000004 be806a4c 000a6094 00000000 000dd1c8
    	bfe0: 00000000 be8069cc b6e8ab77 b6ec125c 40070010 00000001 22940489 154a5007
    	[<c03052e4>] (iio_compute_scan_bytes) from [<c0305b04>] (__iio_update_buffers+0x248/0x438)
    	[<c0305b04>] (__iio_update_buffers) from [<c0305d54>] (iio_buffer_store_enable+0x60/0x7c)
    	[<c0305d54>] (iio_buffer_store_enable) from [<c01ece90>] (dev_attr_store+0x18/0x24)
    	[<c01ece90>] (dev_attr_store) from [<c0103fac>] (sysfs_kf_write+0x40/0x4c)
    	[<c0103fac>] (sysfs_kf_write) from [<c0103468>] (kernfs_fop_write+0x110/0x154)
    	[<c0103468>] (kernfs_fop_write) from [<c00b2f94>] (vfs_write+0xd0/0x160)
    	[<c00b2f94>] (vfs_write) from [<c00b32d0>] (SyS_write+0x40/0x78)
    	[<c00b32d0>] (SyS_write) from [<c000dc00>] (ret_fast_syscall+0x0/0x30)
    	Code: ea00000e e1a01008 e1a00005 ebfff6fc (e5d0a016)
    
    Fixes: 959d2952d124 ("staging:iio: make iio_sw_buffer_preenable much more general.")
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e033782a2669ae60db31d28127974bac18c63e33
Author: Michal Hocko <mhocko@suse.cz>
Date:   Mon Oct 20 18:12:32 2014 +0200

    OOM, PM: OOM killed task shouldn't escape PM suspend
    
    commit 5695be142e203167e3cb515ef86a88424f3524eb upstream.
    
    PM freezer relies on having all tasks frozen by the time devices are
    getting frozen so that no task will touch them while they are getting
    frozen. But OOM killer is allowed to kill an already frozen task in
    order to handle OOM situtation. In order to protect from late wake ups
    OOM killer is disabled after all tasks are frozen. This, however, still
    keeps a window open when a killed task didn't manage to die by the time
    freeze_processes finishes.
    
    Reduce the race window by checking all tasks after OOM killer has been
    disabled. This is still not race free completely unfortunately because
    oom_killer_disable cannot stop an already ongoing OOM killer so a task
    might still wake up from the fridge and get killed without
    freeze_processes noticing. Full synchronization of OOM and freezer is,
    however, too heavy weight for this highly unlikely case.
    
    Introduce and check oom_kills counter which gets incremented early when
    the allocator enters __alloc_pages_may_oom path and only check all the
    tasks if the counter changes during the freezing attempt. The counter
    is updated so early to reduce the race window since allocator checked
    oom_killer_disabled which is set by PM-freezing code. A false positive
    will push the PM-freezer into a slow path but that is not a big deal.
    
    Changes since v1
    - push the re-check loop out of freeze_processes into
      check_frozen_processes and invert the condition to make the code more
      readable as per Rafael
    
    Fixes: f660daac474c6f (oom: thaw threads if oom killed thread is frozen before deferring)
    Signed-off-by: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f95ad6ed20948dee0a7c1472250b530136f75db3
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Tue Oct 21 09:27:12 2014 +0200

    freezer: Do not freeze tasks killed by OOM killer
    
    commit 51fae6da640edf9d266c94f36bc806c63c301991 upstream.
    
    Since f660daac474c6f (oom: thaw threads if oom killed thread is frozen
    before deferring) OOM killer relies on being able to thaw a frozen task
    to handle OOM situation but a3201227f803 (freezer: make freezing() test
    freeze conditions in effect instead of TIF_FREEZE) has reorganized the
    code and stopped clearing freeze flag in __thaw_task. This means that
    the target task only wakes up and goes into the fridge again because the
    freezing condition hasn't changed for it. This reintroduces the bug
    fixed by f660daac474c6f.
    
    Fix the issue by checking for TIF_MEMDIE thread flag in
    freezing_slow_path and exclude the task from freezing completely. If a
    task was already frozen it would get woken by __thaw_task from OOM killer
    and get out of freezer after rechecking freezing().
    
    Changes since v1
    - put TIF_MEMDIE check into freezing_slowpath rather than in __refrigerator
      as per Oleg
    - return __thaw_task into oom_scan_process_thread because
      oom_kill_process will not wake task in the fridge because it is
      sleeping uninterruptible
    
    [mhocko@suse.cz: rewrote the changelog]
    Fixes: a3201227f803 (freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE)
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Michal Hocko <mhocko@suse.cz>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ce75ebb5334c12febaf520682926ce34c3cfe2b
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:53:16 2014 -0400

    ext4: fix oops when loading block bitmap failed
    
    commit 599a9b77ab289d85c2d5c8607624efbe1f552b0f upstream.
    
    When we fail to load block bitmap in __ext4_new_inode() we will
    dereference NULL pointer in ext4_journal_get_write_access(). So check
    for error from ext4_read_block_bitmap().
    
    Coverity-id: 989065
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4bf70f9f0280e5f396e4338967982c4325167259
Author: Pali Rohár <pali.rohar@gmail.com>
Date:   Thu Oct 16 01:16:51 2014 +0200

    cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
    
    commit 36b4bed5cd8f6e17019fa7d380e0836872c7b367 upstream.
    
    Code which changes policy to powersave changes also max_policy_pct based on
    max_freq. Code which change max_perf_pct has upper limit base on value
    max_policy_pct. When policy is changing from powersave back to performance
    then max_policy_pct is not changed. Which means that changing max_perf_pct is
    not possible to high values if max_freq was too low in powersave policy.
    
    Test case:
    
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    800000
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    3300000
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    performance
    $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
    100
    
    $ echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    $ echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    $ echo 20 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
    
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    powersave
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    800000
    $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
    20
    
    $ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    $ echo 3300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    $ echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
    
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    performance
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    3300000
    $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
    24
    
    And now intel_pstate driver allows to set maximal value for max_perf_pct based
    on max_policy_pct which is 24 for previous powersave max_freq 800000.
    
    This patch will set default value for max_policy_pct when setting policy to
    performance so it will allow to set also max value for max_perf_pct.
    
    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Acked-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57ce0ed4fba064145d497dc901bee4f74cfc5c25
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 30 10:52:57 2014 -0400

    ext4: fix overflow when updating superblock backups after resize
    
    commit 9378c6768e4fca48971e7b6a9075bc006eda981d upstream.
    
    When there are no meta block groups update_backups() will compute the
    backup block in 32-bit arithmetics thus possibly overflowing the block
    number and corrupting the filesystem. OTOH filesystems without meta
    block groups larger than 16 TB should be rare. Fix the problem by doing
    the counting in 64-bit arithmetics.
    
    Coverity-id: 741252
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Lukas Czerner <lczerner@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 209f5484ef126134f2d2f322246b0e4faf3c1fbd
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Tue Oct 14 02:35:49 2014 -0400

    ext4: check s_chksum_driver when looking for bg csum presence
    
    commit 813d32f91333e4c33d5a19b67167c4bae42dae75 upstream.
    
    Convert the ext4_has_group_desc_csum predicate to look for a checksum
    driver instead of the metadata_csum flag and change the bg checksum
    calculation function to look for GDT_CSUM before taking the crc16
    path.
    
    Without this patch, if we mount with ^uninit_bg,^metadata_csum and
    later metadata_csum gets turned on by accident, the block group
    checksum functions will incorrectly assume that checksumming is
    enabled (metadata_csum) but that crc16 should be used
    (!s_chksum_driver).  This is totally wrong, so fix the predicate
    and the checksum formula selection.
    
    (Granted, if the metadata_csum feature bit gets enabled on a live FS
    then something underhanded is going on, but we could at least avoid
    writing garbage into the on-disk fields.)
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f1ccdde66ed867e2a71297bdb6cf1b7c6a32351
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Sat Oct 11 19:51:17 2014 -0400

    ext4: fix reservation overflow in ext4_da_write_begin
    
    commit 0ff8947fc5f700172b37cbca811a38eb9cb81e08 upstream.
    
    Delalloc write journal reservations only reserve 1 credit,
    to update the inode if necessary.  However, it may happen
    once in a filesystem's lifetime that a file will cross
    the 2G threshold, and require the LARGE_FILE feature to
    be set in the superblock as well, if it was not set already.
    
    This overruns the transaction reservation, and can be
    demonstrated simply on any ext4 filesystem without the LARGE_FILE
    feature already set:
    
    dd if=/dev/zero of=testfile bs=1 seek=2147483646 count=1 \
    	conv=notrunc of=testfile
    sync
    dd if=/dev/zero of=testfile bs=1 seek=2147483647 count=1 \
    	conv=notrunc of=testfile
    
    leads to:
    
    EXT4-fs: ext4_do_update_inode:4296: aborting transaction: error 28 in __ext4_handle_dirty_super
    EXT4-fs error (device loop0) in ext4_do_update_inode:4301: error 28
    EXT4-fs error (device loop0) in ext4_reserve_inode_write:4757: Readonly filesystem
    EXT4-fs error (device loop0) in ext4_dirty_inode:4876: error 28
    EXT4-fs error (device loop0) in ext4_da_write_end:2685: error 28
    
    Adjust the number of credits based on whether the flag is
    already set, and whether the current write may extend past the
    LARGE_FILE limit.
    
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65f2579916b6224c06514382d2bfc5841d43f291
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sun Oct 5 22:56:00 2014 -0400

    ext4: add ext4_iget_normal() which is to be used for dir tree lookups
    
    commit f4bb2981024fc91b23b4d09a8817c415396dbabb upstream.
    
    If there is a corrupted file system which has directory entries that
    point at reserved, metadata inodes, prohibit them from being used by
    treating them the same way we treat Boot Loader inodes --- that is,
    mark them to be bad inodes.  This prohibits them from being opened,
    deleted, or modified via chmod, chown, utimes, etc.
    
    In particular, this prevents a corrupted file system which has a
    directory entry which points at the journal inode from being deleted
    and its blocks released, after which point Much Hilarity Ensues.
    
    Reported-by: Sami Liedes <sami.liedes@iki.fi>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 744539f1d7e5349ff8084432ccb67f02e015fcf7
Author: Dmitry Monakhov <dmonakhov@openvz.org>
Date:   Fri Oct 3 12:47:23 2014 -0400

    ext4: grab missed write_count for EXT4_IOC_SWAP_BOOT
    
    commit 3e67cfad22230ebed85c56cbe413876f33fea82b upstream.
    
    Otherwise this provokes complain like follows:
    WARNING: CPU: 12 PID: 5795 at fs/ext4/ext4_jbd2.c:48 ext4_journal_check_start+0x4e/0xa0()
    Modules linked in: brd iTCO_wdt lpc_ich mfd_core igb ptp dm_mirror dm_region_hash dm_log dm_mod
    CPU: 12 PID: 5795 Comm: python Not tainted 3.17.0-rc2-00175-gae5344f #158
    Hardware name: Intel Corporation W2600CR/W2600CR, BIOS SE5C600.86B.99.99.x028.061320111235 06/13/2011
     0000000000000030 ffff8808116cfd28 ffffffff815c7dfc 0000000000000030
     0000000000000000 ffff8808116cfd68 ffffffff8106ce8c ffff8808116cfdc8
     ffff880813b16000 ffff880806ad6ae8 ffffffff81202008 0000000000000000
    Call Trace:
     [<ffffffff815c7dfc>] dump_stack+0x51/0x6d
     [<ffffffff8106ce8c>] warn_slowpath_common+0x8c/0xc0
     [<ffffffff81202008>] ? ext4_ioctl+0x9e8/0xeb0
     [<ffffffff8106ceda>] warn_slowpath_null+0x1a/0x20
     [<ffffffff8122867e>] ext4_journal_check_start+0x4e/0xa0
     [<ffffffff81228c10>] __ext4_journal_start_sb+0x90/0x110
     [<ffffffff81202008>] ext4_ioctl+0x9e8/0xeb0
     [<ffffffff8107b0bd>] ? ptrace_stop+0x24d/0x2f0
     [<ffffffff81088530>] ? alloc_pid+0x480/0x480
     [<ffffffff8107b1f2>] ? ptrace_do_notify+0x92/0xb0
     [<ffffffff81186545>] do_vfs_ioctl+0x4e5/0x550
     [<ffffffff815cdbcb>] ? _raw_spin_unlock_irq+0x2b/0x40
     [<ffffffff81186603>] SyS_ioctl+0x53/0x80
     [<ffffffff815ce2ce>] tracesys+0xd0/0xd5
    
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b69805f848234c9dd5ffd53d33d1bb264c91697e
Author: Jan Kara <jack@suse.cz>
Date:   Thu Sep 18 01:12:15 2014 -0400

    ext4: don't check quota format when there are no quota files
    
    commit 279bf6d390933d5353ab298fcc306c391a961469 upstream.
    
    The check whether quota format is set even though there are no
    quota files with journalled quota is pointless and it actually
    makes it impossible to turn off journalled quotas (as there's
    no way to unset journalled quota format). Just remove the check.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfcc2239096d692a3993b8462594b494da20eddf
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Tue Sep 16 14:34:59 2014 -0400

    ext4: check EA value offset when loading
    
    commit a0626e75954078cfacddb00a4545dde821170bc5 upstream.
    
    When loading extended attributes, check each entry's value offset to
    make sure it doesn't collide with the entries.
    
    Without this check it is easy to crash the kernel by mounting a
    malicious FS containing a file with an EA wherein e_value_offs = 0 and
    e_value_size > 0 and then deleting the EA, which corrupts the name
    list.
    
    (See the f_ea_value_crash test's FS image in e2fsprogs for an example.)
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c38e36f1966284360a229c7c6e9f2ba601869c2f
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Tue Sep 16 14:43:09 2014 -0400

    jbd2: free bh when descriptor block checksum fails
    
    commit 064d83892e9ba547f7d4eae22cbca066d95210ce upstream.
    
    Free the buffer head if the journal descriptor block fails checksum
    verification.
    
    This is the jbd2 port of the e2fsprogs patch "e2fsck: free bh on csum
    verify error in do_one_pass".
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0de6ef3648d201f714bf769347705d74ecca34e
Author: David Daney <david.daney@cavium.com>
Date:   Mon Oct 20 15:34:23 2014 -0700

    MIPS: tlbex: Properly fix HUGE TLB Refill exception handler
    
    commit 9e0f162a36914937a937358fcb45e0609ef2bfc4 upstream.
    
    In commit 8393c524a25609 (MIPS: tlbex: Fix a missing statement for
    HUGETLB), the TLB Refill handler was fixed so that non-OCTEON targets
    would work properly with huge pages.  The change was incorrect in that
    it broke the OCTEON case.
    
    The problem is shown here:
    
        xxx0:	df7a0000 	ld	k0,0(k1)
        .
        .
        .
        xxxc0:	df610000 	ld	at,0(k1)
        xxxc4:	335a0ff0 	andi	k0,k0,0xff0
        xxxc8:	e825ffcd 	bbit1	at,0x5,0x0
        xxxcc:	003ad82d 	daddu	k1,at,k0
        .
        .
        .
    
    In the non-octeon case there is a destructive test for the huge PTE
    bit, and then at 0, $k0 is reloaded (that is what the 8393c524a25609
    patch added).
    
    In the octeon case, we modify k1 in the branch delay slot, but we
    never need k0 again, so the new load is not needed, but since k1 is
    modified, if we do the load, we load from a garbage location and then
    get a nested TLB Refill, which is seen in userspace as either SIGBUS
    or SIGSEGV (depending on the garbage).
    
    The real fix is to only do this reloading if it is needed, and never
    where it is harmful.
    
    Signed-off-by: David Daney <david.daney@cavium.com>
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/8151/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec0f40e8d1e3660c1595e2fc5cb295cb3127ee40
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Sat Oct 4 04:23:15 2014 +0000

    target: Fix APTPL metadata handling for dynamic MappedLUNs
    
    commit e24805637d2d270d7975502e9024d473de86afdb upstream.
    
    This patch fixes a bug in handling of SPC-3 PR Activate Persistence
    across Target Power Loss (APTPL) logic where re-creation of state for
    MappedLUNs from dynamically generated NodeACLs did not occur during
    I_T Nexus establishment.
    
    It adds the missing core_scsi3_check_aptpl_registration() call during
    core_tpg_check_initiator_node_acl() -> core_tpg_add_node_to_devs() in
    order to replay any pre-loaded APTPL metadata state associated with
    the newly connected SCSI Initiator Port.
    
    Cc: Mike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b036d398754a2b7045735a8839c7314c08eaedd7
Author: Quinn Tran <quinn.tran@qlogic.com>
Date:   Thu Sep 25 06:22:28 2014 -0400

    target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE
    
    commit 082f58ac4a48d3f5cb4597232cb2ac6823a96f43 upstream.
    
    During temporary resource starvation at lower transport layer, command
    is placed on queue full retry path, which expose this problem.  The TCM
    queue full handling of SCF_TRANSPORT_TASK_SENSE currently sends the same
    cmd twice to lower layer.  The 1st time led to cmd normal free path.
    The 2nd time cause Null pointer access.
    
    This regression bug was originally introduced v3.1-rc code in the
    following commit:
    
    commit e057f53308a5f071556ee80586b99ee755bf07f5
    Author: Christoph Hellwig <hch@infradead.org>
    Date:   Mon Oct 17 13:56:41 2011 -0400
    
        target: remove the transport_qf_callback se_cmd callback
    
    Signed-off-by: Quinn Tran <quinn.tran@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e80395d5cdc7c193ac7cc7faff8b7bf313b9164f
Author: Joern Engel <joern@logfs.org>
Date:   Fri Oct 3 14:35:56 2014 -0700

    qla_target: don't delete changed nacls
    
    commit f4c24db1b7ad0ce84409e15744d26c6f86a96840 upstream.
    
    The code is currently riddled with "drop the hardware_lock to avoid a
    deadlock" bugs that expose races.  One of those races seems to expose a
    valid warning in tcm_qla2xxx_clear_nacl_from_fcport_map.  Add some
    bandaid to it.
    
    Signed-off-by: Joern Engel <joern@logfs.org>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73213e6c423392a828cab912ddbd986b454283e2
Author: Anton Kolesov <Anton.Kolesov@synopsys.com>
Date:   Thu Sep 25 13:23:24 2014 +0400

    ARC: Update order of registers in KGDB to match GDB 7.5
    
    commit ebc0c74e76cec9c4dd860eb0ca1c0b39dc63c482 upstream.
    
    Order of registers has changed in GDB moving from 6.8 to 7.5. This patch
    updates KGDB to work properly with GDB 7.5, though makes it incompatible
    with 6.8.
    
    Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e27cd7561593ffa85ab51083b27e2bcbd5f62318
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Fri Jun 20 16:24:49 2014 +0530

    ARC: [nsimosci] Allow "headless" models to boot
    
    commit 5c05483e2db91890faa9a7be0a831701a3f442d6 upstream.
    
    There are certain test configuration of virtual platform which don't
    have any real console device (uart/pgu). So add tty0 as a fallback console
    device to allow system to boot and be accessible via telnet
    
    Otherwise with ttyS0 as only console, but 8250 disabled in kernel build,
    init chokes.
    
    Reported-by: Anton Kolesov <akolesov@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0efb0baaa7d349bce883bbcaed45319baa33a309
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Thu Sep 18 22:39:38 2014 +0300

    KVM: x86: Emulator fixes for eip canonical checks on near branches
    
    commit 234f3ce485d54017f15cf5e0699cff4100121601 upstream.
    
    Before changing rip (during jmp, call, ret, etc.) the target should be asserted
    to be canonical one, as real CPUs do.  During sysret, both target rsp and rip
    should be canonical. If any of these values is noncanonical, a #GP exception
    should occur.  The exception to this rule are syscall and sysenter instructions
    in which the assigned rip is checked during the assignment to the relevant
    MSRs.
    
    This patch fixes the emulator to behave as real CPUs do for near branches.
    Far branches are handled by the next patch.
    
    This fixes CVE-2014-3647.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d092975d028dcb428f926511e0129705bf714d5c
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Thu Sep 18 22:39:37 2014 +0300

    KVM: x86: Fix wrong masking on relative jump/call
    
    commit 05c83ec9b73c8124555b706f6af777b10adf0862 upstream.
    
    Relative jumps and calls do the masking according to the operand size, and not
    according to the address size as the KVM emulator does today.
    
    This patch fixes KVM behavior.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e56b9c47d05e4d18e9ddc0cdf8b2716f4de17a25
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Thu Sep 18 16:21:16 2014 +0300

    kvm: x86: don't kill guest on unknown exit reason
    
    commit 2bc19dc3754fc066c43799659f0d848631c44cfe upstream.
    
    KVM_EXIT_UNKNOWN is a kvm bug, we don't really know whether it was
    triggered by a priveledged application.  Let's not kill the guest: WARN
    and inject #UD instead.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea30614738b5faf98a1a695f78ce11447d4eb072
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Tue Sep 16 03:24:05 2014 +0300

    KVM: x86: Check non-canonical addresses upon WRMSR
    
    commit 854e8bb1aa06c578c2c9145fa6bfe3680ef63b23 upstream.
    
    Upon WRMSR, the CPU should inject #GP if a non-canonical value (address) is
    written to certain MSRs. The behavior is "almost" identical for AMD and Intel
    (ignoring MSRs that are not implemented in either architecture since they would
    anyhow #GP). However, IA32_SYSENTER_ESP and IA32_SYSENTER_EIP cause #GP if
    non-canonical address is written on Intel but not on AMD (which ignores the top
    32-bits).
    
    Accordingly, this patch injects a #GP on the MSRs which behave identically on
    Intel and AMD.  To eliminate the differences between the architecutres, the
    value which is written to IA32_SYSENTER_ESP and IA32_SYSENTER_EIP is turned to
    canonical value before writing instead of injecting a #GP.
    
    Some references from Intel and AMD manuals:
    
    According to Intel SDM description of WRMSR instruction #GP is expected on
    WRMSR "If the source register contains a non-canonical address and ECX
    specifies one of the following MSRs: IA32_DS_AREA, IA32_FS_BASE, IA32_GS_BASE,
    IA32_KERNEL_GS_BASE, IA32_LSTAR, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP."
    
    According to AMD manual instruction manual:
    LSTAR/CSTAR (SYSCALL): "The WRMSR instruction loads the target RIP into the
    LSTAR and CSTAR registers.  If an RIP written by WRMSR is not in canonical
    form, a general-protection exception (#GP) occurs."
    IA32_GS_BASE and IA32_FS_BASE (WRFSBASE/WRGSBASE): "The address written to the
    base field must be in canonical form or a #GP fault will occur."
    IA32_KERNEL_GS_BASE (SWAPGS): "The address stored in the KernelGSbase MSR must
    be in canonical form."
    
    This patch fixes CVE-2014-3610.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca09be78c8d5d2a4fe38ec97a61b3c7fc3463794
Author: Andy Honig <ahonig@google.com>
Date:   Wed Aug 27 14:42:54 2014 -0700

    KVM: x86: Improve thread safety in pit
    
    commit 2febc839133280d5a5e8e1179c94ea674489dae2 upstream.
    
    There's a race condition in the PIT emulation code in KVM.  In
    __kvm_migrate_pit_timer the pit_timer object is accessed without
    synchronization.  If the race condition occurs at the wrong time this
    can crash the host kernel.
    
    This fixes CVE-2014-3611.
    
    Signed-off-by: Andrew Honig <ahonig@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bea37d63c16c5988d83ac2431c38e0f0a55cf37
Author: Andy Honig <ahonig@google.com>
Date:   Wed Aug 27 11:16:44 2014 -0700

    KVM: x86: Prevent host from panicking on shared MSR writes.
    
    commit 8b3c3104c3f4f706e99365c3e0d2aa61b95f969f upstream.
    
    The previous patch blocked invalid writes directly when the MSR
    is written.  As a precaution, prevent future similar mistakes by
    gracefulling handle GPs caused by writes to shared MSRs.
    
    Signed-off-by: Andrew Honig <ahonig@google.com>
    [Remove parts obsoleted by Nadav's patch. - Paolo]
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ea61129fec62fbb7fba38e60d00e4f9d776cfa5
Author: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Date:   Fri Oct 17 22:55:59 2014 +0200

    kvm: fix excessive pages un-pinning in kvm_iommu_map error path.
    
    commit 3d32e4dbe71374a6780eaf51d719d76f9a9bf22f upstream.
    
    The third parameter of kvm_unpin_pages() when called from
    kvm_iommu_map_pages() is wrong, it should be the number of pages to un-pin
    and not the page size.
    
    This error was facilitated with an inconsistent API: kvm_pin_pages() takes
    a size, but kvn_unpin_pages() takes a number of pages, so fix the problem
    by matching the two.
    
    This was introduced by commit 350b8bd ("kvm: iommu: fix the third parameter
    of kvm_iommu_put_pages (CVE-2014-3601)"), which fixes the lack of
    un-pinning for pages intended to be un-pinned (i.e. memory leak) but
    unfortunately potentially aggravated the number of pages we un-pin that
    should have stayed pinned. As far as I understand though, the same
    practical mitigations apply.
    
    This issue was found during review of Red Hat 6.6 patches to prepare
    Ksplice rebootless updates.
    
    Thanks to Vegard for his time on a late Friday evening to help me in
    understanding this code.
    
    Fixes: 350b8bd ("kvm: iommu: fix the third parameter of... (CVE-2014-3601)")
    Signed-off-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Jamie Iles <jamie.iles@oracle.com>
    Reviewed-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6033d64297fac0c26284fe9b7ca8751906dcf277
Author: Axel Lin <axel.lin@ingics.com>
Date:   Fri Aug 8 10:32:56 2014 -0300

    media: tda7432: Fix setting TDA7432_MUTE bit for TDA7432_RF register
    
    commit 91ba0e59babdb3c7aca836a65f1095b3eaff7b06 upstream.
    
    Fix a copy-paste bug when converting to the control framework.
    
    Fixes: commit 5d478e0de871 ("[media] tda7432: convert to the control framework")
    
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f879c8cce0b17a7939a96bb6d0967cc5aafc8dee
Author: Ulrich Eckhardt <uli-lirc@uli-eckhardt.de>
Date:   Fri Oct 10 14:19:12 2014 -0300

    media: ds3000: fix LNB supply voltage on Tevii S480 on initialization
    
    commit 8c5bcded11cb607b1bb5920de3b9c882136d27db upstream.
    
    The Tevii S480 outputs 18V on startup for the LNB supply voltage and does not
    automatically power down. This blocks other receivers connected
    to a satellite channel router (EN50494), since the receivers can not send the
    required DiSEqC sequences when the Tevii card is connected to a the same SCR.
    
    This patch switches off the LNB supply voltage on initialization of the frontend.
    
    [mchehab@osg.samsung.com: add a comment about why we're explicitly
     turning off voltage at device init]
    Signed-off-by: Ulrich Eckhardt <uli@uli-eckhardt.de>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7dbdd9018603c417a64736414262a4e9b6203390
Author: Frank Schaefer <fschaefer.oss@googlemail.com>
Date:   Sat Aug 9 06:37:20 2014 -0300

    media: em28xx-v4l: give back all active video buffers to the vb2 core properly on streaming stop
    
    commit 627530c32a43283474e9dd3e954519410ffa033a upstream.
    
    When a new video frame is started, the driver takes the next video buffer from
    the list of active buffers and moves it to dev->usb_ctl.vid_buf / dev->usb_ctl.vbi_buf
    for further processing.
    
    On streaming stop we currently only give back the pending buffers from the list
    but not the ones which are currently processed.
    
    This causes the following warning from the vb2 core since kernel 3.15:
    
    ...
     ------------[ cut here ]------------
     WARNING: CPU: 1 PID: 2284 at drivers/media/v4l2-core/videobuf2-core.c:2115 __vb2_queue_cancel+0xed/0x150 [videobuf2_core]()
     [...]
     Call Trace:
      [<c0769c46>] dump_stack+0x48/0x69
      [<c0245b69>] warn_slowpath_common+0x79/0x90
      [<f925e4ad>] ? __vb2_queue_cancel+0xed/0x150 [videobuf2_core]
      [<f925e4ad>] ? __vb2_queue_cancel+0xed/0x150 [videobuf2_core]
      [<c0245bfd>] warn_slowpath_null+0x1d/0x20
      [<f925e4ad>] __vb2_queue_cancel+0xed/0x150 [videobuf2_core]
      [<f925fa35>] vb2_internal_streamoff+0x35/0x90 [videobuf2_core]
      [<f925fac5>] vb2_streamoff+0x35/0x60 [videobuf2_core]
      [<f925fb27>] vb2_ioctl_streamoff+0x37/0x40 [videobuf2_core]
      [<f8e45895>] v4l_streamoff+0x15/0x20 [videodev]
      [<f8e4925d>] __video_do_ioctl+0x23d/0x2d0 [videodev]
      [<f8e49020>] ? video_ioctl2+0x20/0x20 [videodev]
      [<f8e48c63>] video_usercopy+0x203/0x5a0 [videodev]
      [<f8e49020>] ? video_ioctl2+0x20/0x20 [videodev]
      [<c039d0e7>] ? fsnotify+0x1e7/0x2b0
      [<f8e49012>] video_ioctl2+0x12/0x20 [videodev]
      [<f8e49020>] ? video_ioctl2+0x20/0x20 [videodev]
      [<f8e4461e>] v4l2_ioctl+0xee/0x130 [videodev]
      [<f8e44530>] ? v4l2_open+0xf0/0xf0 [videodev]
      [<c0378de2>] do_vfs_ioctl+0x2e2/0x4d0
      [<c0368eec>] ? vfs_write+0x13c/0x1c0
      [<c0369a8f>] ? vfs_writev+0x2f/0x50
      [<c0379028>] SyS_ioctl+0x58/0x80
      [<c076fff3>] sysenter_do_call+0x12/0x12
     ---[ end trace 5545f934409f13f4 ]---
    ...
    
    Many thanks to Hans Verkuil, whose recently added check in the vb2 core unveiled
    this long standing issue and who has investigated it further.
    
    Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed070066305551c2bf71b0737fcc5fe3e136aed6
Author: Maciej Matraszek <m.matraszek@samsung.com>
Date:   Mon Sep 15 05:14:48 2014 -0300

    media: v4l2-common: fix overflow in v4l_bound_align_image()
    
    commit 3bacc10cd4a85bc70bc0b6c001d3bf995c7fe04c upstream.
    
    Fix clamp_align() used in v4l_bound_align_image() to prevent overflow
    when passed large value like UINT32_MAX.
    
     In the current implementation:
        clamp_align(UINT32_MAX, 8, 8192, 3)
    
    returns 8, because in line:
    
        x = (x + (1 << (align - 1))) & mask;
    
    x overflows to (-1 + 4) & 0x7 = 3, while expected value is 8192.
    
    v4l_bound_align_image() is heavily used in VIDIOC_S_FMT and
    VIDIOC_SUBDEV_S_FMT ioctls handlers, and documentation of the latter
    explicitly states that:
    
    "The modified format should be as close as possible to the original
    request."
      -- http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-subdev-g-fmt.html
    
    Thus one would expect, that passing UINT32_MAX as format width and
    height will result in setting maximum possible resolution for the
    device. Particularly, when the driver doesn't support
    VIDIOC_ENUM_FRAMESIZES ioctl, which is common in the codebase.
    
    Fixes changeset: b0d3159be9a3
    
    Signed-off-by: Maciej Matraszek <m.matraszek@samsung.com>
    Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b163cb4c566c773d049648ec8da752d37f5c200
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Sep 8 10:33:32 2014 +1000

    drm/nouveau/bios: memset dcb struct to zero before parsing
    
    commit 595d373f1e9c9ce0fc946457fdb488e8a58972cd upstream.
    
    Fixes type/mask calculation being based on uninitialised data for VGA
    outputs.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3cb445501d51791746af4066e480650d85d2f97
Author: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Date:   Tue Sep 2 09:51:15 2014 -0300

    drm/tilcdc: Fix the error path in tilcdc_load()
    
    commit b478e336b3e75505707a11e78ef8b964ef0a03af upstream.
    
    The current error path calls tilcdc_unload() in case of an error to release
    the resources. However, this is wrong because not all resources have been
    allocated by the time an error occurs in tilcdc_load().
    
    To fix it, this commit adds proper labels to bail out at the different
    stages in the load function, and release only the resources actually allocated.
    
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Tested-by: Johannes Pointner <johannes.pointner@br-automation.com>
    Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Fixes: 3a49012224ca ("drm/tilcdc: panel: fix leak when unloading the module")
    Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da1185cf703a9709fa83842d978e14fbf1b10a69
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Tue Oct 7 19:04:58 2014 +1100

    drm/ast: Fix HW cursor image
    
    commit 1e99cfa8de0f0879091e33cd65fd60418d006ad9 upstream.
    
    The translation from the X driver to the KMS one typo'ed a couple
    of array indices, causing the HW cursor to look weird (blocky with
    leaking edge colors). This fixes it.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55a72275d9c026e9ceae4260b42db595f50215f8
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Oct 24 14:55:24 2014 -0700

    Input: i8042 - quirks for Fujitsu Lifebook A544 and Lifebook AH544
    
    commit 993b3a3f80a7842a48cd46c2b41e1b3ef6302468 upstream.
    
    These models need i8042.notimeout, otherwise the touchpad will not work.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=69731
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1111138
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b8bb8fbc67135d8fc5f63e4547241d7f342e747
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Oct 11 11:27:37 2014 -0700

    Input: i8042 - add noloop quirk for Asus X750LN
    
    commit 9ff84a17302aeb8913ff244ecc0d8f9d219fecb5 upstream.
    
    Without this the aux port does not get detected, and consequently the
    touchpad will not work.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1110011
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a276227fc44ed806f6e3f5d6e27339a526838876
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Sep 16 12:40:26 2014 -0400

    framebuffer: fix border color
    
    commit f74a289b9480648a654e5afd8458c2263c03a1e1 upstream.
    
    The framebuffer code uses the current background color to fill the border
    when switching consoles, however, this results in inconsistent behavior.
    For example:
    - start Midnigh Commander
    - the border is black
    - switch to another console and switch back
    - the border is cyan
    - type something into the command line in mc
    - the border is cyan
    - switch to another console and switch back
    - the border is black
    - press F9 to go to menu
    - the border is black
    - switch to another console and switch back
    - the border is dark blue
    
    When switching to a console with Midnight Commander, the border is random
    color that was left selected by the slang subsystem.
    
    This patch fixes this inconsistency by always using black as the
    background color when switching consoles.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ade16953067e758d0ea86f133f74319a851328e
Author: Prarit Bhargava <prarit@redhat.com>
Date:   Tue Oct 14 02:51:39 2014 +1030

    modules, lock around setting of MODULE_STATE_UNFORMED
    
    commit d3051b489aa81ca9ba62af366149ef42b8dae97c upstream.
    
    A panic was seen in the following sitation.
    
    There are two threads running on the system. The first thread is a system
    monitoring thread that is reading /proc/modules. The second thread is
    loading and unloading a module (in this example I'm using my simple
    dummy-module.ko).  Note, in the "real world" this occurred with the qlogic
    driver module.
    
    When doing this, the following panic occurred:
    
     ------------[ cut here ]------------
     kernel BUG at kernel/module.c:3739!
     invalid opcode: 0000 [#1] SMP
     Modules linked in: binfmt_misc sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw igb gf128mul glue_helper iTCO_wdt iTCO_vendor_support ablk_helper ptp sb_edac cryptd pps_core edac_core shpchp i2c_i801 pcspkr wmi lpc_ich ioatdma mfd_core dca ipmi_si nfsd ipmi_msghandler auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sr_mod cdrom sd_mod crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit drm_kms_helper ttm isci drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod [last unloaded: dummy_module]
     CPU: 37 PID: 186343 Comm: cat Tainted: GF          O--------------   3.10.0+ #7
     Hardware name: Intel Corporation S2600CP/S2600CP, BIOS RMLSDP.86I.00.29.D696.1311111329 11/11/2013
     task: ffff8807fd2d8000 ti: ffff88080fa7c000 task.ti: ffff88080fa7c000
     RIP: 0010:[<ffffffff810d64c5>]  [<ffffffff810d64c5>] module_flags+0xb5/0xc0
     RSP: 0018:ffff88080fa7fe18  EFLAGS: 00010246
     RAX: 0000000000000003 RBX: ffffffffa03b5200 RCX: 0000000000000000
     RDX: 0000000000001000 RSI: ffff88080fa7fe38 RDI: ffffffffa03b5000
     RBP: ffff88080fa7fe28 R08: 0000000000000010 R09: 0000000000000000
     R10: 0000000000000000 R11: 000000000000000f R12: ffffffffa03b5000
     R13: ffffffffa03b5008 R14: ffffffffa03b5200 R15: ffffffffa03b5000
     FS:  00007f6ae57ef740(0000) GS:ffff88101e7a0000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000404f70 CR3: 0000000ffed48000 CR4: 00000000001407e0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
     Stack:
      ffffffffa03b5200 ffff8810101e4800 ffff88080fa7fe70 ffffffff810d666c
      ffff88081e807300 000000002e0f2fbf 0000000000000000 ffff88100f257b00
      ffffffffa03b5008 ffff88080fa7ff48 ffff8810101e4800 ffff88080fa7fee0
     Call Trace:
      [<ffffffff810d666c>] m_show+0x19c/0x1e0
      [<ffffffff811e4d7e>] seq_read+0x16e/0x3b0
      [<ffffffff812281ed>] proc_reg_read+0x3d/0x80
      [<ffffffff811c0f2c>] vfs_read+0x9c/0x170
      [<ffffffff811c1a58>] SyS_read+0x58/0xb0
      [<ffffffff81605829>] system_call_fastpath+0x16/0x1b
     Code: 48 63 c2 83 c2 01 c6 04 03 29 48 63 d2 eb d9 0f 1f 80 00 00 00 00 48 63 d2 c6 04 13 2d 41 8b 0c 24 8d 50 02 83 f9 01 75 b2 eb cb <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 41
     RIP  [<ffffffff810d64c5>] module_flags+0xb5/0xc0
      RSP <ffff88080fa7fe18>
    
        Consider the two processes running on the system.
    
        CPU 0 (/proc/modules reader)
        CPU 1 (loading/unloading module)
    
        CPU 0 opens /proc/modules, and starts displaying data for each module by
        traversing the modules list via fs/seq_file.c:seq_open() and
        fs/seq_file.c:seq_read().  For each module in the modules list, seq_read
        does
    
                op->start()  <-- this is a pointer to m_start()
                op->show()   <- this is a pointer to m_show()
                op->stop()   <-- this is a pointer to m_stop()
    
        The m_start(), m_show(), and m_stop() module functions are defined in
        kernel/module.c. The m_start() and m_stop() functions acquire and release
        the module_mutex respectively.
    
        ie) When reading /proc/modules, the module_mutex is acquired and released
        for each module.
    
        m_show() is called with the module_mutex held.  It accesses the module
        struct data and attempts to write out module data.  It is in this code
        path that the above BUG_ON() warning is encountered, specifically m_show()
        calls
    
        static char *module_flags(struct module *mod, char *buf)
        {
                int bx = 0;
    
                BUG_ON(mod->state == MODULE_STATE_UNFORMED);
        ...
    
        The other thread, CPU 1, in unloading the module calls the syscall
        delete_module() defined in kernel/module.c.  The module_mutex is acquired
        for a short time, and then released.  free_module() is called without the
        module_mutex.  free_module() then sets mod->state = MODULE_STATE_UNFORMED,
        also without the module_mutex.  Some additional code is called and then the
        module_mutex is reacquired to remove the module from the modules list:
    
            /* Now we can delete it from the lists */
            mutex_lock(&module_mutex);
            stop_machine(__unlink_module, mod, NULL);
            mutex_unlock(&module_mutex);
    
    This is the sequence of events that leads to the panic.
    
    CPU 1 is removing dummy_module via delete_module().  It acquires the
    module_mutex, and then releases it.  CPU 1 has NOT set dummy_module->state to
    MODULE_STATE_UNFORMED yet.
    
    CPU 0, which is reading the /proc/modules, acquires the module_mutex and
    acquires a pointer to the dummy_module which is still in the modules list.
    CPU 0 calls m_show for dummy_module.  The check in m_show() for
    MODULE_STATE_UNFORMED passed for dummy_module even though it is being
    torn down.
    
    Meanwhile CPU 1, which has been continuing to remove dummy_module without
    holding the module_mutex, now calls free_module() and sets
    dummy_module->state to MODULE_STATE_UNFORMED.
    
    CPU 0 now calls module_flags() with dummy_module and ...
    
    static char *module_flags(struct module *mod, char *buf)
    {
            int bx = 0;
    
            BUG_ON(mod->state == MODULE_STATE_UNFORMED);
    
    and BOOM.
    
    Acquire and release the module_mutex lock around the setting of
    MODULE_STATE_UNFORMED in the teardown path, which should resolve the
    problem.
    
    Testing: In the unpatched kernel I can panic the system within 1 minute by
    doing
    
    while (true) do insmod dummy_module.ko; rmmod dummy_module.ko; done
    
    and
    
    while (true) do cat /proc/modules; done
    
    in separate terminals.
    
    In the patched kernel I was able to run just over one hour without seeing
    any issues.  I also verified the output of panic via sysrq-c and the output
    of /proc/modules looks correct for all three states for the dummy_module.
    
            dummy_module 12661 0 - Unloading 0xffffffffa03a5000 (OE-)
            dummy_module 12661 0 - Live 0xffffffffa03bb000 (OE)
            dummy_module 14015 1 - Loading 0xffffffffa03a5000 (OE+)
    
    Signed-off-by: Prarit Bhargava <prarit@redhat.com>
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdef68fb1be8fe1e02f2029b25e4a87211d884e5
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Wed Oct 1 22:58:35 2014 +0200

    dm log userspace: fix memory leak in dm_ulog_tfr_init failure path
    
    commit 56ec16cb1e1ce46354de8511eef962a417c32c92 upstream.
    
    If cn_add_callback() fails in dm_ulog_tfr_init(), it does not
    deallocate prealloced memory but calls cn_del_callback().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Reviewed-by: Jonathan Brassow <jbrassow@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a63bea06c1617175c68677da4810dfd120da2bd5
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Wed Oct 8 18:26:13 2014 -0400

    block: fix alignment_offset math that assumes io_min is a power-of-2
    
    commit b8839b8c55f3fdd60dc36abcda7e0266aff7985c upstream.
    
    The math in both blk_stack_limits() and queue_limit_alignment_offset()
    assume that a block device's io_min (aka minimum_io_size) is always a
    power-of-2.  Fix the math such that it works for non-power-of-2 io_min.
    
    This issue (of alignment_offset != 0) became apparent when testing
    dm-thinp with a thinp blocksize that matches a RAID6 stripesize of
    1280K.  Commit fdfb4c8c1 ("dm thin: set minimum_io_size to pool's data
    block size") unlocked the potential for alignment_offset != 0 due to
    the dm-thin-pool's io_min possibly being a non-power-of-2.
    
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29772e3e199f2c13cd5f00694e633fb80bbb0415
Author: Lai Jiangshan <laijs@cn.fujitsu.com>
Date:   Thu Sep 18 16:49:41 2014 +0200

    drbd: compute the end before rb_insert_augmented()
    
    commit 82cfb90bc99d7b7e0ec62d0505b9d4f06805d5db upstream.
    
    Commit 98683650 "Merge branch 'drbd-8.4_ed6' into
    for-3.8-drivers-drbd-8.4_ed6" switches to the new augment API, but the
    new API requires that the tree is augmented before rb_insert_augmented()
    is called, which is missing.
    
    So we add the augment-code to drbd_insert_interval() when it travels the
    tree up to down before rb_insert_augmented().  See the example in
    include/linux/interval_tree_generic.h or Documentation/rbtree.txt.
    
    drbd_insert_interval() may cancel the insertion when traveling, in this
    case, the just added augment-code does nothing before cancel since the
    @this node is already in the subtrees in this case.
    
    CC: Michel Lespinasse <walken@google.com>
    Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: Andreas Gruenbacher <agruen@linbit.com>
    Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f626317894a923edea99de4f18590c008375890
Author: Joe Thornber <ejt@redhat.com>
Date:   Tue Sep 30 09:32:46 2014 +0100

    dm bufio: update last_accessed when relinking a buffer
    
    commit eb76faf53b1ff7a77ce3f78cc98ad392ac70c2a0 upstream.
    
    The 'last_accessed' member of the dm_buffer structure was only set when
    the the buffer was created.  This led to each buffer being discarded
    after dm_bufio_max_age time even if it was used recently.  In practice
    this resulted in all thinp metadata being evicted soon after being read
    -- this is particularly problematic for metadata intensive workloads
    like multithreaded small random IO.
    
    'last_accessed' is now updated each time the buffer is moved to the head
    of the LRU list, so the buffer is now properly discarded if it was not
    used in dm_bufio_max_age time.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d96f66edf7efb2b7e396d20891a13e677624c085
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Tue Oct 14 10:40:29 2014 +1030

    virtio_pci: fix virtio spec compliance on restore
    
    commit 6fbc198cf623944ab60a1db6d306a4d55cdd820d upstream.
    
    On restore, virtio pci does the following:
    + set features
    + init vqs etc - device can be used at this point!
    + set ACKNOWLEDGE,DRIVER and DRIVER_OK status bits
    
    This is in violation of the virtio spec, which
    requires the following order:
    - ACKNOWLEDGE
    - DRIVER
    - init vqs
    - DRIVER_OK
    
    This behaviour will break with hypervisors that assume spec compliant
    behaviour.  It seems like a good idea to have this patch applied to
    stable branches to reduce the support butden for the hypervisors.
    
    Cc: Amit Shah <amit.shah@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e38e049b0eaa19affedf3be7f3b569ebe3b5e72b
Author: Stephen Smalley <sds@tycho.nsa.gov>
Date:   Mon Oct 6 16:32:52 2014 -0400

    selinux: fix inode security list corruption
    
    commit 923190d32de4428afbea5e5773be86bea60a9925 upstream.
    
    sb_finish_set_opts() can race with inode_free_security()
    when initializing inode security structures for inodes
    created prior to initial policy load or by the filesystem
    during ->mount().   This appears to have always been
    a possible race, but commit 3dc91d4 ("SELinux:  Fix possible
    NULL pointer dereference in selinux_inode_permission()")
    made it more evident by immediately reusing the unioned
    list/rcu element  of the inode security structure for call_rcu()
    upon an inode_free_security().  But the underlying issue
    was already present before that commit as a possible use-after-free
    of isec.
    
    Shivnandan Kumar reported the list corruption and proposed
    a patch to split the list and rcu elements out of the union
    as separate fields of the inode_security_struct so that setting
    the rcu element would not affect the list element.  However,
    this would merely hide the issue and not truly fix the code.
    
    This patch instead moves up the deletion of the list entry
    prior to dropping the sbsec->isec_lock initially.  Then,
    if the inode is dropped subsequently, there will be no further
    references to the isec.
    
    Reported-by: Shivnandan Kumar <shivnandan.k@samsung.com>
    Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1cde964e47f70c89e84618884a1258e325f9b856
Author: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Date:   Sun Oct 12 23:09:08 2014 -0400

    pstore: Fix duplicate {console,ftrace}-efi entries
    
    commit d4bf205da618bbd0b038e404d646f14e76915718 upstream.
    
    The pstore filesystem still creates duplicate filename/inode pairs for
    some pstore types.  Add the id to the filename to prevent that.
    
    Before patch:
    
    [/sys/fs/pstore] ls -li
    total 0
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    1250 -r--r--r--. 1 root root 67 Sep 29 17:09 console-efi
    
    After:
    
    [/sys/fs/pstore] ls -li
    total 0
    1232 -r--r--r--. 1 root root 148 Sep 29 17:09 console-efi-141202499100000
    1231 -r--r--r--. 1 root root  67 Sep 29 17:09 console-efi-141202499200000
    1230 -r--r--r--. 1 root root 148 Sep 29 17:44 console-efi-141202705400000
    1229 -r--r--r--. 1 root root  67 Sep 29 17:44 console-efi-141202705500000
    1228 -r--r--r--. 1 root root  67 Sep 29 20:42 console-efi-141203772600000
    1227 -r--r--r--. 1 root root 148 Sep 29 23:42 console-efi-141204854900000
    1226 -r--r--r--. 1 root root  67 Sep 29 23:42 console-efi-141204855000000
    1225 -r--r--r--. 1 root root 148 Sep 29 23:59 console-efi-141204954200000
    1224 -r--r--r--. 1 root root  67 Sep 29 23:59 console-efi-141204954400000
    
    Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 003f558269ba36d7b3b84c7dde9a77dd3646d0a3
Author: Chris Ball <chris@printf.net>
Date:   Thu Sep 4 17:11:53 2014 +0100

    mfd: rtsx_pcr: Fix MSI enable error handling
    
    commit 5152970538a5e16c03bbcb9f1c780489a795ed40 upstream.
    
    pci_enable_msi() can return failure with both positive and negative
    integers -- it returns 0 for success -- but is only tested here for
    "if (ret < 0)".  This causes us to try to use MSI on the RTS5249 SD
    reader in the Dell XPS 11 when enabling MSI failed, causing:
    
    [    1.737110] rtsx_pci: probe of 0000:05:00.0 failed with error -110
    
    Reported-by: D. Jared Dominguez <Jared_Dominguez@Dell.com>
    Tested-by: D. Jared Dominguez <Jared_Dominguez@Dell.com>
    Signed-off-by: Chris Ball <chris@printf.net>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 315a75ea5d19a4cbc68b96024de8e36eb1db68b0
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Wed Oct 8 10:42:27 2014 -0700

    mnt: Prevent pivot_root from creating a loop in the mount tree
    
    commit 0d0826019e529f21c84687521d03f60cd241ca7d upstream.
    
    Andy Lutomirski recently demonstrated that when chroot is used to set
    the root path below the path for the new ``root'' passed to pivot_root
    the pivot_root system call succeeds and leaks mounts.
    
    In examining the code I see that starting with a new root that is
    below the current root in the mount tree will result in a loop in the
    mount tree after the mounts are detached and then reattached to one
    another.  Resulting in all kinds of ugliness including a leak of that
    mounts involved in the leak of the mount loop.
    
    Prevent this problem by ensuring that the new mount is reachable from
    the current root of the mount tree.
    
    [Added stable cc.  Fixes CVE-2014-7970.  --Andy]
    
    Reported-by: Andy Lutomirski <luto@amacapital.net>
    Reviewed-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/87bnpmihks.fsf@x220.int.ebiederm.org
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a6f66a916d51ac1210c9658b223cd154d92e676
Author: Richard Genoud <richard.genoud@gmail.com>
Date:   Tue Sep 9 14:25:01 2014 +0200

    UBI: add missing kmem_cache_free() in process_pool_aeb error path
    
    commit 1bf1890e86869032099b539bc83b098be12fc5a7 upstream.
    
    I ran into this error after a ubiupdatevol, because I forgot to backport
    e9110361a9a4 UBI: fix the volumes tree sorting criteria.
    
    UBI error: process_pool_aeb: orphaned volume in fastmap pool
    UBI error: ubi_scan_fastmap: Attach by fastmap failed, doing a full scan!
    kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still has objects
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.14.18-00053-gf05cac8dbf85 #1
    [<c000d298>] (unwind_backtrace) from [<c000baa8>] (show_stack+0x10/0x14)
    [<c000baa8>] (show_stack) from [<c01b7a68>] (destroy_ai+0x230/0x244)
    [<c01b7a68>] (destroy_ai) from [<c01b8fd4>] (ubi_attach+0x98/0x1ec)
    [<c01b8fd4>] (ubi_attach) from [<c01ade90>] (ubi_attach_mtd_dev+0x2b8/0x868)
    [<c01ade90>] (ubi_attach_mtd_dev) from [<c038b510>] (ubi_init+0x1dc/0x2ac)
    [<c038b510>] (ubi_init) from [<c0008860>] (do_one_initcall+0x94/0x140)
    [<c0008860>] (do_one_initcall) from [<c037aadc>] (kernel_init_freeable+0xe8/0x1b0)
    [<c037aadc>] (kernel_init_freeable) from [<c02730ac>] (kernel_init+0x8/0xe4)
    [<c02730ac>] (kernel_init) from [<c00093f0>] (ret_from_fork+0x14/0x24)
    UBI: scanning is finished
    
    Freeing the cache in the error path fixes the Slab error.
    
    Tested on at91sam9g35 (3.14.18+fastmap backports)
    
    Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25e1465ac3cfeafce34b3a47e773c4bc950054a3
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Tue Aug 26 23:16:35 2014 -0400

    random: add and use memzero_explicit() for clearing data
    
    commit d4c5efdb97773f59a2b711754ca0953f24516739 upstream.
    
    zatimend has reported that in his environment (3.16/gcc4.8.3/corei7)
    memset() calls which clear out sensitive data in extract_{buf,entropy,
    entropy_user}() in random driver are being optimized away by gcc.
    
    Add a helper memzero_explicit() (similarly as explicit_bzero() variants)
    that can be used in such cases where a variable with sensitive data is
    being cleared out in the end. Other use cases might also be in crypto
    code. [ I have put this into lib/string.c though, as it's always built-in
    and doesn't need any dependencies then. ]
    
    Fixes kernel bugzilla: 82041
    
    Reported-by: zatimend@hotmail.co.uk
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 620c41147d873223d8aac0aa64793882b6217f09
Author: Cesar Eduardo Barros <cesarb@cesarb.eti.br>
Date:   Mon Nov 25 22:00:41 2013 -0200

    crypto: more robust crypto_memneq
    
    commit fe8c8a126806fea4465c43d62a1f9d273a572bf5 upstream.
    
    [Only use the compiler.h portion of this patch, to get the
    OPTIMIZER_HIDE_VAR() macro, which we need for other -stable patches
    - gregkh]
    
    Disabling compiler optimizations can be fragile, since a new
    optimization could be added to -O0 or -Os that breaks the assumptions
    the code is making.
    
    Instead of disabling compiler optimizations, use a dummy inline assembly
    (based on RELOC_HIDE) to block the problematic kinds of optimization,
    while still allowing other optimizations to be applied to the code.
    
    The dummy inline assembly is added after every OR, and has the
    accumulator variable as its input and output. The compiler is forced to
    assume that the dummy inline assembly could both depend on the
    accumulator variable and change the accumulator variable, so it is
    forced to compute the value correctly before the inline assembly, and
    cannot assume anything about its value after the inline assembly.
    
    This change should be enough to make crypto_memneq work correctly (with
    data-independent timing) even if it is inlined at its call sites. That
    can be done later in a followup patch.
    
    Compile-tested on x86_64.
    
    Signed-off-by: Cesar Eduardo Barros <cesarb@cesarb.eti.br>
    Acked-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0af0e1dba97dc53b9f14795ca49b0b1b24aa0ce1
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Oct 8 23:44:00 2014 -0400

    fix misuses of f_count() in ppp and netlink
    
    commit 24dff96a37a2ca319e75a74d3929b2de22447ca6 upstream.
    
    we used to check for "nobody else could start doing anything with
    that opened file" by checking that refcount was 2 or less - one
    for descriptor table and one we'd acquired in fget() on the way to
    wherever we are.  That was race-prone (somebody else might have
    had a reference to descriptor table and do fget() just as we'd
    been checking) and it had become flat-out incorrect back when
    we switched to fget_light() on those codepaths - unlike fget(),
    it doesn't grab an extra reference unless the descriptor table
    is shared.  The same change allowed a race-free check, though -
    we are safe exactly when refcount is less than 2.
    
    It was a long time ago; pre-2.6.12 for ioctl() (the codepath leading
    to ppp one) and 2.6.17 for sendmsg() (netlink one).  OTOH,
    netlink hadn't grown that check until 3.9 and ppp used to live
    in drivers/net, not drivers/net/ppp until 3.1.  The bug existed
    well before that, though, and the same fix used to apply in old
    location of file.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f73dee2222e4b602c88419a19dd02ef896513f8
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Fri Aug 1 20:13:40 2014 +0100

    kill wbuf_queued/wbuf_dwork_lock
    
    commit 99358a1ca53e8e6ce09423500191396f0e6584d2 upstream.
    
    schedule_delayed_work() happening when the work is already pending is
    a cheap no-op.  Don't bother with ->wbuf_queued logics - it's both
    broken (cancelling ->wbuf_dwork leaves it set, as spotted by Jeff Harris)
    and pointless.  It's cheaper to let schedule_delayed_work() handle that
    case.
    
    Reported-by: Jeff Harris <jefftharris@gmail.com>
    Tested-by: Jeff Harris <jefftharris@gmail.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a58d9ee3e1b064e8b449177dedab4d2da162fdd0
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Oct 28 12:42:19 2014 +0100

    ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat mode
    
    commit 317168d0c766defd14b3d0e9c2c4a9a258b803ee upstream.
    
    In compat mode, we copy each field of snd_pcm_status struct but don't
    touch the reserved fields, and this leaves uninitialized values
    there.  Meanwhile the native ioctl does zero-clear the whole
    structure, so we should follow the same rule in compat mode, too.
    
    Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bcaf8f4d1aa458626c5563e60b3005ceea2327e5
Author: Dmitry Kasatkin <d.kasatkin@samsung.com>
Date:   Tue Oct 28 14:28:49 2014 +0200

    evm: check xattr value length and type in evm_inode_setxattr()
    
    commit 3b1deef6b1289a99505858a3b212c5b50adf0c2f upstream.
    
    evm_inode_setxattr() can be called with no value. The function does not
    check the length so that following command can be used to produce the
    kernel oops: setfattr -n security.evm FOO. This patch fixes it.
    
    Changes in v3:
    * there is no reason to return different error codes for EVM_XATTR_HMAC
      and non EVM_XATTR_HMAC. Remove unnecessary test then.
    
    Changes in v2:
    * testing for validity of xattr type
    
    [ 1106.396921] BUG: unable to handle kernel NULL pointer dereference at           (null)
    [ 1106.398192] IP: [<ffffffff812af7b8>] evm_inode_setxattr+0x2a/0x48
    [ 1106.399244] PGD 29048067 PUD 290d7067 PMD 0
    [ 1106.399953] Oops: 0000 [#1] SMP
    [ 1106.400020] Modules linked in: bridge stp llc evdev serio_raw i2c_piix4 button fuse
    [ 1106.400020] CPU: 0 PID: 3635 Comm: setxattr Not tainted 3.16.0-kds+ #2936
    [ 1106.400020] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    [ 1106.400020] task: ffff8800291a0000 ti: ffff88002917c000 task.ti: ffff88002917c000
    [ 1106.400020] RIP: 0010:[<ffffffff812af7b8>]  [<ffffffff812af7b8>] evm_inode_setxattr+0x2a/0x48
    [ 1106.400020] RSP: 0018:ffff88002917fd50  EFLAGS: 00010246
    [ 1106.400020] RAX: 0000000000000000 RBX: ffff88002917fdf8 RCX: 0000000000000000
    [ 1106.400020] RDX: 0000000000000000 RSI: ffffffff818136d3 RDI: ffff88002917fdf8
    [ 1106.400020] RBP: ffff88002917fd68 R08: 0000000000000000 R09: 00000000003ec1df
    [ 1106.400020] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800438a0a00
    [ 1106.400020] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    [ 1106.400020] FS:  00007f7dfa7d7740(0000) GS:ffff88005da00000(0000) knlGS:0000000000000000
    [ 1106.400020] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 1106.400020] CR2: 0000000000000000 CR3: 000000003763e000 CR4: 00000000000006f0
    [ 1106.400020] Stack:
    [ 1106.400020]  ffff8800438a0a00 ffff88002917fdf8 0000000000000000 ffff88002917fd98
    [ 1106.400020]  ffffffff812a1030 ffff8800438a0a00 ffff88002917fdf8 0000000000000000
    [ 1106.400020]  0000000000000000 ffff88002917fde0 ffffffff8116d08a ffff88002917fdc8
    [ 1106.400020] Call Trace:
    [ 1106.400020]  [<ffffffff812a1030>] security_inode_setxattr+0x5d/0x6a
    [ 1106.400020]  [<ffffffff8116d08a>] vfs_setxattr+0x6b/0x9f
    [ 1106.400020]  [<ffffffff8116d1e0>] setxattr+0x122/0x16c
    [ 1106.400020]  [<ffffffff811687e8>] ? mnt_want_write+0x21/0x45
    [ 1106.400020]  [<ffffffff8114d011>] ? __sb_start_write+0x10f/0x143
    [ 1106.400020]  [<ffffffff811687e8>] ? mnt_want_write+0x21/0x45
    [ 1106.400020]  [<ffffffff811687c0>] ? __mnt_want_write+0x48/0x4f
    [ 1106.400020]  [<ffffffff8116d3e6>] SyS_setxattr+0x6e/0xb0
    [ 1106.400020]  [<ffffffff81529da9>] system_call_fastpath+0x16/0x1b
    [ 1106.400020] Code: c3 0f 1f 44 00 00 55 48 89 e5 41 55 49 89 d5 41 54 49 89 fc 53 48 89 f3 48 c7 c6 d3 36 81 81 48 89 df e8 18 22 04 00 85 c0 75 07 <41> 80 7d 00 02 74 0d 48 89 de 4c 89 e7 e8 5a fe ff ff eb 03 83
    [ 1106.400020] RIP  [<ffffffff812af7b8>] evm_inode_setxattr+0x2a/0x48
    [ 1106.400020]  RSP <ffff88002917fd50>
    [ 1106.400020] CR2: 0000000000000000
    [ 1106.428061] ---[ end trace ae08331628ba3050 ]---
    
    Reported-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
    Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04157ab004f712e514bdfbd4f59c3a45f562496c
Author: Dexuan Cui <decui@microsoft.com>
Date:   Wed Oct 29 03:53:37 2014 -0700

    x86, pageattr: Prevent overflow in slow_virt_to_phys() for X86_PAE
    
    commit d1cd1210834649ce1ca6bafe5ac25d2f40331343 upstream.
    
    pte_pfn() returns a PFN of long (32 bits in 32-PAE), so "long <<
    PAGE_SHIFT" will overflow for PFNs above 4GB.
    
    Due to this issue, some Linux 32-PAE distros, running as guests on Hyper-V,
    with 5GB memory assigned, can't load the netvsc driver successfully and
    hence the synthetic network device can't work (we can use the kernel parameter
    mem=3000M to work around the issue).
    
    Cast pte_pfn() to phys_addr_t before shifting.
    
    Fixes: "commit d76565344512: x86, mm: Create slow_virt_to_phys()"
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: gregkh@linuxfoundation.org
    Cc: linux-mm@kvack.org
    Cc: olaf@aepfle.de
    Cc: apw@canonical.com
    Cc: jasowang@redhat.com
    Cc: dave.hansen@intel.com
    Cc: riel@redhat.com
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1414580017-27444-1-git-send-email-decui@microsoft.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 621be26198eba8272e702ccbd27648c6aae01bc0
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Fri Oct 31 18:08:45 2014 -0700

    x86_64, entry: Fix out of bounds read on sysenter
    
    commit 653bc77af60911ead1f423e588f54fc2547c4957 upstream.
    
    Rusty noticed a Really Bad Bug (tm) in my NT fix.  The entry code
    reads out of bounds, causing the NT fix to be unreliable.  But, and
    this is much, much worse, if your stack is somehow just below the
    top of the direct map (or a hole), you read out of bounds and crash.
    
    Excerpt from the crash:
    
    [    1.129513] RSP: 0018:ffff88001da4bf88  EFLAGS: 00010296
    
      2b:*    f7 84 24 90 00 00 00     testl  $0x4000,0x90(%rsp)
    
    That read is deterministically above the top of the stack.  I
    thought I even single-stepped through this code when I wrote it to
    check the offset, but I clearly screwed it up.
    
    Fixes: 8c7aa698baca ("x86_64, entry: Filter RFLAGS.NT on entry from userspace")
    Reported-by: Rusty Russell <rusty@ozlabs.org>
    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 b1a9c1e7969403e9d31ac335f4ebb43c9461ab59
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Wed Oct 1 11:49:04 2014 -0700

    x86_64, entry: Filter RFLAGS.NT on entry from userspace
    
    commit 8c7aa698baca5e8f1ba9edb68081f1e7a1abf455 upstream.
    
    The NT flag doesn't do anything in long mode other than causing IRET
    to #GP.  Oddly, CPL3 code can still set NT using popf.
    
    Entry via hardware or software interrupt clears NT automatically, so
    the only relevant entries are fast syscalls.
    
    If user code causes kernel code to run with NT set, then there's at
    least some (small) chance that it could cause trouble.  For example,
    user code could cause a call to EFI code with NT set, and who knows
    what would happen?  Apparently some games on Wine sometimes do
    this (!), and, if an IRET return happens, they will segfault.  That
    segfault cannot be handled, because signal delivery fails, too.
    
    This patch programs the CPU to clear NT on entry via SYSCALL (both
    32-bit and 64-bit, by my reading of the AMD APM), and it clears NT
    in software on entry via SYSENTER.
    
    To save a few cycles, this borrows a trick from Jan Beulich in Xen:
    it checks whether NT is set before trying to clear it.  As a result,
    it seems to have very little effect on SYSENTER performance on my
    machine.
    
    There's another minor bug fix in here: it looks like the CFI
    annotations were wrong if CONFIG_AUDITSYSCALL=n.
    
    Testers beware: on Xen, SYSENTER with NT set turns into a GPF.
    
    I haven't touched anything on 32-bit kernels.
    
    The syscall mask change comes from a variant of this patch by Anish
    Bhatt.
    
    Note to stable maintainers: there is no known security issue here.
    A misguided program can set NT and cause the kernel to try and fail
    to deliver SIGSEGV, crashing the program.  This patch fixes Far Cry
    on Wine: https://bugs.winehq.org/show_bug.cgi?id=33275
    
    Reported-by: Anish Bhatt <anish@chelsio.com>
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/395749a5d39a29bd3e4b35899cf3a3c1340e5595.1412189265.git.luto@amacapital.net
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f03d6fef32533a2d62d65656afba90ccd3a57d6
Author: H. Peter Anvin <hpa@linux.intel.com>
Date:   Sat Apr 27 16:10:11 2013 -0700

    x86, flags: Rename X86_EFLAGS_BIT1 to X86_EFLAGS_FIXED
    
    commit 1adfa76a95fe4444124a502f7cc858a39d5b8e01 upstream.
    
    Bit 1 in the x86 EFLAGS is always set.  Name the macro something that
    actually tries to explain what it is all about, rather than being a
    tautology.
    
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Gleb Natapov <gleb@redhat.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Link: http://lkml.kernel.org/n/tip-f10rx5vjjm6tfnt8o1wseb3v@git.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb5b6e7ecfefa65efd7280f4824741ac76e10c4b
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Tue Sep 2 19:57:13 2014 +0200

    x86, fpu: shift drop_init_fpu() from save_xstate_sig() to handle_signal()
    
    commit 66463db4fc5605d51c7bb81d009d5bf30a783a2c upstream.
    
    save_xstate_sig()->drop_init_fpu() doesn't look right. setup_rt_frame()
    can fail after that, in this case the next setup_rt_frame() triggered
    by SIGSEGV won't save fpu simply because the old state was lost. This
    obviously mean that fpu won't be restored after sys_rt_sigreturn() from
    SIGSEGV handler.
    
    Shift drop_init_fpu() into !failed branch in handle_signal().
    
    Test-case (needs -O2):
    
    	#include <stdio.h>
    	#include <signal.h>
    	#include <unistd.h>
    	#include <sys/syscall.h>
    	#include <sys/mman.h>
    	#include <pthread.h>
    	#include <assert.h>
    
    	volatile double D;
    
    	void test(double d)
    	{
    		int pid = getpid();
    
    		for (D = d; D == d; ) {
    			/* sys_tkill(pid, SIGHUP); asm to avoid save/reload
    			 * fp regs around "C" call */
    			asm ("" : : "a"(200), "D"(pid), "S"(1));
    			asm ("syscall" : : : "ax");
    		}
    
    		printf("ERR!!\n");
    	}
    
    	void sigh(int sig)
    	{
    	}
    
    	char altstack[4096 * 10] __attribute__((aligned(4096)));
    
    	void *tfunc(void *arg)
    	{
    		for (;;) {
    			mprotect(altstack, sizeof(altstack), PROT_READ);
    			mprotect(altstack, sizeof(altstack), PROT_READ|PROT_WRITE);
    		}
    	}
    
    	int main(void)
    	{
    		stack_t st = {
    			.ss_sp = altstack,
    			.ss_size = sizeof(altstack),
    			.ss_flags = SS_ONSTACK,
    		};
    
    		struct sigaction sa = {
    			.sa_handler = sigh,
    		};
    
    		pthread_t pt;
    
    		sigaction(SIGSEGV, &sa, NULL);
    		sigaltstack(&st, NULL);
    		sa.sa_flags = SA_ONSTACK;
    		sigaction(SIGHUP, &sa, NULL);
    
    		pthread_create(&pt, NULL, tfunc, NULL);
    
    		test(123.456);
    		return 0;
    	}
    
    Reported-by: Bean Anderson <bean@azulsystems.com>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Link: http://lkml.kernel.org/r/20140902175713.GA21646@redhat.com
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b888e3d442069e3107d9b4a43c1321e4d555b6cd
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Tue Sep 2 19:57:17 2014 +0200

    x86, fpu: __restore_xstate_sig()->math_state_restore() needs preempt_disable()
    
    commit df24fb859a4e200d9324e2974229fbb7adf00aef upstream.
    
    Add preempt_disable() + preempt_enable() around math_state_restore() in
    __restore_xstate_sig(). Otherwise __switch_to() after __thread_fpu_begin()
    can overwrite fpu->state we are going to restore.
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Link: http://lkml.kernel.org/r/20140902175717.GA21649@redhat.com
    Reviewed-by: Suresh Siddha <sbsiddha@gmail.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6507b92a66c9551b0555edc5a92e27027c3b990e
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Sep 7 21:05:05 2014 +0100

    x86: Reject x32 executables if x32 ABI not supported
    
    commit 0e6d3112a4e95d55cf6dca88f298d5f4b8f29bd1 upstream.
    
    It is currently possible to execve() an x32 executable on an x86_64
    kernel that has only ia32 compat enabled.  However all its syscalls
    will fail, even _exit().  This usually causes it to segfault.
    
    Change the ELF compat architecture check so that x32 executables are
    rejected if we don't support the x32 ABI.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Link: http://lkml.kernel.org/r/1410120305.6822.9.camel@decadent.org.uk
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6cbdf1151168e44f93866f6af751442b937f8989
Author: Jan Kara <jack@suse.cz>
Date:   Wed Oct 1 21:49:18 2014 -0400

    vfs: fix data corruption when blocksize < pagesize for mmaped data
    
    commit 90a8020278c1598fafd071736a0846b38510309c upstream.
    
    ->page_mkwrite() is used by filesystems to allocate blocks under a page
    which is becoming writeably mmapped in some process' address space. This
    allows a filesystem to return a page fault if there is not enough space
    available, user exceeds quota or similar problem happens, rather than
    silently discarding data later when writepage is called.
    
    However VFS fails to call ->page_mkwrite() in all the cases where
    filesystems need it when blocksize < pagesize. For example when
    blocksize = 1024, pagesize = 4096 the following is problematic:
      ftruncate(fd, 0);
      pwrite(fd, buf, 1024, 0);
      map = mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0);
      map[0] = 'a';       ----> page_mkwrite() for index 0 is called
      ftruncate(fd, 10000); /* or even pwrite(fd, buf, 1, 10000) */
      mremap(map, 1024, 10000, 0);
      map[4095] = 'a';    ----> no page_mkwrite() called
    
    At the moment ->page_mkwrite() is called, filesystem can allocate only
    one block for the page because i_size == 1024. Otherwise it would create
    blocks beyond i_size which is generally undesirable. But later at
    ->writepage() time, we also need to store data at offset 4095 but we
    don't have block allocated for it.
    
    This patch introduces a helper function filesystems can use to have
    ->page_mkwrite() called at all the necessary moments.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f1aec53eded9399e6b44cab8c9aa36c65a8f402
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Wed Jul 16 15:22:29 2014 +0300

    UBIFS: fix free log space calculation
    
    commit ba29e721eb2df6df8f33c1f248388bb037a47914 upstream.
    
    Hu (hujianyang <hujianyang@huawei.com>) discovered an issue in the
    'empty_log_bytes()' function, which calculates how many bytes are left in the
    log:
    
    "
    If 'c->lhead_lnum + 1 == c->ltail_lnum' and 'c->lhead_offs == c->leb_size', 'h'
    would equalent to 't' and 'empty_log_bytes()' would return 'c->log_bytes'
    instead of 0.
    "
    
    At this point it is not clear what would be the consequences of this, and
    whether this may lead to any problems, but this patch addresses the issue just
    in case.
    
    Tested-by: hujianyang <hujianyang@huawei.com>
    Reported-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 918ecf66a11bb3bdc818a264319dcaf984c11a3f
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Sun Jun 29 17:00:45 2014 +0300

    UBIFS: fix a race condition
    
    commit 052c28073ff26f771d44ef33952a41d18dadd255 upstream.
    
    Hu (hujianyang@huawei.com) discovered a race condition which may lead to a
    situation when UBIFS is unable to mount the file-system after an unclean
    reboot. The problem is theoretical, though.
    
    In UBIFS, we have the log, which basically a set of LEBs in a certain area. The
    log has the tail and the head.
    
    Every time user writes data to the file-system, the UBIFS journal grows, and
    the log grows as well, because we append new reference nodes to the head of the
    log. So the head moves forward all the time, while the log tail stays at the
    same position.
    
    At any time, the UBIFS master node points to the tail of the log. When we mount
    the file-system, we scan the log, and we always start from its tail, because
    this is where the master node points to. The only occasion when the tail of the
    log changes is the commit operation.
    
    The commit operation has 2 phases - "commit start" and "commit end". The former
    is relatively short, and does not involve much I/O. During this phase we mostly
    just build various in-memory lists of the things which have to be written to
    the flash media during "commit end" phase.
    
    During the commit start phase, what we do is we "clean" the log. Indeed, the
    commit operation will index all the data in the journal, so the entire journal
    "disappears", and therefore the data in the log become unneeded. So we just
    move the head of the log to the next LEB, and write the CS node there. This LEB
    will be the tail of the new log when the commit operation finishes.
    
    When the "commit start" phase finishes, users may write more data to the
    file-system, in parallel with the ongoing "commit end" operation. At this point
    the log tail was not changed yet, it is the same as it had been before we
    started the commit. The log head keeps moving forward, though.
    
    The commit operation now needs to write the new master node, and the new master
    node should point to the new log tail. After this the LEBs between the old log
    tail and the new log tail can be unmapped and re-used again.
    
    And here is the possible problem. We do 2 operations: (a) We first update the
    log tail position in memory (see 'ubifs_log_end_commit()'). (b) And then we
    write the master node (see the big lock of code in 'do_commit()').
    
    But nothing prevents the log head from moving forward between (a) and (b), and
    the log head may "wrap" now to the old log tail. And when the "wrap" happens,
    the contends of the log tail gets erased. Now a power cut happens and we are in
    trouble. We end up with the old master node pointing to the old tail, which was
    erased. And replay fails because it expects the master node to point to the
    correct log tail at all times.
    
    This patch merges the abovementioned (a) and (b) operations by moving the master
    node change code to the 'ubifs_log_end_commit()' function, so that it runs with
    the log mutex locked, which will prevent the log from being changed benween
    operations (a) and (b).
    
    Reported-by: hujianyang <hujianyang@huawei.com>
    Tested-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4e70e76860cc84cebd719fbd89637fdd226cf94
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Sun Jun 29 16:55:02 2014 +0300

    UBIFS: remove mst_mutex
    
    commit 07e19dff63e3d5d6500d831e36554ac9b1b0560e upstream.
    
    The 'mst_mutex' is not needed since because 'ubifs_write_master()' is only
    called on the mount path and commit path. The mount path is sequential and
    there is no parallelism, and the commit path is also serialized - there is only
    one commit going on at a time.
    
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d016a08a18158fd7002ad24aea8a0224ce2a3d0c
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sat May 17 20:56:38 2014 +0900

    fs: Fix theoretical division by 0 in super_cache_scan().
    
    commit 475d0db742e3755c6b267f48577ff7cbb7dfda0d upstream.
    
    total_objects could be 0 and is used as a denom.
    
    While total_objects is a "long", total_objects == 0 unlikely happens for
    3.12 and later kernels because 32-bit architectures would not be able to
    hold (1 << 32) objects. However, total_objects == 0 may happen for kernels
    between 3.1 and 3.11 because total_objects in prune_super() was an "int"
    and (e.g.) x86_64 architecture might be able to hold (1 << 32) objects.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f83813a8aff1f5af9f4a02d5ce0a29be40f45a41
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Sun Jul 27 13:00:41 2014 -0400

    fs: make cont_expand_zero interruptible
    
    commit c2ca0fcd202863b14bd041a7fece2e789926c225 upstream.
    
    This patch makes it possible to kill a process looping in
    cont_expand_zero. A process may spend a lot of time in this function, so
    it is desirable to be able to kill it.
    
    It happened to me that I wanted to copy a piece data from the disk to a
    file. By mistake, I used the "seek" parameter to dd instead of "skip". Due
    to the "seek" parameter, dd attempted to extend the file and became stuck
    doing so - the only possibility was to reset the machine or wait many
    hours until the filesystem runs out of space and cont_expand_zero fails.
    We need this patch to be able to terminate the process.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6e03bbd143af13a8bff1322c07da2d2ef894815
Author: Roger Tseng <rogerable@realtek.com>
Date:   Fri Aug 15 14:06:00 2014 +0800

    mmc: rtsx_pci_sdmmc: fix incorrect last byte in R2 response
    
    commit d1419d50c1bf711e9fd27b516a739c86b23f7cf9 upstream.
    
    Current code erroneously fill the last byte of R2 response with an undefined
    value. In addition, the controller actually 'offloads' the last byte
    (CRC7, end bit) while receiving R2 response and thus it's impossible to get the
    actual value. This could cause mmc stack to obtain inconsistent CID from the
    same card after resume and misidentify it as a different card.
    
    Fix by assigning dummy CRC and end bit: {7'b0, 1} = 0x1 to the last byte of R2.
    
    Fixes: ff984e57d36e ("mmc: Add realtek pcie sdmmc host driver")
    Signed-off-by: Roger Tseng <rogerable@realtek.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa6709b913588a07cc0286c9ca52f17e5276dd6b
Author: Ondrej Zary <linux@rainbow-software.org>
Date:   Sat Sep 27 00:04:46 2014 +0200

    libata-sff: Fix controllers with no ctl port
    
    commit 6d8ca28fa688a9354bc9fbc935bdaeb3651b6677 upstream.
    
    Currently, ata_sff_softreset is skipped for controllers with no ctl port.
    But that also skips ata_sff_dev_classify required for device detection.
    This means that libata is currently broken on controllers with no ctl port.
    
    No device connected:
    [    1.872480] pata_isapnp 01:01.02: activated
    [    1.889823] scsi2 : pata_isapnp
    [    1.890109] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    6.888110] ata3.01: qc timeout (cmd 0xec)
    [    6.888179] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   16.888085] ata3.01: qc timeout (cmd 0xec)
    [   16.888147] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   46.888086] ata3.01: qc timeout (cmd 0xec)
    [   46.888148] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   51.888100] ata3.00: qc timeout (cmd 0xec)
    [   51.888160] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   61.888079] ata3.00: qc timeout (cmd 0xec)
    [   61.888141] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   91.888089] ata3.00: qc timeout (cmd 0xec)
    [   91.888152] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x5)
    
    ATAPI device connected:
    [    1.882061] pata_isapnp 01:01.02: activated
    [    1.893430] scsi2 : pata_isapnp
    [    1.893719] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    6.892107] ata3.01: qc timeout (cmd 0xec)
    [    6.892171] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   16.892079] ata3.01: qc timeout (cmd 0xec)
    [   16.892138] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   46.892079] ata3.01: qc timeout (cmd 0xec)
    [   46.892138] ata3.01: failed to IDENTIFY (I/O error, err_mask=0x5)
    [   46.908586] ata3.00: ATAPI: ACER CD-767E/O, V1.5X, max PIO2, CDB intr
    [   46.924570] ata3.00: configured for PIO0 (device error ignored)
    [   46.926295] scsi 2:0:0:0: CD-ROM            ACER     CD-767E/O        1.5X PQ: 0 ANSI: 5
    [   46.984519] sr0: scsi3-mmc drive: 6x/6x xa/form2 tray
    [   46.984592] cdrom: Uniform CD-ROM driver Revision: 3.20
    
    So don't skip ata_sff_softreset, just skip the reset part of ata_bus_softreset
    if the ctl port is not available.
    
    This makes IDE port on ES968 behave correctly:
    
    No device connected:
    [    4.670888] pata_isapnp 01:01.02: activated
    [    4.673207] scsi host2: pata_isapnp
    [    4.673675] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    7.081840] Adding 2541652k swap on /dev/sda2.  Priority:-1 extents:1 across:2541652k
    
    ATAPI device connected:
    [    4.704362] pata_isapnp 01:01.02: activated
    [    4.706620] scsi host2: pata_isapnp
    [    4.706877] ata3: PATA max PIO0 cmd 0x1e8 ctl 0x0 irq 11
    [    4.872782] ata3.00: ATAPI: ACER CD-767E/O, V1.5X, max PIO2, CDB intr
    [    4.888673] ata3.00: configured for PIO0 (device error ignored)
    [    4.893984] scsi 2:0:0:0: CD-ROM            ACER     CD-767E/O        1.5X PQ: 0 ANSI: 5
    [    7.015578] Adding 2541652k swap on /dev/sda2.  Priority:-1 extents:1 across:2541652k
    
    Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd1e981a08ca5da000d7fb2c384a6b02e9b5b08b
Author: Scott Carter <ccscott@funsoft.com>
Date:   Wed Sep 24 18:13:09 2014 -0700

    pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller
    
    commit 37017ac6849e772e67dd187ba2fbd056c4afa533 upstream.
    
    The Broadcom OSB4 IDE Controller (vendor and device IDs: 1166:0211)
    does not support 64-KB DMA transfers.
    Whenever a 64-KB DMA transfer is attempted,
    the transfer fails and messages similar to the following
    are written to the console log:
    
       [ 2431.851125] sr 0:0:0:0: [sr0] Unhandled sense code
       [ 2431.851139] sr 0:0:0:0: [sr0]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
       [ 2431.851152] sr 0:0:0:0: [sr0]  Sense Key : Hardware Error [current]
       [ 2431.851166] sr 0:0:0:0: [sr0]  Add. Sense: Logical unit communication time-out
       [ 2431.851182] sr 0:0:0:0: [sr0] CDB: Read(10): 28 00 00 00 76 f4 00 00 40 00
       [ 2431.851210] end_request: I/O error, dev sr0, sector 121808
    
    When the libata and pata_serverworks modules
    are recompiled with ATA_DEBUG and ATA_VERBOSE_DEBUG defined in libata.h,
    the 64-KB transfer size in the scatter-gather list can be seen
    in the console log:
    
       [ 2664.897267] sr 9:0:0:0: [sr0] Send:
       [ 2664.897274] 0xf63d85e0
       [ 2664.897283] sr 9:0:0:0: [sr0] CDB:
       [ 2664.897288] Read(10): 28 00 00 00 7f b4 00 00 40 00
       [ 2664.897319] buffer = 0xf6d6fbc0, bufflen = 131072, queuecommand 0xf81b7700
       [ 2664.897331] ata_scsi_dump_cdb: CDB (1:0,0,0) 28 00 00 00 7f b4 00 00 40
       [ 2664.897338] ata_scsi_translate: ENTER
       [ 2664.897345] ata_sg_setup: ENTER, ata1
       [ 2664.897356] ata_sg_setup: 3 sg elements mapped
       [ 2664.897364] ata_bmdma_fill_sg: PRD[0] = (0x66FD2000, 0xE000)
       [ 2664.897371] ata_bmdma_fill_sg: PRD[1] = (0x65000000, 0x10000)
       ------------------------------------------------------> =======
       [ 2664.897378] ata_bmdma_fill_sg: PRD[2] = (0x66A10000, 0x2000)
       [ 2664.897386] ata1: ata_dev_select: ENTER, device 0, wait 1
       [ 2664.897422] ata_sff_tf_load: feat 0x1 nsect 0x0 lba 0x0 0x0 0xFC
       [ 2664.897428] ata_sff_tf_load: device 0xA0
       [ 2664.897448] ata_sff_exec_command: ata1: cmd 0xA0
       [ 2664.897457] ata_scsi_translate: EXIT
       [ 2664.897462] leaving scsi_dispatch_cmnd()
       [ 2664.897497] Doing sr request, dev = sr0, block = 0
       [ 2664.897507] sr0 : reading 64/256 512 byte blocks.
       [ 2664.897553] ata_sff_hsm_move: ata1: protocol 7 task_state 1 (dev_stat 0x58)
       [ 2664.897560] atapi_send_cdb: send cdb
       [ 2666.910058] ata_bmdma_port_intr: ata1: host_stat 0x64
       [ 2666.910079] __ata_sff_port_intr: ata1: protocol 7 task_state 3
       [ 2666.910093] ata_sff_hsm_move: ata1: protocol 7 task_state 3 (dev_stat 0x51)
       [ 2666.910101] ata_sff_hsm_move: ata1: protocol 7 task_state 4 (dev_stat 0x51)
       [ 2666.910129] sr 9:0:0:0: [sr0] Done:
       [ 2666.910136] 0xf63d85e0 TIMEOUT
    
    lspci shows that the driver used for the Broadcom OSB4 IDE Controller is
    pata_serverworks:
    
       00:0f.1 IDE interface: Broadcom OSB4 IDE Controller (prog-if 8e [Master SecP SecO PriP])
               Flags: bus master, medium devsel, latency 64
               [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
               [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
               I/O ports at 0170 [size=8]
               I/O ports at 0374 [size=4]
               I/O ports at 1440 [size=16]
               Kernel driver in use: pata_serverworks
    
    The pata_serverworks driver supports five distinct device IDs,
    one being the OSB4 and the other four belonging to the CSB series.
    The CSB series appears to support 64-KB DMA transfers,
    as tests on a machine with an SAI2 motherboard
    containing a Broadcom CSB5 IDE Controller (vendor and device IDs: 1166:0212)
    showed no problems with 64-KB DMA transfers.
    
    This problem was first discovered when attempting to install openSUSE
    from a DVD on a machine with an STL2 motherboard.
    Using the pata_serverworks module,
    older releases of openSUSE will not install at all due to the timeouts.
    Releases of openSUSE prior to 11.3 can be installed by disabling
    the pata_serverworks module using the brokenmodules boot parameter,
    which causes the serverworks module to be used instead.
    Recent releases of openSUSE (12.2 and later) include better error recovery and
    will install, though very slowly.
    On all openSUSE releases, the problem can be recreated
    on a machine containing a Broadcom OSB4 IDE Controller
    by mounting an install DVD and running a command similar to the following:
    
       find /mnt -type f -print | xargs cat > /dev/null
    
    The patch below corrects the problem.
    Similar to the other ATA drivers that do not support 64-KB DMA transfers,
    the patch changes the ata_port_operations qc_prep vector to point to a routine
    that breaks any 64-KB segment into two 32-KB segments and
    changes the scsi_host_template sg_tablesize element to reduce by half
    the number of scatter/gather elements allowed.
    These two changes affect only the OSB4.
    
    Signed-off-by: Scott Carter <ccscott@funsoft.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8eef30a98711910beba01de2cc382d124b2cb7a9
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sun Sep 21 15:04:53 2014 -0700

    Revert "percpu: free percpu allocation info for uniprocessor system"
    
    commit bb2e226b3bef596dd56be97df655d857b4603923 upstream.
    
    This reverts commit 3189eddbcafc ("percpu: free percpu allocation info for
    uniprocessor system").
    
    The commit causes a hang with a crisv32 image. This may be an architecture
    problem, but at least for now the revert is necessary to be able to boot a
    crisv32 image.
    
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Honggang Li <enjoymindful@gmail.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Fixes: 3189eddbcafc ("percpu: free percpu allocation info for uniprocessor system")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d8912138519b31539cf5b6a4471d02dbcf2bd1a
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Tue Sep 23 12:26:20 2014 -0400

    lockd: Try to reconnect if statd has moved
    
    commit 173b3afceebe76fa2205b2c8808682d5b541fe3c upstream.
    
    If rpc.statd is restarted, upcalls to monitor hosts can fail with
    ECONNREFUSED.  In that case force a lookup of statd's new port and retry the
    upcall.
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6ca437d7c4e250e454ed29e0e66d47fdc430d1d
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Fri Oct 31 03:10:31 2014 +0000

    drivers/net: macvtap and tun depend on INET
    
    [ Upstream commit de11b0e8c569b96c2cf6a811e3805b7aeef498a3 ]
    
    These drivers now call ipv6_proxy_select_ident(), which is defined
    only if CONFIG_INET is enabled.  However, they have really depended
    on CONFIG_INET for as long as they have allowed sending GSO packets
    from userland.
    
    Reported-by: kbuild test robot <fengguang.wu@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Fixes: f43798c27684 ("tun: Allow GSO using virtio_net_hdr")
    Fixes: b9fb9ee07e67 ("macvtap: add GSO/csum offload support")
    Fixes: 5188cd44c55d ("drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a8955adfba0821f5b354d400303436b6e4b2e13
Author: Vasily Averin <vvs@parallels.com>
Date:   Wed Oct 15 16:24:02 2014 +0400

    ipv4: dst_entry leak in ip_send_unicast_reply()
    
    [ Upstream commit 4062090e3e5caaf55bed4523a69f26c3265cc1d2 ]
    
    ip_setup_cork() called inside ip_append_data() steals dst entry from rt to cork
    and in case errors in __ip_append_data() nobody frees stolen dst entry
    
    Fixes: 2e77d89b2fa8 ("net: avoid a pair of dst_hold()/dst_release() in ip_append_data()")
    Signed-off-by: Vasily Averin <vvs@parallels.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 9744aac69371ecac7ac6bef8a7a4a65d4e949dfa
Author: Ian Morgan <imorgan@primordial.ca>
Date:   Sun Oct 19 08:05:13 2014 -0400

    ax88179_178a: fix bonding failure
    
    [ Upstream commit 95ff88688781db2f64042e69bd499e518bbb36e5 ]
    
    The following patch fixes a bug which causes the ax88179_178a driver to be
    incapable of being added to a bond.
    
    When I brought up the issue with the bonding maintainers, they indicated
    that the real problem was with the NIC driver which must return zero for
    success (of setting the MAC address). I see that several other NIC drivers
    follow that pattern by either simply always returing zero, or by passing
    through a negative (error) result while rewriting any positive return code
    to zero. With that same philisophy applied to the ax88179_178a driver, it
    allows it to work correctly with the bonding driver.
    
    I believe this is suitable for queuing in -stable, as it's a small, simple,
    and obvious fix that corrects a defect with no other known workaround.
    
    This patch is against vanilla 3.17(.0).
    
    Signed-off-by: Ian Morgan <imorgan@primordial.ca>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4449361e6feca3caa91749ad3f8333f9ac5502ab
Author: Jiri Pirko <jiri@resnulli.us>
Date:   Mon Oct 13 16:34:10 2014 +0200

    ipv4: fix nexthop attlen check in fib_nh_match
    
    [ Upstream commit f76936d07c4eeb36d8dbb64ebd30ab46ff85d9f7 ]
    
    fib_nh_match does not match nexthops correctly. Example:
    
    ip route add 172.16.10/24 nexthop via 192.168.122.12 dev eth0 \
                              nexthop via 192.168.122.13 dev eth0
    ip route del 172.16.10/24 nexthop via 192.168.122.14 dev eth0 \
                              nexthop via 192.168.122.15 dev eth0
    
    Del command is successful and route is removed. After this patch
    applied, the route is correctly matched and result is:
    RTNETLINK answers: No such process
    
    Please consider this for stable trees as well.
    
    Fixes: 4e902c57417c4 ("[IPv4]: FIB configuration using struct fib_config")
    Signed-off-by: Jiri Pirko <jiri@resnulli.us>
    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 3ad3add775181f56f51ed14324ed4e7f1c9d3d1e
Author: Rabin Vincent <rabin@rab.in>
Date:   Wed Oct 29 23:06:58 2014 +0100

    tracing/syscalls: Ignore numbers outside NR_syscalls' range
    
    commit 086ba77a6db00ed858ff07451bedee197df868c9 upstream.
    
    ARM has some private syscalls (for example, set_tls(2)) which lie
    outside the range of NR_syscalls.  If any of these are called while
    syscall tracing is being performed, out-of-bounds array access will
    occur in the ftrace and perf sys_{enter,exit} handlers.
    
     # trace-cmd record -e raw_syscalls:* true && trace-cmd report
     ...
     true-653   [000]   384.675777: sys_enter:            NR 192 (0, 1000, 3, 4000022, ffffffff, 0)
     true-653   [000]   384.675812: sys_exit:             NR 192 = 1995915264
     true-653   [000]   384.675971: sys_enter:            NR 983045 (76f74480, 76f74000, 76f74b28, 76f74480, 76f76f74, 1)
     true-653   [000]   384.675988: sys_exit:             NR 983045 = 0
     ...
    
     # trace-cmd record -e syscalls:* true
     [   17.289329] Unable to handle kernel paging request at virtual address aaaaaace
     [   17.289590] pgd = 9e71c000
     [   17.289696] [aaaaaace] *pgd=00000000
     [   17.289985] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
     [   17.290169] Modules linked in:
     [   17.290391] CPU: 0 PID: 704 Comm: true Not tainted 3.18.0-rc2+ #21
     [   17.290585] task: 9f4dab00 ti: 9e710000 task.ti: 9e710000
     [   17.290747] PC is at ftrace_syscall_enter+0x48/0x1f8
     [   17.290866] LR is at syscall_trace_enter+0x124/0x184
    
    Fix this by ignoring out-of-NR_syscalls-bounds syscall numbers.
    
    Commit cd0980fc8add "tracing: Check invalid syscall nr while tracing syscalls"
    added the check for less than zero, but it should have also checked
    for greater than NR_syscalls.
    
    Link: http://lkml.kernel.org/p/1414620418-29472-1-git-send-email-rabin@rab.in
    
    Fixes: cd0980fc8add "tracing: Check invalid syscall nr while tracing syscalls"
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>