commit 4301b7a8fe14a787fbf0bb9cad16b623f45956f6
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jan 9 12:25:44 2014 -0800

    Linux 3.12.7

commit 7e686e0c96b4e8f10ffbe0d77d8ad3826a8827e5
Author: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Date:   Thu Jan 2 12:58:53 2014 -0800

    sh: add EXPORT_SYMBOL(min_low_pfn) and EXPORT_SYMBOL(max_low_pfn) to sh_ksyms_32.c
    
    commit ad70b029d2c678386384bd72c7fa2705c449b518 upstream.
    
    Min_low_pfn and max_low_pfn were used in pfn_valid macro if defined
    CONFIG_FLATMEM.  When the functions that use the pfn_valid is used in
    driver module, max_low_pfn and min_low_pfn is to undefined, and fail to
    build.
    
      ERROR: "min_low_pfn" [drivers/block/aoe/aoe.ko] undefined!
      ERROR: "max_low_pfn" [drivers/block/aoe/aoe.ko] undefined!
      make[2]: *** [__modpost] Error 1
      make[1]: *** [modules] Error 2
    
    This patch fix this problem.
    
    Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
    Cc: Kuninori Morimoto <kuninori.morimoto.gx@gmail.com>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: Geert Uytterhoeven <geert@linux-m68k.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 adf6f9b430bb40d46559e254f4b73558fabba1d1
Author: Eric Whitney <enwlinux@gmail.com>
Date:   Mon Jan 6 14:00:23 2014 -0500

    ext4: fix bigalloc regression
    
    commit d0abafac8c9162f39c4f6b2f8141b772a09b3770 upstream.
    
    Commit f5a44db5d2 introduced a regression on filesystems created with
    the bigalloc feature (cluster size > blocksize).  It causes xfstests
    generic/006 and /013 to fail with an unexpected JBD2 failure and
    transaction abort that leaves the test file system in a read only state.
    Other xfstests run on bigalloc file systems are likely to fail as well.
    
    The cause is the accidental use of a cluster mask where a cluster
    offset was needed in ext4_ext_map_blocks().
    
    Signed-off-by: Eric Whitney <enwlinux@gmail.com>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ac9b214d81c92fc119c6ffabc21464345eb21e2
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Tue Dec 31 13:39:42 2013 +0100

    ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug
    
    commit f244d8b623dae7a7bc695b0336f67729b95a9736 upstream.
    
    The changes in the ACPI-based PCI hotplug (ACPIPHP) subsystem made
    during the 3.12 development cycle uncovered a problem with VGA
    switcheroo that on some systems, when the device-specific method
    (ATPX in the radeon case, _DSM in the nouveau case) is used to turn
    off the discrete graphics, the BIOS generates ACPI hotplug events for
    that device and those events cause ACPIPHP to attempt to remove the
    device from the system (they are events for a device that was present
    previously and is not present any more, so that's what should be done
    according to the spec).  Then, the system stops functioning correctly.
    
    Since the hotplug events in question were simply silently ignored
    previously, the least intrusive way to address that problem is to
    make ACPIPHP ignore them again.  For this purpose, introduce a new
    ACPI device flag, no_hotplug, and modify ACPIPHP to ignore hotplug
    events for PCI devices whose ACPI companions have that flag set.
    Next, make the radeon and nouveau switcheroo detection code set the
    no_hotplug flag for the discrete graphics' ACPI companion.
    
    Fixes: bbd34fcdd1b2 (ACPI / hotplug / PCI: Register all devices under the given bridge)
    References: https://bugzilla.kernel.org/show_bug.cgi?id=61891
    References: https://bugzilla.kernel.org/show_bug.cgi?id=64891
    Reported-and-tested-by: Mike Lothian <mike@fireburn.co.uk>
    Reported-and-tested-by: <madcatx@atlas.cz>
    Reported-and-tested-by: Joaquín Aramendía <samsagax@gmail.com>
    Cc: Alex Deucher <alexdeucher@gmail.com>
    Cc: Dave Airlie <airlied@linux.ie>
    Cc: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d34e66169ab180cc0db68a2cef91ead1f2929563
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Tue Sep 3 08:32:00 2013 +0800

    nouveau_acpi: convert acpi_get_handle() to acpi_has_method()
    
    commit 187b5b5d520c2318a1f88fb8d8913a9d7fbf7d92 upstream.
    
    acpi_has_method() is a new ACPI API introduced to check
    the existence of an ACPI control method.
    
    It can be used to replace acpi_get_handle() in the case that
    1. the calling function doesn't need the ACPI handle of the control method.
    and
    2. the calling function doesn't care the reason why the method is unavailable.
    
    Convert acpi_get_handle() to acpi_has_method()
    in drivers/gpu/drm/nouveau/nouveau_acpi.c in this patch.
    
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    CC: Ben Skeggs <bskeggs@redhat.com>
    CC: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b9a704149ea2a1fe2679ffa2ed7c8d692e2b660
