commit b45ddfa25624c8f50cfc309aea686cea078748ab
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Fri Sep 26 11:42:52 2014 +0200

    Linux 3.12.29

commit 7bcae251a2dfb6c0aa2c34dc505a5796c7c39426
Author: Will Deacon <will.deacon@arm.com>
Date:   Thu Sep 11 14:38:16 2014 +0100

    arm64: flush TLS registers during exec
    
    commit eb35bdd7bca29a13c8ecd44e6fd747a84ce675db upstream.
    
    Nathan reports that we leak TLS information from the parent context
    during an exec, as we don't clear the TLS registers when flushing the
    thread state.
    
    This patch updates the flushing code so that we:
    
      (1) Unconditionally zero the tpidr_el0 register (since this is fully
          context switched for native tasks and zeroed for compat tasks)
    
      (2) Zero the tp_value state in thread_info before clearing the
          tpidrr0_el0 register for compat tasks (since this is only writable
          by the set_tls compat syscall and therefore not fully switched).
    
    A missing compiler barrier is also added to the compat set_tls syscall.
    
    Acked-by: Nathan Lynch <Nathan_Lynch@mentor.com>
    Reported-by: Nathan Lynch <Nathan_Lynch@mentor.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 0fbdd4f77c9051e4f23b943aa8d373d151679f0d
Author: Jeff Moyer <jmoyer@redhat.com>
Date:   Tue Sep 2 13:17:00 2014 -0400

    aio: add missing smp_rmb() in read_events_ring
    
    commit 2ff396be602f10b5eab8e73b24f20348fa2de159 upstream.
    
    We ran into a case on ppc64 running mariadb where io_getevents would
    return zeroed out I/O events.  After adding instrumentation, it became
    clear that there was some missing synchronization between reading the
    tail pointer and the events themselves.  This small patch fixes the
    problem in testing.
    
    Thanks to Zach for helping to look into this, and suggesting the fix.
    
    Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e66983c5b25182a5e1ebc3ab4f68f613eb1c9fe8
Author: Anton Blanchard <anton@samba.org>
Date:   Fri Aug 22 11:36:52 2014 +1000

    ibmveth: Fix endian issues with rx_no_buffer statistic
    
    commit cbd5228199d8be45d895d9d0cc2b8ce53835fc21 upstream.
    
    Hidden away in the last 8 bytes of the buffer_list page is a solitary
    statistic. It needs to be byte swapped or else ethtool -S will
    produce numbers that terrify the user.
    
    Since we do this in multiple places, create a helper function with a
    comment explaining what is going on.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit be11da6655a9327fb5ee243861773718ec155535
Author: Murali Karicheri <m-karicheri2@ti.com>
Date:   Fri Sep 5 13:21:00 2014 -0400

    ahci: add pcid for Marvel 0x9182 controller
    
    commit c5edfff9db6f4d2c35c802acb4abe0df178becee upstream.
    
    Keystone K2E EVM uses Marvel 0x9182 controller. This requires support
    for the ID in the ahci driver.
    
    Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 1b935cf42e7fb5df04fc1ab6f166fffeba6a2ae6
Author: James Ralston <james.d.ralston@intel.com>
Date:   Wed Aug 27 14:29:07 2014 -0700

    ahci: Add Device IDs for Intel 9 Series PCH
    
    commit 1b071a0947dbce5c184c12262e02540fbc493457 upstream.
    
    This patch adds the AHCI mode SATA Device IDs for the Intel 9 Series PCH.
    
    Signed-off-by: James Ralston <james.d.ralston@intel.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 6cd2641b22e6dd70ae3fded86aa42128c84c3afc
Author: Arjun Sreedharan <arjun024@gmail.com>
Date:   Sun Aug 17 20:00:09 2014 +0530

    pata_scc: propagate return value of scc_wait_after_reset
    
    commit 4dc7c76cd500fa78c64adfda4b070b870a2b993c upstream.
    
    scc_bus_softreset not necessarily should return zero.
    Propagate the error code.
    
    Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 61ee2622648853cd3b2d36f9972773ec37b3c71a