Author: Benjamin LaHaise <bcrl@kvack.org>
Date:   Sat Dec 21 17:56:08 2013 -0500

    aio/migratepages: make aio migrate pages sane
    
    commit 8e321fefb0e60bae4e2a28d20fc4fa30758d27c6 upstream.
    
    The arbitrary restriction on page counts offered by the core
    migrate_page_move_mapping() code results in rather suspicious looking
    fiddling with page reference counts in the aio_migratepage() operation.
    To fix this, make migrate_page_move_mapping() take an extra_count parameter
    that allows aio to tell the code about its own reference count on the page
    being migrated.
    
    While cleaning up aio_migratepage(), make it validate that the old page
    being passed in is actually what aio_migratepage() expects to prevent
    misbehaviour in the case of races.
    
    Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25c36e26d6a1021276330142f4c495235d6970de
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Dec 20 05:11:12 2013 +0900

    aio: clean up and fix aio_setup_ring page mapping
    
    commit 3dc9acb67600393249a795934ccdfc291a200e6b upstream.
    
    Since commit 36bc08cc01709 ("fs/aio: Add support to aio ring pages
    migration") the aio ring setup code has used a special per-ring backing
    inode for the page allocations, rather than just using random anonymous
    pages.
    
    However, rather than remembering the pages as it allocated them, it
    would allocate the pages, insert them into the file mapping (dirty, so
    that they couldn't be free'd), and then forget about them.  And then to
    look them up again, it would mmap the mapping, and then use
    "get_user_pages()" to get back an array of the pages we just created.
    
    Now, not only is that incredibly inefficient, it also leaked all the
    pages if the mmap failed (which could happen due to excessive number of
    mappings, for example).
    
    So clean it all up, making it much more straightforward.  Also remove
    some left-overs of the previous (broken) mm_populate() usage that was
    removed in commit d6c355c7dabc ("aio: fix race in ring buffer page
    lookup introduced by page migration support") but left the pointless and
    now misleading MAP_POPULATE flag around.
    
    Tested-and-acked-by: Benjamin LaHaise <bcrl@kvack.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b8f3096911f5e0c3bf7ec8739e181247e1fbc4f
Author: Dinh Nguyen <dinguyen@altera.com>
Date:   Tue Dec 10 19:49:18 2013 +0100

    clocksource: dw_apb_timer_of: Fix support for dts binding "snps,dw-apb-timer"
    
    commit 9ab4727c1d41e50b67aecde4bf11879560a3ca78 upstream.
    
    In commit 620f5e1cbf (dts: Rename DW APB timer compatible strings), both
    "snps,dw-apb-timer-sp" and "snps,dw-apb-timer-osc" were deprecated in place
    of "snps,dw-apb-timer". But the driver also needs to be udpated in order to
    support this new binding "snps,dw-apb-timer".
    
    Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dae60c345164a8073706611c321e94b71e9a036b
Author: Dinh Nguyen <dinguyen@altera.com>
Date:   Tue Dec 10 19:49:18 2013 +0100

    clocksource: dw_apb_timer_of: Fix read_sched_clock
    
    commit 85dc6ee1237c8a4a7742e6abab96a20389b7d682 upstream.
    
    The read_sched_clock should return the ~value because the clock is a
    countdown implementation. read_sched_clock() should be the same as
     __apbt_read_clocksource().
    
    Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6594af6a4267de2cdf1b20189e446ee032193432
Author: Paul Moore <pmoore@redhat.com>
Date:   Tue Dec 10 14:58:01 2013 -0500

    selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute()
    
    commit c0828e50485932b7e019df377a6b0a8d1ebd3080 upstream.
    
    Due to difficulty in arriving at the proper security label for
    TCP SYN-ACK packets in selinux_ip_postroute(), we need to check packets
    while/before they are undergoing XFRM transforms instead of waiting
    until afterwards so that we can determine the correct security label.
    
    Reported-by: Janak Desai <Janak.Desai@gtri.gatech.edu>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3577781b15f69da08f33392ba9234d393686c61e
Author: Paul Moore <pmoore@redhat.com>
Date:   Tue Dec 10 14:57:54 2013 -0500

    selinux: look for IPsec labels on both inbound and outbound packets
    
    commit 817eff718dca4e54d5721211ddde0914428fbb7c upstream.
    
    Previously selinux_skb_peerlbl_sid() would only check for labeled
    IPsec security labels on inbound packets, this patch enables it to
    check both inbound and outbound traffic for labeled IPsec security
    labels.
    
    Reported-by: Janak Desai <Janak.Desai@gtri.gatech.edu>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a1f1a8c977e6a9a9022f03c89f00616fec708b3
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Wed Dec 18 17:08:48 2013 -0800

    sh: always link in helper functions extracted from libgcc
    
    commit 84ed8a99058e61567f495cc43118344261641c5f upstream.
    
    E.g. landisk_defconfig, which has CONFIG_NTFS_FS=m:
    
      ERROR: "__ashrdi3" [fs/ntfs/ntfs.ko] undefined!
    
    For "lib-y", if no symbols in a compilation unit are referenced by other
    units, the compilation unit will not be included in vmlinux.  This
    breaks modules that do reference those symbols.
    
    Use "obj-y" instead to fix this.
    
    http://kisskb.ellerman.id.au/kisskb/buildresult/8838077/
    
    This doesn't fix all cases. There are others, e.g. udivsi3.
    This is also not limited to sh, many architectures handle this in the
    same way.
    
    A simple solution is to unconditionally include all helper functions.
    A more complex solution is to make the choice of "lib-y" or "obj-y" depend
    on CONFIG_MODULES:
    
      obj-$(CONFIG_MODULES) += ...
      lib-y($CONFIG_MODULES) += ...
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Tested-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
    Reviewed-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
    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 0f6071684a10d524e5085d018e31b6d49e1416f4
Author: Stephen Boyd <sboyd@codeaurora.org>
Date:   Tue Dec 10 15:19:03 2013 -0800

    gpio: msm: Fix irq mask/unmask by writing bits instead of numbers
    
    commit 4cc629b7a20945ce35628179180329b6bc9e552b upstream.
    
    We should be writing bits here but instead we're writing the
    numbers that correspond to the bits we want to write. Fix it by
    wrapping the numbers in the BIT() macro. This fixes gpios acting
    as interrupts.
    
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 524aae06b1c894702e233431f69141a4b69245cb
Author: Roger Quadros <rogerq@ti.com>
Date:   Thu Dec 5 11:23:35 2013 +0200

    gpio: twl4030: Fix regression for twl gpio LED output
    
    commit f5837ec11f8cfa6d53ebc5806582771b2c9988c6 upstream.
    
    Commit 0b2aa8be introduced a regression that causes failure
    in setting LED GPO direction to OUT.
    
    This causes USB host probe failures for Beagleboard C4.
    
    platform usb_phy_gen_xceiv.2: Driver usb_phy_gen_xceiv requests probe deferral
    hsusb2_vcc: Failed to request enable GPIO510: -22
    reg-fixed-voltage reg-fixed-voltage.0.auto: Failed to register regulator: -22
    reg-fixed-voltage: probe of reg-fixed-voltage.0.auto failed with error -22
    
    direction_out/direction_in must return 0 if the operation succeeded.
    
    Also, don't update direction flag and output data if twl4030_set_gpio_direction()
    failed inside twl_direction_out();
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f6433e811b5a1b96f7f7ad50f7941c7834fa5f2
Author: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Date:   Tue Nov 26 02:45:34 2013 +0100

    sh-pfc: Fix PINMUX_GPIO macro
    
    commit 8620f394c4f9abd13e4fdf927d9c2bbeda74cde7 upstream.
    
    Commit 7cbb0e55e27e ("sh-pfc: Don't duplicate argument to PINMUX_GPIO
    macro") erronesouly modified the PINMUX_GPIO macro in a way that
    resulted in all pins being named "name". Fix the macro to name the pins
    correctly.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 981d2964f1361d6923dbc88c9c8295317ddcdb0f
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sun Dec 8 21:12:59 2013 -0500

    jbd2: don't BUG but return ENOSPC if a handle runs out of space
    
    commit f6c07cad081ba222d63623d913aafba5586c1d2c upstream.
    
    If a handle runs out of space, we currently stop the kernel with a BUG
    in jbd2_journal_dirty_metadata().  This makes it hard to figure out
    what might be going on.  So return an error of ENOSPC, so we can let
    the file system layer figure out what is going on, to make it more
    likely we can get useful debugging information).  This should make it
    easier to debug problems such as the one which was reported by:
    
        https://bugzilla.kernel.org/show_bug.cgi?id=44731
    
    The only two callers of this function are ext4_handle_dirty_metadata()
    and ocfs2_journal_dirty().  The ocfs2 function will trigger a
    BUG_ON(), which means there will be no change in behavior.  The ext4
    function will call ext4_error_inode() which will print the useful
    debugging information and then handle the situation using ext4's error
    handling mechanisms (i.e., which might mean halting the kernel or
    remounting the file system read-only).
    
    Also, since both file systems already call WARN_ON(), drop the WARN_ON
    from jbd2_journal_dirty_metadata() to avoid two stack traces from
    being displayed.
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Cc: ocfs2-devel@oss.oracle.com
    Acked-by: Joel Becker <jlbec@evilplan.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f3241a8ac9644c17ce7dc053d425f4bae7b0fb7
Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date:   Wed Dec 18 14:36:18 2013 +0100

    s390/3270: fix allocation of tty3270_screen structure
    
    commit 36d9f4d3b68c7035ead3850dc85f310a579ed0eb upstream.
    
    The tty3270_alloc_screen function is called from tty3270_install with
    swapped arguments, the number of columns instead of rows and vice versa.
    The number of rows is typically smaller than the number of columns which
    makes the screen array too big but the individual cell arrays for the
    lines too small. Creating lines longer than the number of rows will
    clobber the memory after the end of the cell array.
    The fix is simple, call tty3270_alloc_screen with the correct argument
    order.
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a220f25a6890af22ae55c680531169707dbee37
Author: Maxime Ripard <maxime.ripard@free-electrons.com>
Date:   Tue Dec 10 19:37:21 2013 +0100

    ARM: sun7i: dt: Fix interrupt trigger types
    
    commit 378d0aee3b53bd8549b29dcc75f2bf47ee446e8f upstream.
    
    The Allwinner A20 uses the ARM GIC as its internal interrupts controller. The
    GIC can work on several interrupt triggers, and the A20 was actually setting it
    up to use a rising edge as a trigger, while it was actually a level high
    trigger, leading to some interrupts that would be completely ignored if the
    edge was missed.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Acked-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2bdfb0f5b57578ade944a2b4c616f0cb06a9526
Author: Vladimir Davydov <vdavydov@parallels.com>
Date:   Thu Jan 2 12:58:47 2014 -0800

    memcg: fix memcg_size() calculation
    
    commit 695c60830764945cf61a2cc623eb1392d137223e upstream.
    
    The mem_cgroup structure contains nr_node_ids pointers to
    mem_cgroup_per_node objects, not the objects themselves.
    
    Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
    Acked-by: Michal Hocko <mhocko@suse.cz>
    Cc: Glauber Costa <glommer@openvz.org>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    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 3d508835389d026df5a6cefa4209ee012abfb764
Author: Steven Whitehouse <swhiteho@redhat.com>
Date:   Wed Dec 18 14:14:52 2013 +0000

    GFS2: Fix incorrect invalidation for DIO/buffered I/O
    
    commit dfd11184d894cd0a92397b25cac18831a1a6a5bc upstream.
    
    In patch 209806aba9d540dde3db0a5ce72307f85f33468f we allowed
    local deferred locks to be granted against a cached exclusive
    lock. That opened up a corner case which this patch now
    fixes.
    
    The solution to the problem is to check whether we have cached
    pages each time we do direct I/O and if so to unmap, flush
    and invalidate those pages. Since the glock state machine
    normally does that for us, mostly the code will be a no-op.
    
    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e93b100931a45490cd07960a1ec51d9d8e5100cb
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Fri Dec 13 08:31:06 2013 -0500

    GFS2: Fix slab memory leak in gfs2_bufdata
    
    commit 502be2a32f09f388e4ff34ef2e3ebcabbbb261da upstream.
    
    This patch fixes a slab memory leak that sometimes can occur
    for files with a very short lifespan. The problem occurs when
    a dinode is deleted before it has gotten to the journal properly.
    In the leak scenario, the bd object is pinned for journal
    committment (queued to the metadata buffers queue: sd_log_le_buf)
    but is subsequently unpinned and dequeued before it finds its way
    to the ail or the revoke queue. In this rare circumstance, the bd
    object needs to be freed from slab memory, or it is forgotten.
    We have to be very careful how we do it, though, because
    multiple processes can call gfs2_remove_from_journal. In order to
    avoid double-frees, only the process that does the unpinning is
    allowed to free the bd.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d9c4a00e9d7c4506f29b94c85b07d815cc11b8a
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Tue Dec 10 12:06:35 2013 -0500

    GFS2: Fix use-after-free race when calling gfs2_remove_from_ail
    
    commit 9290a9a7c0bcf5400e8dbfbf9707fa68ea3fb338 upstream.
    
    Function gfs2_remove_from_ail drops the reference on the bh via
    brelse. This patch fixes a race condition whereby bh is deferenced
    after the brelse when setting bd->bd_blkno = bh->b_blocknr;
    Under certain rare circumstances, bh might be gone or reused,
    and bd->bd_blkno is set to whatever that memory happens to be,
    which is often 0. Later, in gfs2_trans_add_unrevoke, that bd fails
    the test "bd->bd_blkno >= blkno" which causes it to never be freed.
    The end result is that the bd is never freed from the bufdata cache,
    which results in this error:
    slab error in kmem_cache_destroy(): cache `gfs2_bufdata': Can't free all objects
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2ff1ad9bc31833dc738d077091e497f78e96255
Author: Steven Whitehouse <swhiteho@redhat.com>
Date:   Fri Dec 6 11:52:34 2013 +0000

    GFS2: don't hold s_umount over blkdev_put
    
    commit dfe5b9ad83a63180f358b27d1018649a27b394a9 upstream.
    
    This is a GFS2 version of Tejun's patch:
    4f331f01b9c43bf001d3ffee578a97a1e0633eac
    vfs: don't hold s_umount over close_bdev_exclusive() call
    
    In this case its blkdev_put itself that is the issue and this
    patch uses the same solution of dropping and retaking s_umount.
    
    Reported-by: Tejun Heo <tj@kernel.org>
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26021cf9139755640ddcd97bb286e5f5ee8efacf
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Thu Dec 26 17:44:29 2013 -0800

    Input: allocate absinfo data when setting ABS capability
    
    commit 28a2a2e1aedbe2d8b2301e6e0e4e63f6e4177aca upstream.
    
    We need to make sure we allocate absinfo data when we are setting one of
    EV_ABS/ABS_XXX capabilities, otherwise we may bomb when we try to emit this
    event.
    
    Rested-by: Paul Cercueil <pcercuei@gmail.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8807a436dbe45b1401bf4c6d67a757f7bdc99171
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Thu Jan 2 12:58:51 2014 -0800

    mm/memory-failure.c: transfer page count from head page to tail page after split thp
    
    commit a3e0f9e47d5ef7858a26cc12d90ad5146e802d47 upstream.
    
    Memory failures on thp tail pages cause kernel panic like below:
    
       mce: [Hardware Error]: Machine check events logged
       MCE exception done on CPU 7
       BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
       IP: [<ffffffff811b7cd1>] dequeue_hwpoisoned_huge_page+0x131/0x1e0
       PGD bae42067 PUD ba47d067 PMD 0
       Oops: 0000 [#1] SMP
      ...
       CPU: 7 PID: 128 Comm: kworker/7:2 Tainted: G   M       O 3.13.0-rc4-131217-1558-00003-g83b7df08e462 #25
      ...
       Call Trace:
         me_huge_page+0x3e/0x50
         memory_failure+0x4bb/0xc20
         mce_process_work+0x3e/0x70
         process_one_work+0x171/0x420
         worker_thread+0x11b/0x3a0
         ? manage_workers.isra.25+0x2b0/0x2b0
         kthread+0xe4/0x100
         ? kthread_create_on_node+0x190/0x190
         ret_from_fork+0x7c/0xb0
         ? kthread_create_on_node+0x190/0x190
      ...
       RIP   dequeue_hwpoisoned_huge_page+0x131/0x1e0
       CR2: 0000000000000058
    
    The reasoning of this problem is shown below:
     - when we have a memory error on a thp tail page, the memory error
       handler grabs a refcount of the head page to keep the thp under us.
     - Before unmapping the error page from processes, we split the thp,
       where page refcounts of both of head/tail pages don't change.
     - Then we call try_to_unmap() over the error page (which was a tail
       page before). We didn't pin the error page to handle the memory error,
       this error page is freed and removed from LRU list.
     - We never have the error page on LRU list, so the first page state
       check returns "unknown page," then we move to the second check
       with the saved page flag.
     - The saved page flag have PG_tail set, so the second page state check
       returns "hugepage."
     - We call me_huge_page() for freed error page, then we hit the above panic.
    
    The root cause is that we didn't move refcount from the head page to the
    tail page after split thp.  So this patch suggests to do this.
    
    This panic was introduced by commit 524fca1e73 ("HWPOISON: fix
    misjudgement of page_action() for errors on mlocked pages").  Note that we
    did have the same refcount problem before this commit, but it was just
    ignored because we had only first page state check which returned "unknown
    page." The commit changed the refcount problem from "doesn't work" to
    "kernel panic."
    
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
    Cc: Andi Kleen <andi@firstfloor.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 e910af66dc0622a331bd0d2ec0f500005339f44c
Author: Rik van Riel <riel@redhat.com>
Date:   Thu Jan 2 12:58:46 2014 -0800

    mm: fix use-after-free in sys_remap_file_pages
    
    commit 4eb919825e6c3c7fb3630d5621f6d11e98a18b3a upstream.
    
    remap_file_pages calls mmap_region, which may merge the VMA with other
    existing VMAs, and free "vma".  This can lead to a use-after-free bug.
    Avoid the bug by remembering vm_flags before calling mmap_region, and
    not trying to dereference vma later.
    
    Signed-off-by: Rik van Riel <riel@redhat.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: PaX Team <pageexec@freemail.hu>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Cc: Hugh Dickins <hughd@google.com>
    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 1f8653248dee285e931c38340a351b36c1e93de4
Author: Vlastimil Babka <vbabka@suse.cz>
Date:   Thu Jan 2 12:58:44 2014 -0800

    mm: munlock: fix deadlock in __munlock_pagevec()
    
    commit 3b25df93c6e37e323b86a2a8c1e00c0a2821c6c9 upstream.
    
    Commit 7225522bb429 ("mm: munlock: batch non-THP page isolation and
    munlock+putback using pagevec" introduced __munlock_pagevec() to speed
    up munlock by holding lru_lock over multiple isolated pages.  Pages that
    fail to be isolated are put_page()d immediately, also within the lock.
    
    This can lead to deadlock when __munlock_pagevec() becomes the holder of
    the last page pin and put_page() leads to __page_cache_release() which
    also locks lru_lock.  The deadlock has been observed by Sasha Levin
    using trinity.
    
    This patch avoids the deadlock by deferring put_page() operations until
    lru_lock is released.  Another pagevec (which is also used by later
    phases of the function is reused to gather the pages for put_page()
    operation.
    
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Hugh Dickins <hughd@google.com>
    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 aa2eb90a21ca53e02041416092d07811942e7c56
Author: Vlastimil Babka <vbabka@suse.cz>
Date:   Thu Jan 2 12:58:43 2014 -0800

    mm: munlock: fix a bug where THP tail page is encountered
    
    commit c424be1cbbf852e46acc84d73162af3066cd2c86 upstream.
    
    Since commit ff6a6da60b89 ("mm: accelerate munlock() treatment of THP
    pages") munlock skips tail pages of a munlocked THP page.  However, when
    the head page already has PageMlocked unset, it will not skip the tail
    pages.
    
    Commit 7225522bb429 ("mm: munlock: batch non-THP page isolation and
    munlock+putback using pagevec") has added a PageTransHuge() check which
    contains VM_BUG_ON(PageTail(page)).  Sasha Levin found this triggered
    using trinity, on the first tail page of a THP page without PageMlocked
    flag.
    
    This patch fixes the issue by skipping tail pages also in the case when
    PageMlocked flag is unset.  There is still a possibility of race with
    THP page split between clearing PageMlocked and determining how many
    pages to skip.  The race might result in former tail pages not being
    skipped, which is however no longer a bug, as during the skip the
    PageTail flags are cleared.
    
    However this race also affects correctness of NR_MLOCK accounting, which
    is to be fixed in a separate patch.
    
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Bob Liu <bob.liu@oracle.com>
    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 f9f4487e62cd8659c85b3f9a69bfb5925f362672
Author: Johannes Weiner <hannes@cmpxchg.org>
Date:   Fri Dec 20 14:54:12 2013 +0000

    mm: page_alloc: revert NUMA aspect of fair allocation policy
    
    commit fff4068cba484e6b0abe334ed6b15d5a215a3b25 upstream.
    
    Commit 81c0a2bb515f ("mm: page_alloc: fair zone allocator policy") meant
    to bring aging fairness among zones in system, but it was overzealous
    and badly regressed basic workloads on NUMA systems.
    
    Due to the way kswapd and page allocator interacts, we still want to
    make sure that all zones in any given node are used equally for all
    allocations to maximize memory utilization and prevent thrashing on the
    highest zone in the node.
    
    While the same principle applies to NUMA nodes - memory utilization is
    obviously improved by spreading allocations throughout all nodes -
    remote references can be costly and so many workloads prefer locality
    over memory utilization.  The original change assumed that
    zone_reclaim_mode would be a good enough predictor for that, but it
    turned out to be as indicative as a coin flip.
    
    Revert the NUMA aspect of the fairness until we can find a proper way to
    make it configurable and agree on a sane default.
    
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Reviewed-by: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99355d51e3267ad7da0f48d4aaa8f354b47d85eb
Author: Jianguo Wu <wujianguo@huawei.com>
Date:   Wed Dec 18 17:08:59 2013 -0800

    mm/hugetlb: check for pte NULL pointer in __page_check_address()
    
    commit 98398c32f6687ee1e1f3ae084effb4b75adb0747 upstream.
    
    In __page_check_address(), if address's pud is not present,
    huge_pte_offset() will return NULL, we should check the return value.
    
    Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: qiuxishi <qiuxishi@huawei.com>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    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 eede0e9020693adaeed01fb464261a00ce9d05ad
Author: Jianguo Wu <wujianguo@huawei.com>
Date:   Wed Dec 18 17:08:54 2013 -0800

    mm/memory-failure.c: recheck PageHuge() after hugetlb page migrate successfully
    
    commit a49ecbcd7b0d5a1cda7d60e03df402dd0ef76ac8 upstream.
    
    After a successful hugetlb page migration by soft offline, the source
    page will either be freed into hugepage_freelists or buddy(over-commit
    page).  If page is in buddy, page_hstate(page) will be NULL.  It will
    hit a NULL pointer dereference in dequeue_hwpoisoned_huge_page().
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
      IP: [<ffffffff81163761>] dequeue_hwpoisoned_huge_page+0x131/0x1d0
      PGD c23762067 PUD c24be2067 PMD 0
      Oops: 0000 [#1] SMP
    
    So check PageHuge(page) after call migrate_pages() successfully.
    
    Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
    Tested-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    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 43c6ea47e4689c168defb472c47753eb94c2c957
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Wed Dec 18 17:08:52 2013 -0800

    mm/compaction: respect ignore_skip_hint in update_pageblock_skip
    
    commit 6815bf3f233e0b10c99a758497d5d236063b010b upstream.
    
    update_pageblock_skip() only fits to compaction which tries to isolate
    by pageblock unit.  If isolate_migratepages_range() is called by CMA, it
    try to isolate regardless of pageblock unit and it don't reference
    get_pageblock_skip() by ignore_skip_hint.  We should also respect it on
    update_pageblock_skip() to prevent from setting the wrong information.
    
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Rafael Aquini <aquini@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    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 7f413a36af146c061b7b6b7207ea3cb0cd435b43
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Wed Dec 18 17:08:51 2013 -0800

    mm/mempolicy: correct putback method for isolate pages if failed
    
    commit b0e5fd7359f1ce8db4ccb862b3aa80d2f2cbf4d0 upstream.
    
    queue_pages_range() isolates hugetlbfs pages and putback_lru_pages()
    can't handle these.  We should change it to putback_movable_pages().
    
    Naoya said that it is worth going into stable, because it can break
    in-use hugepage list.
    
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Rafael Aquini <aquini@redhat.com>
    Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    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 9c612a77032a98b264d12fd6e3df2ca530d968d2
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:48 2014 +0000

    mm: numa: defer TLB flush for THP migration as long as possible
    
    commit b0943d61b8fa420180f92f64ef67662b4f6cc493 upstream.
    
    THP migration can fail for a variety of reasons.  Avoid flushing the TLB
    to deal with THP migration races until the copy is ready to start.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 186fa6eb6131954d17457f37283e654cb079c25b
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:47 2014 +0000

    mm: numa: guarantee that tlb_flush_pending updates are visible before page table updates
    
    commit af2c1401e6f9177483be4fad876d0073669df9df upstream.
    
    According to documentation on barriers, stores issued before a LOCK can
    complete after the lock implying that it's possible tlb_flush_pending
    can be visible after a page table update.  As per revised documentation,
    this patch adds a smp_mb__before_spinlock to guarantee the correct
    ordering.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    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 ef36ec29945653ced2c30158213841d248299a8a
Author: Rik van Riel <riel@redhat.com>
Date:   Tue Jan 7 14:00:46 2014 +0000

    mm: fix TLB flush race between migration, and change_protection_range
    
    commit 20841405940e7be0617612d521e206e4b6b325db upstream.
    
    There are a few subtle races, between change_protection_range (used by
    mprotect and change_prot_numa) on one side, and NUMA page migration and
    compaction on the other side.
    
    The basic race is that there is a time window between when the PTE gets
    made non-present (PROT_NONE or NUMA), and the TLB is flushed.
    
    During that time, a CPU may continue writing to the page.
    
    This is fine most of the time, however compaction or the NUMA migration
    code may come in, and migrate the page away.
    
    When that happens, the CPU may continue writing, through the cached
    translation, to what is no longer the current memory location of the
    process.
    
    This only affects x86, which has a somewhat optimistic pte_accessible.
    All other architectures appear to be safe, and will either always flush,
    or flush whenever there is a valid mapping, even with no permissions
    (SPARC).
    
    The basic race looks like this:
    
    CPU A			CPU B			CPU C
    
    						load TLB entry
    make entry PTE/PMD_NUMA
    			fault on entry
    						read/write old page
    			start migrating page
    			change PTE/PMD to new page
    						read/write old page [*]
    flush TLB
    						reload TLB from new entry
    						read/write new page
    						lose data
    
    [*] the old page may belong to a new user at this point!
    
    The obvious fix is to flush remote TLB entries, by making sure that
    pte_accessible aware of the fact that PROT_NONE and PROT_NUMA memory may
    still be accessible if there is a TLB flush pending for the mm.
    
    This should fix both NUMA migration and compaction.
    
    [mgorman@suse.de: fix build]
    Signed-off-by: Rik van Riel <riel@redhat.com>
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 fd5df8002f7668ac04a53b1b6d75296ad191a136
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:45 2014 +0000

    mm: numa: avoid unnecessary disruption of NUMA hinting during migration
    
    commit de466bd628e8d663fdf3f791bc8db318ee85c714 upstream.
    
    do_huge_pmd_numa_page() handles the case where there is parallel THP
    migration.  However, by the time it is checked the NUMA hinting
    information has already been disrupted.  This patch adds an earlier
    check with some helpers.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 3d792d616ba408ab55a54c1bb75a9367d997acfa
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:44 2014 +0000

    mm: numa: clear numa hinting information on mprotect
    
    commit 1667918b6483b12a6496bf54151b827b8235d7b1 upstream.
    
    On a protection change it is no longer clear if the page should be still
    accessible.  This patch clears the NUMA hinting fault bits on a
    protection change.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 cefeb27999f88f9348f1c55753339535ee9016aa
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:43 2014 +0000

    sched: numa: skip inaccessible VMAs
    
    commit 3c67f474558748b604e247d92b55dfe89654c81d upstream.
    
    Inaccessible VMA should not be trapping NUMA hint faults. Skip them.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 f3b578d9d009a9f670e893cec8579aa069aaaccb
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:42 2014 +0000

    mm: numa: avoid unnecessary work on the failure path
    
    commit eb4489f69f224356193364dc2762aa009738ca7f upstream.
    
    If a PMD changes during a THP migration then migration aborts but the
    failure path is doing more work than is necessary.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 273b7205315533d9327323ad7a115d9feec943b7
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:41 2014 +0000

    mm: numa: ensure anon_vma is locked to prevent parallel THP splits
    
    commit c3a489cac38d43ea6dc4ac240473b44b46deecf7 upstream.
    
    The anon_vma lock prevents parallel THP splits and any associated
    complexity that arises when handling splits during THP migration.  This
    patch checks if the lock was successfully acquired and bails from THP
    migration if it failed for any reason.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 a1dc162e3f7f0c34d66981ffbcc83a2d78bc49b9
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:40 2014 +0000

    mm: numa: do not clear PTE for pte_numa update
    
    commit 0c5f83c23ca703d32f930393825487257a5cde6d upstream.
    
    The TLB must be flushed if the PTE is updated but change_pte_range is
    clearing the PTE while marking PTEs pte_numa without necessarily
    flushing the TLB if it reinserts the same entry.  Without the flush,
    it's conceivable that two processors have different TLBs for the same
    virtual address and at the very least it would generate spurious faults.
    
    This patch only unmaps the pages in change_pte_range for a full
    protection change.
    
    [riel@redhat.com: write pte_numa pte back to the page tables]
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Signed-off-by: Rik van Riel <riel@redhat.com>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    Cc: Chegu Vinod <chegu_vinod@hp.com>
    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 c18e3316d198f4ffcf2129fb8f03940a1f9616bc
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:39 2014 +0000

    mm: numa: do not clear PMD during PTE update scan
    
    commit 5a6dac3ec5f583cc8ee7bc53b5500a207c4ca433 upstream.
    
    If the PMD is flushed then a parallel fault in handle_mm_fault() will
    enter the pmd_none and do_huge_pmd_anonymous_page() path where it'll
    attempt to insert a huge zero page.  This is wasteful so the patch
    avoids clearing the PMD when setting pmd_numa.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 00c987e8443bd1c317a97b49ddadae4f9f828054
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:38 2014 +0000

    mm: clear pmd_numa before invalidating
    
    commit 67f87463d3a3362424efcbe8b40e4772fd34fc61 upstream.
    
    On x86, PMD entries are similar to _PAGE_PROTNONE protection and are
    handled as NUMA hinting faults.  The following two page table protection
    bits are what defines them
    
    	_PAGE_NUMA:set	_PAGE_PRESENT:clear
    
    A PMD is considered present if any of the _PAGE_PRESENT, _PAGE_PROTNONE,
    _PAGE_PSE or _PAGE_NUMA bits are set.  If pmdp_invalidate encounters a
    pmd_numa, it clears the present bit leaving _PAGE_NUMA which will be
    considered not present by the CPU but present by pmd_present.  The
    existing caller of pmdp_invalidate should handle it but it's an
    inconsistent state for a PMD.  This patch keeps the state consistent
    when calling pmdp_invalidate.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 6c1167ec66d0e4e3367dbb5d2636a02f962a2d26
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:37 2014 +0000

    mm: numa: call MMU notifiers on THP migration
    
    commit f714f4f20e59ea6eea264a86b9a51fd51b88fc54 upstream.
    
    MMU notifiers must be called on THP page migration or secondary MMUs
    will get very confused.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 51c14476597c08dadb8802fa576befed710bb4a3
Author: Mel Gorman <mgorman@suse.de>
Date:   Tue Jan 7 14:00:36 2014 +0000

    mm: numa: serialise parallel get_user_page against THP migration
    
    commit 2b4847e73004c10ae6666c2e27b5c5430aed8698 upstream.
    
    Base pages are unmapped and flushed from cache and TLB during normal
    page migration and replaced with a migration entry that causes any
    parallel NUMA hinting fault or gup to block until migration completes.
    
    THP does not unmap pages due to a lack of support for migration entries
    at a PMD level.  This allows races with get_user_pages and
    get_user_pages_fast which commit 3f926ab945b6 ("mm: Close races between
    THP migration and PMD numa clearing") made worse by introducing a
    pmd_clear_flush().
    
    This patch forces get_user_page (fast and normal) on a pmd_numa page to
    go through the slow get_user_page path where it will serialise against
    THP migration and properly account for the NUMA hinting fault.  On the
    migration side the page table lock is taken for each PTE update.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    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 c8fabe3c347a9c7e8fda601b82b31de5b6b1455d
Author: Rob Herring <robh@kernel.org>
Date:   Sun Dec 29 19:37:43 2013 -0600

    Revert "of/address: Handle #address-cells > 2 specially"
    
    commit 13fcca8f25f4e9ce7f55da9cd353bb743236e212 upstream.
    
    This reverts commit e38c0a1fbc5803cbacdaac0557c70ac8ca5152e7.
    
    Nikita Yushchenko reports:
    While trying to make freescale p2020ds and  mpc8572ds boards working
    with mainline kernel, I faced that commit e38c0a1f (Handle
    
    Both these boards have uli1575 chip.
    Corresponding part in device tree is something like
    
                    uli1575@0 {
                            reg = <0x0 0x0 0x0 0x0 0x0>;
                            #size-cells = <2>;
                            #address-cells = <3>;
                            ranges = <0x2000000 0x0 0x80000000
                                      0x2000000 0x0 0x80000000
                                      0x0 0x20000000
    
                                      0x1000000 0x0 0x0
                                      0x1000000 0x0 0x0
                                      0x0 0x10000>;
                            isa@1e {
    ...
    
    I.e. it has #address-cells = <3>
    
    With commit e38c0a1f reverted, devices under uli1575 are registered
    correctly, e.g. for rtc
    
    OF: ** translation for device /pcie@ffe09000/pcie@0/uli1575@0/isa@1e/rtc@70 **
    OF: bus is isa (na=2, ns=1) on /pcie@ffe09000/pcie@0/uli1575@0/isa@1e
    OF: translating address: 00000001 00000070
    OF: parent bus is default (na=3, ns=2) on /pcie@ffe09000/pcie@0/uli1575@0
    OF: walking ranges...
    OF: ISA map, cp=0, s=1000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 00000000 00000000 00000070
    OF: parent bus is pci (na=3, ns=2) on /pcie@ffe09000/pcie@0
    OF: walking ranges...
    OF: default map, cp=a0000000, s=20000000, da=70
    OF: default map, cp=0, s=10000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 01000000 00000000 00000070
    OF: parent bus is pci (na=3, ns=2) on /pcie@ffe09000
    OF: walking ranges...
    OF: PCI map, cp=0, s=10000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 01000000 00000000 00000070
    OF: parent bus is default (na=2, ns=2) on /
    OF: walking ranges...
    OF: PCI map, cp=0, s=10000, da=70
    OF: parent translation for: 00000000 ffc10000
    OF: with offset: 70
    OF: one level translation: 00000000 ffc10070
    OF: reached root node
    
    With commit e38c0a1f in place, address translation fails:
    
    OF: ** translation for device /pcie@ffe09000/pcie@0/uli1575@0/isa@1e/rtc@70 **
    OF: bus is isa (na=2, ns=1) on /pcie@ffe09000/pcie@0/uli1575@0/isa@1e
    OF: translating address: 00000001 00000070
    OF: parent bus is default (na=3, ns=2) on /pcie@ffe09000/pcie@0/uli1575@0
    OF: walking ranges...
    OF: ISA map, cp=0, s=1000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 00000000 00000000 00000070
    OF: parent bus is pci (na=3, ns=2) on /pcie@ffe09000/pcie@0
    OF: walking ranges...
    OF: default map, cp=a0000000, s=20000000, da=70
    OF: default map, cp=0, s=10000, da=70
    OF: not found !
    
    Thierry Reding confirmed this commit was not needed after all:
    "We ended up merging a different address representation for Tegra PCIe
    and I've confirmed that reverting this commit doesn't cause any obvious
    regressions. I think all other drivers in drivers/pci/host ended up
    copying what we did on Tegra, so I wouldn't expect any other breakage
    either."
    
    There doesn't appear to be a simple way to support both behaviours, so
    reverting this as nothing should be depending on the new behaviour.
    
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61f7c17bad20ccb763a35317508e3833f1cd5069
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Tue Dec 31 13:37:46 2013 +0100

    intel_pstate: Fail initialization if P-state information is missing
    
    commit 98a947abdd54e5de909bebadfced1696ccad30cf upstream.
    
    If pstate.current_pstate is 0 after the initial
    intel_pstate_get_cpu_pstates(), this means that we were unable to
    obtain any useful P-state information and there is no reason to
    continue, so free memory and return an error in that case.
    
    This fixes the following divide error occuring in a nested KVM
    guest:
    
    Intel P-state driver initializing.
    Intel pstate controlling: cpu 0
    cpufreq: __cpufreq_add_dev: ->get() failed
    divide error: 0000 [#1] SMP
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.13.0-0.rc4.git5.1.fc21.x86_64 #1
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    task: ffff88001ea20000 ti: ffff88001e9bc000 task.ti: ffff88001e9bc000
    RIP: 0010:[<ffffffff815c551d>]  [<ffffffff815c551d>] intel_pstate_timer_func+0x11d/0x2b0
    RSP: 0000:ffff88001ee03e18  EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff88001a454348 RCX: 0000000000006100
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff88001ee03e38 R08: 0000000000000000 R09: 0000000000000000
    R10: ffff88001ea20000 R11: 0000000000000000 R12: 00000c0a1ea20000
    R13: 1ea200001ea20000 R14: ffffffff815c5400 R15: ffff88001a454348
    FS:  0000000000000000(0000) GS:ffff88001ee00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000000 CR3: 0000000001c0c000 CR4: 00000000000006f0
    Stack:
     fffffffb1a454390 ffffffff821a4500 ffff88001a454390 0000000000000100
     ffff88001ee03ea8 ffffffff81083e9a ffffffff81083e15 ffffffff82d5ed40
     ffffffff8258cc60 0000000000000000 ffffffff81ac39de 0000000000000000
    Call Trace:
     <IRQ>
     [<ffffffff81083e9a>] call_timer_fn+0x8a/0x310
     [<ffffffff81083e15>] ? call_timer_fn+0x5/0x310
     [<ffffffff815c5400>] ? pid_param_set+0x130/0x130
     [<ffffffff81084354>] run_timer_softirq+0x234/0x380
     [<ffffffff8107aee4>] __do_softirq+0x104/0x430
     [<ffffffff8107b5fd>] irq_exit+0xcd/0xe0
     [<ffffffff81770645>] smp_apic_timer_interrupt+0x45/0x60
     [<ffffffff8176efb2>] apic_timer_interrupt+0x72/0x80
     <EOI>
     [<ffffffff810e15cd>] ? vprintk_emit+0x1dd/0x5e0
     [<ffffffff81757719>] printk+0x67/0x69
     [<ffffffff815c1493>] __cpufreq_add_dev.isra.13+0x883/0x8d0
     [<ffffffff815c14f0>] cpufreq_add_dev+0x10/0x20
     [<ffffffff814a14d1>] subsys_interface_register+0xb1/0xf0
     [<ffffffff815bf5cf>] cpufreq_register_driver+0x9f/0x210
     [<ffffffff81fb19af>] intel_pstate_init+0x27d/0x3be
     [<ffffffff81761e3e>] ? mutex_unlock+0xe/0x10
     [<ffffffff81fb1732>] ? cpufreq_gov_dbs_init+0x12/0x12
     [<ffffffff8100214a>] do_one_initcall+0xfa/0x1b0
     [<ffffffff8109dbf5>] ? parse_args+0x225/0x3f0
     [<ffffffff81f64193>] kernel_init_freeable+0x1fc/0x287
     [<ffffffff81f638d0>] ? do_early_param+0x88/0x88
     [<ffffffff8174b530>] ? rest_init+0x150/0x150
     [<ffffffff8174b53e>] kernel_init+0xe/0x130
     [<ffffffff8176e27c>] ret_from_fork+0x7c/0xb0
     [<ffffffff8174b530>] ? rest_init+0x150/0x150
    Code: c1 e0 05 48 63 bc 03 10 01 00 00 48 63 83 d0 00 00 00 48 63 d6 48 c1 e2 08 c1 e1 08 4c 63 c2 48 c1 e0 08 48 98 48 c1 e0 08 48 99 <49> f7 f8 48 98 48 0f af f8 48 c1 ff 08 29 f9 89 ca c1 fa 1f 89
    RIP  [<ffffffff815c551d>] intel_pstate_timer_func+0x11d/0x2b0
     RSP <ffff88001ee03e18>
    ---[ end trace f166110ed22cc37a ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    
    Reported-and-tested-by: Kashyap Chamarthy <kchamart@redhat.com>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18065245d2337cbbf3f28cf69e790e332b4ab703
Author: Toshi Kani <toshi.kani@hp.com>
Date:   Wed Nov 27 13:33:09 2013 -0700

    ACPI / PCI / hotplug: Avoid warning when _ADR not present
    
    commit f26ca1d699e8b54a50d9faf82327d3c2072aaedd upstream.
    
    acpiphp_enumerate_slots() walks ACPI namenamespace under
    a PCI host bridge with callback register_slot().
    register_slot() evaluates _ADR for all the device objects
    and emits a warning message for any error.  Some platforms
    have _HID device objects (such as HPET and IPMI), which
    trigger unnecessary warning messages.
    
    This patch avoids emitting a warning message when a target
    device object does not have _ADR.
    
    Signed-off-by: Toshi Kani <toshi.kani@hp.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 681203c68b4ebdc6f0f67c4f8ab031752817f6dc
Author: Jan Kara <jack@suse.cz>
Date:   Tue Dec 3 11:20:06 2013 +0100

    ext2: Fix oops in ext2_get_block() called from ext2_quota_write()
    
    commit df4e7ac0bb70abc97fbfd9ef09671fc084b3f9db upstream.
    
    ext2_quota_write() doesn't properly setup bh it passes to
    ext2_get_block() and thus we hit assertion BUG_ON(maxblocks == 0) in
    ext2_get_blocks() (or we could actually ask for mapping arbitrary number
    of blocks depending on whatever value was on stack).
    
    Fix ext2_quota_write() to properly fill in number of blocks to map.
    
    Reviewed-by: "Theodore Ts'o" <tytso@mit.edu>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reported-by: Christoph Hellwig <hch@infradead.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e123196f24da85f70d64fb65e506166a3387b2dc
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Wed Dec 11 17:13:10 2013 -0600

    rtlwifi: pci: Fix oops on driver unload
    
    commit 9278db6279e28d4d433bc8a848e10b4ece8793ed upstream.
    
    On Fedora systems, unloading rtl8192ce causes an oops. This patch fixes the
    problem reported at https://bugzilla.redhat.com/show_bug.cgi?id=852761.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b3299df71d35c2a9bae5d67164d1107969a5fee
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Dec 16 12:04:36 2013 +0100

    radiotap: fix bitmap-end-finding buffer overrun
    
    commit bd02cd2549cfcdfc57cb5ce57ffc3feb94f70575 upstream.
    
    Evan Huus found (by fuzzing in wireshark) that the radiotap
    iterator code can access beyond the length of the buffer if
    the first bitmap claims an extension but then there's no
    data at all. Fix this.
    
    Reported-by: Evan Huus <eapache@gmail.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 529cfe789ed45a69bf6447e4d340329fd71d8dfd
Author: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Date:   Wed Dec 11 16:29:53 2013 -0600

    cifs: set FILE_CREATED
    
    commit f1e3268126a35b9d3cb8bf67487fcc6cd13991d8 upstream.
    
    Set FILE_CREATED on O_CREAT|O_EXCL.
    
    cifs code didn't change during commit 116cc0225381415b96551f725455d067f63a76a0
    
    Kernel bugzilla 66251
    
    Signed-off-by: Shirish Pargaonkar <spargaonkar@suse.com>
    Acked-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52b9008f8d84d33ea77a9cd709735cee6fc0fa0d
Author: Sachin Prabhu <sprabhu@redhat.com>
Date:   Mon Nov 25 17:09:48 2013 +0000

    cifs: We do not drop reference to tlink in CIFSCheckMFSymlink()
    
    commit 750b8de6c4277d7034061e1da50663aa1b0479e4 upstream.
    
    When we obtain tcon from cifs_sb, we use cifs_sb_tlink() to first obtain
    tlink which also grabs a reference to it. We do not drop this reference
    to tlink once we are done with the call.
    
    The patch fixes this issue by instead passing tcon as a parameter and
    avoids having to obtain a reference to the tlink. A lookup for the tcon
    is already made in the calling functions and this way we avoid having to
    re-run the lookup. This is also consistent with the argument list for
    other similar calls for M-F symlinks.
    
    We should also return an ENOSYS when we do not find a protocol specific
    function to lookup the MF Symlink data.
    
    Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
    Reviewed-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f146ed94ea62e81c920a4b0fb22a54a33e64581e
Author: Tejun Heo <tj@kernel.org>
Date:   Wed Dec 18 07:07:32 2013 -0500

    libata, freezer: avoid block device removal while system is frozen
    
    commit 85fbd722ad0f5d64d1ad15888cd1eb2188bfb557 upstream.
    
    Freezable kthreads and workqueues are fundamentally problematic in
    that they effectively introduce a big kernel lock widely used in the
    kernel and have already been the culprit of several deadlock
    scenarios.  This is the latest occurrence.
    
    During resume, libata rescans all the ports and revalidates all
    pre-existing devices.  If it determines that a device has gone
    missing, the device is removed from the system which involves
    invalidating block device and flushing bdi while holding driver core
    layer locks.  Unfortunately, this can race with the rest of device
    resume.  Because freezable kthreads and workqueues are thawed after
    device resume is complete and block device removal depends on
    freezable workqueues and kthreads (e.g. bdi_wq, jbd2) to make
    progress, this can lead to deadlock - block device removal can't
    proceed because kthreads are frozen and kthreads can't be thawed
    because device resume is blocked behind block device removal.
    
    839a8e8660b6 ("writeback: replace custom worker pool implementation
    with unbound workqueue") made this particular deadlock scenario more
    visible but the underlying problem has always been there - the
    original forker task and jbd2 are freezable too.  In fact, this is
    highly likely just one of many possible deadlock scenarios given that
    freezer behaves as a big kernel lock and we don't have any debug
    mechanism around it.
    
    I believe the right thing to do is getting rid of freezable kthreads
    and workqueues.  This is something fundamentally broken.  For now,
    implement a funny workaround in libata - just avoid doing block device
    hot[un]plug while the system is frozen.  Kernel engineering at its
    finest.  :(
    
    v2: Add EXPORT_SYMBOL_GPL(pm_freezing) for cases where libata is built
        as a module.
    
    v3: Comment updated and polling interval changed to 10ms as suggested
        by Rafael.
    
    v4: Add #ifdef CONFIG_FREEZER around the hack as pm_freezing is not
        defined when FREEZER is not configured thus breaking build.
        Reported by kbuild test robot.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Tomaž Šolc <tomaz.solc@tablix.org>
    Reviewed-by: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=62801
    Link: http://lkml.kernel.org/r/20131213174932.GA27070@htj.dyndns.org
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: kbuild test robot <fengguang.wu@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccba1cb065bebefb8f152d0dee781e1373d1f32e
Author: Marc Carino <marc.ceeeee@gmail.com>
Date:   Mon Dec 16 18:15:53 2013 -0800

    libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs
    
    commit f78dea064c5f7de07de4912a6e5136dbc443d614 upstream.
    
    Certain drives cannot handle queued TRIM commands properly, even
    though support is indicated in the IDENTIFY DEVICE buffer.  This patch
    allows for disabling the commands for the affected drives and apply it
    to the Micron/Crucial M500 SSDs which exhibit incorrect protocol
    behavior when issued queued TRIM commands, which could lead to silent
    data corruption.
    
    tj: Merged two unnecessarily split patches and made minor edits
        including shortening horkage name.
    
    Signed-off-by: Marc Carino <marc.ceeeee@gmail.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Link: http://lkml.kernel.org/g/1387246554-7311-1-git-send-email-marc.ceeeee@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83ceef0795fb85bb40bb90b300e3ebd8e8628454
Author: Robin H. Johnson <robbat2@gentoo.org>
Date:   Mon Dec 16 09:31:19 2013 -0800

    libata: disable a disk via libata.force params
    
    commit b8bd6dc36186fe99afa7b73e9e2d9a98ad5c4865 upstream.
    
    A user on StackExchange had a failing SSD that's soldered directly
    onto the motherboard of his system. The BIOS does not give any option
    to disable it at all, so he can't just hide it from the OS via the
    BIOS.
    
    The old IDE layer had hdX=noprobe override for situations like this,
    but that was never ported to the libata layer.
    
    This patch implements a disable flag for libata.force.
    
    Example use:
    
     libata.force=2.0:disable
    
    [v2 of the patch, removed the nodisable flag per Tejun Heo]
    
    Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Link: http://unix.stackexchange.com/questions/102648/how-to-tell-linux-kernel-3-0-to-completely-ignore-a-failing-disk
    Link: http://askubuntu.com/questions/352836/how-can-i-tell-linux-kernel-to-completely-ignore-a-disk-as-if-it-was-not-even-co
    Link: http://superuser.com/questions/599333/how-to-disable-kernel-probing-for-drive
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7bbc3f71c35fe6204a28ad9e0f2bcdadd88c2377
Author: Michele Baldessari <michele@acksyn.org>
Date:   Mon Nov 25 19:00:14 2013 +0000

    libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for Seagate Momentus SpinPoint M8
    
    commit 87809942d3fa60bafb7a58d0bdb1c79e90a6821d upstream.
    
    We've received multiple reports in Fedora via (BZ 907193)
    that the Seagate Momentus SpinPoint M8 errors out when enabling AA:
    [    2.555905] ata2.00: failed to enable AA (error_mask=0x1)
    [    2.568482] ata2.00: failed to enable AA (error_mask=0x1)
    
    Add the ATA_HORKAGE_BROKEN_FPDMA_AA for this specific harddisk.
    
    Reported-by: Nicholas <arealityfarbetween@googlemail.com>
    Signed-off-by: Michele Baldessari <michele@acksyn.org>
    Tested-by: Nicholas <arealityfarbetween@googlemail.com>
    Acked-by: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81b0670bb5d06bd3b690d1a07e34cd91060a854d
Author: Marek Vasut <marex@denx.de>
Date:   Mon Nov 25 09:47:00 2013 +0100

    ahci: imx: Explicitly clear IMX6Q_GPR13_SATA_MPLL_CLK_EN
    
    commit 10becdb402af4fd4808a0491a726b96128c41076 upstream.
    
    We must clear this IMX6Q_GPR13_SATA_MPLL_CLK_EN bit on i.MX6Q, otherwise
    Linux will fail to find the attached drive on some boards.
    
    This entire fix was:
    Reported-by: Eric Nelson <eric.nelson@boundarydevices.com>
    
    Signed-off-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Shawn Guo <shawn.guo@linaro.org>
    Cc: Richard Zhu <r65037@freescale.com>
    Cc: Linux-IDE <linux-ide@vger.kernel.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d71c346c8c008f1b27eecdc15fa2fb5fb8fa1751
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Wed Dec 11 22:19:01 2013 -0500

    drm/nouveau: only runtime suspend by default in optimus configuration
    
    commit b25b4427e9dfba073cf9bc86603956ed395eb6e3 upstream.
    
    The intent was to only enable it by default for optimus, e.g. see the
    runtime_idle callback. The suspend callback may be called directly, e.g.
    as a result of nouveau_crtc_set_config.
    
    Reported-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec3ee0c39ec8eee906aed39c1173e636d62840f9
Author: Shuah Khan <shuah.kh@samsung.com>
Date:   Fri Nov 22 10:54:28 2013 -0700

    power_supply: Fix Oops from NULL pointer dereference from wakeup_source_activate
    
    commit 80c6463e2fa3377febfc98a6672d92d07f3c26c1 upstream.
    
    power_supply_register() calls device_init_wakeup() to register a wakeup
    source before initializing dev_name. As a result, device_wakeup_enable()
    end up registering wakeup source with a null name when
    wakeup_source_register() gets called with dev_name(dev) which is null at
    the time.
    
    When kernel is booted with wakeup_source_activate enabled, it will panic
    when the trace point code tries to dereference ws->name.
    
    Fixed the problem by moving up the kobject_set_name() call prior to
    accesses to dev_name(). Replaced kobject_set_name() with dev_set_name()
    which is the right interface to be called from drivers. Fixed the call to
    device_del() prior to device_add() in for wakeup_init_failed error
    handling code.
    
    Trace after the change:
    
                bash-2143  [003] d...   132.280697: wakeup_source_activate: BAT1 state=0x20001
         kworker/3:2-1169  [003] d...   132.281305: wakeup_source_deactivate: BAT1 state=0x30000
    
    Oops message:
    
    [  819.769934] device: 'BAT1': device_add
    [  819.770078] PM: Adding info for No Bus:BAT1
    [  819.770235] BUG: unable to handle kernel NULL pointer dereference at           (null)
    [  819.770435] IP: [<ffffffff813381c0>] skip_spaces+0x30/0x30
    [  819.770572] PGD 3efd90067 PUD 3eff61067 PMD 0
    [  819.770716] Oops: 0000 [#1] SMP
    [  819.770829] Modules linked in: arc4 iwldvm mac80211 x86_pkg_temp_thermal coretemp kvm_intel joydev i915 kvm uvcvideo ghash_clmulni_intel videobuf2_vmalloc aesni_intel videobuf2_memops videobuf2_core aes_x86_64 ablk_helper cryptd videodev iwlwifi lrw rfcomm gf128mul glue_helper bnep btusb media bluetooth parport_pc hid_generic ppdev snd_hda_codec_hdmi drm_kms_helper snd_hda_codec_realtek cfg80211 drm tpm_infineon samsung_laptop snd_hda_intel usbhid snd_hda_codec hid snd_hwdep snd_pcm microcode snd_page_alloc snd_timer psmouse i2c_algo_bit lpc_ich tpm_tis video wmi mac_hid serio_raw ext2 lp parport r8169 mii
    [  819.771802] CPU: 0 PID: 2167 Comm: bash Not tainted 3.12.0+ #25
    [  819.771876] Hardware name: SAMSUNG ELECTRONICS CO., LTD. 900X3C/900X3D/900X4C/900X4D/SAMSUNG_NP1234567890, BIOS P03AAC 07/12/2012
    [  819.772022] task: ffff88002e6ddcc0 ti: ffff8804015ca000 task.ti: ffff8804015ca000
    [  819.772119] RIP: 0010:[<ffffffff813381c0>]  [<ffffffff813381c0>] skip_spaces+0x30/0x30
    [  819.772242] RSP: 0018:ffff8804015cbc70  EFLAGS: 00010046
    [  819.772310] RAX: 0000000000000003 RBX: ffff88040cfd6d40 RCX: 0000000000000018
    [  819.772397] RDX: 0000000000020001 RSI: 0000000000000000 RDI: 0000000000000000
    [  819.772484] RBP: ffff8804015cbcc0 R08: 0000000000000000 R09: ffff8803f0768d40
    [  819.772570] R10: ffffea001033b800 R11: 0000000000000000 R12: ffffffff81c519c0
    [  819.772656] R13: 0000000000020001 R14: 0000000000000000 R15: 0000000000020001
    [  819.772744] FS:  00007ff98309b740(0000) GS:ffff88041f200000(0000) knlGS:0000000000000000
    [  819.772845] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  819.772917] CR2: 0000000000000000 CR3: 00000003f59dc000 CR4: 00000000001407f0
    [  819.773001] Stack:
    [  819.773030]  ffffffff81114003 ffff8804015cbcb0 0000000000000000 0000000000000046
    [  819.773146]  ffff880409757a18 ffff8803f065a160 0000000000000000 0000000000020001
    [  819.773273]  0000000000000000 0000000000000000 ffff8804015cbce8 ffffffff8143e388
    [  819.773387] Call Trace:
    [  819.773434]  [<ffffffff81114003>] ? ftrace_raw_event_wakeup_source+0x43/0xe0
    [  819.773520]  [<ffffffff8143e388>] wakeup_source_report_event+0xb8/0xd0
    [  819.773595]  [<ffffffff8143e3cd>] __pm_stay_awake+0x2d/0x50
    [  819.773724]  [<ffffffff8153395c>] power_supply_changed+0x3c/0x90
    [  819.773795]  [<ffffffff8153407c>] power_supply_register+0x18c/0x250
    [  819.773869]  [<ffffffff813d8d18>] sysfs_add_battery+0x61/0x7b
    [  819.773935]  [<ffffffff813d8d69>] battery_notify+0x37/0x3f
    [  819.774001]  [<ffffffff816ccb7c>] notifier_call_chain+0x4c/0x70
    [  819.774071]  [<ffffffff81073ded>] __blocking_notifier_call_chain+0x4d/0x70
    [  819.774149]  [<ffffffff81073e26>] blocking_notifier_call_chain+0x16/0x20
    [  819.774227]  [<ffffffff8109397a>] pm_notifier_call_chain+0x1a/0x40
    [  819.774316]  [<ffffffff81095b66>] hibernate+0x66/0x1c0
    [  819.774407]  [<ffffffff81093931>] state_store+0x71/0xa0
    [  819.774507]  [<ffffffff81331d8f>] kobj_attr_store+0xf/0x20
    [  819.774613]  [<ffffffff811f8618>] sysfs_write_file+0x128/0x1c0
    [  819.774735]  [<ffffffff8118579d>] vfs_write+0xbd/0x1e0
    [  819.774841]  [<ffffffff811861d9>] SyS_write+0x49/0xa0
    [  819.774939]  [<ffffffff816d1052>] system_call_fastpath+0x16/0x1b
    [  819.775055] Code: 89 f8 48 89 e5 f6 82 c0 a6 84 81 20 74 15 0f 1f 44 00 00 48 83 c0 01 0f b6 10 f6 82 c0 a6 84 81 20 75 f0 5d c3 66 0f 1f 44 00 00 <80> 3f 00 55 48 89 e5 74 15 48 89 f8 0f 1f 40 00 48 83 c0 01 80
    [  819.775760] RIP  [<ffffffff813381c0>] skip_spaces+0x30/0x30
    [  819.775881]  RSP <ffff8804015cbc70>
    [  819.775949] CR2: 0000000000000000
    [  819.794175] ---[ end trace c4ef25127039952e ]---
    
    Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
    Acked-by: Anton Vorontsov <anton@enomsg.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Anton Vorontsov <anton@enomsg.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 123cf1180f8baf254852948ebe26f2ca54289507
Author: Josh Boyer <jwboyer@redhat.com>
Date:   Fri Oct 11 08:45:51 2013 -0400

    cpupower: Fix segfault due to incorrect getopt_long arugments
    
    commit f447ef4a56dee4b68a91460bcdfe06b5011085f2 upstream.
    
    If a user calls 'cpupower set --perf-bias 15', the process will end with
    a SIGSEGV in libc because cpupower-set passes a NULL optarg to the atoi
    call.  This is because the getopt_long structure currently has all of
    the options as having an optional_argument when they really have a
    required argument.  We change the structure to use required_argument to
    match the short options and it resolves the issue.
    
    This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1000439
    
    Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
    Cc: Dominik Brodowski <linux@dominikbrodowski.net>
    Cc: Thomas Renninger <trenn@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eab7669977d1b16f580edd76441abdbbcaf3ff52
Author: Anton Blanchard <anton@samba.org>
Date:   Mon Dec 23 12:19:51 2013 +1100

    powerpc: Align p_end
    
    commit 286e4f90a72c0b0621dde0294af6ed4b0baddabb upstream.
    
    p_end is an 8 byte value embedded in the text section. This means it
    is only 4 byte aligned when it should be 8 byte aligned. Fix this
    by adding an explicit alignment.
    
    This fixes an issue where POWER7 little endian builds with
    CONFIG_RELOCATABLE=y fail to boot.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb89101343cfb8999f62c5437bb4e6ba0509d85d
Author: Michael Neuling <mikey@neuling.org>
Date:   Mon Dec 16 15:12:43 2013 +1100

    powerpc: Fix bad stack check in exception entry
    
    commit 90ff5d688e61f49f23545ffab6228bd7e87e6dc7 upstream.
    
    In EXCEPTION_PROLOG_COMMON() we check to see if the stack pointer (r1)
    is valid when coming from the kernel.  If it's not valid, we die but
    with a nice oops message.
    
    Currently we allocate a stack frame (subtract INT_FRAME_SIZE) before we
    check to see if the stack pointer is negative.  Unfortunately, this
    won't detect a bad stack where r1 is less than INT_FRAME_SIZE.
    
    This patch fixes the check to compare the modified r1 with
    -INT_FRAME_SIZE.  With this, bad kernel stack pointers (including NULL
    pointers) are correctly detected again.
    
    Kudos to Paulus for finding this.
    
    Signed-off-by: Michael Neuling <mikey@neuling.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42191bc8f647618fbbc2f5782ea878f5f0730e6f
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Sun Dec 29 02:29:30 2013 +0100

    KVM: x86: Fix APIC map calculation after re-enabling
    
    commit e66d2ae7c67bd9ac982a3d1890564de7f7eabf4b upstream.
    
    Update arch.apic_base before triggering recalculate_apic_map. Otherwise
    the recalculation will work against the previous state of the APIC and
    will fail to build the correct map when an APIC is hardware-enabled
    again.
    
    This fixes a regression of 1e08ec4a13.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 366aaa038f472c47493fb6502f58377363d100bc
Author: Jan Kiszka <jan.kiszka@web.de>
Date:   Sat Dec 28 16:31:52 2013 +0100

    KVM: nVMX: Unconditionally uninit the MMU on nested vmexit
    
    commit 29bf08f12b2fd72b882da0d85b7385e4a438a297 upstream.
    
    Three reasons for doing this: 1. arch.walk_mmu points to arch.mmu anyway
    in case nested EPT wasn't in use. 2. this aligns VMX with SVM. But 3. is
    most important: nested_cpu_has_ept(vmcs12) queries the VMCS page, and if
    one guest VCPU manipulates the page of another VCPU in L2, we may be
    fooled to skip over the nested_ept_uninit_mmu_context, leaving mmu in
    nested state. That can crash the host later on if nested_ept_get_cr3 is
    invoked while L1 already left vmxon and nested.current_vmcs12 became
    NULL therefore.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d10d0a2337097fa907f22af6ad0ae0dc0ff39fbf
Author: Mathy Vanhoef <vanhoefm@gmail.com>
Date:   Thu Nov 28 12:21:45 2013 +0100

    ath9k_htc: properly set MAC address and BSSID mask
    
    commit 657eb17d87852c42b55c4b06d5425baa08b2ddb3 upstream.
    
    Pick the MAC address of the first virtual interface as the new hardware MAC
    address. Set BSSID mask according to this MAC address. This fixes CVE-2013-4579.
    
    Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d0085e1d969886ea00d97ef4e9d9de5d56585b3
Author: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Date:   Mon Dec 16 07:04:59 2013 +0530

    ath9k: Fix interrupt handling for the AR9002 family
    
    commit 73f0b56a1ff64e7fb6c3a62088804bab93bcedc2 upstream.
    
    This patch adds a driver workaround for a HW issue.
    
    A race condition in the HW results in missing interrupts,
    which can be avoided by a read/write with the ISR register.
    All chips in the AR9002 series are affected by this bug - AR9003
    and above do not have this problem.
    
    Cc: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4734753a6e323b73a89bf9d47375efac3ab70ea6
Author: Peter Korsgaard <peter@korsgaard.com>
Date:   Mon Dec 16 11:35:35 2013 +0100

    dm9601: work around tx fifo sync issue on dm962x
    
    commit 4263c86dca5198da6bd3ad826d0b2304fbe25776 upstream.
    
    Certain dm962x revisions contain an bug, where if a USB bulk transfer retry
    (E.G. if bulk crc mismatch) happens right after a transfer with odd or
    maxpacket length, the internal tx hardware fifo gets out of sync causing
    the interface to stop working.
    
    Work around it by adding up to 3 bytes of padding to ensure this situation
    cannot trigger.
    
    This workaround also means we never pass multiple-of-maxpacket size skb's
    to usbnet, so the length adjustment to handle usbnet's padding of those can
    be removed.
    
    Reported-by: Joseph Chang <joseph_chang@davicom.com.tw>
    Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eaf34db54ac7a37f7e20758071264630e65e14cc
Author: Peter Korsgaard <peter@korsgaard.com>
Date:   Mon Dec 16 11:35:33 2013 +0100

    dm9601: fix reception of full size ethernet frames on dm9620/dm9621a
    
    commit 407900cfb54bdb2cfa228010b6697305f66b2948 upstream.
    
    dm9620/dm9621a require room for 4 byte padding even in dm9601 (3 byte
    header) mode.
    
    Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e944554fc821898a9b76dcb9081e5ff21574a00b
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Mon Dec 23 18:49:30 2013 +0100

    auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE
    
    commit f60900f2609e893c7f8d0bccc7ada4947dac4cd5 upstream.
    
    Commit 2171364d1a92 ("powerpc: Add HWCAP2 aux entry") introduced a new
    AT_ auxv entry type AT_HWCAP2 but failed to update AT_VECTOR_SIZE_BASE
    accordingly.
    
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Fixes: 2171364d1a92 (powerpc: Add HWCAP2 aux entry)
    Acked-by: Michael Neuling <michael@neuling.org>
    Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b8a321513bce5945bc36f18ab27651288975a4c
Author: Tejun Heo <tj@kernel.org>
Date:   Fri Dec 6 15:07:32 2013 -0500

    cgroup: fix cgroup_create() error handling path
    
    commit 266ccd505e8acb98717819cef9d91d66c7b237cc upstream.
    
    ae7f164a09 ("cgroup: move cgroup->subsys[] assignment to
    online_css()") moved cgroup->subsys[] assignements later in
    cgroup_create() but didn't update error handling path accordingly
    leading to the following oops and leaking later css's after an
    online_css() failure.  The oops is from cgroup destruction path being
    invoked on the partially constructed cgroup which is not ready to
    handle empty slots in cgrp->subsys[] array.
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
      IP: [<ffffffff810eeaa8>] cgroup_destroy_locked+0x118/0x2f0
      PGD a780a067 PUD aadbe067 PMD 0
      Oops: 0000 [#1] SMP
      Modules linked in:
      CPU: 6 PID: 7360 Comm: mkdir Not tainted 3.13.0-rc2+ #69
      Hardware name:
      task: ffff8800b9dbec00 ti: ffff8800a781a000 task.ti: ffff8800a781a000
      RIP: 0010:[<ffffffff810eeaa8>]  [<ffffffff810eeaa8>] cgroup_destroy_locked+0x118/0x2f0
      RSP: 0018:ffff8800a781bd98  EFLAGS: 00010282
      RAX: ffff880586903878 RBX: ffff880586903800 RCX: ffff880586903820
      RDX: ffff880586903860 RSI: ffff8800a781bdb0 RDI: ffff880586903820
      RBP: ffff8800a781bde8 R08: ffff88060e0b8048 R09: ffffffff811d7bc1
      R10: 000000000000008c R11: 0000000000000001 R12: ffff8800a72286c0
      R13: 0000000000000000 R14: ffffffff81cf7a40 R15: 0000000000000001
      FS:  00007f60ecda57a0(0000) GS:ffff8806272c0000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000008 CR3: 00000000a7a03000 CR4: 00000000000007e0
      Stack:
       ffff880586903860 ffff880586903910 ffff8800a72286c0 ffff880586903820
       ffffffff81cf7a40 ffff880586903800 ffff88060e0b8018 ffffffff81cf7a40
       ffff8800b9dbec00 ffff8800b9dbf098 ffff8800a781bec8 ffffffff810ef5bf
      Call Trace:
       [<ffffffff810ef5bf>] cgroup_mkdir+0x55f/0x5f0
       [<ffffffff811c90ae>] vfs_mkdir+0xee/0x140
       [<ffffffff811cb07e>] SyS_mkdirat+0x6e/0xf0
       [<ffffffff811c6a19>] SyS_mkdir+0x19/0x20
       [<ffffffff8169e569>] system_call_fastpath+0x16/0x1b
    
    This patch moves reference bumping inside online_css() loop, clears
    css_ar[] as css's are brought online successfully, and updates
    err_destroy path so that either a css is fully online and destroyed by
    cgroup_destroy_locked() or the error path frees it.  This creates a
    duplicate css free logic in the error path but it will be cleaned up
    soon.
    
    v2: Li pointed out that cgroup_destroy_locked() would do NULL-deref if
        invoked with a cgroup which doesn't have all css's populated.
        Update cgroup_destroy_locked() so that it skips NULL css's.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Acked-by: Li Zefan <lizefan@huawei.com>
    Reported-by: Vladimir Davydov <vdavydov@parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43ed0aca17f81ba5925df2dc7bfd0ec8da006880
Author: Nithin Sujir <nsujir@broadcom.com>
Date:   Thu Dec 19 17:44:11 2013 -0800

    tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
    
    commit 375679104ab3ccfd18dcbd7ba503734fb9a2c63a upstream.
    
    The current driver assumes that an skb fragment can only be upto jumbo
    size. Presumably this was a fast-path optimization. This assumption is
    no longer true as fragments can be upto 32k.
    
    v2: Remove unnecessary parantheses per Eric Dumazet.
    
    Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36bbba06712195d38c027655bc4b9c0c2ac2b006
Author: Li Wang <liwang@ubuntukylin.com>
Date:   Wed Nov 13 15:22:14 2013 +0800

    ceph: Avoid data inconsistency due to d-cache aliasing in readpage()
    
    commit 56f91aad69444d650237295f68c195b74d888d95 upstream.
    
    If the length of data to be read in readpage() is exactly
    PAGE_CACHE_SIZE, the original code does not flush d-cache
    for data consistency after finishing reading. This patches fixes
    this.
    
    Signed-off-by: Li Wang <liwang@ubuntukylin.com>
    Signed-off-by: Sage Weil <sage@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83eb563f3daffe578731b12650bcef85d150a92b
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Mon Dec 23 17:11:35 2013 +0100

    drm/radeon: set correct pipe config for Hawaii in DCE
    
    commit 35a905282b20e556cd09f348f9c2bc8a22ea26d5 upstream.
    
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2b8225e61d9176a5d08218842ce03c7be035176
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Dec 23 09:31:58 2013 -0500

    drm/radeon: 0x9649 is SUMO2 not SUMO
    
    commit d00adcc8ae9e22eca9d8af5f66c59ad9a74c90ec upstream.
    
    Fixes rendering corruption due to incorrect
    gfx configuration.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=63599
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f87d955eb681e0cf89ea02a36bcf9043f1346bfa
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Sun Dec 22 02:18:01 2013 +0100

    drm/radeon: expose render backend mask to the userspace
    
    commit 439a1cfffe2c1a06e5a6394ccd5d18a8e89b15d3 upstream.
    
    This will allow userspace to correctly program the PA_SC_RASTER_CONFIG
    register, so it can be considered a fix.
    
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3c1f0d0aaf20f9dee35ae99ec8b8705af4dc60e
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Sun Dec 22 02:18:00 2013 +0100

    drm/radeon: fix render backend setup for SI and CIK
    
    commit 9fadb352ed73edd7801a280b552d33a6040c8721 upstream.
    
    Only the render backends of the first shader engine were enabled. The others
    were erroneously disabled. Enabling the other render backends improves
    performance a lot.
    
    Unigine Sanctuary on Bonaire:
      Before: 15 fps
      After:  90 fps
    
    Judging from the fan noise, the GPU was also underclocked when the other
    render backends were disabled, resulting in horrible performance. The fan is
    a lot noisy under load now.
    
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed2ab532f87bdf9faadd43ce1f11a117d7d08c18
Author: Christian König <christian.koenig@amd.com>
Date:   Fri Dec 20 17:48:54 2013 +0100

    drm/radeon: fix UVD 256MB check
    
    commit bae651dbd7ade3c5d6518f89599ae680a2fe2b85 upstream.
    
    Otherwise the kernel might reject our decoding requests.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a3a1fee4f4830725d6478cb6c43cbebb6665421
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 17 14:34:50 2013 +0000

    drm/i915: Use the correct GMCH_CTRL register for Sandybridge+
    
    commit a885b3ccc74d8e38074e1c43a47c354c5ea0b01e upstream.
    
    The GMCH_CTRL register (or MGCC in the spec) is at a different address
    on Sandybridge, and the address to which we currently write to is
    undefined. These stray writes appear to upset (hard hang) my Ivybridge
    machine whilst it is in UEFI mode.
    
    Note that the register is still marked as locked RO on Sandybridge, so
    vgaarb is still dysfunctional.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit efb8c424efda694a132e6567aa2eb0f67208f520
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Fri Dec 6 20:29:01 2013 -0200

    drm/i915: change CRTC assertion on LCPLL disable
    
    commit 96b4026878d9dac71bd4c3d6e05c7fbb16a3e0aa upstream.
    
    Currently, PC8 is enabled at modeset_global_resources, which is called
    after intel_modeset_update_state. Due to this, there's a small race
    condition on the case where we start enabling PC8, then do a modeset
    while PC8 is still being enabled. The racing condition triggers a WARN
    because intel_modeset_update_state will mark the CRTC as enabled, then
    the thread that's still enabling PC8 might look at the data structure
    and think that PC8 is being enabled while a pipe is enabled. Despite
    the WARN, this is not really a bug since we'll wait for the
    PC8-enabling thread to finish when we call modeset_global_resources.
    
    The spec says the CRTC cannot be enabled when we disable LCPLL, so we
    had a check for crtc->base.enabled. If we change to crtc->active we
    will still prevent disabling LCPLL while the CRTC is enabled, and we
    will also prevent the WARN above.
    
    This is a replacement for the previous patch named
        "drm/i915: get/put PC8 when we get/put a CRTC"
    
    Testcase: igt/pm_pc8/modeset-lpsp-stress-no-wait
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    (cherry picked from commit 798183c54799fbe1e5a5bfabb3a8c0505ffd2149
    from -next due to Dave's report.)
    Reported-by: Dave Jones <davej@redhat.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c96c3ac6f9e6a0fff86b3263270fdb73e25aec00
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 4 11:37:09 2013 +0000

    drm/i915: Fix erroneous dereference of batch_obj inside reset_status
    
    commit 4db080f9e93411c3c41ec402244da28e2bbde835 upstream.
    
    As the rings may be processed and their requests deallocated in a
    different order to the natural retirement during a reset,
    
    /* Whilst this request exists, batch_obj will be on the
     * active_list, and so will hold the active reference. Only when this
     * request is retired will the the batch_obj be moved onto the
     * inactive_list and lose its active reference. Hence we do not need
     * to explicitly hold another reference here.
     */
    
    is violated, and the batch_obj may be dereferenced after it had been
    freed on another ring. This can be simply avoided by processing the
    status update prior to deallocating any requests.
    
    Fixes regression (a possible OOPS following a GPU hang) from
    commit aa60c664e6df502578454621c3a9b1f087ff8d25
    Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Date:   Wed Jun 12 15:13:20 2013 +0300
    
        drm/i915: find guilty batch buffer on ring resets
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
    [danvet: Add the code comment Chris supplied.]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1c79f7a284f47a7845637c198cee8c6ca97ef87
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Dec 19 19:41:46 2013 -0500

    drm/radeon: fix asic gfx values for scrapper asics
    
    commit e2f6c88fb903e123edfd1106b0b8310d5117f774 upstream.
    
    Fixes gfx corruption on certain TN/RL parts.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=60389
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 747cab61d821b71da8316b4927f45ff5eb0f5caf
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Dec 13 09:05:49 2013 -0500

    drm/radeon: check for 0 count in speaker allocation and SAD code
    
    commit b67ce39a30976171e7b96b30a94a0216ab89df97 upstream.
    
    If there is no speaker allocation block or SAD block, bail
    early.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=72283
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 677e753653ae531e38edcfd4c1d61205790655f7
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Dec 9 17:46:59 2013 -0500

    drm/radeon/dpm: disable ss on Cayman
    
    commit c745fe611ca42295c9d91d8e305d27983e9132ef upstream.
    
    Spread spectrum seems to cause hangs when dynamic clock
    switching is enabled.  Disable it for now. This does not
    affect performance or the amount of power saved. Tracked
    down by Martin Andersson.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=69723
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9f74a1c0ad7c1be8adc07bfa1a609195628b4d4
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Dec 10 13:20:59 2013 +0100

    drm/i915: don't update the dri1 breadcrumb with modesetting
    
    commit 6c719faca2aceca72f1bf5b1645c1734ed3e9447 upstream.
    
    The update is horribly racy since it doesn't protect at all against
    concurrent closing of the master fd. And it can't really since that
    requires us to grab a mutex.
    
    Instead of jumping through hoops and offloading this to a worker
    thread just block this bit of code for the modesetting driver.
    
    Note that the race is fairly easy to hit since we call the breadcrumb
    function for any interrupt. So the vblank interrupt (which usually
    keeps going for a bit) is enough. But even if we'd block this and only
    update the breadcrumb for user interrupts from the CS we could hit
    this race with kms/gem userspace: If a non-master is waiting somewhere
    (and hence has interrupts enabled) and the master closes its fd
    (probably due to crashing).
    
    v2: Add a code comment to explain why fixing this for real isn't
    really worth it. Also improve the commit message a bit.
    
    v3: Fix the spelling in the comment.
    
    Reported-by: Eugene Shatokhin <eugene.shatokhin@rosalab.ru>
    Cc: Eugene Shatokhin <eugene.shatokhin@rosalab.ru>
    Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
    Tested-by: Eugene Shatokhin <eugene.shatokhin@rosalab.ru>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7ff0c724dc2fbe9e6ce514490d1eac5e7d1f565
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Thu Dec 5 15:42:34 2013 +0100

    drm/i915: Fix use-after-free in do_switch
    
    commit acc240d41ea1ab9c488a79219fb313b5b46265ae upstream.
    
    So apparently under ridiculous amounts of memory pressure we can get
    into trouble in do_switch when we try to move the old hw context
    backing storage object onto the active lists.
    
    With list debugging enabled that usually results in us chasing a
    poisoned pointer - which means we've hit upon a vma that has been
    removed from all lrus with list_del (and then deallocated, so it's a
    real use-after free).
    
    Ian Lister has done some great callchain chasing and noticed that we
    can reenter do_switch:
    
    i915_gem_do_execbuffer()
    
    i915_switch_context()
    
    do_switch()
       from = ring->last_context;
       i915_gem_object_pin()
    
          i915_gem_object_bind_to_gtt()
             ret = drm_mm_insert_node_in_range_generic();
             // If the above call fails then it will try i915_gem_evict_something()
             // If that fails it will call i915_gem_evict_everything() ...
    	 i915_gem_evict_everything()
    	    i915_gpu_idle()
    	       i915_switch_context(DEFAULT_CONTEXT)
    
    Like with everything else where the shrinker or eviction code can
    invalidate pointers we need to reload relevant state.
    
    Note that there's no need to recheck whether a context switch is still
    required because:
    
    - Doing a switch to the same context is harmless (besides wasting a
      bit of energy).
    
    - This can only happen with the default context. But since that one's
      pinned we'll never call down into evict_everything under normal
      circumstances. Note that there's a little driver bringup fun
      involved namely that we could recourse into do_switch for the
      initial switch. Atm we're fine since we assign the context pointer
      only after the call to do_switch at driver load or resume time. And
      in the gpu reset case we skip the entire setup sequence (which might
      be a bug on its own, but definitely not this one here).
    
    Cc'ing stable since apparently ChromeOS guys are seeing this in the
    wild (and not just on artificial stress tests), see the reference.
    
    Note that in upstream code doesn't calle evict_everything directly
    from evict_something, that's an extension in this product branch. But
    we can still hit upon this bug (and apparently we do, see the linked
    backtraces). I've noticed this while trying to construct a testcase
    for this bug and utterly failed to provoke it. It looks like we need
    to driver the system squarly into the lowmem wall and provoke the
    shrinker to evict the context object by doing the last-ditch
    evict_everything call.
    
    Aside: There's currently no means to get a badly-fragmenting hw
    context object away from a bad spot in the upstream code. We should
    fix this by at least adding some code to evict_something to handle hw
    contexts.
    
    References: https://code.google.com/p/chromium/issues/detail?id=248191
    Reported-by: Ian Lister <ian.lister@intel.com>
    Cc: Ian Lister <ian.lister@intel.com>
    Cc: Ben Widawsky <benjamin.widawsky@intel.com>
    Cc: Stéphane Marchesin <marcheu@chromium.org>
    Cc: Bloomfield, Jon <jon.bloomfield@intel.com>
    Tested-by: Rafael Barbalho <rafael.barbalho@intel.com>
    Reviewed-by: Ian Lister <ian.lister@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ba9e0cd9ef7dcd08ac047787724c8f5ea882074
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 4 14:52:06 2013 +0000

    drm/i915: Hold mutex across i915_gem_release
    
    commit 0d1430a3f4b7cfd8779b78740a4182321f3ca7f3 upstream.
    
    Inorder to serialise the closing of the file descriptor and its
    subsequent release of client requests with i915_gem_free_request(), we
    need to hold the struct_mutex in i915_gem_release(). Failing to do so
    has the potential to trigger an OOPS, later with a use-after-free.
    
    Testcase: igt/gem_close_race
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70874
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71029
    Reported-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bdfed0205227201fcb442ee4bea4ba20f34526a
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Dec 2 11:08:06 2013 +0200

    drm/i915: Take modeset locks around intel_modeset_setup_hw_state()
    
    commit 027476642811f8559cbe00ef6cc54db230e48a20 upstream.
    
    Some lower level things get angry if we don't have modeset locks
    during intel_modeset_setup_hw_state(). Actually the resume and
    lid_notify codepaths alreday hold the locks, but the init codepath
    doesn't, so fix that.
    
    Note: This slipped through since we only disable pipes if the
    plane/pipe linking doesn't match. Which is only relevant on older
    gen3 mobile machines, if the BIOS fails to set up our preferred
    linking.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Tested-and-reported-by: Paul Bolle <pebolle@tiscali.nl>
    [danvet: Add note now that I could confirm my theory with the log
    files Paul Bolle provided.]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1150b25de9411435040d82ddf981abcd468f2c7
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Dec 11 11:43:58 2013 -0500

    drm/radeon: add missing display tiling setup for oland
    
    commit 227ae10f17a5f2fd1307b7e582b603ef7bbb7e97 upstream.
    
    Fixes improperly set up display params for 2D tiling on
    oland.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 830e5bcc413b686f4c1ddf3ad54436581bfc4ca7
Author: Christian König <christian.koenig@amd.com>
Date:   Tue Dec 10 17:57:37 2013 +0100

    drm/radeon: fix typo in cik_copy_dma
    
    commit 1b3abef830db98c11d7f916a483abaf2501f3323 upstream.
    
    Otherwise we end up with a rather strange looking result.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Tested-by: Tom Stellard <thomas.stellard@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 866b62d1300d94da98a25792399930fdabc4a8a9
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Dec 2 18:15:51 2013 -0500

    drm/radeon: Fix sideport problems on certain RS690 boards
    
    commit 8333f0fe133be420ce3fcddfd568c3a559ab274e upstream.
    
    Some RS690 boards with 64MB of sideport memory show up as
    having 128MB sideport + 256MB of UMA.  In this case,
    just skip the sideport memory and use UMA.  This fixes
    rendering corruption and should improve performance.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=35457
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36abf88c17b1dec10590f7accb66b3d72a6df214
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Sun Dec 8 23:23:57 2013 -0800

    drm/ttm: Fix accesses through vmas with only partial coverage
    
    commit d386735588c3e22129c2bc6eb64fc1d37a8f805c upstream.
    
    VMAs covering a bo but that didn't start at the same address space offset as
    the bo they were mapping were incorrectly generating SEGFAULT errors in
    the fault handler.
    
    Reported-by: Joseph Dolinak <kanilo2@yahoo.com>
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b556918588fc14ab6372b9579d512710d52cb32f
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Sat Dec 7 13:22:42 2013 +0100

    drm/edid: add quirk for BPC in Samsung NP700G7A-S01PL notebook
    
    commit 49d45a31b71d7d9da74485922bdb63faf3dc9684 upstream.
    
    This bug in EDID was exposed by:
    
    commit eccea7920cfb009c2fa40e9ecdce8c36f61cab66
    Author: Alex Deucher <alexander.deucher@amd.com>
    Date:   Mon Mar 26 15:12:54 2012 -0400
    
        drm/radeon/kms: improve bpc handling (v2)
    
    Which resulted in kind of regression in 3.5. This fixes
    https://bugs.freedesktop.org/show_bug.cgi?id=70934
    
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ce5352593096740d03285378cc3c6c01655ecf0
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Tue Dec 17 10:09:32 2013 -0800

    net_dma: mark broken
    
    commit 77873803363c9e831fc1d1e6895c084279090c22 upstream.
    
    net_dma can cause data to be copied to a stale mapping if a
    copy-on-write fault occurs during dma.  The application sees missing
    data.
    
    The following trace is triggered by modifying the kernel to WARN if it
    ever triggers copy-on-write on a page that is undergoing dma:
    
     WARNING: CPU: 24 PID: 2529 at lib/dma-debug.c:485 debug_dma_assert_idle+0xd2/0x120()
     ioatdma 0000:00:04.0: DMA-API: cpu touching an active dma mapped page [pfn=0x16bcd9]
     Modules linked in: iTCO_wdt iTCO_vendor_support ioatdma lpc_ich pcspkr dca
     CPU: 24 PID: 2529 Comm: linbug Tainted: G        W    3.13.0-rc1+ #353
      00000000000001e5 ffff88016f45f688 ffffffff81751041 ffff88017ab0ef70
      ffff88016f45f6d8 ffff88016f45f6c8 ffffffff8104ed9c ffffffff810f3646
      ffff8801768f4840 0000000000000282 ffff88016f6cca10 00007fa2bb699349
     Call Trace:
      [<ffffffff81751041>] dump_stack+0x46/0x58
      [<ffffffff8104ed9c>] warn_slowpath_common+0x8c/0xc0
      [<ffffffff810f3646>] ? ftrace_pid_func+0x26/0x30
      [<ffffffff8104ee86>] warn_slowpath_fmt+0x46/0x50
      [<ffffffff8139c062>] debug_dma_assert_idle+0xd2/0x120
      [<ffffffff81154a40>] do_wp_page+0xd0/0x790
      [<ffffffff811582ac>] handle_mm_fault+0x51c/0xde0
      [<ffffffff813830b9>] ? copy_user_enhanced_fast_string+0x9/0x20
      [<ffffffff8175fc2c>] __do_page_fault+0x19c/0x530
      [<ffffffff8175c196>] ? _raw_spin_lock_bh+0x16/0x40
      [<ffffffff810f3539>] ? trace_clock_local+0x9/0x10
      [<ffffffff810fa1f4>] ? rb_reserve_next_event+0x64/0x310
      [<ffffffffa0014c00>] ? ioat2_dma_prep_memcpy_lock+0x60/0x130 [ioatdma]
      [<ffffffff8175ffce>] do_page_fault+0xe/0x10
      [<ffffffff8175c862>] page_fault+0x22/0x30
      [<ffffffff81643991>] ? __kfree_skb+0x51/0xd0
      [<ffffffff813830b9>] ? copy_user_enhanced_fast_string+0x9/0x20
      [<ffffffff81388ea2>] ? memcpy_toiovec+0x52/0xa0
      [<ffffffff8164770f>] skb_copy_datagram_iovec+0x5f/0x2a0
      [<ffffffff8169d0f4>] tcp_rcv_established+0x674/0x7f0
      [<ffffffff816a68c5>] tcp_v4_do_rcv+0x2e5/0x4a0
      [..]
     ---[ end trace e30e3b01191b7617 ]---
     Mapped at:
      [<ffffffff8139c169>] debug_dma_map_page+0xb9/0x160
      [<ffffffff8142bf47>] dma_async_memcpy_pg_to_pg+0x127/0x210
      [<ffffffff8142cce9>] dma_memcpy_pg_to_iovec+0x119/0x1f0
      [<ffffffff81669d3c>] dma_skb_copy_datagram_iovec+0x11c/0x2b0
      [<ffffffff8169d1ca>] tcp_rcv_established+0x74a/0x7f0:
    
    ...the problem is that the receive path falls back to cpu-copy in
    several locations and this trace is just one of the areas.  A few
    options were considered to fix this:
    
    1/ sync all dma whenever a cpu copy branch is taken
    
    2/ modify the page fault handler to hold off while dma is in-flight
    
    Option 1 adds yet more cpu overhead to an "offload" that struggles to compete
    with cpu-copy.  Option 2 adds checks for behavior that is already documented as
    broken when using get_user_pages().  At a minimum a debug mode is warranted to
    catch and flag these violations of the dma-api vs get_user_pages().
    
    Thanks to David for his reproducer.
    
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Alexander Duyck <alexander.h.duyck@intel.com>
    Reported-by: David Whipple <whipple@securedatainnovations.ch>
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93c02d70331c10629595fc0d8c446f8058c2f074
Author: Stefan Richter <stefanr@s5r6.in-berlin.de>
Date:   Sun Dec 15 16:18:01 2013 +0100

    firewire: sbp2: bring back WRITE SAME support
    
    commit ce027ed98fd176710fb14be9d6015697b62436f0 upstream.
    
    Commit 54b2b50c20a6 "[SCSI] Disable WRITE SAME for RAID and virtual
    host adapter drivers" disabled WRITE SAME support for all SBP-2 attached
    targets.  But as described in the changelog of commit b0ea5f19d3d8
    "firewire: sbp2: allow WRITE SAME and REPORT SUPPORTED OPERATION CODES",
    it is not required to blacklist WRITE SAME.
    
    Bring the feature back by reverting the sbp2.c hunk of commit 54b2b50c20a6.
    
    Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bff3e480b75e408444ad5f0d8bd15a407f4a6cb
Author: Kirill Tkhai <tkhai@yandex.ru>
Date:   Wed Nov 27 19:59:13 2013 +0400

    sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities
    
    commit 757dfcaa41844595964f1220f1d33182dae49976 upstream.
    
    This patch touches the RT group scheduling case.
    
    Functions inc_rt_prio_smp() and dec_rt_prio_smp() change (global) rq's
    priority, while rt_rq passed to them may be not the top-level rt_rq.
    This is wrong, because changing of priority on a child level does not
    guarantee that the priority is the highest all over the rq. So, this
    leak makes RT balancing unusable.
    
    The short example: the task having the highest priority among all rq's
    RT tasks (no one other task has the same priority) are waking on a
    throttle rt_rq.  The rq's cpupri is set to the task's priority
    equivalent, but real rq->rt.highest_prio.curr is less.
    
    The patch below fixes the problem.
    
    Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    CC: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/49231385567953@web4m.yandex.ru
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f4890293230a3259fefa673580c45a9b4012295
Author: Lukas Czerner <lczerner@redhat.com>
Date:   Wed Oct 30 11:10:52 2013 -0400

    ext4: fix FITRIM in no journal mode
    
    commit 8f9ff189205a6817aee5a1f996f876541f86e07c upstream.
    
    When using FITRIM ioctl on a file system without journal it will
    only trim the block group once, no matter how many times you invoke
    FITRIM ioctl and how many block you release from the block group.
    
    It is because we only clear EXT4_GROUP_INFO_WAS_TRIMMED_BIT in journal
    callback. Fix this by clearing the bit in no journal mode as well.
    
    Signed-off-by: Lukas Czerner <lczerner@redhat.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Reported-by: Jorge Fábregas <jorge.fabregas@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit efa1cbb5679344d260812c8e2f19ee5b19f23bb8
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Fri Dec 20 09:29:35 2013 -0500

    ext4: add explicit casts when masking cluster sizes
    
    commit f5a44db5d2d677dfbf12deee461f85e9ec633961 upstream.
    
    The missing casts can cause the high 64-bits of the physical blocks to
    be lost.  Set up new macros which allows us to make sure the right
    thing happen, even if at some point we end up supporting larger
    logical block numbers.
    
    Thanks to the Emese Revfy and the PaX security team for reporting this
    issue.
    
    Reported-by: PaX Team <pageexec@freemail.hu>
    Reported-by: Emese Revfy <re.emese@gmail.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4589c1f2b1f529ca0383bba9f7cc2eb73cdfa04
Author: Jan Kara <jack@suse.cz>
Date:   Wed Dec 18 00:44:44 2013 -0500

    ext4: fix deadlock when writing in ENOSPC conditions
    
    commit 34cf865d54813aab3497838132fb1bbd293f4054 upstream.
    
    Akira-san has been reporting rare deadlocks of his machine when running
    xfstests test 269 on ext4 filesystem. The problem turned out to be in
    ext4_da_reserve_metadata() and ext4_da_reserve_space() which called
    ext4_should_retry_alloc() while holding i_data_sem. Since
    ext4_should_retry_alloc() can force a transaction commit, this is a
    lock ordering violation and leads to deadlocks.
    
    Fix the problem by just removing the retry loops. These functions should
    just report ENOSPC to the caller (e.g. ext4_da_write_begin()) and that
    function must take care of retrying after dropping all necessary locks.
    
    Reported-and-tested-by: Akira Fujita <a-fujita@rs.jp.nec.com>
    Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>
    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 12f5b490823b9e75d9550720eaf0b2ac111c0f3e
Author: Jan Kara <jack@suse.cz>
Date:   Sun Dec 8 21:11:59 2013 -0500

    ext4: Do not reserve clusters when fs doesn't support extents
    
    commit 30fac0f75da24dd5bb43c9e911d2039a984ac815 upstream.
    
    When the filesystem doesn't support extents (like in ext2/3
    compatibility modes), there is no need to reserve any clusters. Space
    estimates for writing are exact, hole punching doesn't need new
    metadata, and there are no unwritten extents to convert.
    
    This fixes a problem when filesystem still having some free space when
    accessed with a native ext2/3 driver suddently reports ENOSPC when
    accessed with ext4 driver.
    
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reviewed-by: Lukas Czerner <lczerner@redhat.com>
    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 89b4fc74a5978d8d226870fff1ea8cd2f7122214
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Sun Dec 8 20:52:31 2013 -0500

    ext4: fix del_timer() misuse for ->s_err_report
    
    commit 9105bb149bbbc555d2e11ba5166dfe7a24eae09e upstream.
    
    That thing should be del_timer_sync(); consider what happens
    if ext4_put_super() call of del_timer() happens to come just as it's
    getting run on another CPU.  Since that timer reschedules itself
    to run next day, you are pretty much guaranteed that you'll end up
    with kfree'd scheduled timer, with usual fun consequences.  AFAICS,
    that's -stable fodder all way back to 2010... [the second del_timer_sync()
    is almost certainly not needed, but it doesn't hurt either]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea214c946ee77588c4313be3e9951edd25d6b270
Author: Eryu Guan <guaneryu@gmail.com>
Date:   Tue Dec 3 21:22:21 2013 -0500

    ext4: check for overlapping extents in ext4_valid_extent_entries()
    
    commit 5946d089379a35dda0e531710b48fca05446a196 upstream.
    
    A corrupted ext4 may have out of order leaf extents, i.e.
    
    extent: lblk 0--1023, len 1024, pblk 9217, flags: LEAF UNINIT
    extent: lblk 1000--2047, len 1024, pblk 10241, flags: LEAF UNINIT
                 ^^^^ overlap with previous extent
    
    Reading such extent could hit BUG_ON() in ext4_es_cache_extent().
    
    	BUG_ON(end < lblk);
    
    The problem is that __read_extent_tree_block() tries to cache holes as
    well but assumes 'lblk' is greater than 'prev' and passes underflowed
    length to ext4_es_cache_extent(). Fix it by checking for overlapping
    extents in ext4_valid_extent_entries().
    
    I hit this when fuzz testing ext4, and am able to reproduce it by
    modifying the on-disk extent by hand.
    
    Also add the check for (ee_block + len - 1) in ext4_valid_extent() to
    make sure the value is not overflow.
    
    Ran xfstests on patched ext4 and no regression.
    
    Cc: Lukáš Czerner <lczerner@redhat.com>
    Signed-off-by: Eryu Guan <guaneryu@gmail.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab69f8ebb8c10ae3c7da0e1ff611d585ee6b11d2
Author: Junho Ryu <jayr@google.com>
Date:   Tue Dec 3 18:10:28 2013 -0500

    ext4: fix use-after-free in ext4_mb_new_blocks
    
    commit 4e8d2139802ce4f41936a687f06c560b12115247 upstream.
    
    ext4_mb_put_pa should hold pa->pa_lock before accessing pa->pa_count.
    While ext4_mb_use_preallocated checks pa->pa_deleted first and then
    increments pa->count later, ext4_mb_put_pa decrements pa->pa_count
    before holding pa->pa_lock and then sets pa->pa_deleted.
    
    * Free sequence
    ext4_mb_put_pa (1):		atomic_dec_and_test pa->pa_count
    ext4_mb_put_pa (2):		lock pa->pa_lock
    ext4_mb_put_pa (3):			check pa->pa_deleted
    ext4_mb_put_pa (4):			set pa->pa_deleted=1
    ext4_mb_put_pa (5):		unlock pa->pa_lock
    ext4_mb_put_pa (6):		remove pa from a list
    ext4_mb_pa_callback:		free pa
    
    * Use sequence
    ext4_mb_use_preallocated (1):	iterate over preallocation
    ext4_mb_use_preallocated (2):	lock pa->pa_lock
    ext4_mb_use_preallocated (3):		check pa->pa_deleted
    ext4_mb_use_preallocated (4):		increase pa->pa_count
    ext4_mb_use_preallocated (5):	unlock pa->pa_lock
    ext4_mb_release_context:	access pa
    
    * Use-after-free sequence
    [initial status]		<pa->pa_deleted = 0, pa_count = 1>
    ext4_mb_use_preallocated (1):	iterate over preallocation
    ext4_mb_use_preallocated (2):	lock pa->pa_lock
    ext4_mb_use_preallocated (3):		check pa->pa_deleted
    ext4_mb_put_pa (1):		atomic_dec_and_test pa->pa_count
    [pa_count decremented]		<pa->pa_deleted = 0, pa_count = 0>
    ext4_mb_use_preallocated (4):		increase pa->pa_count
    [pa_count incremented]		<pa->pa_deleted = 0, pa_count = 1>
    ext4_mb_use_preallocated (5):	unlock pa->pa_lock
    ext4_mb_put_pa (2):		lock pa->pa_lock
    ext4_mb_put_pa (3):			check pa->pa_deleted
    ext4_mb_put_pa (4):			set pa->pa_deleted=1
    [race condition!]		<pa->pa_deleted = 1, pa_count = 1>
    ext4_mb_put_pa (5):		unlock pa->pa_lock
    ext4_mb_put_pa (6):		remove pa from a list
    ext4_mb_pa_callback:		free pa
    ext4_mb_release_context:	access pa
    
    AddressSanitizer has detected use-after-free in ext4_mb_new_blocks
    Bug report: http://goo.gl/rG1On3
    
    Signed-off-by: Junho Ryu <jayr@google.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3e59ae4f767e91bd3f2bdb1d62b1a336db70a72
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Dec 2 09:31:36 2013 -0500

    ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails
    
    commit ae1495b12df1897d4f42842a7aa7276d920f6290 upstream.
    
    While it's true that errors can only happen if there is a bug in
    jbd2_journal_dirty_metadata(), if a bug does happen, we need to halt
    the kernel or remount the file system read-only in order to avoid
    further data loss.  The ext4_journal_abort_handle() function doesn't
    do any of this, and while it's likely that this call (since it doesn't
    adjust refcounts) will likely result in the file system eventually
    deadlocking since the current transaction will never be able to close,
    it's much cleaner to call let ext4's error handling system deal with
    this situation.
    
    There's a separate bug here which is that if certain jbd2 errors
    errors occur and file system is mounted errors=continue, the file
    system will probably eventually end grind to a halt as described
    above.  But things have been this way in a long time, and usually when
    we have these sorts of errors it's pretty much a disaster --- and
    that's why the jbd2 layer aggressively retries memory allocations,
    which is the most likely cause of these jbd2 errors.
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f4f86209be7221ddb145d7059dbbfc3667c1ef0
Author: Paul Drews <paul.drews@intel.com>
Date:   Mon Nov 25 14:15:55 2013 -0800

    ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs
    
    commit f6308b36c411dc5afd6a6f73e6454722bfde57b7 upstream.
    
    This adds the new ACPI ID (INT33FC) for the BayTrail GPIO
    banks as seen on a BayTrail M System-On-Chip platform.  This
    ACPI ID is used by the BayTrail GPIO (pinctrl) driver to
    manage the Low Power Subsystem (LPSS).
    
    Signed-off-by: Paul Drews <paul.drews@intel.com>
    Acked-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 313f6c6e08b571f315840ba514e74f6e87dc6c8a
Author: Len Brown <len.brown@intel.com>
Date:   Wed Dec 18 16:44:57 2013 -0500

    x86 idle: Repair large-server 50-watt idle-power regression
    
    commit 40e2d7f9b5dae048789c64672bf3027fbb663ffa upstream.
    
    Linux 3.10 changed the timing of how thread_info->flags is touched:
    
    	x86: Use generic idle loop
    	(7d1a941731fabf27e5fb6edbebb79fe856edb4e5)
    
    This caused Intel NHM-EX and WSM-EX servers to experience a large number
    of immediate MONITOR/MWAIT break wakeups, which caused cpuidle to demote
    from deep C-states to shallow C-states, which caused these platforms
    to experience a significant increase in idle power.
    
    Note that this issue was already present before the commit above,
    however, it wasn't seen often enough to be noticed in power measurements.
    
    Here we extend an errata workaround from the Core2 EX "Dunnington"
    to extend to NHM-EX and WSM-EX, to prevent these immediate
    returns from MWAIT, reducing idle power on these platforms.
    
    While only acpi_idle ran on Dunnington, intel_idle
    may also run on these two newer systems.
    As of today, there are no other models that are known
    to need this tweak.
    
    Link: http://lkml.kernel.org/r/CAJvTdK=%2BaNN66mYpCGgbHGCHhYQAKx-vB0kJSWjVpsNb_hOAtQ@mail.gmail.com
    Signed-off-by: Len Brown <len.brown@intel.com>
    Link: http://lkml.kernel.org/r/baff264285f6e585df757d58b17788feabc68918.1387403066.git.len.brown@intel.com
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d80667d96e64c8801e3ae41a06dadd475efe60c
Author: Tony Lindgren <tony@atomide.com>
Date:   Fri Dec 27 09:33:27 2013 -0800

    ARM: OMAP2+: Fix LCD panel backlight regression for LDP legacy booting
    
    commit 7e367c18c059c638bf6fb540f1decec18d64cb55 upstream.
    
    Looks like the LCD panel on LDP has been broken quite a while, and
    recently got fixed by commit 0b2aa8bed3e1 (gpio: twl4030: Fix regression
    for twl gpio output). However, there's still an issue left where the panel
    backlight does not come on if the LCD drivers are built into the
    kernel.
    
    Fix the issue by registering the DPI LCD panel only after the twl4030
    GPIO has probed.
    
    Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    [tony@atomide.com: updated per Tomi's comments]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 634f6cd42435329b48046bfd13cf6a2a5c077d92
Author: Suman Anna <s-anna@ti.com>
Date:   Mon Dec 23 16:53:11 2013 -0600

    ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data
    
    commit 6d4c88304794442055eaea1c07f3c7b988b8c924 upstream.
    
    Commit 7d7e1eb (ARM: OMAP2+: Prepare for irqs.h removal) and commit
    ec2c082 (ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ)
    updated the way interrupts for OMAP2/3 devices are defined in the
    HWMOD data structures to being an index plus a fixed offset (defined
    by OMAP_INTC_START).
    
    Couple of irqs in the OMAP2/3 hwmod data were misconfigured completely
    as they were missing this OMAP_INTC_START relative offset. Add this
    offset back to fix the incorrect irq data for the following modules:
    	OMAP2 - GPMC, RNG
    	OMAP3 - GPMC, ISP MMU & IVA MMU
    
    Signed-off-by: Suman Anna <s-anna@ti.com>
    Fixes: 7d7e1eba7e92 ("ARM: OMAP2+: Prepare for irqs.h removal")
    Fixes: ec2c0825ca31 ("ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ")
    Cc: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Paul Walmsley <paul@pwsan.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf51b83ea17fb3320ea24319aff9ef749370a861
Author: Rajendra Nayak <rnayak@ti.com>
Date:   Thu Dec 12 15:22:49 2013 +0530

    ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL
    
    commit 38958c15dc640a9249e4f0cd0dfb0ddc7a23464d upstream.
    
    With commit '7dedd34: ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with
     DEBUG_LL' we moved from parsing cmdline to identify uart used for earlycon
    to using the requsite hwmod CONFIG_DEBUG_OMAPxUARTy FLAGS.
    
    On DRA7 though, we seem to be missing this flag, and atleast on the DRA7 EVM
    where we use uart1 for console, boot fails with DEBUG_LL enabled.
    
    Reported-by: Lokesh Vutla <lokeshvutla@ti.com>
    Tested-by:  Lokesh Vutla <lokeshvutla@ti.com> # on a different base
    Signed-off-by: Rajendra Nayak <rnayak@ti.com>
    Fixes: 7dedd346941d ("ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with DEBUG_LL")
    Signed-off-by: Paul Walmsley <paul@pwsan.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 139517841b0e0e06d112ef084065ca8bc85de8c1
Author: Ben Dooks <ben.dooks@codethink.co.uk>
Date:   Mon Dec 16 12:38:48 2013 +0000

    ARM: shmobile: r8a7790: fix shdi resource sizes
    
    commit d721a15c300c5f638a11573a6dd492158e737d6a upstream.
    
    The r8a7790.dtsi file has four sdhi nodes which the first two have the wrong
    resource size for their register block. This causes the sh_modbile_sdhi driver
    to fail to communicate with card at-all.
    
    Change sdhi{0,1} node size from 0x100 to 0x200 to correct these nodes
    as per Kuninori Morimoto's response to the original patch where all four
    nodes where changed. sdhi{2,3} are the correct size.
    
    This bug has been present since sdhi resources were added to the r8a7790 by
    8c9b1aa41853272a ("ARM: shmobile: r8a7790: add MMCIF and SDHI DT
    templates") in v3.11-rc2.
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Tested-by: William Towle <william.towle@codethink.co.uk>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b64d54bea3b4c92bca560dae40ddb2dc4e6972a
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Dec 17 17:09:08 2013 +0000

    arm64: ptrace: avoid using HW_BREAKPOINT_EMPTY for disabled events
    
    commit cdc27c27843248ae7eb0df5fc261dd004eaa5670 upstream.
    
    Commit 8f34a1da35ae ("arm64: ptrace: use HW_BREAKPOINT_EMPTY type for
    disabled breakpoints") fixed an issue with GDB trying to zero breakpoint
    control registers. The problem there is that the arch hw_breakpoint code
    will attempt to create a (disabled), execute breakpoint of length 0.
    
    This will fail validation and report unexpected failure to GDB. To avoid
    this, we treated disabled breakpoints as HW_BREAKPOINT_EMPTY, but that
    seems to have broken with recent kernels, causing watchpoints to be
    treated as TYPE_INST in the core code and returning ENOSPC for any
    further breakpoints.
    
    This patch fixes the problem by prioritising the `enable' field of the
    breakpoint: if it is cleared, we simply update the perf_event_attr to
    indicate that the thing is disabled and don't bother changing either the
    type or the length. This reinforces the behaviour that the breakpoint
    control register is essentially read-only apart from the enable bit
    when disabling a breakpoint.
    
    Reported-by: Aaron Liu <liucy214@gmail.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 657d81a0ae5ed05987fd6139aab1ea94d1056bd2
Author: Ming Lei <tom.leiming@gmail.com>
Date:   Tue Dec 10 16:46:29 2013 +1030

    scripts/link-vmlinux.sh: only filter kernel symbols for arm
    
    commit 7122c3e9154b5d9a7422f68f02d8acf050fad2b0 upstream.
    
    Actually CONFIG_PAGE_OFFSET isn't same with PAGE_OFFSET, so
    it isn't easy to figue out PAGE_OFFSET defined in header
    file from scripts.
    
    Because CONFIG_PAGE_OFFSET may not be defined in some ARCHs(
    64bit ARCH), or defined as bogus value in !MMU case, so
    this patch only applys the filter on ARM when CONFIG_PAGE_OFFSET
    is defined as the original problem is only on ARM.
    
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Fixes: f6537f2f0eba4eba3354e48dbe3047db6d8b6254
    Singed-off-by: Ming Lei <tom.leiming@gmail.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97dd150b32f11d352147eea6919f6894cdcd36f2
Author: Miao Xie <miaox@cn.fujitsu.com>
Date:   Mon Dec 16 15:20:01 2013 +0800

    ftrace: Initialize the ftrace profiler for each possible cpu
    
    commit c4602c1c818bd6626178d6d3fcc152d9f2f48ac0 upstream.
    
    Ftrace currently initializes only the online CPUs. This implementation has
    two problems:
    - If we online a CPU after we enable the function profile, and then run the
      test, we will lose the trace information on that CPU.
      Steps to reproduce:
      # echo 0 > /sys/devices/system/cpu/cpu1/online
      # cd <debugfs>/tracing/
      # echo <some function name> >> set_ftrace_filter
      # echo 1 > function_profile_enabled
      # echo 1 > /sys/devices/system/cpu/cpu1/online
      # run test
    - If we offline a CPU before we enable the function profile, we will not clear
      the trace information when we enable the function profile. It will trouble
      the users.
      Steps to reproduce:
      # cd <debugfs>/tracing/
      # echo <some function name> >> set_ftrace_filter
      # echo 1 > function_profile_enabled
      # run test
      # cat trace_stat/function*
      # echo 0 > /sys/devices/system/cpu/cpu1/online
      # echo 0 > function_profile_enabled
      # echo 1 > function_profile_enabled
      # cat trace_stat/function*
      # run test
      # cat trace_stat/function*
    
    So it is better that we initialize the ftrace profiler for each possible cpu
    every time we enable the function profile instead of just the online ones.
    
    Link: http://lkml.kernel.org/r/1387178401-10619-1-git-send-email-miaox@cn.fujitsu.com
    
    Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57a0ea2153fb2f7f432cf62fe78e5093ce85f61e
Author: Jie Liu <jeff.liu@oracle.com>
Date:   Tue Nov 26 21:38:49 2013 +0800

    xfs: fix infinite loop by detaching the group/project hints from user dquot
    
    commit 718cc6f88cbfc4fbd39609f28c4c86883945f90d upstream.
    
    xfs_quota(8) will hang up if trying to turn group/project quota off
    before the user quota is off, this could be 100% reproduced by:
      # mount -ouquota,gquota /dev/sda7 /xfs
      # mkdir /xfs/test
      # xfs_quota -xc 'off -g' /xfs <-- hangs up
      # echo w > /proc/sysrq-trigger
      # dmesg
    
      SysRq : Show Blocked State
      task                        PC stack   pid father
      xfs_quota       D 0000000000000000     0 27574   2551 0x00000000
      [snip]
      Call Trace:
      [<ffffffff81aaa21d>] schedule+0xad/0xc0
      [<ffffffff81aa327e>] schedule_timeout+0x35e/0x3c0
      [<ffffffff8114b506>] ? mark_held_locks+0x176/0x1c0
      [<ffffffff810ad6c0>] ? call_timer_fn+0x2c0/0x2c0
      [<ffffffffa0c25380>] ? xfs_qm_shrink_count+0x30/0x30 [xfs]
      [<ffffffff81aa3306>] schedule_timeout_uninterruptible+0x26/0x30
      [<ffffffffa0c26155>] xfs_qm_dquot_walk+0x235/0x260 [xfs]
      [<ffffffffa0c059d8>] ? xfs_perag_get+0x1d8/0x2d0 [xfs]
      [<ffffffffa0c05805>] ? xfs_perag_get+0x5/0x2d0 [xfs]
      [<ffffffffa0b7707e>] ? xfs_inode_ag_iterator+0xae/0xf0 [xfs]
      [<ffffffffa0c22280>] ? xfs_trans_free_dqinfo+0x50/0x50 [xfs]
      [<ffffffffa0b7709f>] ? xfs_inode_ag_iterator+0xcf/0xf0 [xfs]
      [<ffffffffa0c261e6>] xfs_qm_dqpurge_all+0x66/0xb0 [xfs]
      [<ffffffffa0c2497a>] xfs_qm_scall_quotaoff+0x20a/0x5f0 [xfs]
      [<ffffffffa0c2b8f6>] xfs_fs_set_xstate+0x136/0x180 [xfs]
      [<ffffffff8136cf7a>] do_quotactl+0x53a/0x6b0
      [<ffffffff812fba4b>] ? iput+0x5b/0x90
      [<ffffffff8136d257>] SyS_quotactl+0x167/0x1d0
      [<ffffffff814cf2ee>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [<ffffffff81abcd19>] system_call_fastpath+0x16/0x1b
    
    It's fine if we turn user quota off at first, then turn off other
    kind of quotas if they are enabled since the group/project dquot
    refcount is decreased to zero once the user quota if off. Otherwise,
    those dquots refcount is non-zero due to the user dquot might refer
    to them as hint(s).  Hence, above operation cause an infinite loop
    at xfs_qm_dquot_walk() while trying to purge dquot cache.
    
    This problem has been around since Linux 3.4, it was introduced by:
      [ b84a3a9675 xfs: remove the per-filesystem list of dquots ]
    
    Originally we will release the group dquot pointers because the user
    dquots maybe carrying around as a hint via xfs_qm_detach_gdquots().
    However, with above change, there is no such work to be done before
    purging group/project dquot cache.
    
    In order to solve this problem, this patch introduces a special routine
    xfs_qm_dqpurge_hints(), and it would release the group/project dquot
    pointers the user dquots maybe carrying around as a hint, and then it
    will proceed to purge the user dquot cache if requested.
    
    (cherry picked from commit df8052e7dae00bde6f21b40b6e3e1099770f3afc)
    
    Signed-off-by: Jie Liu <jeff.liu@oracle.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Ben Myers <bpm@sgi.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd3f6dea647f4d5e49f44ae919966e18b0e63ac7
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Thu Dec 12 12:24:11 2013 -0800

    target/file: Update hw_max_sectors based on current block_size
    
    commit 95cadace8f3959282e76ebf8b382bd0930807d2c upstream.
    
    This patch allows FILEIO to update hw_max_sectors based on the current
    max_bytes_per_io.  This is required because vfs_[writev,readv]() can accept
    a maximum of 2048 iovecs per call, so the enforced hw_max_sectors really
    needs to be calculated based on block_size.
    
    This addresses a >= v3.5 bug where block_size=512 was rejecting > 1M
    sized I/O requests, because FD_MAX_SECTORS was hardcoded to 2048 for
    the block_size=4096 case.
    
    (v2: Use max_bytes_per_io instead of ->update_hw_max_sectors)
    
    Reported-by: Henrik Goldman <hg@x-formation.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7a50a853cbba22cafec1e1c618ccf9919986fca
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Wed Dec 11 16:20:13 2013 -0800

    iser-target: Move INIT_WORK setup into isert_create_device_ib_res
    
    commit 2853c2b6671509591be09213954d7249ca6ff224 upstream.
    
    This patch moves INIT_WORK setup for cq_desc->cq_[rx,tx]_work into
    isert_create_device_ib_res(), instead of being done each callback
    invocation in isert_cq_[rx,tx]_callback().
    
    This also fixes a 'INFO: trying to register non-static key' warning
    when cancel_work_sync() is called before INIT_WORK has setup the
    struct work_struct.
    
    Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0c626f9e435d788e9b8950be22a0b801ec5e5ba
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Wed Dec 11 15:45:32 2013 -0800

    iscsi-target: Fix incorrect np->np_thread NULL assignment
    
    commit db6077fd0b7dd41dc6ff18329cec979379071f87 upstream.
    
    When shutting down a target there is a race condition between
    iscsit_del_np() and __iscsi_target_login_thread().
    The latter sets the thread pointer to NULL, and the former
    tries to issue kthread_stop() on that pointer without any
    synchronization.
    
    This patch moves the np->np_thread NULL assignment into
    iscsit_del_np(), after kthread_stop() has completed. It also
    removes the signal_pending() + np_state check, and only
    exits when kthread_should_stop() is true.
    
    Reported-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 253c3ef7e8f3e353b584f783cae2e4d527aaac70
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Mon Nov 25 14:53:57 2013 -0800

    iscsi-target: Fix-up all zero data-length CDBs with R/W_BIT set
    
    commit 4454b66cb67f14c33cd70ddcf0ff4985b26324b7 upstream.
    
    This patch changes special case handling for ISCSI_OP_SCSI_CMD
    where an initiator sends a zero length Expected Data Transfer
    Length (EDTL), but still sets the WRITE and/or READ flag bits
    when no payload transfer is requested.
    
    Many, many moons ago two special cases where added for an ancient
    version of ESX that has long since been fixed, so instead of adding
    a new special case for the reported bug with a Broadcom 57800 NIC,
    go ahead and always strip off the incorrect WRITE + READ flag bits.
    
    Also, avoid sending a reject here, as RFC-3720 does mandate this
    case be handled without protocol error.
    
    Reported-by: Witold Bazakbal <865perl@wp.pl>
    Tested-by: Witold Bazakbal <865perl@wp.pl>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3374c69d140081ef9973d12fc08498e046365035
Author: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Date:   Tue Oct 29 09:56:34 2013 +0800

    iser-target: fix error return code in isert_create_device_ib_res()
    
    commit 94a7111043d99819cd0a72d9b3174c7054adb2a0 upstream.
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb38ff921c97c44d8a215cd3a30c0242379abbf6
Author: Shivaram Upadhyayula <shivaram.u@quadstor.com>
Date:   Tue Dec 10 16:06:40 2013 +0530

    qla2xxx: Fix schedule_delayed_work() for target timeout calculations
    
    commit 63832aabec12a28a41a221773ab3819d30ba0a67 upstream.
    
    This patch fixes two cases in qla_target.c code where the
    schedule_delayed_work() value was being incorrectly calculated
    from sess->expires - jiffies.
    
    Signed-off-by: Shivaram U <shivaram.u@quadstor.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 200067a3f3e73eecb457c5bf25fec875cf42d53d
Author: Benjamin LaHaise <bcrl@kvack.org>
Date:   Sat Dec 21 15:49:28 2013 -0500

    aio: fix kioctx leak introduced by "aio: Fix a trinity splat"
    
    commit 1881686f842065d2f92ec9c6424830ffc17d23b0 upstream.
    
    e34ecee2ae791df674dfb466ce40692ca6218e43 reworked the percpu reference
    counting to correct a bug trinity found.  Unfortunately, the change lead
    to kioctxes being leaked because there was no final reference count to
    put.  Add that reference count back in to fix things.
    
    Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a3f7cfe5c16170aeb0dd2654f464cfbd2332b1d
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Mon Dec 23 17:45:01 2013 -0500

    selinux: selinux_setprocattr()->ptrace_parent() needs rcu_read_lock()
    
    commit c0c1439541f5305b57a83d599af32b74182933fe upstream.
    
    selinux_setprocattr() does ptrace_parent(p) under task_lock(p),
    but task_struct->alloc_lock doesn't pin ->parent or ->ptrace,
    this looks confusing and triggers the "suspicious RCU usage"
    warning because ptrace_parent() does rcu_dereference_check().
    
    And in theory this is wrong, spin_lock()->preempt_disable()
    doesn't necessarily imply rcu_read_lock() we need to access
    the ->parent.
    
    Reported-by: Evan McNabb <emcnabb@redhat.com>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a37a5f4dd1fc8e716316ad7f528037d69a13d0ba
Author: Chad Hanson <chanson@trustedcs.com>
Date:   Mon Dec 23 17:45:01 2013 -0500

    selinux: fix broken peer recv check
    
    commit 46d01d63221c3508421dd72ff9c879f61053cffc upstream.
    
    Fix a broken networking check. Return an error if peer recv fails.  If
    secmark is active and the packet recv succeeds the peer recv error is
    ignored.
    
    Signed-off-by: Chad Hanson <chanson@trustedcs.com>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0393ff7501c2f3ba61e7a17c1f7332fde9ed1f2c
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed Nov 6 09:25:27 2013 +0100

    usb: musb: only cancel work if it is initialized
    
    commit 66fadea5b79c07154126bb0db375be915f611246 upstream.
    
    Since commit c5340bd14 ("usb: musb: cancel work on removal") the workqueue
    is cancelled but then if we bail out before the workqueue is setup we
    get this:
    
    |INFO: trying to register non-static key.
    |the code is fine but needs lockdep annotation.
    |turning off the locking correctness validator.
    |CPU: 0 PID: 708 Comm: modprobe Not tainted 3.12.0+ #435
    |[<c00867bc>] (lock_acquire+0xf0/0x108) from [<c00529d0>] (flush_work+0x38/0x2ec)
    |[<c00529d0>] (flush_work+0x38/0x2ec) from [<c0052d24>] (__cancel_work_timer+0xa0/0x134)
    |[<c0052d24>] (__cancel_work_timer+0xa0/0x134) from [<bf0e4ae4>] (musb_free+0x40/0x60 [musb_hdrc])
    |[<bf0e4ae4>] (musb_free+0x40/0x60 [musb_hdrc]) from [<bf0e5364>] (musb_probe+0x678/0xb78 [musb_hdrc])
    |[<bf0e5364>] (musb_probe+0x678/0xb78 [musb_hdrc]) from [<c0294bf0>] (platform_drv_probe+0x1c/0x24)
    |[<c0294bf0>] (platform_drv_probe+0x1c/0x24) from [<c0293970>] (driver_probe_device+0x90/0x224)
    |[<c0293970>] (driver_probe_device+0x90/0x224) from [<c0291ef0>] (bus_for_each_drv+0x60/0x8c)
    |[<c0291ef0>] (bus_for_each_drv+0x60/0x8c) from [<c02938bc>] (device_attach+0x80/0xa4)
    |[<c02938bc>] (device_attach+0x80/0xa4) from [<c0292b24>] (bus_probe_device+0x88/0xac)
    |[<c0292b24>] (bus_probe_device+0x88/0xac) from [<c0291490>] (device_add+0x388/0x6c8)
    |[<c0291490>] (device_add+0x388/0x6c8) from [<c02952a0>] (platform_device_add+0x188/0x22c)
    |[<c02952a0>] (platform_device_add+0x188/0x22c) from [<bf11ea30>] (dsps_probe+0x294/0x394 [musb_dsps])
    |[<bf11ea30>] (dsps_probe+0x294/0x394 [musb_dsps]) from [<c0294bf0>] (platform_drv_probe+0x1c/0x24)
    |platform musb-hdrc.1.auto: Driver musb-hdrc requests probe deferral
    |musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -517
    
    This patch moves the init part to earlier part so it can be cleaned as
    part of the fail3 label because now it is surrounded by the fail4 label.
    Step two is to remove it from musb_free() and add it to the two cleanup
    paths (error path and device removal) separately.
    
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00e0aaa745c90725c28fe1b374d054a94d5682f2
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed Oct 16 12:50:07 2013 +0200

    usb: musb: core: Call dma_controller_destroy() in error path only once.
    
    commit 8d1aad7485e653c2c5fd985b326096f680f7d918 upstream.
    
    In commit f3ce4d5 ("usb: musb: core: call dma_controller_destroy() in the err path")
    I erroneously assumed that the dma controller is not removed in the
    error patch. This was wrong because it happens later via musb_free().
    That means the original commit can be reverted because it is wrong or we
    do this, so it is more obvious.
    
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfb4a262bf2ce2b8f7d4f444eb00059b3078bf64
Author: Peter Chen <peter.chen@freescale.com>
Date:   Thu Dec 5 15:20:50 2013 +0800

    usb: chipidea: fix nobody cared IRQ when booting with host role
    
    commit 5a1e1456fc633da5291285b1fff75d2a7507375b upstream.
    
    If we connect Male-A-To-Male-A cable between otg-host and host pc,
    the ci->vbus_active is set wrongly, and cause the controller run
    at peripheral mode when we load gadget module (ci_udc_start will be run),
    but the software runs at host mode due to id = 0. The ehci_irq
    can't handle suspend (USBi_SLI) interrupt which is enabled for
    peripheral mode, it causes no one will handle irq error.
    
    This patch is needed for 3.12 stable
    
    Acked-by: Michael Grzeschik <mgr@pengutronix.de>
    Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 811dac78101fa1dda71fe86742cfeefd7ae3bb3a
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Thu Dec 5 15:20:49 2013 +0800

    usb: chipidea: host: Only disable the vbus regulator if it is not NULL
    
    commit cc5c9eb67f912cb2c349b04063ff9f444affbc59 upstream.
    
    Commit 40ed51a4b (usb: chipidea: host: add vbus regulator
    control) introduced a smatch complaint because regulator_disable() is called
    without checking whether ci->platdata->reg_vbus is not NULL.
    
    Fix this by adding the check.
    
    This patch is needed for 3.12 stable
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca36cb27c934ec46bdb46b355ed57066bb1895b8
Author: Bjørn Mork <bjorn@mork.no>
Date:   Fri Nov 29 20:17:45 2013 +0100

    usb: cdc-wdm: manage_power should always set needs_remote_wakeup
    
    commit 4144bc861ed7934d56f16d2acd808d44af0fcc90 upstream.
    
    Reported-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Acked-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43d1db887c4642963b60ad9a2663f47812507b41
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Sat Dec 14 14:36:25 2013 +0100

    can: peak_usb: fix mem leak in pcan_usb_pro_init()
    
    commit 20fb4eb96fb0350d28fc4d7cbfd5506711079592 upstream.
    
    This patch fixes a memory leak in pcan_usb_pro_init(). In patch
    
        f14e224 net: can: peak_usb: Do not do dma on the stack
    
    the struct pcan_usb_pro_fwinfo *fi and struct pcan_usb_pro_blinfo *bi were
    converted from stack to dynamic allocation va kmalloc(). However the
    corresponding kfree() was not introduced.
    
    This patch adds the missing kfree().
    
    Reported-by: Stephane Grosjean <s.grosjean@peak-system.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d1ffc541943dd3133615d8a5b21549b25c58751
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Dec 9 14:53:36 2013 +0100

    xhci: Limit the spurious wakeup fix only to HP machines
    
    commit 6962d914f317b119e0db7189199b21ec77a4b3e0 upstream.
    
    We've got regression reports that my previous fix for spurious wakeups
    after S5 on HP Haswell machines leads to the automatic reboot at
    shutdown on some machines.  It turned out that the fix for one side
    triggers another BIOS bug in other side.  So, it's exclusive.
    
    Since the original S5 wakeups have been confirmed only on HP machines,
    it'd be safer to apply it only to limited machines.  As a wild guess,
    limiting to machines with HP PCI SSID should suffice.
    
    This patch should be backported to kernels as old as 3.12, that
    contain the commit 638298dc66ea36623dbc2757a24fc2c4ab41b016 "xhci: Fix
    spurious wakeups after S5 on Haswell".
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66171
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: <dashing.meng@gmail.com>
    Reported-by: Niklas Schnelle <niklas@komani.de>
    Reported-by: Giorgos <ganastasiouGR@gmail.com>
    Reported-by: <art1@vhex.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e71e1767d6081fc502054cfad9306f74aeaae8c4
Author: Dmitry Kunilov <dmitry.kunilov@gmail.com>
Date:   Tue Dec 3 12:11:30 2013 -0800

    usb: serial: zte_ev: move support for ZTE AC2726 from zte_ev back to option
    
    commit 52d0dc7597c89b2ab779f3dcb9b9bf0800dd9218 upstream.
    
    ZTE AC2726 EVDO modem drops ppp connection every minute when driven by
    zte_ev but works fine when driven by option. Move the support for AC2726
    back to option driver.
    
    Signed-off-by: Dmitry Kunilov <dmitry.kunilov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54146f38fb9d3d29452b56b5b7c34c34821ad40a
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Tue Dec 10 12:56:59 2013 +0200

    serial: 8250_dw: add new ACPI IDs
    
    commit d24c195f90cb1adb178d26d84c722d4b9e551e05 upstream.
    
    Newer Intel PCHs with LPSS have the same Designware controllers than
    Haswell but ACPI IDs are different. Add these IDs to the driver list.
    
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7623cc41f46efa708b4115ac45cb86f243115caf
Author: Jonathan Cameron <jic23@kernel.org>
Date:   Wed Dec 11 18:45:00 2013 +0000

    iio:adc:ad7887 Fix channel reported endianness from cpu to big endian
    
    commit e39d99059ad7f75d7ae2d3c59055d3c476cdb0d9 upstream.
    
    Note this also sets the endianness to big endian whereas it would
    previously have defaulted to the cpu endian.  Hence technically
    this is a bug fix on LE platforms.
    
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 432e0d6f5e63d49c1699cbe1a89e73a1bbb377d7
Author: Jonathan Cameron <jic23@kernel.org>
Date:   Wed Dec 11 18:45:00 2013 +0000

    iio:imu:adis16400 fix pressure channel scan type
    
    commit 3425c0f7ac61f2fcfb7f2728e9b7ba7e27aec429 upstream.
    
    A single channel in this driver was using the IIO_ST macro.
    This does not provide a parameter for setting the endianness of
    the channel.  Thus this channel will have been reported as whatever
    is the native endianness of the cpu rather than big endian. This
    means it would be incorrect on little endian platforms.
    
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 022fade9d15c8b62f79c5b650c8c9c2422c1108d
Author: Hui Wang <hui.wang@canonical.com>
Date:   Fri Dec 13 11:57:05 2013 +0800

    ALSA: hda - Add Dell headset detection quirk for three laptop models
    
    commit c29cb5eb8157a0049c882672a7f941261f23ea34 upstream.
    
    On the Dell machines with codec whose Subsystem Id is 0x10280610,
    0x10280629 or 0x1028063e, no external microphone can be detected when
    plugging a 3-ring headset. If we add "model=dell-headset-multi" for
    the snd-hda-intel.ko, the problem will disappear.
    
    The codecs on these machines belong to alc_269 family.
    
    BugLink: https://bugs.launchpad.net/bugs/1260303
    Cc: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 440ebcaf4897ea43dce263543152734f46d604f2
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Thu Dec 12 09:52:03 2013 +0100

    ALSA: hda - Add enable_msi=0 workaround for four HP machines
    
    commit 693e0cb052c607e2d41edf9e9f1fa99ff8c266c1 upstream.
    
    While enabling these machines, we found we would sometimes lose an
    interrupt if we change hardware volume during playback, and that
    disabling msi fixed this issue. (Losing the interrupt caused underruns
    and crackling audio, as the one second timeout is usually bigger than
    the period size.)
    
    The machines were all machines from HP, running AMD Hudson controller,
    and Realtek ALC282 codec.
    
    BugLink: https://bugs.launchpad.net/bugs/1260225
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfd6081c83dbee2ae270d82df3487d13129118e2
Author: JongHo Kim <furmuwon@gmail.com>
Date:   Tue Dec 17 23:02:24 2013 +0900

    ALSA: Add SNDRV_PCM_STATE_PAUSED case in wait_for_avail function
    
    commit ed697e1aaf7237b1a62af39f64463b05c262808d upstream.
    
    When the process is sleeping at the SNDRV_PCM_STATE_PAUSED
    state from the wait_for_avail function, the sleep process will be woken by
    timeout(10 seconds). Even if the sleep process wake up by timeout, by this
    patch, the process will continue with sleep and wait for the other state.
    
    Signed-off-by: JongHo Kim <furmuwon@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9958beae1c2cf8275daa0ba24570f81351103f92
Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Date:   Tue Dec 17 13:16:16 2013 +0000

    ASoC: wm5110: Correct HPOUT3 DAPM route typo
    
    commit 280484e708a3cc38fe6807718caa460e744c0b20 upstream.
    
    Reported-by: Kyung-Kwee Ryu <kyung-kwee.ryu@wolfsonmicro.com>
    Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef1943b16e3a1bdde91525e74a1a188a17138184
Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Date:   Wed Dec 18 09:25:49 2013 +0000

    ASoC: wm_adsp: Add small delay while polling DSP RAM start
    
    commit 939fd1e8d9deff206f12bd9d4e54aa7a4bd0ffd6 upstream.
    
    Some devices are getting very close to the limit whilst polling the RAM
    start, this patch adds a small delay to this loop to give a longer
    startup timeout.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d561e8e6fbd5353085b06cf15366fc42c51d3f1
Author: Bo Shen <voice.shen@atmel.com>
Date:   Wed Dec 18 11:26:23 2013 +0800

    ASoC: wm8904: fix DSP mode B configuration
    
    commit f0199bc5e3a3ec13f9bc938556517ec430b36437 upstream.
    
    When wm8904 work in DSP mode B, we still need to configure it to
    work in DSP mode. Or else, it will work in Right Justified mode.
    
    Signed-off-by: Bo Shen <voice.shen@atmel.com>
    Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c12d070fafc7253353f4cd261b24ece9838aa56e
Author: Stephen Warren <swarren@nvidia.com>
Date:   Fri Dec 6 13:34:50 2013 -0700

    ASoC: tegra: fix uninitialized variables in set_fmt
    
    commit 241bf43321a10815225f477bba96a42285a2da73 upstream.
    
    In tegra*_i2s_set_fmt(), in the (fmt == SND_SOC_DAIFMT_CBM_CFM) case,
    "val" is never assigned to, but left uninitialized. The other case does
    initialized it. Fix this by initializing val at the start of the
    function, and only ever ORing into it.
    
    Update the handling of "mask" so it works the same way for consistency.
    
    Update tegra20_spdif.c to use the same code-style for consistency, even
    though it doesn't happen to suffer from the same problem at present.
    
    Signed-off-by: Stephen Warren <swarren@nvidia.com>
    Reviewed-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Fixes: 0f163546a772 ("ASoC: tegra: use regmap more directly")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4784cd9c1c65f17edb8ffd6dccaae5137a99603b
Author: Vivek Goyal <vgoyal@redhat.com>
Date:   Wed Dec 18 17:08:31 2013 -0800

    kexec: migrate to reboot cpu
    
    commit c97102ba96324da330078ad8619ba4dfe840dbe3 upstream.
    
    Commit 1b3a5d02ee07 ("reboot: move arch/x86 reboot= handling to generic
    kernel") moved reboot= handling to generic code.  In the process it also
    removed the code in native_machine_shutdown() which are moving reboot
    process to reboot_cpu/cpu0.
    
    I guess that thought must have been that all reboot paths are calling
    migrate_to_reboot_cpu(), so we don't need this special handling.  But
    kexec reboot path (kernel_kexec()) is not calling
    migrate_to_reboot_cpu() so above change broke kexec.  Now reboot can
    happen on non-boot cpu and when INIT is sent in second kerneo to bring
    up BP, it brings down the machine.
    
    So start calling migrate_to_reboot_cpu() in kexec reboot path to avoid
    this problem.
    
    Bisected by WANG Chao.
    
    Reported-by: Matthew Whitehead <mwhitehe@redhat.com>
    Reported-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
    Tested-by: Baoquan He <bhe@redhat.com>
    Tested-by: WANG Chao <chaowang@redhat.com>
    Acked-by: H. Peter Anvin <hpa@linux.intel.com>
    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 bec1a4f8696c44ce96398dceab8aba4785ec8ea9
Author: H Hartley Sweeten <hsweeten@visionengravers.com>
Date:   Tue Dec 10 16:31:25 2013 -0700

    staging: comedi: drivers: fix return value of comedi_load_firmware()
    
    commit c6236c0ce39c809c336ca929f68cf8ad02cf94e0 upstream.
    
    Some of the callback functions that upload the firmware in the comedi
    drivers return a positive value indicating the number of bytes sent
    to the device. Detect this condition and just return '0' to indicate
    a successful upload.
    
    Reported-by: Bernd Porr <mail@berndporr.me.uk>
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Acked-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f66e9d70edf73e796486199f847ad5402bf0eac
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Dec 13 12:00:30 2013 +0000

    staging: comedi: 8255_pci: fix for newer PCI-DIO48H
    
    commit 0283f7a100882684ad32b768f9f1ad81658a0b92 upstream.
    
    At some point, Measurement Computing / ComputerBoards redesigned the
    PCI-DIO48H to use a PLX PCI interface chip instead of an AMCC chip.
    This meant they had to put their hardware registers in the PCI BAR 2
    region instead of PCI BAR 1.  Unfortunately, they kept the same PCI
    device ID for the new design.  This means the driver recognizes the
    newer cards, but doesn't work (and is likely to screw up the local
    configuration registers of the PLX chip) because it's using the wrong
    region.
    
    Since  the PCI subvendor and subdevice IDs were both zero on the old
    design, but are the same as the vendor and device on the new design, we
    can tell the old design and new design apart easily enough.  Split the
    existing entry for the PCI-DIO48H in `pci_8255_boards[]` into two new
    entries, referenced by different entries in the PCI device ID table
    `pci_8255_pci_table[]`.  Use the same board name for both entries.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a58c081ac497b13e937ea1c5af9653186373df7d
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Fri Nov 22 16:47:26 2013 +0100

    TTY: pmac_zilog, check existence of ports in pmz_console_init()
    
    commit dc1dc2f8a5dd863bf2e79f338fc3ae29e99c683a upstream.
    
    When booting a multi-platform m68k kernel on a non-Mac with "console=ttyS0"
    on the kernel command line, it crashes with:
    
    Unable to handle kernel NULL pointer dereference at virtual address   (null)
    Oops: 00000000
    PC: [<0013ad28>] __pmz_startup+0x32/0x2a0
    ...
    Call Trace: [<002c5d3e>] pmz_console_setup+0x64/0xe4
    
    The normal tty driver doesn't crash, because init_pmz() checks
    pmz_ports_count again after calling pmz_probe().
    
    In the serial console initialization path, pmz_console_init() doesn't do
    this, causing the driver to crash later.
    
    Add a check for pmz_ports_count to fix this.
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Finn Thain <fthain@telegraphics.com.au>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8416877c8da5a637321121d8cad70419dd27fe59
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Mon Dec 9 18:06:07 2013 -0500

    n_tty: Fix apparent order of echoed output
    
    commit 1075a6e2dc7e2a96efc417b98dd98f57fdae985d upstream.
    
    With block processing of echoed output, observed output order is still
    required. Push completed echoes and echo commands prior to output.
    
    Introduce echo_mark echo buffer index, which tracks completed echo
    commands; ie., those submitted via commit_echoes but which may not
    have been committed. Ensure that completed echoes are output prior
    to subsequent terminal writes in process_echoes().
    
    Fixes newline/prompt output order in cooked mode shell.
    
    Reported-by: Karl Dahlke <eklhad@comcast.net>
    Reported-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Tested-by: Karl Dahlke <eklhad@comcast.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab69be3e59d79c56bfe16930f0c761daf4837e48
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Wed Dec 11 21:11:58 2013 -0500

    tty: Fix hang at ldsem_down_read()
    
    commit cf872776fc84128bb779ce2b83a37c884c3203ae upstream.
    
    When a controlling tty is being hung up and the hang up is
    waiting for a just-signalled tty reader or writer to exit, and a new tty
    reader/writer tries to acquire an ldisc reference concurrently with the
    ldisc reference release from the signalled reader/writer, the hangup
    can hang. The new reader/writer is sleeping in ldsem_down_read() and the
    hangup is sleeping in ldsem_down_write() [1].
    
    The new reader/writer fails to wakeup the waiting hangup because the
    wrong lock count value is checked (the old lock count rather than the new
    lock count) to see if the lock is unowned.
    
    Change helper function to return the new lock count if the cmpxchg was
    successful; document this behavior.
    
    [1] edited dmesg log from reporter
    
    SysRq : Show Blocked State
      task                        PC stack   pid father
    systemd         D ffff88040c4f0000     0     1      0 0x00000000
     ffff88040c49fbe0 0000000000000046 ffff88040c4a0000 ffff88040c49ffd8
     00000000001d3980 00000000001d3980 ffff88040c4a0000 ffff88040593d840
     ffff88040c49fb40 ffffffff810a4cc0 0000000000000006 0000000000000023
    Call Trace:
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff817a6649>] schedule+0x24/0x5e
     [<ffffffff817a588b>] schedule_timeout+0x15b/0x1ec
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff817aa691>] ? _raw_spin_unlock_irq+0x24/0x26
     [<ffffffff817aa10c>] down_read_failed+0xe3/0x1b9
     [<ffffffff817aa26d>] ldsem_down_read+0x8b/0xa5
     [<ffffffff8142b5ca>] ? tty_ldisc_ref_wait+0x1b/0x44
     [<ffffffff8142b5ca>] tty_ldisc_ref_wait+0x1b/0x44
     [<ffffffff81423f5b>] tty_write+0x7d/0x28a
     [<ffffffff814241f5>] redirected_tty_write+0x8d/0x98
     [<ffffffff81424168>] ? tty_write+0x28a/0x28a
     [<ffffffff8115d03f>] do_loop_readv_writev+0x56/0x79
     [<ffffffff8115e604>] do_readv_writev+0x1b0/0x1ff
     [<ffffffff8116ea0b>] ? do_vfs_ioctl+0x32a/0x489
     [<ffffffff81167d9d>] ? final_putname+0x1d/0x3a
     [<ffffffff8115e6c7>] vfs_writev+0x2e/0x49
     [<ffffffff8115e7d3>] SyS_writev+0x47/0xaa
     [<ffffffff817ab822>] system_call_fastpath+0x16/0x1b
    bash            D ffffffff81c104c0     0  5469   5302 0x00000082
     ffff8800cf817ac0 0000000000000046 ffff8804086b22a0 ffff8800cf817fd8
     00000000001d3980 00000000001d3980 ffff8804086b22a0 ffff8800cf817a48
     000000000000b9a0 ffff8800cf817a78 ffffffff81004675 ffff8800cf817a44
    Call Trace:
     [<ffffffff81004675>] ? dump_trace+0x165/0x29c
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff8100edda>] ? save_stack_trace+0x26/0x41
     [<ffffffff817a6649>] schedule+0x24/0x5e
     [<ffffffff817a588b>] schedule_timeout+0x15b/0x1ec
     [<ffffffff810a4cc0>] ? sched_clock_cpu+0x9f/0xe4
     [<ffffffff817a9f03>] ? down_write_failed+0xa3/0x1c9
     [<ffffffff817aa691>] ? _raw_spin_unlock_irq+0x24/0x26
     [<ffffffff817a9f0b>] down_write_failed+0xab/0x1c9
     [<ffffffff817aa300>] ldsem_down_write+0x79/0xb1
     [<ffffffff817aada3>] ? tty_ldisc_lock_pair_timeout+0xa5/0xd9
     [<ffffffff817aada3>] tty_ldisc_lock_pair_timeout+0xa5/0xd9
     [<ffffffff8142bf33>] tty_ldisc_hangup+0xc4/0x218
     [<ffffffff81423ab3>] __tty_hangup+0x2e2/0x3ed
     [<ffffffff81424a76>] disassociate_ctty+0x63/0x226
     [<ffffffff81078aa7>] do_exit+0x79f/0xa11
     [<ffffffff81086bdb>] ? get_signal_to_deliver+0x206/0x62f
     [<ffffffff810b4bfb>] ? lock_release_holdtime.part.8+0xf/0x16e
     [<ffffffff81079b05>] do_group_exit+0x47/0xb5
     [<ffffffff81086c16>] get_signal_to_deliver+0x241/0x62f
     [<ffffffff810020a7>] do_signal+0x43/0x59d
     [<ffffffff810f2af7>] ? __audit_syscall_exit+0x21a/0x2a8
     [<ffffffff810b4bfb>] ? lock_release_holdtime.part.8+0xf/0x16e
     [<ffffffff81002655>] do_notify_resume+0x54/0x6c
     [<ffffffff817abaf8>] int_signal+0x12/0x17
    
    Reported-by: Sami Farin <sami.farin@gmail.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d18b5a0e75f4447ecaac27c81add306617f9e34f
Author: pingfan liu <qemulist@gmail.com>
Date:   Fri Nov 15 16:35:00 2013 +0800

    powerpc: kvm: fix rare but potential deadlock scene
    
    commit 91648ec09c1ef69c4d840ab6dab391bfb452d554 upstream.
    
    Since kvmppc_hv_find_lock_hpte() is called from both virtmode and
    realmode, so it can trigger the deadlock.
    
    Suppose the following scene:
    
    Two physical cpuM, cpuN, two VM instances A, B, each VM has a group of
    vcpus.
    
    If on cpuM, vcpu_A_1 holds bitlock X (HPTE_V_HVLOCK), then is switched
    out, and on cpuN, vcpu_A_2 try to lock X in realmode, then cpuN will be
    caught in realmode for a long time.
    
    What makes things even worse if the following happens,
      On cpuM, bitlockX is hold, on cpuN, Y is hold.
      vcpu_B_2 try to lock Y on cpuM in realmode
      vcpu_A_2 try to lock X on cpuN in realmode
    
    Oops! deadlock happens
    
    Signed-off-by: Liu Ping Fan <pingfank@linux.vnet.ibm.com>
    Reviewed-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17e38d92d2faa7777009d8e21215d843ee0f9ee3
Author: Li Wang <liwang@ubuntukylin.com>
Date:   Sat Nov 9 10:26:06 2013 +0800

    ceph: allocate non-zero page to fscache in readpage()
    
    commit ff638b7df5a9264024a6448bdfde2b2bf5d1994a upstream.
    
    ceph_osdc_readpages() returns number of bytes read, currently,
    the code only allocate full-zero page into fscache, this patch
    fixes this.
    
    Signed-off-by: Li Wang <liwang@ubuntukylin.com>
    Reviewed-by: Milosz Tanski <milosz@adfin.com>
    Reviewed-by: Sage Weil <sage@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b419588352e9a826082d7784dd3398c490314eab