Author: Tejun Heo <tj@kernel.org>
Date:   Mon Aug 18 17:40:09 2014 -0400

    libata: widen Crucial M550 blacklist matching
    
    commit 2a13772a144d2956a7fedd18685921d0a9b8b783 upstream.
    
    Crucial M550 may cause data corruption on queued trims and is
    blacklisted.  The pattern used for it fails to match 1TB one as the
    capacity section will be four chars instead of three.  Widen the
    pattern.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Charles Reiss <woggling@gmail.com>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81071
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 619f5c40406327a31e3a8b330bf82d0dcf1060df
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Jul 21 10:41:13 2014 -0400

    drm/radeon/TN: only enable bapm on MSI systems
    
    commit 730a336c33a3398d65896e8ee3ef9f5679fe30a9 upstream.
    
    There still seem to be stability problems with other systems.
    
    Bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=72921
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e8dbfe481cdad75166b36b0f31cdf87bd6f1ddde
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Jun 17 16:01:08 2014 -0400

    drm/radeon: enable bapm by default on desktop TN/RL boards
    
    commit 0c78a44964db3d483b0c09a8236e0fe123aa9cfc upstream.
    
    bapm enabled the GPU and CPU to share TDP headroom.  It was
    disabled by default since some laptops hung when it was enabled
    in conjunction with dpm.  It seems to be stable on desktop
    boards and fixes hangs on boot with dpm enabled on certain
    boards, so enable it by default on desktop boards.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=72921
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 7b5e127b34724f698d7567b7222f0cbf3624098b
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Thu Aug 7 16:29:53 2014 +0200

    drm/i915: read HEAD register back in init_ring_common() to enforce ordering
    
    commit ece4a17d237a79f63fbfaf3f724a12b6d500555c upstream.
    
    Withtout this, ring initialization fails reliabily during resume with
    
    	[drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head ffffff8804 tail 00000000 start 000e4000
    
    This is not a complete fix, but it is verified to make the ring
    initialization failures during resume much less likely.
    
    We were not able to root-cause this bug (likely HW-specific to Gen4 chips)
    yet. This is therefore used as a ducttape before problem is fully
    understood and proper fix created, so that people don't suffer from
    completely unusable systems in the meantime.
    
    The discussion and debugging is happening at
    
    	https://bugs.freedesktop.org/show_bug.cgi?id=76554
    
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit c030871d73f59332154e3ebb79b986ae97bacd4a
Author: Christian König <christian.koenig@amd.com>
Date:   Wed Jul 30 17:18:12 2014 +0200

    drm/radeon: set VM base addr using the PFP v2
    
    commit f1d2a26b506e9dc7bbe94fae40da0a0d8dcfacd0 upstream.
    
    Seems to make VM flushes more stable on SI and CIK.
    
    v2: only use the PFP on the GFX ring on CIK
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e3778ad471494f7be9845a675f50dba4802d8972
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Sun Jul 27 23:21:50 2014 -0400

    drm/radeon: load the lm63 driver for an lm64 thermal chip.
    
    commit 5dc355325b648dc9b4cf3bea4d968de46fd59215 upstream.
    
    Looks like the lm63 driver supports the lm64 as well.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit fe4bbb9bc4d42e980d01895cb7492babdcdf55cf
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Aug 3 20:02:31 2014 +0900

    drm/ttm: Pass GFP flags in order to avoid deadlock.
    
    commit a91576d7916f6cce76d30303e60e1ac47cf4a76d upstream.
    
    Commit 7dc19d5a "drivers: convert shrinkers to new count/scan API" added
    deadlock warnings that ttm_page_pool_free() and ttm_dma_page_pool_free()
    are currently doing GFP_KERNEL allocation.
    
    But these functions did not get updated to receive gfp_t argument.
    This patch explicitly passes sc->gfp_mask or GFP_KERNEL to these functions,
    and removes the deadlock warning.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 726e09542d0526359c9066f27fcc99437558bf7e
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Aug 3 20:02:03 2014 +0900

    drm/ttm: Fix possible stack overflow by recursive shrinker calls.
    
    commit 71336e011d1d2312bcbcaa8fcec7365024f3a95d upstream.
    
    While ttm_dma_pool_shrink_scan() tries to take mutex before doing GFP_KERNEL
    allocation, ttm_pool_shrink_scan() does not do it. This can result in stack
    overflow if kmalloc() in ttm_page_pool_free() triggered recursion due to
    memory pressure.
    
      shrink_slab()
      => ttm_pool_shrink_scan()
         => ttm_page_pool_free()
            => kmalloc(GFP_KERNEL)
               => shrink_slab()
                  => ttm_pool_shrink_scan()
                     => ttm_page_pool_free()
                        => kmalloc(GFP_KERNEL)
    
    Change ttm_pool_shrink_scan() to do like ttm_dma_pool_shrink_scan() does.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 7d042e59c04b88edff83aa2ec1d1bc81f94bfaf4
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Aug 3 20:01:10 2014 +0900

    drm/ttm: Use mutex_trylock() to avoid deadlock inside shrinker functions.
    
    commit 22e71691fd54c637800d10816bbeba9cf132d218 upstream.
    
    I can observe that RHEL7 environment stalls with 100% CPU usage when a
    certain type of memory pressure is given. While the shrinker functions
    are called by shrink_slab() before the OOM killer is triggered, the stall
    lasts for many minutes.
    
    One of reasons of this stall is that
    ttm_dma_pool_shrink_count()/ttm_dma_pool_shrink_scan() are called and
    are blocked at mutex_lock(&_manager->lock). GFP_KERNEL allocation with
    _manager->lock held causes someone (including kswapd) to deadlock when
    these functions are called due to memory pressure. This patch changes
    "mutex_lock();" to "if (!mutex_trylock()) return ...;" in order to
    avoid deadlock.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 50ac045c45d41dad0c4b38a456dcc58a64c58244
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Aug 3 20:00:40 2014 +0900

    drm/ttm: Choose a pool to shrink correctly in ttm_dma_pool_shrink_scan().
    
    commit 46c2df68f03a236b30808bba361f10900c88d95e upstream.
    
    We can use "unsigned int" instead of "atomic_t" by updating start_pool
    variable under _manager->lock. This patch will make it possible to avoid
    skipping when choosing a pool to shrink in round-robin style, after next
    patch changes mutex_lock(_manager->lock) to !mutex_trylock(_manager->lork).
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 1718e957131772d5344ee58e8c804a0641061aff
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Aug 3 19:59:35 2014 +0900

    drm/ttm: Fix possible division by 0 in ttm_dma_pool_shrink_scan().
    
    commit 11e504cc705e8ccb06ac93a276e11b5e8fee4d40 upstream.
    
    list_empty(&_manager->pools) being false before taking _manager->lock
    does not guarantee that _manager->npools != 0 after taking _manager->lock
    because _manager->npools is updated under _manager->lock.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a84cc78e2adc8e099cd3ef8b0da555df11f25a26
Author: Guido Martínez <guido@vanguardiasur.com.ar>
Date:   Tue Jun 17 11:17:09 2014 -0300

    drm/tilcdc: fix double kfree
    
    commit c9a3ad25eddfdb898114a9d73cdb4c3472d9dfca upstream.
    
    display_timings_release calls kfree on the display_timings object passed
    to it. Calling kfree after it is wrong. SLUB debug showed the following
    warning:
    
        =============================================================================
        BUG kmalloc-64 (Tainted: G        W    ): Object already free
        -----------------------------------------------------------------------------
    
        Disabling lock debugging due to kernel taint
        INFO: Allocated in of_get_display_timings+0x2c/0x214 age=601 cpu=0
        pid=884
         __slab_alloc.constprop.79+0x2e0/0x33c
         kmem_cache_alloc+0xac/0xdc
         of_get_display_timings+0x2c/0x214
         panel_probe+0x7c/0x314 [tilcdc]
         platform_drv_probe+0x18/0x48
         [..snip..]
        INFO: Freed in panel_destroy+0x18/0x3c [tilcdc] age=0 cpu=0 pid=907
         __slab_free+0x34/0x330
         panel_destroy+0x18/0x3c [tilcdc]
         tilcdc_unload+0xd0/0x118 [tilcdc]
         drm_dev_unregister+0x24/0x98
         [..snip..]
    
    Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a643641609ae76e8d1628ce72b40d826912f7b5a
Author: Guido Martínez <guido@vanguardiasur.com.ar>
Date:   Tue Jun 17 11:17:08 2014 -0300

    drm/tilcdc: fix release order on exit
    
    commit eb565a2bbadc6a5030a6dbe58db1aa52453e7edf upstream.
    
    Unregister resources in the correct order on tilcdc_drm_fini, which is
    the reverse order they were registered during tilcdc_drm_init.
    
    This also means unregistering the driver before releasing its resources.
    
    Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 565c526606aad527140f036004c258feed9bae44
Author: Guido Martínez <guido@vanguardiasur.com.ar>
Date:   Tue Jun 17 11:17:07 2014 -0300

    drm/tilcdc: panel: fix leak when unloading the module
    
    commit 3a49012224ca9016658a831a327ff6a7fe5bb4f9 upstream.
    
    The driver did not unregister the allocated framebuffer, which caused
    memory leaks (and memory manager WARNs) when unloading. Also, the
    framebuffer device under /dev still existed after unloading.
    
    Add a call to drm_fbdev_cma_fini when unloading the module to prevent
    both issues.
    
    Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e2f57296d3f3c4f5cdf5aa4f4c26b3c68ff17005
Author: Guido Martínez <guido@vanguardiasur.com.ar>
Date:   Tue Jun 17 11:17:06 2014 -0300

    drm/tilcdc: tfp410: fix dangling sysfs connector node
    
    commit 16dcbdef404f4e87dab985494381939fe0a2d456 upstream.
    
    Add a drm_sysfs_connector_remove call when we destroy the panel to make
    sure the connector node in sysfs gets deleted.
    
    This is required for proper unload and re-load of this driver, otherwise
    we will get a warning about a duplicate filename in sysfs.
    
    Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit d635b7b86ba2ad63957d091ea7c5e9d0b5de3136
Author: Guido Martínez <guido@vanguardiasur.com.ar>
Date:   Tue Jun 17 11:17:05 2014 -0300

    drm/tilcdc: slave: fix dangling sysfs connector node
    
    commit daa15b4cd1eee58eb1322062a3320b1dbe5dc96e upstream.
    
    Add a drm_sysfs_connector_remove call when we destroy the panel to make
    sure the connector node in sysfs gets deleted.
    
    This is required for proper unload and re-load of this driver as a
    module. Without this, we would get a warning at re-load time like so:
    
       tda998x 0-0070: found TDA19988
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 825 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
       sysfs: cannot create duplicate filename '/class/drm/card0-HDMI-A-1'
       Modules linked in: [..]
       CPU: 0 PID: 825 Comm: modprobe Not tainted 3.15.0-rc4-00027-g9dcdef4 #82
       [<c0013bb8>] (unwind_backtrace) from [<c0011824>] (show_stack+0x10/0x14)
       [<c0011824>] (show_stack) from [<c0034e8c>] (warn_slowpath_common+0x68/0x88)
       [<c0034e8c>] (warn_slowpath_common) from [<c0034edc>] (warn_slowpath_fmt+0x30/0x40)
       [<c0034edc>] (warn_slowpath_fmt) from [<c01243f4>] (sysfs_warn_dup+0x54/0x74)
       [<c01243f4>] (sysfs_warn_dup) from [<c0124708>] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
       [<c0124708>] (sysfs_do_create_link_sd.isra.2) from [<c02ae37c>] (device_add+0x338/0x520)
       [<c02ae37c>] (device_add) from [<c02ae6e8>] (device_create_groups_vargs+0xa0/0xc4)
       [<c02ae6e8>] (device_create_groups_vargs) from [<c02ae758>] (device_create+0x24/0x2c)
       [<c02ae758>] (device_create) from [<c029b4ec>] (drm_sysfs_connector_add+0x64/0x204)
       [<c029b4ec>] (drm_sysfs_connector_add) from [<bf0b1b40>] (slave_modeset_init+0x120/0x1bc [tilcdc])
       [<bf0b1b40>] (slave_modeset_init [tilcdc]) from [<bf0b2be8>] (tilcdc_load+0x214/0x4c0 [tilcdc])
       [<bf0b2be8>] (tilcdc_load [tilcdc]) from [<c029955c>] (drm_dev_register+0xa4/0x104)
          [..snip..]
       ---[ end trace 4df8d614936ebdee ]---
       [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17
    
    Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ecb97789fc0fb7f6d9083dd4892c281cce0f65ad
Author: Guido Martínez <guido@vanguardiasur.com.ar>
Date:   Tue Jun 17 11:17:04 2014 -0300

    drm/tilcdc: panel: fix dangling sysfs connector node
    
    commit e396900e649b0af31161634d87fe37076f46c12b upstream.
    
    Add a drm_sysfs_connector_remove call when we destroy the panel to make
    sure the connector node in sysfs gets deleted.
    
    This is required for proper unload and re-load of this driver as a
    module. Without this, we would get a warning at re-load time like so:
    
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 824 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
       sysfs: cannot create duplicate filename '/class/drm/card0-LVDS-1'
       Modules linked in: [...]
       CPU: 0 PID: 824 Comm: modprobe Not tainted 3.15.0-rc4-00027-g6484f96-dirty #81
       [<c0013bb8>] (unwind_backtrace) from [<c0011824>] (show_stack+0x10/0x14)
       [<c0011824>] (show_stack) from [<c0034e8c>] (warn_slowpath_common+0x68/0x88)
       [<c0034e8c>] (warn_slowpath_common) from [<c0034edc>] (warn_slowpath_fmt+0x30/0x40)
       [<c0034edc>] (warn_slowpath_fmt) from [<c01243f4>] (sysfs_warn_dup+0x54/0x74)
       [<c01243f4>] (sysfs_warn_dup) from [<c0124708>] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
       [<c0124708>] (sysfs_do_create_link_sd.isra.2) from [<c02ae37c>] (device_add+0x338/0x520)
       [<c02ae37c>] (device_add) from [<c02ae6e8>] (device_create_groups_vargs+0xa0/0xc4)
       [<c02ae6e8>] (device_create_groups_vargs) from [<c02ae758>] (device_create+0x24/0x2c)
       [<c02ae758>] (device_create) from [<c029b4ec>] (drm_sysfs_connector_add+0x64/0x204)
       [<c029b4ec>] (drm_sysfs_connector_add) from [<bf0b1fec>] (panel_modeset_init+0xb8/0x134 [tilcdc])
       [<bf0b1fec>] (panel_modeset_init [tilcdc]) from [<bf0b2bf0>] (tilcdc_load+0x214/0x4c0 [tilcdc])
       [<bf0b2bf0>] (tilcdc_load [tilcdc]) from [<c029955c>] (drm_dev_register+0xa4/0x104)
          [ .. snip .. ]
       ---[ end trace b2d09cd9578b0497 ]---
       [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17
    
    Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
    Tested-by: Darren Etheridge <detheridge@ti.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ec78ef0061ee45643946974bc6fecff25e311230
Author: Ronald Wahl <ronald.wahl@raritan.com>
Date:   Thu Aug 7 14:15:50 2014 +0200

    carl9170: fix sending URBs with wrong type when using full-speed
    
    commit 671796dd96b6cd85b75fba9d3007bcf7e5f7c309 upstream.
    
    The driver assumes that endpoint 4 is always an interrupt endpoint.
    Unfortunately the type differs between high-speed and full-speed
    configurations while in the former case it is indeed an interrupt
    endpoint this is not true for the latter case - here it is a bulk
    endpoint. When sending URBs with the wrong type the kernel will
    generate a warning message including backtrace. In this specific
    case there will be a huge amount of warnings which can bring the system
    to freeze.
    
    To fix this we are now sending URBs to endpoint 4 using the type
    found in the endpoint descriptor.
    
    A side note: The carl9170 firmware currently specifies endpoint 4 as
    interrupt endpoint even in the full-speed configuration but this has
    no relevance because before this firmware is loaded the endpoint type
    is as described above and after the firmware is running the stick is not
    reenumerated and so the old descriptor is used.
    
    Signed-off-by: Ronald Wahl <ronald.wahl@raritan.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9d735a8a6cd554ca13907b01c199650852036497
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Mon Sep 15 23:51:43 2014 +0400

    CIFS: Fix directory rename error
    
    Commit a07d322059db66b84c9eb4f98959df468e88b34b upstream.
    
    CIFS servers process nlink counts differently for files and directories.
    In cifs_rename() if we the request fails on the existing target, we
    try to remove it through cifs_unlink() but this is not what we want
    to do for directories. As the result the following sequence of commands
    
    mkdir {1,2}; mv -T 1 2; rmdir {1,2}; mkdir {1,2}; echo foo > 2/bar
    
    and XFS test generic/023 fail with -ENOENT error. That's why the second
    mkdir reuses the existing inode (target inode of the mv -T command) with
    S_DEAD flag.
    
    Fix this by checking whether the target is directory or not and
    calling cifs_rmdir() rather than cifs_unlink() for directories.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a1f3bee285ee52c8658ca2360a74a768417dc21f
Author: Sage Weil <sage@redhat.com>
Date:   Mon Aug 4 07:01:54 2014 -0700

    libceph: gracefully handle large reply messages from the mon
    
    commit 73c3d4812b4c755efeca0140f606f83772a39ce4 upstream.
    
    We preallocate a few of the message types we get back from the mon.  If we
    get a larger message than we are expecting, fall back to trying to allocate
    a new one instead of blindly using the one we have.
    
    Signed-off-by: Sage Weil <sage@redhat.com>
    Reviewed-by: Ilya Dryomov <ilya.dryomov@inktank.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 2b84b406a9083b1f8f67d195c2e93111f9887b99
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Jul 9 15:57:26 2014 +0200

    IB/srp: Fix deadlock between host removal and multipathd
    
    commit bcc05910359183b431da92713e98eed478edf83a upstream.
    
    If scsi_remove_host() is invoked after a SCSI device has been blocked,
    if the fast_io_fail_tmo or dev_loss_tmo work gets scheduled on the
    workqueue executing srp_remove_work() and if an I/O request is
    scheduled after the SCSI device had been blocked by e.g. multipathd
    then the following deadlock can occur:
    
        kworker/6:1     D ffff880831f3c460     0   195      2 0x00000000
        Call Trace:
         [<ffffffff814aafd9>] schedule+0x29/0x70
         [<ffffffff814aa0ef>] schedule_timeout+0x10f/0x2a0
         [<ffffffff8105af6f>] msleep+0x2f/0x40
         [<ffffffff8123b0ae>] __blk_drain_queue+0x4e/0x180
         [<ffffffff8123d2d5>] blk_cleanup_queue+0x225/0x230
         [<ffffffffa0010732>] __scsi_remove_device+0x62/0xe0 [scsi_mod]
         [<ffffffffa000ed2f>] scsi_forget_host+0x6f/0x80 [scsi_mod]
         [<ffffffffa0002eba>] scsi_remove_host+0x7a/0x130 [scsi_mod]
         [<ffffffffa07cf5c5>] srp_remove_work+0x95/0x180 [ib_srp]
         [<ffffffff8106d7aa>] process_one_work+0x1ea/0x6c0
         [<ffffffff8106dd9b>] worker_thread+0x11b/0x3a0
         [<ffffffff810758bd>] kthread+0xed/0x110
         [<ffffffff814b972c>] ret_from_fork+0x7c/0xb0
        multipathd      D ffff880096acc460     0  5340      1 0x00000000
        Call Trace:
         [<ffffffff814aafd9>] schedule+0x29/0x70
         [<ffffffff814aa0ef>] schedule_timeout+0x10f/0x2a0
         [<ffffffff814ab79b>] io_schedule_timeout+0x9b/0xf0
         [<ffffffff814abe1c>] wait_for_completion_io_timeout+0xdc/0x110
         [<ffffffff81244b9b>] blk_execute_rq+0x9b/0x100
         [<ffffffff8124f665>] sg_io+0x1a5/0x450
         [<ffffffff8124fd21>] scsi_cmd_ioctl+0x2a1/0x430
         [<ffffffff8124fef2>] scsi_cmd_blk_ioctl+0x42/0x50
         [<ffffffffa00ec97e>] sd_ioctl+0xbe/0x140 [sd_mod]
         [<ffffffff8124bd04>] blkdev_ioctl+0x234/0x840
         [<ffffffff811cb491>] block_ioctl+0x41/0x50
         [<ffffffff811a0df0>] do_vfs_ioctl+0x300/0x520
         [<ffffffff811a1051>] SyS_ioctl+0x41/0x80
         [<ffffffff814b9962>] tracesys+0xd0/0xd5
    
    Fix this by scheduling removal work on another workqueue than the
    transport layer timers.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
    Reviewed-by: David Dillow <dave@thedillows.org>
    Cc: Sebastian Parschauer <sebastian.riemer@profitbricks.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 77a8689a66b4fd4232cca7724508701b35de4ea3
Author: Tejun Heo <tj@kernel.org>
Date:   Sat Jul 5 18:43:21 2014 -0400

    blkcg: don't call into policy draining if root_blkg is already gone
    
    commit 2a1b4cf2331d92bc009bf94fa02a24604cdaf24c upstream.
    
    While a queue is being destroyed, all the blkgs are destroyed and its
    ->root_blkg pointer is set to NULL.  If someone else starts to drain
    while the queue is in this state, the following oops happens.
    
      NULL pointer dereference at 0000000000000028
      IP: [<ffffffff8144e944>] blk_throtl_drain+0x84/0x230
      PGD e4a1067 PUD b773067 PMD 0
      Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
      Modules linked in: cfq_iosched(-) [last unloaded: cfq_iosched]
      CPU: 1 PID: 537 Comm: bash Not tainted 3.16.0-rc3-work+ #2
      Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      task: ffff88000e222250 ti: ffff88000efd4000 task.ti: ffff88000efd4000
      RIP: 0010:[<ffffffff8144e944>]  [<ffffffff8144e944>] blk_throtl_drain+0x84/0x230
      RSP: 0018:ffff88000efd7bf0  EFLAGS: 00010046
      RAX: 0000000000000000 RBX: ffff880015091450 RCX: 0000000000000001
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
      RBP: ffff88000efd7c10 R08: 0000000000000000 R09: 0000000000000001
      R10: ffff88000e222250 R11: 0000000000000000 R12: ffff880015091450
      R13: ffff880015092e00 R14: ffff880015091d70 R15: ffff88001508fc28
      FS:  00007f1332650740(0000) GS:ffff88001fa80000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 0000000000000028 CR3: 0000000009446000 CR4: 00000000000006e0
      Stack:
       ffffffff8144e8f6 ffff880015091450 0000000000000000 ffff880015091d80
       ffff88000efd7c28 ffffffff8144ae2f ffff880015091450 ffff88000efd7c58
       ffffffff81427641 ffff880015091450 ffffffff82401f00 ffff880015091450
      Call Trace:
       [<ffffffff8144ae2f>] blkcg_drain_queue+0x1f/0x60
       [<ffffffff81427641>] __blk_drain_queue+0x71/0x180
       [<ffffffff81429b3e>] blk_queue_bypass_start+0x6e/0xb0
       [<ffffffff814498b8>] blkcg_deactivate_policy+0x38/0x120
       [<ffffffff8144ec44>] blk_throtl_exit+0x34/0x50
       [<ffffffff8144aea5>] blkcg_exit_queue+0x35/0x40
       [<ffffffff8142d476>] blk_release_queue+0x26/0xd0
       [<ffffffff81454968>] kobject_cleanup+0x38/0x70
       [<ffffffff81454848>] kobject_put+0x28/0x60
       [<ffffffff81427505>] blk_put_queue+0x15/0x20
       [<ffffffff817d07bb>] scsi_device_dev_release_usercontext+0x16b/0x1c0
       [<ffffffff810bc339>] execute_in_process_context+0x89/0xa0
       [<ffffffff817d064c>] scsi_device_dev_release+0x1c/0x20
       [<ffffffff817930e2>] device_release+0x32/0xa0
       [<ffffffff81454968>] kobject_cleanup+0x38/0x70
       [<ffffffff81454848>] kobject_put+0x28/0x60
       [<ffffffff817934d7>] put_device+0x17/0x20
       [<ffffffff817d11b9>] __scsi_remove_device+0xa9/0xe0
       [<ffffffff817d121b>] scsi_remove_device+0x2b/0x40
       [<ffffffff817d1257>] sdev_store_delete+0x27/0x30
       [<ffffffff81792ca8>] dev_attr_store+0x18/0x30
       [<ffffffff8126f75e>] sysfs_kf_write+0x3e/0x50
       [<ffffffff8126ea87>] kernfs_fop_write+0xe7/0x170
       [<ffffffff811f5e9f>] vfs_write+0xaf/0x1d0
       [<ffffffff811f69bd>] SyS_write+0x4d/0xc0
       [<ffffffff81d24692>] system_call_fastpath+0x16/0x1b
    
    776687bce42b ("block, blk-mq: draining can't be skipped even if
    bypass_depth was non-zero") made it easier to trigger this bug by
    making blk_queue_bypass_start() drain even when it loses the first
    bypass test to blk_cleanup_queue(); however, the bug has always been
    there even before the commit as blk_queue_bypass_start() could race
    against queue destruction, win the initial bypass test but perform the
    actual draining after blk_cleanup_queue() already destroyed all blkgs.
    
    Fix it by skippping calling into policy draining if all the blkgs are
    already gone.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Shirish Pargaonkar <spargaonkar@suse.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Reported-by: Jet Chen <jet.chen@intel.com>
    Tested-by: Shirish Pargaonkar <spargaonkar@suse.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 20223b44368a373892a5b730cef6765720de77c5
Author: Roger Quadros <rogerq@ti.com>
Date:   Mon Aug 25 16:15:33 2014 -0700

    mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc()
    
    commit 40ddbf5069bd4e11447c0088fc75318e0aac53f0 upstream.
    
    commit 65b97cf6b8de introduced in v3.7 caused a regression
    by using a reversed CS_MASK thus causing omap_calculate_ecc to
    always fail. As the NAND base driver never checks for .calculate()'s
    return value, the zeroed ECC values are used as is without showing
    any error to the user. However, this won't work and the NAND device
    won't be guarded by any error code.
    
    Fix the issue by using the correct mask.
    
    Code was tested on omap3beagle using the following procedure
    - flash the primary bootloader (MLO) from the kernel to the first
    NAND partition using nandwrite.
    - boot the board from NAND. This utilizes OMAP ROM loader that
    relies on 1-bit Hamming code ECC.
    
    Fixes: 65b97cf6b8de (mtd: nand: omap2: handle nand on gpmc)
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit b2697caa5fade318dbadf39e03b10d047fcb6dd6
Author: Kevin Hao <haokexin@gmail.com>
Date:   Thu Jul 3 10:35:26 2014 +0800

    mtd/ftl: fix the double free of the buffers allocated in build_maps()
    
    commit a152056c912db82860a8b4c23d0bd3a5aa89e363 upstream.
    
    I got the following panic on my fsl p5020ds board.
    
      Unable to handle kernel paging request for data at address 0x7375627379737465
      Faulting instruction address: 0xc000000000100778
      Oops: Kernel access of bad area, sig: 11 [#1]
      SMP NR_CPUS=24 CoreNet Generic
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.15.0-next-20140613 #145
      task: c0000000fe080000 ti: c0000000fe088000 task.ti: c0000000fe088000
      NIP: c000000000100778 LR: c00000000010073c CTR: 0000000000000000
      REGS: c0000000fe08aa00 TRAP: 0300   Not tainted  (3.15.0-next-20140613)
      MSR: 0000000080029000 <CE,EE,ME>  CR: 24ad2e24  XER: 00000000
      DEAR: 7375627379737465 ESR: 0000000000000000 SOFTE: 1
      GPR00: c0000000000c99b0 c0000000fe08ac80 c0000000009598e0 c0000000fe001d80
      GPR04: 00000000000000d0 0000000000000913 c000000007902b20 0000000000000000
      GPR08: c0000000feaae888 0000000000000000 0000000007091000 0000000000200200
      GPR12: 0000000028ad2e28 c00000000fff4000 c0000000007abe08 0000000000000000
      GPR16: c0000000007ab160 c0000000007aaf98 c00000000060ba68 c0000000007abda8
      GPR20: c0000000007abde8 c0000000feaea6f8 c0000000feaea708 c0000000007abd10
      GPR24: c000000000989370 c0000000008c6228 00000000000041ed c0000000fe00a400
      GPR28: c00000000017c1cc 00000000000000d0 7375627379737465 c0000000fe001d80
      NIP [c000000000100778] .__kmalloc_track_caller+0x70/0x168
      LR [c00000000010073c] .__kmalloc_track_caller+0x34/0x168
      Call Trace:
      [c0000000fe08ac80] [c00000000087e6b8] uevent_sock_list+0x0/0x10 (unreliable)
      [c0000000fe08ad20] [c0000000000c99b0] .kstrdup+0x44/0x90
      [c0000000fe08adc0] [c00000000017c1cc] .__kernfs_new_node+0x4c/0x130
      [c0000000fe08ae70] [c00000000017d7e4] .kernfs_new_node+0x2c/0x64
      [c0000000fe08aef0] [c00000000017db00] .kernfs_create_dir_ns+0x34/0xc8
      [c0000000fe08af80] [c00000000018067c] .sysfs_create_dir_ns+0x58/0xcc
      [c0000000fe08b010] [c0000000002c711c] .kobject_add_internal+0xc8/0x384
      [c0000000fe08b0b0] [c0000000002c7644] .kobject_add+0x64/0xc8
      [c0000000fe08b140] [c000000000355ebc] .device_add+0x11c/0x654
      [c0000000fe08b200] [c0000000002b5988] .add_disk+0x20c/0x4b4
      [c0000000fe08b2c0] [c0000000003a21d4] .add_mtd_blktrans_dev+0x340/0x514
      [c0000000fe08b350] [c0000000003a3410] .mtdblock_add_mtd+0x74/0xb4
      [c0000000fe08b3e0] [c0000000003a32cc] .blktrans_notify_add+0x64/0x94
      [c0000000fe08b470] [c00000000039b5b4] .add_mtd_device+0x1d4/0x368
      [c0000000fe08b520] [c00000000039b830] .mtd_device_parse_register+0xe8/0x104
      [c0000000fe08b5c0] [c0000000003b8408] .of_flash_probe+0x72c/0x734
      [c0000000fe08b750] [c00000000035ba40] .platform_drv_probe+0x38/0x84
      [c0000000fe08b7d0] [c0000000003599a4] .really_probe+0xa4/0x29c
      [c0000000fe08b870] [c000000000359d3c] .__driver_attach+0x100/0x104
      [c0000000fe08b900] [c00000000035746c] .bus_for_each_dev+0x84/0xe4
      [c0000000fe08b9a0] [c0000000003593c0] .driver_attach+0x24/0x38
      [c0000000fe08ba10] [c000000000358f24] .bus_add_driver+0x1c8/0x2ac
      [c0000000fe08bab0] [c00000000035a3a4] .driver_register+0x8c/0x158
      [c0000000fe08bb30] [c00000000035b9f4] .__platform_driver_register+0x6c/0x80
      [c0000000fe08bba0] [c00000000084e080] .of_flash_driver_init+0x1c/0x30
      [c0000000fe08bc10] [c000000000001864] .do_one_initcall+0xbc/0x238
      [c0000000fe08bd00] [c00000000082cdc0] .kernel_init_freeable+0x188/0x268
      [c0000000fe08bdb0] [c0000000000020a0] .kernel_init+0x1c/0xf7c
      [c0000000fe08be30] [c000000000000884] .ret_from_kernel_thread+0x58/0xd4
      Instruction dump:
      41bd0010 480000c8 4bf04eb5 60000000 e94d0028 e93f0000 7cc95214 e8a60008
      7fc9502a 2fbe0000 419e00c8 e93f0022 <7f7e482a> 39200000 88ed06b2 992d06b2
      ---[ end trace b4c9a94804a42d40 ]---
    
    It seems that the corrupted partition header on my mtd device triggers
    a bug in the ftl. In function build_maps() it will allocate the buffers
    needed by the mtd partition, but if something goes wrong such as kmalloc
    failure, mtd read error or invalid partition header parameter, it will
    free all allocated buffers and then return non-zero. In my case, it
    seems that partition header parameter 'NumTransferUnits' is invalid.
    
    And the ftl_freepart() is a function which free all the partition
    buffers allocated by build_maps(). Given the build_maps() is a self
    cleaning function, so there is no need to invoke this function even
    if build_maps() return with error. Otherwise it will causes the
    buffers to be freed twice and then weird things would happen.
    
    Signed-off-by: Kevin Hao <haokexin@gmail.com>
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 825196496f0fb1f575fcff42b5923cdc68333d0f
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Tue Aug 26 19:04:44 2014 +0400

    CIFS: Fix wrong restart readdir for SMB1
    
    commit f736906a7669a77cf8cabdcbcf1dc8cb694e12ef upstream.
    
    The existing code calls server->ops->close() that is not
    right. This causes XFS test generic/310 to fail. Fix this
    by using server->ops->closedir() function.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 47770ac167aec89d4743afee133ef9f6609ce768
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Fri Aug 22 13:32:11 2014 +0400

    CIFS: Fix wrong filename length for SMB2
    
    commit 1bbe4997b13de903c421c1cc78440e544b5f9064 upstream.
    
    The existing code uses the old MAX_NAME constant. This causes
    XFS test generic/013 to fail. Fix it by replacing MAX_NAME with
    PATH_MAX that SMB1 uses. Also remove an unused MAX_NAME constant
    definition.
    
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit b80e6456dd0c3fa884e5d56c8ea8fd55f6ffe3ad
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Mon Aug 18 20:49:58 2014 +0400

    CIFS: Fix wrong directory attributes after rename
    
    commit b46799a8f28c43c5264ac8d8ffa28b311b557e03 upstream.
    
    When we requests rename we also need to update attributes
    of both source and target parent directories. Not doing it
    causes generic/309 xfstest to fail on SMB2 mounts. Fix this
    by marking these directories for force revalidating.
    
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 897ebdd35fad90a475e34e30b0660809347f511f
Author: Steve French <smfrench@gmail.com>
Date:   Sun Aug 17 00:22:24 2014 -0500

    CIFS: Possible null ptr deref in SMB2_tcon
    
    commit 18f39e7be0121317550d03e267e3ebd4dbfbb3ce upstream.
    
    As Raphael Geissert pointed out, tcon_error_exit can dereference tcon
    and there is one path in which tcon can be null.
    
    Signed-off-by: Steve French <smfrench@gmail.com>
    Reported-by: Raphael Geissert <geissert@debian.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 98bbdfdb93af137f5364dddff5286633644cc9d1
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Fri Jun 27 10:33:11 2014 +0400

    CIFS: Fix async reading on reconnects
    
    commit 038bc961c31b070269ecd07349a7ee2e839d4fec upstream.
    
    If we get into read_into_pages() from cifs_readv_receive() and then
    loose a network, we issue cifs_reconnect that moves all mids to
    a private list and issue their callbacks. The callback of the async
    read request sets a mid to retry, frees it and wakes up a process
    that waits on the rdata completion.
    
    After the connection is established we return from read_into_pages()
    with a short read, use the mid that was freed before and try to read
    the remaining data from the a newly created socket. Both actions are
    not what we want to do. In reconnect cases (-EAGAIN) we should not
    mask off the error with a short read but should return the error
    code instead.
    
    Acked-by: Jeff Layton <jlayton@samba.org>
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 7aadcce63d6b631f92bb2b8ff5eb8e284be81708
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Fri Jul 18 18:25:52 2014 +0400

    CIFS: Fix STATUS_CANNOT_DELETE error mapping for SMB2
    
    commit 21496687a79424572f46a84c690d331055f4866f upstream.
    
    The existing mapping causes unlink() call to return error after delete
    operation. Changing the mapping to -EACCES makes the client process
    the call like CIFS protocol does - reset dos attributes with ATTR_READONLY
    flag masked off and retry the operation.
    
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 0884f8d4139431deb0b98ba0d6fb2d17e2c25c84
Author: Ilya Dryomov <ilya.dryomov@inktank.com>
Date:   Tue Sep 9 19:39:15 2014 +0400

    libceph: do not hard code max auth ticket len
    
    commit c27a3e4d667fdcad3db7b104f75659478e0c68d8 upstream.
    
    We hard code cephx auth ticket buffer size to 256 bytes.  This isn't
    enough for any moderate setups and, in case tickets themselves are not
    encrypted, leads to buffer overflows (ceph_x_decrypt() errors out, but
    ceph_decode_copy() doesn't - it's just a memcpy() wrapper).  Since the
    buffer is allocated dynamically anyway, allocated it a bit later, at
    the point where we know how much is going to be needed.
    
    Fixes: http://tracker.ceph.com/issues/8979
    
    Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 113fde589ce46f4ea8d4947cec2e03f7bc3e3cdd
Author: Ilya Dryomov <ilya.dryomov@inktank.com>
Date:   Mon Sep 8 17:25:34 2014 +0400

    libceph: add process_one_ticket() helper
    
    commit 597cda357716a3cf8d994cb11927af917c8d71fa upstream.
    
    Add a helper for processing individual cephx auth tickets.  Needed for
    the next commit, which deals with allocating ticket buffers.  (Most of
    the diff here is whitespace - view with git diff -b).
    
    Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a06a29de94fb5f3a8e59b207ca5c4662b092371d
Author: Ilya Dryomov <ilya.dryomov@inktank.com>
Date:   Fri Aug 8 12:43:39 2014 +0400

    libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly
    
    commit 5f740d7e1531099b888410e6bab13f68da9b1a4d upstream.
    
    Determining ->last_piece based on the value of ->page_offset + length
    is incorrect because length here is the length of the entire message.
    ->last_piece set to false even if page array data item length is <=
    PAGE_SIZE, which results in invalid length passed to
    ceph_tcp_{send,recv}page() and causes various asserts to fire.
    
        # cat pages-cursor-init.sh
        #!/bin/bash
        rbd create --size 10 --image-format 2 foo
        FOO_DEV=$(rbd map foo)
        dd if=/dev/urandom of=$FOO_DEV bs=1M &>/dev/null
        rbd snap create foo@snap
        rbd snap protect foo@snap
        rbd clone foo@snap bar
        # rbd_resize calls librbd rbd_resize(), size is in bytes
        ./rbd_resize bar $(((4 << 20) + 512))
        rbd resize --size 10 bar
        BAR_DEV=$(rbd map bar)
        # trigger a 512-byte copyup -- 512-byte page array data item
        dd if=/dev/urandom of=$BAR_DEV bs=1M count=1 seek=5
    
    The problem exists only in ceph_msg_data_pages_cursor_init(),
    ceph_msg_data_pages_advance() does the right thing.  The size_t cast is
    unnecessary.
    
    Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Reviewed-by: Alex Elder <elder@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e00641c38e767943d0cc426063e0f562d6b259cc
Author: Chris Mason <clm@fb.com>
Date:   Tue Sep 2 12:12:52 2014 +1000

    xfs: don't zero partial page cache pages during O_DIRECT writes
    
    commit 85e584da3212140ee80fd047f9058bbee0bc00d5 upstream.
    
    xfs is using truncate_pagecache_range to invalidate the page cache
    during DIO reads.  This is different from the other filesystems who
    only invalidate pages during DIO writes.
    
    truncate_pagecache_range is meant to be used when we are freeing the
    underlying data structs from disk, so it will zero any partial
    ranges in the page.  This means a DIO read can zero out part of the
    page cache page, and it is possible the page will stay in cache.
    
    buffered reads will find an up to date page with zeros instead of
    the data actually on disk.
    
    This patch fixes things by using invalidate_inode_pages2_range
    instead.  It preserves the page cache invalidation, but won't zero
    any pages.
    
    [dchinner: catch error and warn if it fails. Comment.]
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a241067d53187f0b9bc06956da5f0152398a9405
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Sep 2 12:12:52 2014 +1000

    xfs: don't zero partial page cache pages during O_DIRECT writes
    
    commit 834ffca6f7e345a79f6f2e2d131b0dfba8a4b67a upstream.
    
    Similar to direct IO reads, direct IO writes are using
    truncate_pagecache_range to invalidate the page cache. This is
    incorrect due to the sub-block zeroing in the page cache that
    truncate_pagecache_range() triggers.
    
    This patch fixes things by using invalidate_inode_pages2_range
    instead.  It preserves the page cache invalidation, but won't zero
    any pages.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ff88bc8d71e4ac5143bb22dbe32ebd594f5fe4fe
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Sep 2 12:12:51 2014 +1000

    xfs: don't dirty buffers beyond EOF
    
    commit 22e757a49cf010703fcb9c9b4ef793248c39b0c2 upstream.
    
    generic/263 is failing fsx at this point with a page spanning
    EOF that cannot be invalidated. The operations are:
    
    1190 mapwrite   0x52c00 thru    0x5e569 (0xb96a bytes)
    1191 mapread    0x5c000 thru    0x5d636 (0x1637 bytes)
    1192 write      0x5b600 thru    0x771ff (0x1bc00 bytes)
    
    where 1190 extents EOF from 0x54000 to 0x5e569. When the direct IO
    write attempts to invalidate the cached page over this range, it
    fails with -EBUSY and so any attempt to do page invalidation fails.
    
    The real question is this: Why can't that page be invalidated after
    it has been written to disk and cleaned?
    
    Well, there's data on the first two buffers in the page (1k block
    size, 4k page), but the third buffer on the page (i.e. beyond EOF)
    is failing drop_buffers because it's bh->b_state == 0x3, which is
    BH_Uptodate | BH_Dirty.  IOWs, there's dirty buffers beyond EOF. Say
    what?
    
    OK, set_buffer_dirty() is called on all buffers from
    __set_page_buffers_dirty(), regardless of whether the buffer is
    beyond EOF or not, which means that when we get to ->writepage,
    we have buffers marked dirty beyond EOF that we need to clean.
    So, we need to implement our own .set_page_dirty method that
    doesn't dirty buffers beyond EOF.
    
    This is messy because the buffer code is not meant to be shared
    and it has interesting locking issues on the buffer dirty bits.
    So just copy and paste it and then modify it to suit what we need.
    
    Note: the solutions the other filesystems and generic block code use
    of marking the buffers clean in ->writepage does not work for XFS.
    It still leaves dirty buffers beyond EOF and invalidations still
    fail. Hence rather than play whack-a-mole, this patch simply
    prevents those buffers from being dirtied in the first place.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 38f069a3522ee05fdf53c29a5c1400a3b0c477d2
Author: Dave Chinner <dchinner@redhat.com>
Date:   Mon Aug 4 12:43:26 2014 +1000

    xfs: quotacheck leaves dquot buffers without verifiers
    
    commit 5fd364fee81a7888af806e42ed8a91c845894f2d upstream.
    
    When running xfs/305, I noticed that quotacheck was flushing dquot
    buffers that did not have the xfs_dquot_buf_ops verifiers attached:
    
    XFS (vdb): _xfs_buf_ioapply: no ops on block 0x1dc8/0x1dc8
    ffff880052489000: 44 51 01 04 00 00 65 b8 00 00 00 00 00 00 00 00  DQ....e.........
    ffff880052489010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    ffff880052489020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    ffff880052489030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    CPU: 1 PID: 2376 Comm: mount Not tainted 3.16.0-rc2-dgc+ #306
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
     ffff88006fe38000 ffff88004a0ffae8 ffffffff81cf1cca 0000000000000001
     ffff88004a0ffb88 ffffffff814d50ca 000010004a0ffc70 0000000000000000
     ffff88006be56dc4 0000000000000021 0000000000001dc8 ffff88007c773d80
    Call Trace:
     [<ffffffff81cf1cca>] dump_stack+0x45/0x56
     [<ffffffff814d50ca>] _xfs_buf_ioapply+0x3ca/0x3d0
     [<ffffffff810db520>] ? wake_up_state+0x20/0x20
     [<ffffffff814d51f5>] ? xfs_bdstrat_cb+0x55/0xb0
     [<ffffffff814d513b>] xfs_buf_iorequest+0x6b/0xd0
     [<ffffffff814d51f5>] xfs_bdstrat_cb+0x55/0xb0
     [<ffffffff814d53ab>] __xfs_buf_delwri_submit+0x15b/0x220
     [<ffffffff814d6040>] ? xfs_buf_delwri_submit+0x30/0x90
     [<ffffffff814d6040>] xfs_buf_delwri_submit+0x30/0x90
     [<ffffffff8150f89d>] xfs_qm_quotacheck+0x17d/0x3c0
     [<ffffffff81510591>] xfs_qm_mount_quotas+0x151/0x1e0
     [<ffffffff814ed01c>] xfs_mountfs+0x56c/0x7d0
     [<ffffffff814f0f12>] xfs_fs_fill_super+0x2c2/0x340
     [<ffffffff811c9fe4>] mount_bdev+0x194/0x1d0
     [<ffffffff814f0c50>] ? xfs_finish_flags+0x170/0x170
     [<ffffffff814ef0f5>] xfs_fs_mount+0x15/0x20
     [<ffffffff811ca8c9>] mount_fs+0x39/0x1b0
     [<ffffffff811e4d67>] vfs_kern_mount+0x67/0x120
     [<ffffffff811e757e>] do_mount+0x23e/0xad0
     [<ffffffff8117abde>] ? __get_free_pages+0xe/0x50
     [<ffffffff811e71e6>] ? copy_mount_options+0x36/0x150
     [<ffffffff811e8103>] SyS_mount+0x83/0xc0
     [<ffffffff81cfd40b>] tracesys+0xdd/0xe2
    
    This was caused by dquot buffer readahead not attaching a verifier
    structure to the buffer when readahead was issued, resulting in the
    followup read of the buffer finding a valid buffer and so not
    attaching new verifiers to the buffer as part of the read.
    
    Also, when a verifier failure occurs, we then read the buffer
    without verifiers. Attach the verifiers manually after this read so
    that if the buffer is then written it will be verified that the
    corruption has been repaired.
    
    Further, when flushing a dquot we don't ask for a verifier when
    reading in the dquot buffer the dquot belongs to. Most of the time
    this isn't an issue because the buffer is still cached, but when it
    is not cached it will result in writing the dquot buffer without
    having the verfier attached.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 725f6824f86949a1610d47477e08f5c08d128308
Author: Dave Chinner <dchinner@redhat.com>
Date:   Mon Aug 4 12:43:06 2014 +1000

    xfs: ensure verifiers are attached to recovered buffers
    
    commit 67dc288c21064b31a98a53dc64f6b9714b819fd6 upstream.
    
    Crash testing of CRC enabled filesystems has resulted in a number of
    reports of bad CRCs being detected after the filesystem was mounted.
    Errors such as the following were being seen:
    
    XFS (sdb3): Mounting V5 Filesystem
    XFS (sdb3): Starting recovery (logdev: internal)
    XFS (sdb3): Metadata CRC error detected at xfs_agf_read_verify+0x5a/0x100 [xfs], block 0x1
    XFS (sdb3): Unmount and run xfs_repair
    XFS (sdb3): First 64 bytes of corrupted metadata buffer:
    ffff880136ffd600: 58 41 47 46 00 00 00 01 00 00 00 00 00 0f aa 40  XAGF...........@
    ffff880136ffd610: 00 02 6d 53 00 02 77 f8 00 00 00 00 00 00 00 01  ..mS..w.........
    ffff880136ffd620: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03  ................
    ffff880136ffd630: 00 00 00 04 00 08 81 d0 00 08 81 a7 00 00 00 00  ................
    XFS (sdb3): metadata I/O error: block 0x1 ("xfs_trans_read_buf_map") error 74 numblks 1
    
    The errors were typically being seen in AGF, AGI and their related
    btree block buffers some time after log recovery had run. Often it
    wasn't until later subsequent mounts that the problem was
    discovered. The common symptom was a buffer with the correct
    contents, but a CRC and an LSN that matched an older version of the
    contents.
    
    Some debug added to _xfs_buf_ioapply() indicated that buffers were
    being written without verifiers attached to them from log recovery,
    and Jan Kara isolated the cause to log recovery readahead an dit's
    interactions with buffers that had a more recent LSN on disk than
    the transaction being recovered. In this case, the buffer did not
    get a verifier attached, and os when the second phase of log
    recovery ran and recovered EFIs and unlinked inodes, the buffers
    were modified and written without the verifier running. Hence they
    had up to date contents, but stale LSNs and CRCs.
    
    Fix it by attaching verifiers to buffers we skip due to future LSN
    values so they don't escape into the buffer cache without the
    correct verifier attached.
    
    This patch is based on analysis and a patch from Jan Kara.
    
    Reported-by: Jan Kara <jack@suse.cz>
    Reported-by: Fanael Linithien <fanael4@gmail.com>
    Reported-by: Grozdan <neutrino8@gmail.com>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit d1079a21adf42e46f4f05defa545b38ad4bf6675
Author: Doug Ledford <dledford@redhat.com>
Date:   Tue Aug 12 19:20:11 2014 -0400

    RDMA/uapi: Include socket.h in rdma_user_cm.h
    
    commit db1044d458a287c18c4d413adc4ad12e92e253b5 upstream.
    
    added struct sockaddr_storage to rdma_user_cm.h without also adding an
    include for linux/socket.h to make sure it is defined.  Systemtap
    needs the header files to build standalone and cannot rely on other
    files to pre-include other headers, so add linux/socket.h to the list
    of includes in this file.
    
    Fixes: ee7aed4528f ("RDMA/ucma: Support querying for AF_IB addresses")
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 904c6df509830db3e20429523963084b355a3a49
Author: Steve Wise <swise@opengridcomputing.com>
Date:   Fri Jul 25 09:11:33 2014 -0500

    RDMA/iwcm: Use a default listen backlog if needed
    
    commit 2f0304d21867476394cd51a54e97f7273d112261 upstream.
    
    If the user creates a listening cm_id with backlog of 0 the IWCM ends
    up not allowing any connection requests at all.  The correct behavior
    is for the IWCM to pick a default value if the user backlog parameter
    is zero.
    
    Lustre from version 1.8.8 onward uses a backlog of 0, which breaks
    iwarp support without this fix.
    
    Signed-off-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 326d57f8a0437e8d1296e6e76f1ee81728b0afda
Author: NeilBrown <neilb@suse.de>
Date:   Mon Aug 18 13:59:50 2014 +1000

    md/raid10: Fix memory leak when raid10 reshape completes.
    
    commit b39685526f46976bcd13aa08c82480092befa46c upstream.
    
    When a raid10 commences a resync/recovery/reshape it allocates
    some buffer space.
    When a resync/recovery completes the buffer space is freed.  But not
    when the reshape completes.
    This can result in a small memory leak.
    
    There is a subtle side-effect of this bug.  When a RAID10 is reshaped
    to a larger array (more devices), the reshape is immediately followed
    by a "resync" of the new space.  This "resync" will use the buffer
    space which was allocated for "reshape".  This can cause problems
    including a "BUG" in the SCSI layer.  So this is suitable for -stable.
    
    Fixes: 3ea7daa5d7fde47cd41f4d56c2deb949114da9d6
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9fdaa2cdfcc03ae10c27863d601dccaac184403a
Author: NeilBrown <neilb@suse.de>
Date:   Mon Aug 18 13:56:38 2014 +1000

    md/raid10: fix memory leak when reshaping a RAID10.
    
    commit ce0b0a46955d1bb389684a2605dbcaa990ba0154 upstream.
    
    raid10 reshape clears unwanted bits from a bio->bi_flags using
    a method which, while clumsy, worked until 3.10 when BIO_OWNS_VEC
    was added.
    Since then it clears that bit but shouldn't.  This results in a
    memory leak.
    
    So change to used the approved method of clearing unwanted bits.
    
    As this causes a memory leak which can consume all of memory
    the fix is suitable for -stable.
    
    Fixes: a38352e0ac02dbbd4fa464dc22d1352b5fbd06fd
    Reported-by: mdraid.pkoch@dfgh.net (Peter Koch)
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit edb42d7292c2fe60a01163e15193e1657bdd2a10
Author: NeilBrown <neilb@suse.de>
Date:   Wed Aug 13 09:57:07 2014 +1000

    md/raid6: avoid data corruption during recovery of double-degraded RAID6
    
    commit 9c4bdf697c39805078392d5ddbbba5ae5680e0dd upstream.
    
    During recovery of a double-degraded RAID6 it is possible for
    some blocks not to be recovered properly, leading to corruption.
    
    If a write happens to one block in a stripe that would be written to a
    missing device, and at the same time that stripe is recovering data
    to the other missing device, then that recovered data may not be written.
    
    This patch skips, in the double-degraded case, an optimisation that is
    only safe for single-degraded arrays.
    
    Bug was introduced in 2.6.32 and fix is suitable for any kernel since
    then.  In an older kernel with separate handle_stripe5() and
    handle_stripe6() functions the patch must change handle_stripe6().
    
    Fixes: 6c0069c0ae9659e3a91b68eaed06a5c6c37f45c8
    Cc: Yuri Tikhonov <yur@emcraft.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Reported-by: "Manibalan P" <pmanibalan@amiindia.co.in>
    Tested-by: "Manibalan P" <pmanibalan@amiindia.co.in>
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1090423
    Signed-off-by: NeilBrown <neilb@suse.de>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 8c74345afe07978d0b7efdaf561183bdd888a3e1
Author: NeilBrown <neilb@suse.de>
Date:   Thu Jul 31 10:16:29 2014 +1000

    md/raid1,raid10: always abort recover on write error.
    
    commit 2446dba03f9dabe0b477a126cbeb377854785b47 upstream.
    
    Currently we don't abort recovery on a write error if the write error
    to the recovering device was triggerd by normal IO (as opposed to
    recovery IO).
    
    This means that for one bitmap region, the recovery might write to the
    recovering device for a few sectors, then not bother for subsequent
    sectors (as it never writes to failed devices).  In this case
    the bitmap bit will be cleared, but it really shouldn't.
    
    The result is that if the recovering device fails and is then re-added
    (after fixing whatever hardware problem triggerred the failure),
    the second recovery won't redo the region it was in the middle of,
    so some of the device will not be recovered properly.
    
    If we abort the recovery, the region being processes will be cancelled
    (bit not cleared) and the whole region will be retried.
    
    As the bug can result in data corruption the patch is suitable for
    -stable.  For kernels prior to 3.11 there is a conflict in raid10.c
    which will require care.
    
    Original-from: jiao hui <jiaohui@bwstor.com.cn>
    Reported-and-tested-by: jiao hui <jiaohui@bwstor.com.cn>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 83035aa2b7435be7cc34d440d809ac053246d12e
Author: Vignesh Raman <Vignesh_Raman@mentor.com>
Date:   Tue Jul 22 19:24:25 2014 +0530

    Bluetooth: Avoid use of session socket after the session gets freed
    
    commit 32333edb82fb2009980eefc5518100068147ab82 upstream.
    
    The commits 08c30aca9e698faddebd34f81e1196295f9dc063 "Bluetooth: Remove
    RFCOMM session refcnt" and 8ff52f7d04d9cc31f1e81dcf9a2ba6335ed34905
    "Bluetooth: Return RFCOMM session ptrs to avoid freed session"
    allow rfcomm_recv_ua and rfcomm_session_close to delete the session
    (and free the corresponding socket) and propagate NULL session pointer
    to the upper callers.
    
    Additional fix is required to terminate the loop in rfcomm_process_rx
    function to avoid use of freed 'sk' memory.
    
    The issue is only reproducible with kernel option CONFIG_PAGE_POISONING
    enabled making freed memory being changed and filled up with fixed char
    value used to unmask use-after-free issues.
    
    Signed-off-by: Vignesh Raman <Vignesh_Raman@mentor.com>
    Signed-off-by: Vitaly Kuzmichev <Vitaly_Kuzmichev@mentor.com>
    Acked-by: Dean Jenkins <Dean_Jenkins@mentor.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 14e870b94f25ee268fc220766eadbf67b3a14557
Author: Vladimir Davydov <vdavydov@parallels.com>
Date:   Tue Jul 15 12:25:28 2014 +0400

    Bluetooth: never linger on process exit
    
    commit 093facf3634da1b0c2cc7ed106f1983da901bbab upstream.
    
    If the current process is exiting, lingering on socket close will make
    it unkillable, so we should avoid it.
    
    Reproducer:
    
      #include <sys/types.h>
      #include <sys/socket.h>
    
      #define BTPROTO_L2CAP   0
      #define BTPROTO_SCO     2
      #define BTPROTO_RFCOMM  3
    
      int main()
      {
              int fd;
              struct linger ling;
    
              fd = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
              //or: fd = socket(PF_BLUETOOTH, SOCK_DGRAM, BTPROTO_L2CAP);
              //or: fd = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_SCO);
    
              ling.l_onoff = 1;
              ling.l_linger = 1000000000;
              setsockopt(fd, SOL_SOCKET, SO_LINGER, &ling, sizeof(ling));
    
              return 0;
      }
    
    Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4194b9700ce41ff2f7031aa0c6108c2539028ab5
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Jul 29 15:50:44 2014 -0700

    mnt: Add tests for unprivileged remount cases that have found to be faulty
    
    commit db181ce011e3c033328608299cd6fac06ea50130 upstream.
    
    Kenton Varda <kenton@sandstorm.io> discovered that by remounting a
    read-only bind mount read-only in a user namespace the
    MNT_LOCK_READONLY bit would be cleared, allowing an unprivileged user
    to the remount a read-only mount read-write.
    
    Upon review of the code in remount it was discovered that the code allowed
    nosuid, noexec, and nodev to be cleared.  It was also discovered that
    the code was allowing the per mount atime flags to be changed.
    
    The first naive patch to fix these issues contained the flaw that using
    default atime settings when remounting a filesystem could be disallowed.
    
    To avoid this problems in the future add tests to ensure unprivileged
    remounts are succeeding and failing at the appropriate times.
    
    Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit fafbc9412b8f2dae04bc3ca233ae7b49482c8df8
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Jul 28 17:36:04 2014 -0700

    mnt: Change the default remount atime from relatime to the existing value
    
    commit ffbc6f0ead47fa5a1dc9642b0331cb75c20a640e upstream.
    
    Since March 2009 the kernel has treated the state that if no
    MS_..ATIME flags are passed then the kernel defaults to relatime.
    
    Defaulting to relatime instead of the existing atime state during a
    remount is silly, and causes problems in practice for people who don't
    specify any MS_...ATIME flags and to get the default filesystem atime
    setting.  Those users may encounter a permission error because the
    default atime setting does not work.
    
    A default that does not work and causes permission problems is
    ridiculous, so preserve the existing value to have a default
    atime setting that is always guaranteed to work.
    
    Using the default atime setting in this way is particularly
    interesting for applications built to run in restricted userspace
    environments without /proc mounted, as the existing atime mount
    options of a filesystem can not be read from /proc/mounts.
    
    In practice this fixes user space that uses the default atime
    setting on remount that are broken by the permission checks
    keeping less privileged users from changing more privileged users
    atime settings.
    
    Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 8a0c5bc4e852acd5b41e57832964f56009a87806
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Wed Aug 6 15:36:31 2014 -0400

    ring-buffer: Up rb_iter_peek() loop count to 3
    
    commit 021de3d904b88b1771a3a2cfc5b75023c391e646 upstream.
    
    After writting a test to try to trigger the bug that caused the
    ring buffer iterator to become corrupted, I hit another bug:
    
     WARNING: CPU: 1 PID: 5281 at kernel/trace/ring_buffer.c:3766 rb_iter_peek+0x113/0x238()
     Modules linked in: ipt_MASQUERADE sunrpc [...]
     CPU: 1 PID: 5281 Comm: grep Tainted: G        W     3.16.0-rc3-test+ #143
     Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007
      0000000000000000 ffffffff81809a80 ffffffff81503fb0 0000000000000000
      ffffffff81040ca1 ffff8800796d6010 ffffffff810c138d ffff8800796d6010
      ffff880077438c80 ffff8800796d6010 ffff88007abbe600 0000000000000003
     Call Trace:
      [<ffffffff81503fb0>] ? dump_stack+0x4a/0x75
      [<ffffffff81040ca1>] ? warn_slowpath_common+0x7e/0x97
      [<ffffffff810c138d>] ? rb_iter_peek+0x113/0x238
      [<ffffffff810c138d>] ? rb_iter_peek+0x113/0x238
      [<ffffffff810c14df>] ? ring_buffer_iter_peek+0x2d/0x5c
      [<ffffffff810c6f73>] ? tracing_iter_reset+0x6e/0x96
      [<ffffffff810c74a3>] ? s_start+0xd7/0x17b
      [<ffffffff8112b13e>] ? kmem_cache_alloc_trace+0xda/0xea
      [<ffffffff8114cf94>] ? seq_read+0x148/0x361
      [<ffffffff81132d98>] ? vfs_read+0x93/0xf1
      [<ffffffff81132f1b>] ? SyS_read+0x60/0x8e
      [<ffffffff8150bf9f>] ? tracesys+0xdd/0xe2
    
    Debugging this bug, which triggers when the rb_iter_peek() loops too
    many times (more than 2 times), I discovered there's a case that can
    cause that function to legitimately loop 3 times!
    
    rb_iter_peek() is different than rb_buffer_peek() as the rb_buffer_peek()
    only deals with the reader page (it's for consuming reads). The
    rb_iter_peek() is for traversing the buffer without consuming it, and as
    such, it can loop for one more reason. That is, if we hit the end of
    the reader page or any page, it will go to the next page and try again.
    
    That is, we have this:
    
     1. iter->head > iter->head_page->page->commit
        (rb_inc_iter() which moves the iter to the next page)
        try again
    
     2. event = rb_iter_head_event()
        event->type_len == RINGBUF_TYPE_TIME_EXTEND
        rb_advance_iter()
        try again
    
     3. read the event.
    
    But we never get to 3, because the count is greater than 2 and we
    cause the WARNING and return NULL.
    
    Up the counter to 3.
    
    Fixes: 69d1b839f7ee "ring-buffer: Bind time extend and data events together"
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a5471186126c6c4e24ba0a72c74421e917a62e72
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Wed Aug 6 14:11:33 2014 -0400

    ring-buffer: Always reset iterator to reader page
    
    commit 651e22f2701b4113989237c3048d17337dd2185c upstream.
    
    When performing a consuming read, the ring buffer swaps out a
    page from the ring buffer with a empty page and this page that
    was swapped out becomes the new reader page. The reader page
    is owned by the reader and since it was swapped out of the ring
    buffer, writers do not have access to it (there's an exception
    to that rule, but it's out of scope for this commit).
    
    When reading the "trace" file, it is a non consuming read, which
    means that the data in the ring buffer will not be modified.
    When the trace file is opened, a ring buffer iterator is allocated
    and writes to the ring buffer are disabled, such that the iterator
    will not have issues iterating over the data.
    
    Although the ring buffer disabled writes, it does not disable other
    reads, or even consuming reads. If a consuming read happens, then
    the iterator is reset and starts reading from the beginning again.
    
    My tests would sometimes trigger this bug on my i386 box:
    
    WARNING: CPU: 0 PID: 5175 at kernel/trace/trace.c:1527 __trace_find_cmdline+0x66/0xaa()
    Modules linked in:
    CPU: 0 PID: 5175 Comm: grep Not tainted 3.16.0-rc3-test+ #8
    Hardware name:                  /DG965MQ, BIOS MQ96510J.86A.0372.2006.0605.1717 06/05/2006
     00000000 00000000 f09c9e1c c18796b3 c1b5d74c f09c9e4c c103a0e3 c1b5154b
     f09c9e78 00001437 c1b5d74c 000005f7 c10bd85a c10bd85a c1cac57c f09c9eb0
     ed0e0000 f09c9e64 c103a185 00000009 f09c9e5c c1b5154b f09c9e78 f09c9e80^M
    Call Trace:
     [<c18796b3>] dump_stack+0x4b/0x75
     [<c103a0e3>] warn_slowpath_common+0x7e/0x95
     [<c10bd85a>] ? __trace_find_cmdline+0x66/0xaa
     [<c10bd85a>] ? __trace_find_cmdline+0x66/0xaa
     [<c103a185>] warn_slowpath_fmt+0x33/0x35
     [<c10bd85a>] __trace_find_cmdline+0x66/0xaa^M
     [<c10bed04>] trace_find_cmdline+0x40/0x64
     [<c10c3c16>] trace_print_context+0x27/0xec
     [<c10c4360>] ? trace_seq_printf+0x37/0x5b
     [<c10c0b15>] print_trace_line+0x319/0x39b
     [<c10ba3fb>] ? ring_buffer_read+0x47/0x50
     [<c10c13b1>] s_show+0x192/0x1ab
     [<c10bfd9a>] ? s_next+0x5a/0x7c
     [<c112e76e>] seq_read+0x267/0x34c
     [<c1115a25>] vfs_read+0x8c/0xef
     [<c112e507>] ? seq_lseek+0x154/0x154
     [<c1115ba2>] SyS_read+0x54/0x7f
     [<c188488e>] syscall_call+0x7/0xb
    ---[ end trace 3f507febd6b4cc83 ]---
    >>>> ##### CPU 1 buffer started ####
    
    Which was the __trace_find_cmdline() function complaining about the pid
    in the event record being negative.
    
    After adding more test cases, this would trigger more often. Strangely
    enough, it would never trigger on a single test, but instead would trigger
    only when running all the tests. I believe that was the case because it
    required one of the tests to be shutting down via delayed instances while
    a new test started up.
    
    After spending several days debugging this, I found that it was caused by
    the iterator becoming corrupted. Debugging further, I found out why
    the iterator became corrupted. It happened with the rb_iter_reset().
    
    As consuming reads may not read the full reader page, and only part
    of it, there's a "read" field to know where the last read took place.
    The iterator, must also start at the read position. In the rb_iter_reset()
    code, if the reader page was disconnected from the ring buffer, the iterator
    would start at the head page within the ring buffer (where writes still
    happen). But the mistake there was that it still used the "read" field
    to start the iterator on the head page, where it should always start
    at zero because readers never read from within the ring buffer where
    writes occur.
    
    I originally wrote a patch to have it set the iter->head to 0 instead
    of iter->head_page->read, but then I questioned why it wasn't always
    setting the iter to point to the reader page, as the reader page is
    still valid.  The list_empty(reader_page->list) just means that it was
    successful in swapping out. But the reader_page may still have data.
    
    There was a bug report a long time ago that was not reproducible that
    had something about trace_pipe (consuming read) not matching trace
    (iterator read). This may explain why that happened.
    
    Anyway, the correct answer to this bug is to always use the reader page
    an not reset the iterator to inside the writable ring buffer.
    
    Fixes: d769041f8653 "ring_buffer: implement new locking"
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4cdd9a72256c461874df095fde4a6b96bd7f426d
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Wed Sep 3 15:04:28 2014 +0200

    ACPI / cpuidle: fix deadlock between cpuidle_lock and cpu_hotplug.lock
    
    commit 6726655dfdd2dc60c035c690d9f10cb69d7ea075 upstream.
    
    There is a following AB-BA dependency between cpu_hotplug.lock and
    cpuidle_lock:
    
    1) cpu_hotplug.lock -> cpuidle_lock
    enable_nonboot_cpus()
     _cpu_up()
      cpu_hotplug_begin()
       LOCK(cpu_hotplug.lock)
     cpu_notify()
      ...
      acpi_processor_hotplug()
       cpuidle_pause_and_lock()
        LOCK(cpuidle_lock)
    
    2) cpuidle_lock -> cpu_hotplug.lock
    acpi_os_execute_deferred() workqueue
     ...
     acpi_processor_cst_has_changed()
      cpuidle_pause_and_lock()
       LOCK(cpuidle_lock)
      get_online_cpus()
       LOCK(cpu_hotplug.lock)
    
    Fix this by reversing the order acpi_processor_cst_has_changed() does
    thigs -- let it first execute the protection against CPU hotplug by
    calling get_online_cpus() and obtain the cpuidle lock only after that (and
    perform the symmentric change when allowing CPUs hotplug again and
    dropping cpuidle lock).
    
    Spotted by lockdep.
    
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 05c1545f82f257383b7212f0d5b8bfd7c34957be
Author: Alan Cox <alan@linux.intel.com>
Date:   Wed Aug 20 13:57:26 2014 +0300

    spi/pxa2xx: Add ACPI ID for Intel Braswell
    
    commit aca26364689e00e3b2052072424682231bdae6ae upstream.
    
    The SPI host controller is the same as used in Baytrail, only the ACPI ID
    is different so add this new ID to the list.
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 7af5504c102a378376101dbd160246b10a814dd0
Author: David E. Box <david.e.box@linux.intel.com>
Date:   Tue Jul 8 10:05:52 2014 +0800

    ACPICA: Utilities: Fix memory leak in acpi_ut_copy_iobject_to_iobject
    
    commit 8aa5e56eeb61a099ea6519eb30ee399e1bc043ce upstream.
    
    Adds return status check on copy routines to delete the allocated destination
    object if either copy fails. Reported by Colin Ian King on bugs.acpica.org,
    Bug 1087.
    The last applicable commit:
     Commit: 3371c19c294a4cb3649aa4e84606be8a1d999e61
     Subject: ACPICA: Remove ACPI_GET_OBJECT_TYPE macro
    
    Link: https://bugs.acpica.org/show_bug.cgi?id=1087
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David E. Box <david.e.box@linux.intel.com>
    Signed-off-by: Bob Moore <robert.moore@intel.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 8364fe4a19f74838be10123c8a85cd836b4a3b35
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Jun 8 23:33:25 2014 +0100

    bfa: Fix undefined bit shift on big-endian architectures with 32-bit DMA address
    
    commit 03a6c3ff3282ee9fa893089304d951e0be93a144 upstream.
    
    bfa_swap_words() shifts its argument (assumed to be 64-bit) by 32 bits
    each way.  In two places the argument type is dma_addr_t, which may be
    32-bit, in which case the effect of the bit shift is undefined:
    
    drivers/scsi/bfa/bfa_fcpim.c: In function 'bfa_ioim_send_ioreq':
    drivers/scsi/bfa/bfa_fcpim.c:2497:4: warning: left shift count >= width of type [enabled by default]
        addr = bfa_sgaddr_le(sg_dma_address(sg));
        ^
    drivers/scsi/bfa/bfa_fcpim.c:2497:4: warning: right shift count >= width of type [enabled by default]
    drivers/scsi/bfa/bfa_fcpim.c:2509:4: warning: left shift count >= width of type [enabled by default]
        addr = bfa_sgaddr_le(sg_dma_address(sg));
        ^
    drivers/scsi/bfa/bfa_fcpim.c:2509:4: warning: right shift count >= width of type [enabled by default]
    
    Avoid this by adding casts to u64 in bfa_swap_words().
    
    Compile-tested only.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Acked-by: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
    Fixes: f16a17507b09 ('[SCSI] bfa: remove all OS wrappers')
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 0d9b25fe9f64cb802d6178516c5564ca89302f2c
Author: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Date:   Tue Aug 26 17:03:13 2014 +0300

    ASoC: rt5640: Do not allow regmap to use bulk read-write operations
    
    commit f4821e8e8e957fe4c601a49b9a97b7399d5f7ab1 upstream.
    
    Debugging showed Realtek RT5642 doesn't support autoincrementing writes so
    driver should set the use_single_rw flag for regmap.
    
    Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit d45c7fbe6a5cc48f8f666c15cbc2322384d3c56d
Author: Daniel Mack <zonque@gmail.com>
Date:   Wed Aug 13 21:51:06 2014 +0200

    ASoC: pxa-ssp: drop SNDRV_PCM_FMTBIT_S24_LE
    
    commit 9301503af016eb537ccce76adec0c1bb5c84871e upstream.
    
    This mode is unsupported, as the DMA controller can't do zero-padding
    of samples.
    
    Signed-off-by: Daniel Mack <zonque@gmail.com>
    Reported-by: Johannes Stezenbach <js@sig21.net>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a9543fdd9338266f196d801aafdb2451fb6393f8
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jul 31 15:57:51 2014 +0300

    ASoC: pxa: pxa-ssp: small leak in probe()
    
    commit 4548728981de259d7d37d0ae968a777b09794168 upstream.
    
    There is a small memory leak if probe() fails.
    
    Fixes: 2023c90c3a2c ('ASoC: pxa: pxa-ssp: add DT bindings')
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 48e7ba73bbee8c13668389bc26b96a3bff6c9e28
Author: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Date:   Thu Jun 19 09:32:05 2014 +0300

    ASoC: max98090: Fix missing free_irq
    
    commit 4adeb0ccf86a5af1825bbfe290dee9e60a5ab870 upstream.
    
    max98090.c doesn't free the threaded interrupt it requests. This causes
    an oops when doing "cat /proc/interrupts" after snd-soc-max98090.ko is
    unloaded.
    
    Fix this by requesting the interrupt by using devm_request_threaded_irq().
    
    Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9e5cee313366d72939f6991ef0a265c8c8da6404
Author: Daniel Mack <zonque@gmail.com>
Date:   Thu Jul 3 16:51:36 2014 +0200

    ASoC: adau1701: fix adau1701_reg_read()
    
    commit 3ad80b828b2533f37c221e2df155774efd6ed814 upstream.
    
    Fix a long standing bug in the read register routing of adau1701.
    The bytes arrive in the buffer in big-endian, so the result has to be
    shifted before and-ing the bytes in the loop.
    
    Signed-off-by: Daniel Mack <zonque@gmail.com>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 109275a6d60b1212965ffbb1fcd3d99bb2cefb58
Author: Sylwester Nawrocki <s.nawrocki@samsung.com>
Date:   Fri Jul 4 16:05:45 2014 +0200

    ASoC: samsung: Correct I2S DAI suspend/resume ops
    
    commit d3d4e5247b013008a39e4d5f69ce4c60ed57f997 upstream.
    
    We should save/restore relevant I2S registers regardless of
    the dai->active flag, otherwise some settings are being lost
    after system suspend/resume cycle. E.g. I2S slave mode set only
    during dai initialization is not preserved and the device ends
    up in master mode after system resume.
    
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4bb4582d96337d181a560838fc9192899abfafbb
Author: Scott Jiang <scott.jiang.linux@gmail.com>
Date:   Fri Jul 18 16:14:57 2014 +0800

    ASoC: blackfin: use samples to set silence
    
    commit 30443408fd7201fd1911b09daccf92fae3cc700d upstream.
    
    The third parameter for snd_pcm_format_set_silence needs the number
    of samples instead of sample bytes.
    
    Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 465da614d4f6787d8e733f9771556220302431ed
Author: Praveen Diwakar <praveen.diwakar@intel.com>
Date:   Fri Jul 4 11:17:41 2014 +0530

    ASoC: wm_adsp: Add missing MODULE_LICENSE
    
    commit 0a37c6efec4a2fdc2563c5a8faa472b814deee80 upstream.
    
    Since MODULE_LICENSE is missing the module load fails,
    so add this for module.
    
    Signed-off-by: Praveen Diwakar <praveen.diwakar@intel.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Reviewed-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 672d675e65af79575304b6a9a792aa939fab546a
Author: Qiao Zhou <zhouqiao@marvell.com>
Date:   Wed Jun 4 19:42:06 2014 +0800

    ASoC: pcm: fix dpcm_path_put in dpcm runtime update
    
    commit 7ed9de76ff342cbd717a9cf897044b99272cb8f8 upstream.
    
    we need to release dapm widget list after dpcm_path_get in
    soc_dpcm_runtime_update. otherwise, there will be potential memory
    leak. add dpcm_path_put to fix it.
    
    Signed-off-by: Qiao Zhou <zhouqiao@marvell.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 0eff4d68aefc30b4b759aa6c6d6e554d430a4a4e
Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Date:   Mon Jun 16 21:24:03 2014 +0100

    ASoC: wm8994: Prevent double lock of accdet_lock mutex on wm1811
    
    commit b38314179c9ccb789e6fe967cff171fa817e8978 upstream.
    
    wm1811_micd_stop takes the accdet_lock mutex, and is called from two
    places, one of which is already holding the accdet_lock. This obviously
    causes a lock up.
    
    This patch fixes this issue by removing the lock from wm1811_micd_stop
    and ensuring that it is always locked externally.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 1e1c3a21579aa9ea0429b69165caef77cca27f7e
Author: Aaro Koskinen <aaro.koskinen@nsn.com>
Date:   Tue Jul 22 14:51:08 2014 +0300

    MIPS: OCTEON: make get_system_type() thread-safe
    
    commit 608308682addfdc7b8e2aee88f0e028331d88e4d upstream.
    
    get_system_type() is not thread-safe on OCTEON. It uses static data,
    also more dangerous issue is that it's calling cvmx_fuse_read_byte()
    every time without any synchronization. Currently it's possible to get
    processes stuck looping forever in kernel simply by launching multiple
    readers of /proc/cpuinfo:
    
    	(while true; do cat /proc/cpuinfo > /dev/null; done) &
    	(while true; do cat /proc/cpuinfo > /dev/null; done) &
    	...
    
    Fix by initializing the system type string only once during the early
    boot.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com>
    Reviewed-by: Markos Chandras <markos.chandras@imgtec.com>
    Patchwork: http://patchwork.linux-mips.org/patch/7437/
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 6540a038754f78f73075f906ce42c04f84297e3e
Author: Huacai Chen <chenhc@lemote.com>
Date:   Wed Jul 16 09:19:16 2014 +0800

    MIPS: Remove BUG_ON(!is_fpu_owner()) in do_ade()
    
    commit 2e5767a27337812f6850b3fa362419e2f085e5c3 upstream.
    
    In do_ade(), is_fpu_owner() isn't preempt-safe. For example, when an
    unaligned ldc1 is executed, do_cpu() is called and then FPU will be
    enabled (and TIF_USEDFPU will be set for the current process). Then,
    do_ade() is called because the access is unaligned.  If the current
    process is preempted at this time, TIF_USEDFPU will be cleard.  So when
    the process is scheduled again, BUG_ON(!is_fpu_owner()) is triggered.
    
    This small program can trigger this BUG in a preemptible kernel:
    
    int main (int argc, char *argv[])
    {
            double u64[2];
    
            while (1) {
                    asm volatile (
                            ".set push \n\t"
                            ".set noreorder \n\t"
                            "ldc1 $f3, 4(%0) \n\t"
                            ".set pop \n\t"
                            ::"r"(u64):
                    );
            }
    
            return 0;
    }
    
    V2: Remove the BUG_ON() unconditionally due to Paul's suggestion.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Signed-off-by: Jie Chen <chenj@lemote.com>
    Signed-off-by: Rui Wang <wangr@lemote.com>
    Cc: John Crispin <john@phrozen.org>
    Cc: Steven J. Hill <Steven.Hill@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ac9c2b5ec9758352df308886f87363cdbb3929d7
Author: Huacai Chen <chenhc@lemote.com>
Date:   Tue Jul 29 14:54:40 2014 +0800

    MIPS: tlbex: Fix a missing statement for HUGETLB
    
    commit 8393c524a25609a30129e4a8975cf3b91f6c16a5 upstream.
    
    In commit 2c8c53e28f1 (MIPS: Optimize TLB handlers for Octeon CPUs)
    build_r4000_tlb_refill_handler() is modified. But it doesn't compatible
    with the original code in HUGETLB case. Because there is a copy & paste
    error and one line of code is missing. It is very easy to produce a bug
    with LTP's hugemmap05 test.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Signed-off-by: Binbin Zhou <zhoubb@lemote.com>
    Cc: John Crispin <john@phrozen.org>
    Cc: Steven J. Hill <Steven.Hill@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Patchwork: https://patchwork.linux-mips.org/patch/7496/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 44058412d0bd644f73b6a2e13d7a8be0f8a4b56d
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Tue Jul 22 14:21:21 2014 +0100

    MIPS: Prevent user from setting FCSR cause bits
    
    commit b1442d39fac2fcfbe6a4814979020e993ca59c9e upstream.
    
    If one or more matching FCSR cause & enable bits are set in saved thread
    context then when that context is restored the kernel will take an FP
    exception. This is of course undesirable and considered an oops, leading
    to the kernel writing a backtrace to the console and potentially
    rebooting depending upon the configuration. Thus the kernel avoids this
    situation by clearing the cause bits of the FCSR register when handling
    FP exceptions and after emulating FP instructions.
    
    However the kernel does not prevent userland from setting arbitrary FCSR
    cause & enable bits via ptrace, using either the PTRACE_POKEUSR or
    PTRACE_SETFPREGS requests. This means userland can trivially cause the
    kernel to oops on any system with an FPU. Prevent this from happening
    by clearing the cause bits when writing to the saved FCSR context via
    ptrace.
    
    This problem appears to exist at least back to the beginning of the git
    era in the PTRACE_POKEUSR case.
    
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/7438/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 41c6ebd1c89fd33d9d55fe5307626b35503d87db
Author: Jeffrey Deans <jeffrey.deans@imgtec.com>
Date:   Thu Jul 17 09:20:56 2014 +0100

    MIPS: GIC: Prevent array overrun
    
    commit ffc8415afab20bd97754efae6aad1f67b531132b upstream.
    
    A GIC interrupt which is declared as having a GIC_MAP_TO_NMI_MSK
    mapping causes the cpu parameter to gic_setup_intr() to be increased
    to 32, causing memory corruption when pcpu_masks[] is written to again
    later in the function.
    
    Signed-off-by: Jeffrey Deans <jeffrey.deans@imgtec.com>
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7375/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 3ebf51b399b298a8f012f711ad514123d00581c5
Author: Janusz Dziemidowicz <rraptorr@nails.eu.org>
Date:   Thu Jul 24 15:48:46 2014 +0200

    scsi: do not issue SCSI RSOC command to Promise Vtrak E610f
    
    commit 0213436a2cc5e4a5ca2fabfaa4d3877097f3b13f upstream.
    
    Some devices don't like REPORT SUPPORTED OPERATION CODES and will
    simply timeout causing sd_mod init to take a very very long time.
    Introduce BLIST_NO_RSOC scsi scan flag, that stops RSOC from being
    issued. Add it to Promise Vtrak E610f entry in scsi scan
    blacklist. Fixes bug #79901 reported at
    https://bugzilla.kernel.org/show_bug.cgi?id=79901
    
    Fixes: 98dcc2946adb ("SCSI: sd: Update WRITE SAME heuristics")
    
    Signed-off-by: Janusz Dziemidowicz <rraptorr@nails.eu.org>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 29f9575fde21ea15388f74038d384ad55ecf1baa
Author: Martin K. Petersen <martin.petersen@oracle.com>
Date:   Tue Jul 15 12:49:17 2014 -0400

    scsi: add a blacklist flag which enables VPD page inquiries
    
    commit c1d40a527e885a40bb9ea6c46a1b1145d42b66a0 upstream.
    
    Despite supporting modern SCSI features some storage devices continue to
    claim conformance to an older version of the SPC spec. This is done for
    compatibility with legacy operating systems.
    
    Linux by default will not attempt to read VPD pages on devices that
    claim SPC-2 or older. Introduce a blacklist flag that can be used to
    trigger VPD page inquiries on devices that are known to support them.
    
    Reported-by: KY Srinivasan <kys@microsoft.com>
    Tested-by: KY Srinivasan <kys@microsoft.com>
    Reviewed-by: KY Srinivasan <kys@microsoft.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit efd3133b4ac7fc80f8b61bcee10a734cd9b25e6d
Author: Hannes Reinecke <hare@suse.de>
Date:   Tue Jun 3 10:58:53 2014 +0200

    scsi_scan: Restrict sequential scan to 256 LUNs
    
    commit 22ffeb48b7584d6cd50f2a595ed6065d86a87459 upstream.
    
    Sequential scan for more than 256 LUNs is very fragile as
    LUNs might not be numbered sequentially after that point.
    
    SAM revisions later than SCSI-3 impose a structure on
    LUNs larger than 256, making LUN numbers between 256
    and 16384 illegal.
    SCSI-3, however allows for plain 64-bit numbers with
    no internal structure.
    
    So restrict sequential LUN scan to 256 LUNs and add a
    new blacklist flag 'BLIST_SCSI3LUN' to scan up to
    max_lun devices.
    
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Ewan Milne <emilne@redhat.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 92eaf5be80602f3465611d349ee7adaf9c803d10
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:32 2014 -0700

    drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure
    
    commit 3533f8603d28b77c62d75ec899449a99bc6b77a1 upstream.
    
    On some Windows hosts on FC SANs, TEST_UNIT_READY can return SRB_STATUS_ERROR.
    Correctly handle this. Note that there is sufficient sense information to
    support scsi error handling even in this case.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ed62a7f79ec3b0cccf52ea867fff708a2f54f81f
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:31 2014 -0700

    drivers: scsi: storvsc: Set srb_flags in all cases
    
    commit f885fb73f64154690c2158e813de56363389ffec upstream.
    
    Correctly set SRB flags for all valid I/O directions. Some IHV drivers on the
    Windows host require this. The host validates the command and SRB flags
    prior to passing the command down to native driver stack.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit bc5bf5e8aa08c8f35c648b302b2362d06a72461e
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:29 2014 -0700

    Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version
    
    commit adb6f9e1a8c6af1037232b59edb11277471537ea upstream.
    
    Based on the negotiated VMBUS protocol version, we adjust the size of the storage
    protocol messages. The two sizes we currently handle are pre-win8 and post-win8.
    In WS2012 R2, we are negotiating higher VMBUS protocol version than the win8
    version. Make adjustments to correctly handle this.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 7c6608fc58d03ab28a105edc7e415d6fa52ade44
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:27 2014 -0700

    Drivers: scsi: storvsc: Set cmd_per_lun to reflect value supported by the Host
    
    commit 52f9614dd8294e95d2c0929c2d4f64b077ae486f upstream.
    
    Set cmd_per_lun to reflect value supported by the Host.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit f2557a4b9bb0db3790b96940008e1a95251bb237
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:26 2014 -0700

    Drivers: scsi: storvsc: Change the limits to reflect the values on the host
    
    commit 4cd83ecdac20d30725b4f96e5d7814a1e290bc7e upstream.
    
    Hyper-V hosts can support multiple targets and multiple channels and larger number of
    LUNs per target. Update the code to reflect this. With this patch we can correctly
    enumerate all the paths in a multi-path storage environment.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 158cfff2650f44280bc5a0a68eec0d3a8c36c8f8
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:28 2014 -0700

    Drivers: scsi: storvsc: Filter commands based on the storage protocol version
    
    commit 8caf92d80526f3d7cc96831ec18b384ebcaccdf0 upstream.
    
    Going forward it is possible that some of the commands that are not currently
    implemented will be implemented on future Windows hosts. Even if they are not
    implemented, we are told the host will corrrectly handle unsupported
    commands (by returning appropriate return code and sense information).
    Make command filtering depend on the host version.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9d063b6fb4c1b2c68e7a20378882bbb171e36f66
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Sat Jul 12 09:48:30 2014 -0700

    Drivers: scsi: storvsc: Implement a eh_timed_out handler
    
    commit 56b26e69c8283121febedd12b3cc193384af46b9 upstream.
    
    On Azure, we have seen instances of unbounded I/O latencies. To deal with
    this issue, implement handler that can reset the timeout. Note that the
    host gaurantees that it will respond to each command that has been issued.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    [hch: added a better comment explaining the issue]
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9de1fa60881dc08bd562aa3b1a31e42829eb8dd1
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:32:02 2014 +0530

    powerpc/thp: Use ACCESS_ONCE when loading pmdp
    
    commit 7e467245bf5226db34c4b12d3cbacfa2f7a15a8b upstream.
    
    We would get wrong results in compiler recomputed old_pmd. Avoid
    that by using ACCESS_ONCE
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 5611f07c012a8174a1cd5c9b3ced93810d479989
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:32:01 2014 +0530

    powerpc/thp: Invalidate with vpn in loop
    
    commit 969b7b208f7408712a3526856e4ae60ad13f6928 upstream.
    
    As per ISA, for 4k base page size we compare 14..65 bits of VA specified
    with the entry_VA in tlb. That implies we need to make sure we do a
    tlbie with all the possible 4k va we used to access the 16MB hugepage.
    With 64k base page size we compare 14..57 bits of VA. Hence we cannot
    ignore the lower 24 bits of va while tlbie .We also cannot tlb
    invalidate a 16MB entry with just one tlbie instruction because
    we don't track which va was used to instantiate the tlb entry.
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4807eb30a3dcb8a95e34486e6a5af68ec7b0b823
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:32:00 2014 +0530

    powerpc/thp: Handle combo pages in invalidate
    
    commit fc0479557572375100ef16c71170b29a98e0d69a upstream.
    
    If we changed base page size of the segment, either via sub_page_protect
    or via remap_4k_pfn, we do a demote_segment which doesn't flush the hash
    table entries. We do a lazy hash page table flush for all mapped pages
    in the demoted segment. This happens when we handle hash page fault for
    these pages.
    
    We use _PAGE_COMBO bit along with _PAGE_HASHPTE to indicate whether a
    pte is backed by 4K hash pte. If we find _PAGE_COMBO not set on the pte,
    that implies that we could possibly have older 64K hash pte entries in
    the hash page table and we need to invalidate those entries.
    
    Use _PAGE_COMBO to determine the page size with which we should
    invalidate the hash table entries on unmap.
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 30da621f91f086da7964a3ad1233cfb722ba67f3
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:31:59 2014 +0530

    powerpc/thp: Invalidate old 64K based hash page mapping before insert of 4k pte
    
    commit 629149fae478f0ac6bf705a535708b192e9c6b59 upstream.
    
    If we changed base page size of the segment, either via sub_page_protect
    or via remap_4k_pfn, we do a demote_segment which doesn't flush the hash
    table entries. We do a lazy hash page table flush for all mapped pages
    in the demoted segment. This happens when we handle hash page fault
    for these pages.
    
    We use _PAGE_COMBO bit along with _PAGE_HASHPTE to indicate whether a
    pte is backed by 4K hash pte. If we find _PAGE_COMBO not set on the pte,
    that implies that we could possibly have older 64K hash pte entries in
    the hash page table and we need to invalidate those entries.
    
    Handle this correctly for 16M pages
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e828f5bc74b7950667f94cf1af488391ec43018d
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:31:58 2014 +0530

    powerpc/thp: Don't recompute vsid and ssize in loop on invalidate
    
    commit fa1f8ae80f8bb996594167ff4750a0b0a5a5bb5d upstream.
    
    The segment identifier and segment size will remain the same in
    the loop, So we can compute it outside. We also change the
    hugepage_invalidate interface so that we can use it the later patch
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4cd682a176e4972805bc10ad04a95642daa6d3dd
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:31:57 2014 +0530

    powerpc/thp: Add write barrier after updating the valid bit
    
    commit b0aa44a3dfae3d8f45bd1264349aa87f87b7774f upstream.
    
    With hugepages, we store the hpte valid information in the pte page
    whose address is stored in the second half of the PMD. Use a
    write barrier to make sure clearing pmd busy bit and updating
    hpte valid info are ordered properly.
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 6c4e48e6c27362946f36151350f26ca0e6be8437
Author: Gavin Shan <gwshan@linux.vnet.ibm.com>
Date:   Mon Aug 11 19:16:20 2014 +1000

    powerpc/pseries: Avoid deadlock on removing ddw
    
    commit 5efbabe09d986f25c02d19954660238fcd7f008a upstream.
    
    Function remove_ddw() could be called in of_reconfig_notifier and
    we potentially remove the dynamic DMA window property, which invokes
    of_reconfig_notifier again. Eventually, it leads to the deadlock as
    following backtrace shows.
    
    The patch fixes the above issue by deferring releasing the dynamic
    DMA window property while releasing the device node.
    
    =============================================
    [ INFO: possible recursive locking detected ]
    3.16.0+ #428 Tainted: G        W
    ---------------------------------------------
    drmgr/2273 is trying to acquire lock:
     ((of_reconfig_chain).rwsem){.+.+..}, at: [<c000000000091890>] \
     .__blocking_notifier_call_chain+0x40/0x78
    
    but task is already holding lock:
     ((of_reconfig_chain).rwsem){.+.+..}, at: [<c000000000091890>] \
     .__blocking_notifier_call_chain+0x40/0x78
    
    other info that might help us debug this:
     Possible unsafe locking scenario:
    
           CPU0
           ----
      lock((of_reconfig_chain).rwsem);
      lock((of_reconfig_chain).rwsem);
     *** DEADLOCK ***
    
     May be due to missing lock nesting notation
    
    2 locks held by drmgr/2273:
     #0:  (sb_writers#4){.+.+.+}, at: [<c0000000001cbe70>] \
          .vfs_write+0xb0/0x1f8
     #1:  ((of_reconfig_chain).rwsem){.+.+..}, at: [<c000000000091890>] \
          .__blocking_notifier_call_chain+0x40/0x78
    
    stack backtrace:
    CPU: 17 PID: 2273 Comm: drmgr Tainted: G        W     3.16.0+ #428
    Call Trace:
    [c0000000137e7000] [c000000000013d9c] .show_stack+0x88/0x148 (unreliable)
    [c0000000137e70b0] [c00000000083cd34] .dump_stack+0x7c/0x9c
    [c0000000137e7130] [c0000000000b8afc] .__lock_acquire+0x128c/0x1c68
    [c0000000137e7280] [c0000000000b9a4c] .lock_acquire+0xe8/0x104
    [c0000000137e7350] [c00000000083588c] .down_read+0x4c/0x90
    [c0000000137e73e0] [c000000000091890] .__blocking_notifier_call_chain+0x40/0x78
    [c0000000137e7490] [c000000000091900] .blocking_notifier_call_chain+0x38/0x48
    [c0000000137e7520] [c000000000682a28] .of_reconfig_notify+0x34/0x5c
    [c0000000137e75b0] [c000000000682a9c] .of_property_notify+0x4c/0x54
    [c0000000137e7650] [c000000000682bf0] .of_remove_property+0x30/0xd4
    [c0000000137e76f0] [c000000000052a44] .remove_ddw+0x144/0x168
    [c0000000137e7790] [c000000000053204] .iommu_reconfig_notifier+0x30/0xe0
    [c0000000137e7820] [c00000000009137c] .notifier_call_chain+0x6c/0xb4
    [c0000000137e78c0] [c0000000000918ac] .__blocking_notifier_call_chain+0x5c/0x78
    [c0000000137e7970] [c000000000091900] .blocking_notifier_call_chain+0x38/0x48
    [c0000000137e7a00] [c000000000682a28] .of_reconfig_notify+0x34/0x5c
    [c0000000137e7a90] [c000000000682e14] .of_detach_node+0x44/0x1fc
    [c0000000137e7b40] [c0000000000518e4] .ofdt_write+0x3ac/0x688
    [c0000000137e7c20] [c000000000238430] .proc_reg_write+0xb8/0xd4
    [c0000000137e7cd0] [c0000000001cbeac] .vfs_write+0xec/0x1f8
    [c0000000137e7d70] [c0000000001cc3b0] .SyS_write+0x58/0xa0
    [c0000000137e7e30] [c00000000000a064] syscall_exit+0x0/0x98
    
    Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 1eae3e47d2aa45ab90ea035ed7135d813e2309e4
Author: Gavin Shan <gwshan@linux.vnet.ibm.com>
Date:   Mon Aug 11 19:16:19 2014 +1000

    powerpc/pseries: Failure on removing device node
    
    commit f1b3929c232784580e5d8ee324b6bc634e709575 upstream.
    
    While running command "drmgr -c phb -r -s 'PHB 528'", following
    backtrace jumped out because the target device node isn't marked
    with OF_DETACHED by of_detach_node(), which caused by error
    returned from memory hotplug related reconfig notifier when
    disabling CONFIG_MEMORY_HOTREMOVE. The patch fixes it.
    
    ERROR: Bad of_node_put() on /pci@800000020000210/ethernet@0
    CPU: 14 PID: 2252 Comm: drmgr Tainted: G        W     3.16.0+ #427
    Call Trace:
    [c000000012a776a0] [c000000000013d9c] .show_stack+0x88/0x148 (unreliable)
    [c000000012a77750] [c00000000083cd34] .dump_stack+0x7c/0x9c
    [c000000012a777d0] [c0000000006807c4] .of_node_release+0x58/0xe0
    [c000000012a77860] [c00000000038a7d0] .kobject_release+0x174/0x1b8
    [c000000012a77900] [c00000000038a884] .kobject_put+0x70/0x78
    [c000000012a77980] [c000000000681680] .of_node_put+0x28/0x34
    [c000000012a77a00] [c000000000681ea8] .__of_get_next_child+0x64/0x70
    [c000000012a77a90] [c000000000682138] .of_find_node_by_path+0x1b8/0x20c
    [c000000012a77b40] [c000000000051840] .ofdt_write+0x308/0x688
    [c000000012a77c20] [c000000000238430] .proc_reg_write+0xb8/0xd4
    [c000000012a77cd0] [c0000000001cbeac] .vfs_write+0xec/0x1f8
    [c000000012a77d70] [c0000000001cc3b0] .SyS_write+0x58/0xa0
    [c000000012a77e30] [c00000000000a064] syscall_exit+0x0/0x98
    
    Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 21c4de8afa1ae7d4a03015304c1dfc236b927a09
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Wed Aug 13 12:32:03 2014 +0530

    powerpc/mm: Use read barrier when creating real_pte
    
    commit 85c1fafd7262e68ad821ee1808686b1392b1167d upstream.
    
    On ppc64 we support 4K hash pte with 64K page size. That requires
    us to track the hash pte slot information on a per 4k basis. We do that
    by storing the slot details in the second half of pte page. The pte bit
    _PAGE_COMBO is used to indicate whether the second half need to be
    looked while building real_pte. We need to use read memory barrier while
    doing that so that load of hidx is not reordered w.r.t _PAGE_COMBO
    check. On the store side we already do a lwsync in __hash_page_4K
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit beaeda95ebf3b3a208a89b1a4bca370145617025
Author: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Date:   Mon Aug 4 23:13:10 2014 +0300

    powerpc/mm/numa: Fix break placement
    
    commit b00fc6ec1f24f9d7af9b8988b6a198186eb3408c upstream.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81631
    Reported-by: David Binderman <dcb314@hotmail.com>
    Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a068339caabfcb209bf5417f2a162af691ba5f86
Author: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com>
Date:   Fri Jul 4 09:55:16 2014 +0100

    regulator: arizona-ldo1: remove bypass functionality
    
    commit 5b919f3ebb533cbe400664837e24f66a0836b907 upstream.
    
    WM5110/8280 devices do not support bypass mode for LDO1 so remove
    the bypass callbacks registered with regulator core.
    
    Signed-off-by: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 8a9f2a150ef49da8cfc8cde47aa1962a3bb72ed3
Author: Michael Welling <mwelling@emacinc.com>
Date:   Mon Jul 28 18:01:04 2014 -0500

    mfd: omap-usb-host: Fix improper mask use.
    
    commit 46de8ff8e80a6546aa3d2fdf58c6776666301a0c upstream.
    
    single-ulpi-bypass is a flag used for older OMAP3 silicon.
    
    The flag when set, can excite code that improperly uses the
    OMAP_UHH_HOSTCONFIG_UPLI_BYPASS define to clear the corresponding bit.
    Instead it clears all of the other bits disabling all of the ports in
    the process.
    
    Signed-off-by: Michael Welling <mwelling@emacinc.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 758ce2b3fcfb97cb0b1962a4e6e7aad4e6b921cb
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Wed Aug 6 16:08:14 2014 -0700

    kernel/smp.c:on_each_cpu_cond(): fix warning in fallback path
    
    commit 618fde872163e782183ce574c77f1123e2be8887 upstream.
    
    The rarely-executed memry-allocation-failed callback path generates a
    WARN_ON_ONCE() when smp_call_function_single() succeeds.  Presumably
    it's supposed to warn on failures.
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Christoph Lameter <cl@gentwo.org>
    Cc: Gilad Ben-Yossef <gilad@benyossef.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Tejun Heo <htejun@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ace57c92048721f447c4e9baffaf560ebaccef5b
Author: Eric Paris <eparis@redhat.com>
Date:   Wed Jul 23 15:36:26 2014 -0400

    CAPABILITIES: remove undefined caps from all processes
    
    commit 7d8b6c63751cfbbe5eef81a48c22978b3407a3ad upstream.
    
    This is effectively a revert of 7b9a7ec565505699f503b4fcf61500dceb36e744
    plus fixing it a different way...
    
    We found, when trying to run an application from an application which
    had dropped privs that the kernel does security checks on undefined
    capability bits.  This was ESPECIALLY difficult to debug as those
    undefined bits are hidden from /proc/$PID/status.
    
    Consider a root application which drops all capabilities from ALL 4
    capability sets.  We assume, since the application is going to set
    eff/perm/inh from an array that it will clear not only the defined caps
    less than CAP_LAST_CAP, but also the higher 28ish bits which are
    undefined future capabilities.
    
    The BSET gets cleared differently.  Instead it is cleared one bit at a
    time.  The problem here is that in security/commoncap.c::cap_task_prctl()
    we actually check the validity of a capability being read.  So any task
    which attempts to 'read all things set in bset' followed by 'unset all
    things set in bset' will not even attempt to unset the undefined bits
    higher than CAP_LAST_CAP.
    
    So the 'parent' will look something like:
    CapInh:	0000000000000000
    CapPrm:	0000000000000000
    CapEff:	0000000000000000
    CapBnd:	ffffffc000000000
    
    All of this 'should' be fine.  Given that these are undefined bits that
    aren't supposed to have anything to do with permissions.  But they do...
    
    So lets now consider a task which cleared the eff/perm/inh completely
    and cleared all of the valid caps in the bset (but not the invalid caps
    it couldn't read out of the kernel).  We know that this is exactly what
    the libcap-ng library does and what the go capabilities library does.
    They both leave you in that above situation if you try to clear all of
    you capapabilities from all 4 sets.  If that root task calls execve()
    the child task will pick up all caps not blocked by the bset.  The bset
    however does not block bits higher than CAP_LAST_CAP.  So now the child
    task has bits in eff which are not in the parent.  These are
    'meaningless' undefined bits, but still bits which the parent doesn't
    have.
    
    The problem is now in cred_cap_issubset() (or any operation which does a
    subset test) as the child, while a subset for valid cap bits, is not a
    subset for invalid cap bits!  So now we set durring commit creds that
    the child is not dumpable.  Given it is 'more priv' than its parent.  It
    also means the parent cannot ptrace the child and other stupidity.
    
    The solution here:
    1) stop hiding capability bits in status
    	This makes debugging easier!
    
    2) stop giving any task undefined capability bits.  it's simple, it you
    don't put those invalid bits in CAP_FULL_SET you won't get them in init
    and you won't get them in any other task either.
    	This fixes the cap_issubset() tests and resulting fallout (which
    	made the init task in a docker container untraceable among other
    	things)
    
    3) mask out undefined bits when sys_capset() is called as it might use
    ~0, ~0 to denote 'all capabilities' for backward/forward compatibility.
    	This lets 'capsh --caps="all=eip" -- -c /bin/bash' run.
    
    4) mask out undefined bit when we read a file capability off of disk as
    again likely all bits are set in the xattr for forward/backward
    compatibility.
    	This lets 'setcap all+pe /bin/bash; /bin/bash' run
    
    Signed-off-by: Eric Paris <eparis@redhat.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: Andrew Vagin <avagin@openvz.org>
    Cc: Andrew G. Morgan <morgan@kernel.org>
    Cc: Serge E. Hallyn <serge.hallyn@canonical.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Steve Grubb <sgrubb@redhat.com>
    Cc: Dan Walsh <dwalsh@redhat.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 3f06fd495304eaca2d7e61b7db3e0c27e152b36e
Author: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Date:   Wed May 21 18:26:44 2014 -0600

    tpm: Provide a generic means to override the chip returned timeouts
    
    commit 8e54caf407b98efa05409e1fee0e5381abd2b088 upstream.
    
    Some Atmel TPMs provide completely wrong timeouts from their
    TPM_CAP_PROP_TIS_TIMEOUT query. This patch detects that and returns
    new correct values via a DID/VID table in the TIS driver.
    
    Tested on ARM using an AT97SC3204T FW version 37.16
    
    [PHuewe: without this fix these 'broken' Atmel TPMs won't function on
    older kernels]
    Signed-off-by: "Berg, Christopher" <Christopher.Berg@atmel.com>
    Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    [bwh: Backported to 3.10:
     - Adjust filename, context
     - s/chip->ops->/chip->vendor./]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a4ed6bc99bb00d7202cb1e0ef99095d39d76d200
Author: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Date:   Fri May 9 14:23:10 2014 +0300

    tpm: missing tpm_chip_put in tpm_get_random()
    
    commit 3e14d83ef94a5806a865b85b513b4e891923c19b upstream.
    
    Regression in 41ab999c. Call to tpm_chip_put is missing. This
    will cause TPM device driver not to unload if tmp_get_random()
    is called.
    
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 2617e71a8abc3fe12f44ed36e1cad3820a75d37c
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Wed Aug 13 11:21:34 2014 -0700

    firmware: Do not use WARN_ON(!spin_is_locked())
    
    commit aee530cfecf4f3ec83b78406bac618cec35853f8 upstream.
    
    spin_is_locked() always returns false for uniprocessor configurations
    in several architectures, so do not use WARN_ON with it.
    Use lockdep_assert_held() instead to also reduce overhead in
    non-debug kernels.
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit f008331068945523ff12ff13f6d07d7303e0e8a9
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Aug 5 09:57:51 2014 +0200

    s390/locking: Reenable optimistic spinning
    
    commit 36e7fdaa1a04fcf65b864232e1af56a51c7814d6 upstream.
    
    commit 4badad352a6bb202ec68afa7a574c0bb961e5ebc (locking/mutex: Disable
    optimistic spinning on some architectures) fenced spinning for
    architectures without proper cmpxchg.
    There is no need to disable mutex spinning on s390, though:
    The instructions CS,CSG and friends provide the proper guarantees.
    (We dont implement cmpxchg with locks).
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 16f6aabf953b586ddc88bdcb0c29548d04877f80
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Sun Jul 27 23:53:19 2014 +0200

    spi: orion: fix incorrect handling of cell-index DT property
    
    commit e06871cd2c92e5c65d7ca1d32866b4ca5dd4ac30 upstream.
    
    In commit f814f9ac5a81 ("spi/orion: add device tree binding"), Device
    Tree support was added to the spi-orion driver. However, this commit
    reads the "cell-index" property, without taking into account the fact
    that DT properties are big-endian encoded.
    
    Since most of the platforms using spi-orion with DT have apparently
    not used anything but cell-index = <0>, the problem was not
    visible. But as soon as one starts using cell-index = <1>, the problem
    becomes clearly visible, as the master->bus_num gets a wrong value
    (actually it gets the value 0, which conflicts with the first bus that
    has cell-index = <0>).
    
    This commit fixes that by using of_property_read_u32() to read the
    property value, which does the appropriate endianness conversion when
    needed.
    
    Fixes: f814f9ac5a81 ("spi/orion: add device tree binding")
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 92c2ab0b90103365486a62a44ca525ff3d5e69e1
Author: Joerg Roedel <jroedel@suse.de>
Date:   Tue Aug 5 17:50:15 2014 +0200

    iommu/amd: Fix cleanup_domain for mass device removal
    
    commit 9b29d3c6510407d91786c1cf9183ff4debb3473a upstream.
    
    When multiple devices are detached in __detach_device, they
    are also removed from the domains dev_list. This makes it
    unsafe to use list_for_each_entry_safe, as the next pointer
    might also not be in the list anymore after __detach_device
    returns. So just repeatedly remove the first element of the
    list until it is empty.
    
    Tested-by: Marti Raudsepp <marti@juffo.org>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit add15d1f45282a680d055ed219db2b28ae1933ba
Author: Paul Bolle <pebolle@tiscali.nl>
Date:   Wed Apr 16 12:47:43 2014 -0300

    media: sms: Remove CONFIG_ prefix from Kconfig symbols
    
    commit 3c4b422adb7694418848cefc2a4669d63192c649 upstream.
    
    X-Patchwork-Delegate: mchehab@redhat.com
    Remove the CONFIG_ prefix from two Kconfig symbols in a dependency for
    SMS_SIANO_DEBUGFS. This prefix is invalid inside Kconfig files.
    
    Note that the current (common sense) dependency on SMS_USB_DRV and
    SMS_SDIO_DRV being equal ensures that SMS_SIANO_DEBUGFS will not
    violate its constraints. These constraint are that:
    - it should only be built if SMS_USB_DRV is set;
    - it can't be builtin if USB support is modular.
    
    So drop the dependency on SMS_USB_DRV, as it is unneeded.
    
    Fixes: 6c84b214284e ("[media] sms: fix randconfig building error")
    
    Reported-by: Martin Walch <walch.martin@web.de>
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 053d9e01ece5a6c8f342f8c18f19f6560ca90f61
Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date:   Wed May 21 17:39:16 2014 -0300

    media: v4l: vsp1: Remove the unneeded vsp1_video_buffer video field
    
    commit e51daefc228aa164adcc17fe8fce0f856ad0a1cc upstream.
    
    The field is assigned but never read, remove it.
    
    This fixes a bug caused by the struct vb2_buffer field not being be the
    very first field of the vsp1_video_buffer buffer structure as required
    by videobuf2.
    
    Reported-by: Takanari Hayama <taki@igel.co.jp>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit d99e678657e070df68f8394de67a01805f1a0303
Author: Salva Peiró <speiro@ai2.upv.es>
Date:   Sat Jun 7 11:41:44 2014 -0300

    media: media-device: Remove duplicated memset() in media_enum_entities()
    
    commit f8ca6ac00d2ba24c5557f08f81439cd3432f0802 upstream.
    
    After the zeroing the whole struct struct media_entity_desc u_ent,
    it is no longer necessary to memset(0) its u_ent.name field.
    
    Signed-off-by: Salva Peiró <speiro@ai2.upv.es>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit c2c9d04ef4afefa2fa1bd5c9f213bc26987dfe18
Author: Mauro Carvalho Chehab <m.chehab@samsung.com>
Date:   Sun Jun 8 13:54:57 2014 -0300

    media: au0828: Only alt setting logic when needed
    
    commit 64ea37bbd8a5815522706f0099ad3f11c7537e15 upstream.
    
    It seems that there's a bug at au0828 hardware/firmware
    related to alternate setting: when the device is already at
    alt 5, a further call causes the URBs to receive -ESHUTDOWN.
    
    I found two different encarnations of this issue:
    
    1) at qv4l2, it fails the second time we try to open the
    video screen;
    2) at xawtv, when audio underrun occurs, with is very
    frequent, at least on my test machine.
    
    The fix is simple: just check if alt=5 before calling
    set_usb_interface().
    
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 72509907c5be4a956e93b008135d69ffee5d0692
Author: Mauro Carvalho Chehab <m.chehab@samsung.com>
Date:   Mon Jul 21 13:28:15 2014 -0300

    media: xc4000: Fix get_frequency()
    
    commit 4c07e32884ab69574cfd9eb4de3334233c938071 upstream.
    
    The programmed frequency on xc4000 is not the middle
    frequency, but the initial frequency on the bandwidth range.
    However, the DVB API works with the middle frequency.
    
    This works fine on set_frontend, as the device calculates
    the needed offset. However, at get_frequency(), the returned
    value is the initial frequency. That's generally not a big
    problem on most drivers, however, starting with changeset
    6fe1099c7aec, the frequency drift is taken into account at
    dib7000p driver.
    
    This broke support for PCTV 340e, with uses dib7000p demod and
    xc4000 tuner.
    
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 1a590d34144b5d715d59a4c1270dc91f6bed5f24
Author: Mauro Carvalho Chehab <m.chehab@samsung.com>
Date:   Mon Jul 21 14:21:18 2014 -0300

    media: xc5000: Fix get_frequency()
    
    commit a3eec916cbc17dc1aaa3ddf120836cd5200eb4ef upstream.
    
    The programmed frequency on xc5000 is not the middle
    frequency, but the initial frequency on the bandwidth range.
    However, the DVB API works with the middle frequency.
    
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a6c8b5b4fe09fe235aa7089caf7d4c000f26cd41
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Aug 27 16:55:29 2014 -0700

    USB: fix build error with CONFIG_PM_RUNTIME disabled
    
    commit a9ef803d740bfadf5e505fbc57efa57692e27025 upstream.
    
    commit bdd405d2a528 ("usb: hub: Prevent hub autosuspend if
    usbcore.autosuspend is -1") causes a build error if CONFIG_PM_RUNTIME is
    disabled.  Fix that by doing a simple #ifdef guard around it.
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Reported-by: kbuild test robot <fengguang.wu@intel.com>
    Cc: Roger Quadros <rogerq@ti.com>
    Cc: Michael Welling <mwelling@emacinc.com>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit d9cd4a157bb0068a044552015bdf0020d21bbfd4
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Fri Aug 8 14:19:17 2014 -0700

    vm_is_stack: use for_each_thread() rather then buggy while_each_thread()
    
    commit 4449a51a7c281602d3a385044ab928322a122a02 upstream.
    
    Aleksei hit the soft lockup during reading /proc/PID/smaps.  David
    investigated the problem and suggested the right fix.
    
    while_each_thread() is racy and should die, this patch updates
    vm_is_stack().
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Reported-by: Aleksei Besogonov <alex.besogonov@gmail.com>
    Tested-by: Aleksei Besogonov <alex.besogonov@gmail.com>
    Suggested-by: David Rientjes <rientjes@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 24bafe7dfd3771f280cbd3074b1dfff62aa7715d
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Mon Aug 25 22:33:12 2014 -0400

    NFSv4: Fix problems with close in the presence of a delegation
    
    commit aee7af356e151494d5014f57b33460b162f181b5 upstream.
    
    In the presence of delegations, we can no longer assume that the
    state->n_rdwr, state->n_rdonly, state->n_wronly reflect the open
    stateid share mode, and so we need to calculate the initial value
    for calldata->arg.fmode using the state->flags.
    
    Reported-by: James Drews <drews@engr.wisc.edu>
    Fixes: 88069f77e1ac5 (NFSv41: Fix a potential state leakage when...)
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 849f67c7e1843fbad81a6e0dbbbb1614acbe9c11
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Wed Jul 16 15:38:32 2014 -0400

    svcrdma: Select NFSv4.1 backchannel transport based on forward channel
    
    commit 3c45ddf823d679a820adddd53b52c6699c9a05ac upstream.
    
    The current code always selects XPRT_TRANSPORT_BC_TCP for the back
    channel, even when the forward channel was not TCP (eg, RDMA). When
    a 4.1 mount is attempted with RDMA, the server panics in the TCP BC
    code when trying to send CB_NULL.
    
    Instead, construct the transport protocol number from the forward
    channel transport or'd with XPRT_TRANSPORT_BC. Transports that do
    not support bi-directional RPC will not have registered a "BC"
    transport, causing create_backchannel_client() to fail immediately.
    
    Fixes: https://bugzilla.linux-nfs.org/show_bug.cgi?id=265
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a6efb1347048618cf3ef8c3959b732a4b0989749
Author: Kinglong Mee <kinglongmee@gmail.com>
Date:   Wed Jul 30 21:26:05 2014 +0800

    NFSD: Decrease nfsd_users in nfsd_startup_generic fail
    
    commit d9499a95716db0d4bc9b67e88fd162133e7d6b08 upstream.
    
    A memory allocation failure could cause nfsd_startup_generic to fail, in
    which case nfsd_users wouldn't be incorrectly left elevated.
    
    After nfsd restarts nfsd_startup_generic will then succeed without doing
    anything--the first consequence is likely nfs4_start_net finding a bad
    laundry_wq and crashing.
    
    Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
    Fixes: 4539f14981ce "nfsd: replace boolean nfsd_up flag by users counter"
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit f576af6bb6af8db0ecb8f766650faaf98a701919
Author: Roger Quadros <rogerq@ti.com>
Date:   Mon Aug 4 12:44:46 2014 +0300

    usb: hub: Prevent hub autosuspend if usbcore.autosuspend is -1
    
    commit bdd405d2a5287bdb9b04670ea255e1f122138e66 upstream.
    
    If user specifies that USB autosuspend must be disabled by module
    parameter "usbcore.autosuspend=-1" then we must prevent
    autosuspend of USB hub devices as well.
    
    commit 596d789a211d introduced in v3.8 changed the original behaivour
    and stopped respecting the usbcore.autosuspend parameter for hubs.
    
    Fixes: 596d789a211d "USB: set hub's default autosuspend delay as 0"
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Tested-by: Michael Welling <mwelling@emacinc.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9c1421dce49baa6afc74bc845994d32786d9156c
Author: Peter Chen <peter.chen@freescale.com>
Date:   Tue Aug 5 08:28:19 2014 +0800

    usb: ehci: using wIndex + 1 for hub port
    
    commit 5cbcc35e5bf0eae3c7494ce3efefffc9977827ae upstream.
    
    The roothub's index per controller is from 0, but the hub port index per hub
    is from 1, this patch fixes "can't find device at roohub" problem for connecting
    test fixture at roohub when do USB-IF Embedded Host High-Speed Electrical Test.
    
    This patch is for v3.12+.
    
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit b3d60c320f6597c2be0bcf580cf8093c12c4555f
Author: James Forshaw <forshaw@google.com>
Date:   Sat Aug 23 14:39:48 2014 -0700

    USB: whiteheat: Added bounds checking for bulk command response
    
    commit 6817ae225cd650fb1c3295d769298c38b1eba818 upstream.
    
    This patch fixes a potential security issue in the whiteheat USB driver
    which might allow a local attacker to cause kernel memory corrpution. This
    is due to an unchecked memcpy into a fixed size buffer (of 64 bytes). On
    EHCI and XHCI busses it's possible to craft responses greater than 64
    bytes leading a buffer overflow.
    
    Signed-off-by: James Forshaw <forshaw@google.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4f3a9801a2d14233e8b3c64ce3db37e13ddeb721
Author: Jaša Bartelj <jasa.bartelj@gmail.com>
Date:   Sat Aug 16 12:44:27 2014 +0200

    USB: ftdi_sio: Added PID for new ekey device
    
    commit 646907f5bfb0782c731ae9ff6fb63471a3566132 upstream.
    
    Added support to the ftdi_sio driver for ekey Converter USB which
    uses an FT232BM chip.
    
    Signed-off-by: Jaša Bartelj <jasa.bartelj@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit b7952dab2e21f48f2c5679d896fbfd6f57556e0f
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Aug 13 17:56:52 2014 +0200

    USB: ftdi_sio: add Basic Micro ATOM Nano USB2Serial PID
    
    commit 6552cc7f09261db2aeaae389aa2c05a74b3a93b4 upstream.
    
    Add device id for Basic Micro ATOM Nano USB2Serial adapters.
    
    Reported-by: Nicolas Alt <n.alt@mytum.de>
    Tested-by: Nicolas Alt <n.alt@mytum.de>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 6f5a9e2719ffc5f89640f0f267ca35610e4edce1
Author: Huang Rui <ray.huang@amd.com>
Date:   Tue Aug 19 15:17:57 2014 +0300

    usb: xhci: amd chipset also needs short TX quirk
    
    commit 2597fe99bb0259387111d0431691f5daac84f5a5 upstream.
    
    AMD xHC also needs short tx quirk after tested on most of chipset
    generations. That's because there is the same incorrect behavior like
    Fresco Logic host. Please see below message with on USB webcam
    attached on xHC host:
    
    [  139.262944] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.266934] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.270913] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.274937] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.278914] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.282936] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.286915] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.290938] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.294913] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.298917] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    
    Reported-by: Arindam Nath <arindam.nath@amd.com>
    Tested-by: Shriraj-Rai P <shriraj-rai.p@amd.com>
    Signed-off-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 12434db6ddb3f56ecc025fb3f75744b385c82c4e
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Aug 19 15:17:56 2014 +0300

    xhci: Treat not finding the event_seg on COMP_STOP the same as COMP_STOP_INVAL
    
    commit 9a54886342e227433aebc9d374f8ae268a836475 upstream.
    
    When using a Renesas uPD720231 chipset usb-3 uas to sata bridge with a 120G
    Crucial M500 ssd, model string: Crucial_ CT120M500SSD1, together with a
    the integrated Intel xhci controller on a Haswell laptop:
    
    00:14.0 USB controller [0c03]: Intel Corporation 8 Series USB xHCI HC [8086:9c31] (rev 04)
    
    The following error gets logged to dmesg:
    
    xhci error: Transfer event TRB DMA ptr not part of current TD
    
    Treating COMP_STOP the same as COMP_STOP_INVAL when no event_seg gets found
    fixes this.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 51675039fc0192e063a16035d4114f9b8795e04e
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Aug 25 16:05:38 2014 -0500

    staging: r8188eu: Add new USB ID
    
    commit a2fa6721c7237b5a666f16f732628c0c09c0b954 upstream.
    
    The Elecom WDC-150SU2M uses this chip.
    
    Reported-by: Hiroki Kondo <kompiro@gmail.com>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 09357cf4c4696205fe6c8e8131fa7c6c3241cfc1