Author: Yan, Zheng <zheng.z.yan@intel.com>
Date:   Thu Oct 31 09:10:47 2013 +0800

    ceph: wake up 'safe' waiters when unregistering request
    
    commit fc55d2c9448b34218ca58733a6f51fbede09575b upstream.
    
    We also need to wake up 'safe' waiters if error occurs or request
    aborted. Otherwise sync(2)/fsync(2) may hang forever.
    
    Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
    Signed-off-by: Sage Weil <sage@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bb822258878721ca995a7015c6e076cc96be849
Author: Yan, Zheng <zheng.z.yan@intel.com>
Date:   Thu Sep 26 14:25:36 2013 +0800

    ceph: cleanup aborted requests when re-sending requests.
    
    commit eb1b8af33c2e42a9a57fc0a7588f4a7b255d2e79 upstream.
    
    Aborted requests usually get cleared when the reply is received.
    If MDS crashes, no reply will be received. So we need to cleanup
    aborted requests when re-sending requests.
    
    Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
    Reviewed-by: Greg Farnum <greg@inktank.com>
    Signed-off-by: Sage Weil <sage@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6c0d18bc2c1ad19333b61e5d116fa57d9cdaf4f
Author: Milosz Tanski <milosz@adfin.com>
Date:   Wed Sep 25 11:18:14 2013 -0400

    ceph: hung on ceph fscache invalidate in some cases
    
    commit ffc79664d15841025d90afdd902c4112ffe168d6 upstream.
    
    In some cases I'm on my ceph client cluster I'm seeing hunk kernel tasks in
    the invalidate page code path. This is due to the fact that we don't check if
    the page is marked as cache before calling fscache_wait_on_page_write().
    
    This is the log from the hang
    
    INFO: task XXXXXX:12034 blocked for more than 120 seconds.
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
     ...
    Call Trace:
    [<ffffffff81568d09>] schedule+0x29/0x70
    [<ffffffffa01d4cbd>] __fscache_wait_on_page_write+0x6d/0xb0 [fscache]
    [<ffffffff81083520>] ? add_wait_queue+0x60/0x60
    [<ffffffffa029a3e9>] ceph_invalidate_fscache_page+0x29/0x50 [ceph]
    [<ffffffffa027df00>] ceph_invalidatepage+0x70/0x190 [ceph]
    [<ffffffff8112656f>] ? delete_from_page_cache+0x5f/0x70
    [<ffffffff81133cab>] truncate_inode_page+0x8b/0x90
    [<ffffffff81133ded>] truncate_inode_pages_range.part.12+0x13d/0x620
    [<ffffffff8113431d>] truncate_inode_pages_range+0x4d/0x60
    [<ffffffff811343b5>] truncate_inode_pages+0x15/0x20
    [<ffffffff8119bbf6>] evict+0x1a6/0x1b0
    [<ffffffff8119c3f3>] iput+0x103/0x190
     ...
    
    Signed-off-by: Milosz Tanski <milosz@adfin.com>
    Reviewed-by: Sage Weil <sage@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6b9ef96f825e6f8a33b2a230389c6358dcce073
Author: Johan Hovold <jhovold@gmail.com>
Date:   Sat Nov 9 12:38:09 2013 +0100

    USB: serial: fix race in generic write
    
    commit 6f6485463aada1ec6a0f3db6a03eb8e393d6bb55 upstream.
    
    Fix race in generic write implementation, which could lead to
    temporarily degraded throughput.
    
    The current generic write implementation introduced by commit
    27c7acf22047 ("USB: serial: reimplement generic fifo-based writes") has
    always had this bug, although it's fairly hard to trigger and the
    consequences are not likely to be noticed.
    
    Specifically, a write() on one CPU while the completion handler is
    running on another could result in only one of the two write urbs being
    utilised to empty the remainder of the write fifo (unless there is a
    second write() that doesn't race during that time).
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>