Author: Holger Paradies <retabell@gmx.de>
Date:   Wed Aug 13 13:22:49 2014 -0500

    staging/rtl8188eu: add 0df6:0076 Sitecom Europe B.V.
    
    commit 8626d524ef08f10fccc0c41e5f75aef8235edf47 upstream.
    
    The stick is not recognized.
    This dongle uses r8188eu but usb-id is missing.
    3.16.0
    
    Signed-off-by: Holger Paradies <retabell@gmx.de>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e6d89e609fbfc9e46816bc303617af182abbb616
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Wed Aug 27 18:40:07 2014 -0400

    jbd2: fix descriptor block size handling errors with journal_csum
    
    commit db9ee220361de03ee86388f9ea5e529eaad5323c upstream.
    
    It turns out that there are some serious problems with the on-disk
    format of journal checksum v2.  The foremost is that the function to
    calculate descriptor tag size returns sizes that are too big.  This
    causes alignment issues on some architectures and is compounded by the
    fact that some parts of jbd2 use the structure size (incorrectly) to
    determine the presence of a 64bit journal instead of checking the
    feature flags.
    
    Therefore, introduce journal checksum v3, which enlarges the
    descriptor block tag format to allow for full 32-bit checksums of
    journal blocks, fix the journal tag function to return the correct
    sizes, and fix the jbd2 recovery code to use feature flags to
    determine 64bitness.
    
    Add a few function helpers so we don't have to open-code quite so
    many pieces.
    
    Switching to a 16-byte block size was found to increase journal size
    overhead by a maximum of 0.1%, to convert a 32-bit journal with no
    checksumming to a 32-bit journal with checksum v3 enabled.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reported-by: TR Reardon <thomas_reardon@hotmail.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9a8bd0aadcc9ba76c897696df51300a77d32f109
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Wed Aug 27 18:40:05 2014 -0400

    jbd2: fix infinite loop when recovering corrupt journal blocks
    
    commit 022eaa7517017efe4f6538750c2b59a804dc7df7 upstream.
    
    When recovering the journal, don't fall into an infinite loop if we
    encounter a corrupt journal block.  Instead, just skip the block and
    return an error, which fails the mount and thus forces the user to run
    a full filesystem fsck.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 978945187b6a4a6fdb0e9e1ed48fda1895d6eb3a
Author: Dmitry Monakhov <dmonakhov@openvz.org>
Date:   Wed Aug 27 18:40:03 2014 -0400

    ext4: update i_disksize coherently with block allocation on error path
    
    commit 6603120e96eae9a5d6228681ae55c7fdc998d1bb upstream.
    
    In case of delalloc block i_disksize may be less than i_size. So we
    have to update i_disksize each time we allocated and submitted some
    blocks beyond i_disksize.  We weren't doing this on the error paths,
    so fix this.
    
    testcase: xfstest generic/019
    
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a7678826725fbe9831db672b4caa47aba4137ffc
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Tue Aug 12 18:07:57 2014 +0300

    mei: nfc: fix memory leak in error path
    
    commit 8e8248b1369c97c7bb6f8bcaee1f05deeabab8ef upstream.
    
    NFC will leak buffer if send failed.
    Use single exit point that does the freeing
    
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 8f543e8182632771ed610a88a7b8594b3c6f6820
Author: Liu Bo <bo.li.liu@oracle.com>
Date:   Tue Aug 19 23:33:13 2014 +0800

    Btrfs: fix crash on endio of reading corrupted block
    
    commit 38c1c2e44bacb37efd68b90b3f70386a8ee370ee upstream.
    
    The crash is
    
    ------------[ cut here ]------------
    kernel BUG at fs/btrfs/extent_io.c:2124!
    [...]
    Workqueue: btrfs-endio normal_work_helper [btrfs]
    RIP: 0010:[<ffffffffa02d6055>]  [<ffffffffa02d6055>] end_bio_extent_readpage+0xb45/0xcd0 [btrfs]
    
    This is in fact a regression.
    
    It is because we forgot to increase @offset properly in reading corrupted block,
    so that the @offset remains, and this leads to checksum errors while reading
    left blocks queued up in the same bio, and then ends up with hiting the above
    BUG_ON.
    
    Reported-by: Chris Murphy <lists@colorremedies.com>
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 28758933a321c0eb053fa6f85c9426882bf7e44c
Author: Liu Bo <bo.li.liu@oracle.com>
Date:   Thu Jul 24 22:48:05 2014 +0800

    Btrfs: fix compressed write corruption on enospc
    
    commit ce62003f690dff38d3164a632ec69efa15c32cbf upstream.
    
    When failing to allocate space for the whole compressed extent, we'll
    fallback to uncompressed IO, but we've forgotten to redirty the pages
    which belong to this compressed extent, and these 'clean' pages will
    simply skip 'submit' part and go to endio directly, at last we got data
    corruption as we write nothing.
    
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Tested-By: Martin Steigerwald <martin@lichtvoll.de>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 308d30d163995b77b264982dd463ae05aedeb0f9
Author: Filipe Manana <fdmanana@suse.com>
Date:   Wed Jul 2 20:07:54 2014 +0100

    Btrfs: read lock extent buffer while walking backrefs
    
    commit 6f7ff6d7832c6be13e8c95598884dbc40ad69fb7 upstream.
    
    Before processing the extent buffer, acquire a read lock on it, so
    that we're safe against concurrent updates on the extent buffer.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e2e8bf61f04c4560db4bbb1cbc87334b824d892b
Author: Filipe Manana <fdmanana@suse.com>
Date:   Sat Aug 9 21:22:27 2014 +0100

    Btrfs: fix csum tree corruption, duplicate and outdated checksums
    
    commit 27b9a8122ff71a8cadfbffb9c4f0694300464f3b upstream.
    
    Under rare circumstances we can end up leaving 2 versions of a checksum
    for the same file extent range.
    
    The reason for this is that after calling btrfs_next_leaf we process
    slot 0 of the leaf it returns, instead of processing the slot set in
    path->slots[0]. Most of the time (by far) path->slots[0] is 0, but after
    btrfs_next_leaf() releases the path and before it searches for the next
    leaf, another task might cause a split of the next leaf, which migrates
    some of its keys to the leaf we were processing before calling
    btrfs_next_leaf(). In this case btrfs_next_leaf() returns again the
    same leaf but with path->slots[0] having a slot number corresponding
    to the first new key it got, that is, a slot number that didn't exist
    before calling btrfs_next_leaf(), as the leaf now has more keys than
    it had before. So we must really process the returned leaf starting at
    path->slots[0] always, as it isn't always 0, and the key at slot 0 can
    have an offset much lower than our search offset/bytenr.
    
    For example, consider the following scenario, where we have:
    
    sums->bytenr: 40157184, sums->len: 16384, sums end: 40173568
    four 4kb file data blocks with offsets 40157184, 40161280, 40165376, 40169472
    
      Leaf N:
    
        slot = 0                           slot = btrfs_header_nritems() - 1
      |-------------------------------------------------------------------|
      | [(CSUM CSUM 39239680), size 8] ... [(CSUM CSUM 40116224), size 4] |
      |-------------------------------------------------------------------|
    
      Leaf N + 1:
    
          slot = 0                          slot = btrfs_header_nritems() - 1
      |--------------------------------------------------------------------|
      | [(CSUM CSUM 40161280), size 32] ... [((CSUM CSUM 40615936), size 8 |
      |--------------------------------------------------------------------|
    
    Because we are at the last slot of leaf N, we call btrfs_next_leaf() to
    find the next highest key, which releases the current path and then searches
    for that next key. However after releasing the path and before finding that
    next key, the item at slot 0 of leaf N + 1 gets moved to leaf N, due to a call
    to ctree.c:push_leaf_left() (via ctree.c:split_leaf()), and therefore
    btrfs_next_leaf() will returns us a path again with leaf N but with the slot
    pointing to its new last key (CSUM CSUM 40161280). This new version of leaf N
    is then:
    
        slot = 0                        slot = btrfs_header_nritems() - 2  slot = btrfs_header_nritems() - 1
      |----------------------------------------------------------------------------------------------------|
      | [(CSUM CSUM 39239680), size 8] ... [(CSUM CSUM 40116224), size 4]  [(CSUM CSUM 40161280), size 32] |
      |----------------------------------------------------------------------------------------------------|
    
    And incorrecly using slot 0, makes us set next_offset to 39239680 and we jump
    into the "insert:" label, which will set tmp to:
    
        tmp = min((sums->len - total_bytes) >> blocksize_bits,
            (next_offset - file_key.offset) >> blocksize_bits) =
        min((16384 - 0) >> 12, (39239680 - 40157184) >> 12) =
        min(4, (u64)-917504 = 18446744073708634112 >> 12) = 4
    
    and
    
       ins_size = csum_size * tmp = 4 * 4 = 16 bytes.
    
    In other words, we insert a new csum item in the tree with key
    (CSUM_OBJECTID CSUM_KEY 40157184 = sums->bytenr) that contains the checksums
    for all the data (4 blocks of 4096 bytes each = sums->len). Which is wrong,
    because the item with key (CSUM CSUM 40161280) (the one that was moved from
    leaf N + 1 to the end of leaf N) contains the old checksums of the last 12288
    bytes of our data and won't get those old checksums removed.
    
    So this leaves us 2 different checksums for 3 4kb blocks of data in the tree,
    and breaks the logical rule:
    
       Key_N+1.offset >= Key_N.offset + length_of_data_its_checksums_cover
    
    An obvious bad effect of this is that a subsequent csum tree lookup to get
    the checksum of any of the blocks with logical offset of 40161280, 40165376
    or 40169472 (the last 3 4kb blocks of file data), will get the old checksums.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e7b4f1fa5e03939cb5671b60635349a7c129e677
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jul 28 10:57:04 2014 +0200

    Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch
    
    commit 4eb1f66dce6c4dc28dd90a7ffbe6b2b1cb08aa4e upstream.
    
    We've got bug reports that btrfs crashes when quota is enabled on
    32bit kernel, typically with the Oops like below:
     BUG: unable to handle kernel NULL pointer dereference at 00000004
     IP: [<f9234590>] find_parent_nodes+0x360/0x1380 [btrfs]
     *pde = 00000000
     Oops: 0000 [#1] SMP
     CPU: 0 PID: 151 Comm: kworker/u8:2 Tainted: G S      W 3.15.2-1.gd43d97e-default #1
     Workqueue: btrfs-qgroup-rescan normal_work_helper [btrfs]
     task: f1478130 ti: f147c000 task.ti: f147c000
     EIP: 0060:[<f9234590>] EFLAGS: 00010213 CPU: 0
     EIP is at find_parent_nodes+0x360/0x1380 [btrfs]
     EAX: f147dda8 EBX: f147ddb0 ECX: 00000011 EDX: 00000000
     ESI: 00000000 EDI: f147dda4 EBP: f147ddf8 ESP: f147dd38
      DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
     CR0: 8005003b CR2: 00000004 CR3: 00bf3000 CR4: 00000690
     Stack:
      00000000 00000000 f147dda4 00000050 00000001 00000000 00000001 00000050
      00000001 00000000 d3059000 00000001 00000022 000000a8 00000000 00000000
      00000000 000000a1 00000000 00000000 00000001 00000000 00000000 11800000
     Call Trace:
      [<f923564d>] __btrfs_find_all_roots+0x9d/0xf0 [btrfs]
      [<f9237bb1>] btrfs_qgroup_rescan_worker+0x401/0x760 [btrfs]
      [<f9206148>] normal_work_helper+0xc8/0x270 [btrfs]
      [<c025e38b>] process_one_work+0x11b/0x390
      [<c025eea1>] worker_thread+0x101/0x340
      [<c026432b>] kthread+0x9b/0xb0
      [<c0712a71>] ret_from_kernel_thread+0x21/0x30
      [<c0264290>] kthread_create_on_node+0x110/0x110
    
    This indicates a NULL corruption in prefs_delayed list.  The further
    investigation and bisection pointed that the call of ulist_add_merge()
    results in the corruption.
    
    ulist_add_merge() takes u64 as aux and writes a 64bit value into
    old_aux.  The callers of this function in backref.c, however, pass a
    pointer of a pointer to old_aux.  That is, the function overwrites
    64bit value on 32bit pointer.  This caused a NULL in the adjacent
    variable, in this case, prefs_delayed.
    
    Here is a quick attempt to band-aid over this: a new function,
    ulist_add_merge_ptr() is introduced to pass/store properly a pointer
    value instead of u64.  There are still ugly void ** cast remaining
    in the callers because void ** cannot be taken implicitly.  But, it's
    safer than explicit cast to u64, anyway.
    
    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=887046
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit be2378cbffe50ce0161f0fdee914adee98af53dc
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat Sep 13 11:30:10 2014 -0700

    vfs: fix bad hashing of dentries
    
    commit 99d263d4c5b2f541dfacb5391e22e8c91ea982a6 upstream.
    
    Josef Bacik found a performance regression between 3.2 and 3.10 and
    narrowed it down to commit bfcfaa77bdf0 ("vfs: use 'unsigned long'
    accesses for dcache name comparison and hashing"). He reports:
    
     "The test case is essentially
    
          for (i = 0; i < 1000000; i++)
                  mkdir("a$i");
    
      On xfs on a fio card this goes at about 20k dir/sec with 3.2, and 12k
      dir/sec with 3.10.  This is because we spend waaaaay more time in
      __d_lookup on 3.10 than in 3.2.
    
      The new hashing function for strings is suboptimal for <
      sizeof(unsigned long) string names (and hell even > sizeof(unsigned
      long) string names that I've tested).  I broke out the old hashing
      function and the new one into a userspace helper to get real numbers
      and this is what I'm getting:
    
          Old hash table had 1000000 entries, 0 dupes, 0 max dupes
          New hash table had 12628 entries, 987372 dupes, 900 max dupes
          We had 11400 buckets with a p50 of 30 dupes, p90 of 240 dupes, p99 of 567 dupes for the new hash
    
      My test does the hash, and then does the d_hash into a integer pointer
      array the same size as the dentry hash table on my system, and then
      just increments the value at the address we got to see how many
      entries we overlap with.
    
      As you can see the old hash function ended up with all 1 million
      entries in their own bucket, whereas the new one they are only
      distributed among ~12.5k buckets, which is why we're using so much
      more CPU in __d_lookup".
    
    The reason for this hash regression is two-fold:
    
     - On 64-bit architectures the down-mixing of the original 64-bit
       word-at-a-time hash into the final 32-bit hash value is very
       simplistic and suboptimal, and just adds the two 32-bit parts
       together.
    
       In particular, because there is no bit shuffling and the mixing
       boundary is also a byte boundary, similar character patterns in the
       low and high word easily end up just canceling each other out.
    
     - the old byte-at-a-time hash mixed each byte into the final hash as it
       hashed the path component name, resulting in the low bits of the hash
       generally being a good source of hash data.  That is not true for the
       word-at-a-time case, and the hash data is distributed among all the
       bits.
    
    The fix is the same in both cases: do a better job of mixing the bits up
    and using as much of the hash data as possible.  We already have the
    "hash_32|64()" functions to do that.
    
    Reported-by: Josef Bacik <jbacik@fb.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Chris Mason <clm@fb.com>
    Cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit c9258b208f7e5ad213449a83468d3be2ad09d266
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Oct 25 16:41:01 2013 -0400

    dcache.c: get rid of pointless macros
    
    commit 482db9066199813d6b999b65a3171afdbec040b6 upstream.
    
    D_HASH{MASK,BITS} are used once each, both in the same function (d_hash()).
    At this point they are actively misguiding - they imply that values are
    compiler constants, which is no longer true.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 70279f38568703022d4790d382d1f6462f8b6383
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Sep 11 23:44:35 2014 +0200

    futex: Unlock hb->lock in futex_wait_requeue_pi() error path
    
    commit 13c42c2f43b19aab3195f2d357db00d1e885eaa8 upstream.
    
    futex_wait_requeue_pi() calls futex_wait_setup(). If
    futex_wait_setup() succeeds it returns with hb->lock held and
    preemption disabled. Now the sanity check after this does:
    
            if (match_futex(&q.key, &key2)) {
    	   	ret = -EINVAL;
    		goto out_put_keys;
    	}
    
    which releases the keys but does not release hb->lock.
    
    So we happily return to user space with hb->lock held and therefor
    preemption disabled.
    
    Unlock hb->lock before taking the exit route.
    
    Reported-by: Dave "Trinity" Jones <davej@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Darren Hart <dvhart@linux.intel.com>
    Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1409112318500.4178@nanos
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit bbcd86fa91e60af29c3de9a38aa28c314468cc5f
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Aug 23 17:47:28 2014 -0400

    ext4: fix BUG_ON in mb_free_blocks()
    
    commit c99d1e6e83b06744c75d9f5e491ed495a7086b7b upstream.
    
    If we suffer a block allocation failure (for example due to a memory
    allocation failure), it's possible that we will call
    ext4_discard_allocated_blocks() before we've actually allocated any
    blocks.  In that case, fe_len and fe_start in ac->ac_f_ex will still
    be zero, and this will result in mb_free_blocks(inode, e4b, 0, 0)
    triggering the BUG_ON on mb_free_blocks():
    
    	BUG_ON(last >= (sb->s_blocksize << 3));
    
    Fix this by bailing out of ext4_discard_allocated_blocks() if fs_len
    is zero.
    
    Also fix a missing ext4_mb_unload_buddy() call in
    ext4_discard_allocated_blocks().
    
    Google-Bug-Id: 16844242
    
    Fixes: 86f0afd463215fc3e58020493482faa4ac3a4d69
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 66acfbf79cf6f97b0935a5830703166fae3104c1
Author: Prarit Bhargava <prarit@redhat.com>
Date:   Tue Jan 28 08:22:11 2014 -0500

    x86, cpu hotplug: Fix stack frame warning in check_irq_vectors_for_cpu_disable()
    
    commit 39424e89d64661faa0a2e00c5ad1e6dbeebfa972 upstream.
    
    Further discussion here: http://marc.info/?l=linux-kernel&m=139073901101034&w=2
    
    kbuild, 0day kernel build service, outputs the warning:
    
    arch/x86/kernel/irq.c:333:1: warning: the frame size of 2056 bytes
    is larger than 2048 bytes [-Wframe-larger-than=]
    
    because check_irq_vectors_for_cpu_disable() allocates two cpumasks on the
    stack.   Fix this by moving the two cpumasks to a global file context.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Tested-by: David Rientjes <rientjes@google.com>
    Signed-off-by: Prarit Bhargava <prarit@redhat.com>
    Link: http://lkml.kernel.org/r/1390915331-27375-1-git-send-email-prarit@redhat.com
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Seiji Aguchi <seiji.aguchi@hds.com>
    Cc: Yang Zhang <yang.z.zhang@Intel.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Janet Morgan <janet.morgan@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Ruiv Wang <ruiv.wang@gmail.com>
    Cc: Gong Chen <gong.chen@linux.intel.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 26a01cb8adbd71b0f0b2f460a651c46b2246e9db
Author: Prarit Bhargava <prarit@redhat.com>
Date:   Mon Jan 13 06:51:01 2014 -0500

    x86: Add check for number of available vectors before CPU down
    
    commit da6139e49c7cb0f4251265cb5243b8d220adb48d upstream.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64791
    
    When a cpu is downed on a system, the irqs on the cpu are assigned to
    other cpus.  It is possible, however, that when a cpu is downed there
    aren't enough free vectors on the remaining cpus to account for the
    vectors from the cpu that is being downed.
    
    This results in an interesting "overflow" condition where irqs are
    "assigned" to a CPU but are not handled.
    
    For example, when downing cpus on a 1-64 logical processor system:
    
    <snip>
    [  232.021745] smpboot: CPU 61 is now offline
    [  238.480275] smpboot: CPU 62 is now offline
    [  245.991080] ------------[ cut here ]------------
    [  245.996270] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:264 dev_watchdog+0x246/0x250()
    [  246.005688] NETDEV WATCHDOG: p786p1 (ixgbe): transmit queue 0 timed out
    [  246.013070] Modules linked in: lockd sunrpc iTCO_wdt iTCO_vendor_support sb_edac ixgbe microcode e1000e pcspkr joydev edac_core lpc_ich ioatdma ptp mdio mfd_core i2c_i801 dca pps_core i2c_core wmi acpi_cpufreq isci libsas scsi_transport_sas
    [  246.037633] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #14
    [  246.044451] Hardware name: Intel Corporation S4600LH ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
    [  246.057371]  0000000000000009 ffff88081fa03d40 ffffffff8164fbf6 ffff88081fa0ee48
    [  246.065728]  ffff88081fa03d90 ffff88081fa03d80 ffffffff81054ecc ffff88081fa13040
    [  246.074073]  0000000000000000 ffff88200cce0000 0000000000000040 0000000000000000
    [  246.082430] Call Trace:
    [  246.085174]  <IRQ>  [<ffffffff8164fbf6>] dump_stack+0x46/0x58
    [  246.091633]  [<ffffffff81054ecc>] warn_slowpath_common+0x8c/0xc0
    [  246.098352]  [<ffffffff81054fb6>] warn_slowpath_fmt+0x46/0x50
    [  246.104786]  [<ffffffff815710d6>] dev_watchdog+0x246/0x250
    [  246.110923]  [<ffffffff81570e90>] ? dev_deactivate_queue.constprop.31+0x80/0x80
    [  246.119097]  [<ffffffff8106092a>] call_timer_fn+0x3a/0x110
    [  246.125224]  [<ffffffff8106280f>] ? update_process_times+0x6f/0x80
    [  246.132137]  [<ffffffff81570e90>] ? dev_deactivate_queue.constprop.31+0x80/0x80
    [  246.140308]  [<ffffffff81061db0>] run_timer_softirq+0x1f0/0x2a0
    [  246.146933]  [<ffffffff81059a80>] __do_softirq+0xe0/0x220
    [  246.152976]  [<ffffffff8165fedc>] call_softirq+0x1c/0x30
    [  246.158920]  [<ffffffff810045f5>] do_softirq+0x55/0x90
    [  246.164670]  [<ffffffff81059d35>] irq_exit+0xa5/0xb0
    [  246.170227]  [<ffffffff8166062a>] smp_apic_timer_interrupt+0x4a/0x60
    [  246.177324]  [<ffffffff8165f40a>] apic_timer_interrupt+0x6a/0x70
    [  246.184041]  <EOI>  [<ffffffff81505a1b>] ? cpuidle_enter_state+0x5b/0xe0
    [  246.191559]  [<ffffffff81505a17>] ? cpuidle_enter_state+0x57/0xe0
    [  246.198374]  [<ffffffff81505b5d>] cpuidle_idle_call+0xbd/0x200
    [  246.204900]  [<ffffffff8100b7ae>] arch_cpu_idle+0xe/0x30
    [  246.210846]  [<ffffffff810a47b0>] cpu_startup_entry+0xd0/0x250
    [  246.217371]  [<ffffffff81646b47>] rest_init+0x77/0x80
    [  246.223028]  [<ffffffff81d09e8e>] start_kernel+0x3ee/0x3fb
    [  246.229165]  [<ffffffff81d0989f>] ? repair_env_string+0x5e/0x5e
    [  246.235787]  [<ffffffff81d095a5>] x86_64_start_reservations+0x2a/0x2c
    [  246.242990]  [<ffffffff81d0969f>] x86_64_start_kernel+0xf8/0xfc
    [  246.249610] ---[ end trace fb74fdef54d79039 ]---
    [  246.254807] ixgbe 0000:c2:00.0 p786p1: initiating reset due to tx timeout
    [  246.262489] ixgbe 0000:c2:00.0 p786p1: Reset adapter
    Last login: Mon Nov 11 08:35:14 from 10.18.17.119
    [root@(none) ~]# [  246.792676] ixgbe 0000:c2:00.0 p786p1: detected SFP+: 5
    [  249.231598] ixgbe 0000:c2:00.0 p786p1: NIC Link is Up 10 Gbps, Flow Control: RX/TX
    [  246.792676] ixgbe 0000:c2:00.0 p786p1: detected SFP+: 5
    [  249.231598] ixgbe 0000:c2:00.0 p786p1: NIC Link is Up 10 Gbps, Flow Control: RX/TX
    
    (last lines keep repeating.  ixgbe driver is dead until module reload.)
    
    If the downed cpu has more vectors than are free on the remaining cpus on the
    system, it is possible that some vectors are "orphaned" even though they are
    assigned to a cpu.  In this case, since the ixgbe driver had a watchdog, the
    watchdog fired and notified that something was wrong.
    
    This patch adds a function, check_vectors(), to compare the number of vectors
    on the CPU going down and compares it to the number of vectors available on
    the system.  If there aren't enough vectors for the CPU to go down, an
    error is returned and propogated back to userspace.
    
    v2: Do not need to look at percpu irqs
    v3: Need to check affinity to prevent counting of MSIs in IOAPIC Lowest
        Priority Mode
    v4: Additional changes suggested by Gong Chen.
    v5/v6/v7/v8: Updated comment text
    
    Signed-off-by: Prarit Bhargava <prarit@redhat.com>
    Link: http://lkml.kernel.org/r/1389613861-3853-1-git-send-email-prarit@redhat.com
    Reviewed-by: Gong Chen <gong.chen@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Seiji Aguchi <seiji.aguchi@hds.com>
    Cc: Yang Zhang <yang.z.zhang@Intel.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Janet Morgan <janet.morgan@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Ruiv Wang <ruiv.wang@gmail.com>
    Cc: Gong Chen <gong.chen@linux.intel.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit d8804ba0670cf260cce15f9d98bb2f0b668c0a81
Author: Vincent Stehlé <vincent.stehle@laposte.net>
Date:   Sun Sep 7 22:27:10 2014 +0200

    usb: host: ohci-spear: fix ohci_dump parameters
    
    Commit 6a04d05acfb51355 ("USB: OHCI: fix bugs in debug routines") has removed
    the unused `verbose' argument of the debug function ohci_dump(); adapt
    ohci-spear accordingly.
    
    This fixes the following compilation error:
    
      drivers/usb/host/ohci-spear.c: In function ‘ohci_spear_start’:
      drivers/usb/host/ohci-spear.c:56:2: error: too many arguments to function ‘ohci_dump’
    
    Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 406eb8e630446eff74211cba53a536f232bbefd1
Author: Jonas Bonn <jonas@southpole.se>
Date:   Sun Feb 19 17:36:53 2012 +0100

    openrisc: Rework signal handling
    
    commit 10f67dbf6add97751050f294d4c8e0cc1e5c2c23 upstream.
    
    The mainline signal handling code for OpenRISC has been buggy since day
    one with respect to syscall restart.  This patch significantly reworks
    the signal handling code:
    
    i)   Move the "work pending" loop to C code (borrowed from ARM arch)
    
    ii)  Allow a tracer to muck about with the IP and skip syscall restart
         in that case (again, borrowed from ARM)
    
    iii) Make signal handling WRT syscall restart actually work
    
    v)   Make the signal handling code look more like that of other
         architectures so that it's easier for others to follow
    
    Reported-by: Anders Nystrom <anders@southpole.se>
    Signed-off-by: Jonas Bonn <jonas@southpole.se>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>