commit af92ba8fd23cb5811d96b833bbb7133efefeb5b9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 17 09:21:23 2014 -0700

    Linux 3.14.19

commit 1143261f66aec99fdfbc98903b55d51bb55572a1
Author: David Howells <dhowells@redhat.com>
Date:   Wed Sep 10 22:22:00 2014 +0100

    KEYS: Fix termination condition in assoc array garbage collection
    
    commit 95389b08d93d5c06ec63ab49bd732b0069b7c35e upstream.
    
    This fixes CVE-2014-3631.
    
    It is possible for an associative array to end up with a shortcut node at the
    root of the tree if there are more than fan-out leaves in the tree, but they
    all crowd into the same slot in the lowest level (ie. they all have the same
    first nibble of their index keys).
    
    When assoc_array_gc() returns back up the tree after scanning some leaves, it
    can fall off of the root and crash because it assumes that the back pointer
    from a shortcut (after label ascend_old_tree) must point to a normal node -
    which isn't true of a shortcut node at the root.
    
    Should we find we're ascending rootwards over a shortcut, we should check to
    see if the backpointer is zero - and if it is, we have completed the scan.
    
    This particular bug cannot occur if the root node is not a shortcut - ie. if
    you have fewer than 17 keys in a keyring or if you have at least two keys that
    sit into separate slots (eg. a keyring and a non keyring).
    
    This can be reproduced by:
    
    	ring=`keyctl newring bar @s`
    	for ((i=1; i<=18; i++)); do last_key=`keyctl newring foo$i $ring`; done
    	keyctl timeout $last_key 2
    
    Doing this:
    
    	echo 3 >/proc/sys/kernel/keys/gc_delay
    
    first will speed things up.
    
    If we do fall off of the top of the tree, we get the following oops:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
    IP: [<ffffffff8136cea7>] assoc_array_gc+0x2f7/0x540
    PGD dae15067 PUD cfc24067 PMD 0
    Oops: 0000 [#1] SMP
    Modules linked in: xt_nat xt_mark nf_conntrack_netbios_ns nf_conntrack_broadcast ip6t_rpfilter ip6t_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_ni
    CPU: 0 PID: 26011 Comm: kworker/0:1 Not tainted 3.14.9-200.fc20.x86_64 #1
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Workqueue: events key_garbage_collector
    task: ffff8800918bd580 ti: ffff8800aac14000 task.ti: ffff8800aac14000
    RIP: 0010:[<ffffffff8136cea7>] [<ffffffff8136cea7>] assoc_array_gc+0x2f7/0x540
    RSP: 0018:ffff8800aac15d40  EFLAGS: 00010206
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff8800aaecacc0
    RDX: ffff8800daecf440 RSI: 0000000000000001 RDI: ffff8800aadc2bc0
    RBP: ffff8800aac15da8 R08: 0000000000000001 R09: 0000000000000003
    R10: ffffffff8136ccc7 R11: 0000000000000000 R12: 0000000000000000
    R13: 0000000000000000 R14: 0000000000000070 R15: 0000000000000001
    FS:  0000000000000000(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000018 CR3: 00000000db10d000 CR4: 00000000000006f0
    Stack:
     ffff8800aac15d50 0000000000000011 ffff8800aac15db8 ffffffff812e2a70
     ffff880091a00600 0000000000000000 ffff8800aadc2bc3 00000000cd42c987
     ffff88003702df20 ffff88003702dfa0 0000000053b65c09 ffff8800aac15fd8
    Call Trace:
     [<ffffffff812e2a70>] ? keyring_detect_cycle_iterator+0x30/0x30
     [<ffffffff812e3e75>] keyring_gc+0x75/0x80
     [<ffffffff812e1424>] key_garbage_collector+0x154/0x3c0
     [<ffffffff810a67b6>] process_one_work+0x176/0x430
     [<ffffffff810a744b>] worker_thread+0x11b/0x3a0
     [<ffffffff810a7330>] ? rescuer_thread+0x3b0/0x3b0
     [<ffffffff810ae1a8>] kthread+0xd8/0xf0
     [<ffffffff810ae0d0>] ? insert_kthread_work+0x40/0x40
     [<ffffffff816ffb7c>] ret_from_fork+0x7c/0xb0
     [<ffffffff810ae0d0>] ? insert_kthread_work+0x40/0x40
    Code: 08 4c 8b 22 0f 84 bf 00 00 00 41 83 c7 01 49 83 e4 fc 41 83 ff 0f 4c 89 65 c0 0f 8f 5a fe ff ff 48 8b 45 c0 4d 63 cf 49 83 c1 02 <4e> 8b 34 c8 4d 85 f6 0f 84 be 00 00 00 41 f6 c6 01 0f 84 92
    RIP  [<ffffffff8136cea7>] assoc_array_gc+0x2f7/0x540
     RSP <ffff8800aac15d40>
    CR2: 0000000000000018
    ---[ end trace 1129028a088c0cbd ]---
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Don Zickus <dzickus@redhat.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed35863a772342685da9433eb930400bb4963c60
Author: David Howells <dhowells@redhat.com>
Date:   Tue Sep 2 13:52:20 2014 +0100

    KEYS: Fix use-after-free in assoc_array_gc()
    
    commit 27419604f51a97d497853f14142c1059d46eb597 upstream.
    
    An edit script should be considered inaccessible by a function once it has
    called assoc_array_apply_edit() or assoc_array_cancel_edit().
    
    However, assoc_array_gc() is accessing the edit script just after the
    gc_complete: label.
    
    Reported-by: Andreea-Cristina Bernat <bernat.ada@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Andreea-Cristina Bernat <bernat.ada@gmail.com>
    cc: shemming@brocade.com
    cc: paulmck@linux.vnet.ibm.com
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6e22ca59611f6df36c00b359e639d77004a2278
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8be8af18485f9fade90e1743d940252a39eec84
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7fbe53dbb070277d3fc389924dbdf0ab38ff345
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
Date:   Wed Aug 6 06:09:44 2014 +0200

    drm/nouveau: Bump version from 1.1.1 to 1.1.2
    
    commit 7820e5eef0faa4a5e10834296680827f7ce78a89 upstream.
    
    Linux 3.16 fixed multiple bugs in kms pageflip completion events
    and timestamping, which were originally introduced in Linux 3.13.
    
    These fixes have been backported to all stable kernels since 3.13.
    
    However, the userspace nouveau-ddx needs to be aware if it is
    running on a kernel on which these bugs are fixed, or not.
    
    Bump the patchlevel of the drm driver version to signal this,
    so backporting this patch to stable 3.13+ kernels will give the
    ddx the required info.
    
    Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45a317f0809cbbcbb9ff71637175b830050da228
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c994b952818ff582de2a87f8c08efa39a688a210
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf39d69eae243bc12c88db6ac0a3f14b50613a80
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd6f423d53eee9a0d2eafc48eff054526d173629
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24dd220a974b88735c1f0341dc35d2ebedc53ca4
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da432a625434d5f0ebce5d703dafe3bd0c8e8bd4
Author: Pavel Shilovsky <pshilovsky@samba.org>
Date:   Fri Aug 22 13:32:09 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.
    
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db8bf54b17afbc609432464c543597c7e1101358
Author: Miklos Szeredi <mszeredi@suse.cz>
Date:   Tue Apr 1 17:08:41 2014 +0200

    vfs: add d_is_dir()
    
    commit 44b1d53043c482225196e8a9cd9f35163a1b3336 upstream.
    
    Add d_is_dir(dentry) helper which is analogous to S_ISDIR().
    
    To avoid confusion, rename d_is_directory() to d_can_lookup().
    
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Reviewed-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a7e59763ef23145088decdb714d35dfdefe868b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6fc2f0c1df49edd76d34517133fab7fb93cd5cc
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d97cad5311f722aefc9cb7b3bbf723b9e73c6598
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b0111626d2bcb29a25c16a47021b4d440103e84
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9956752afa398ea6e0c9c69b258be6afd73da4b1
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5083cbcde0fd0596acd087cb2f4c338ae33b11ab
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b15481d2e956411e70bbfbbf715bc264a67c23c3
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7700e43dfd1a22998fef58b3c96d4569a55c49c
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d8d95c66e137ca3b99857b440674ed917ca92a4
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d02c3a1bc36fc08d3f1a01e5d3bc8e3b89f20c46
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84cc5247acdd7bd212cb7b7ec82f39e69a571ea6
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 169493da2b83416de663164833bad6e93f1e35fd
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 274a2532607a785216bb022231f16673bbf72e22
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4764072d92fe6a1d2181fb81067ae5791b992b6
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdb396bd32aa6353786be119feb60c261dcace2e
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbbd1b12aa1191bd119d7bc2715215e8b08771ee
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d115e452947b32e5469f91418ebe3bd56811976f
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd1d0eb54f8c3cfe220027710fcdc1e21e98211d
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73fc917ea7c15dc833e5c3e5b93c094ce15039b3
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 10 03:44:55 2014 -0400

    fix copy_tree() regression
    
    commit 12a5b5294cb1896e9a3c9fca8ff5a7e3def4e8c6 upstream.
    
    Since 3.14 we had copy_tree() get the shadowing wrong - if we had one
    vfsmount shadowing another (i.e. if A is a slave of B, C is mounted
    on A/foo, then D got mounted on B/foo creating D' on A/foo shadowed
    by C), copy_tree() of A would make a copy of D' shadow the the copy of
    C, not the other way around.
    
    It's easy to fix, fortunately - just make sure that mount follows
    the one that shadows it in mnt_child as well as in mnt_hash, and when
    copy_tree() decides to attach a new mount, check if the last child
    it has added to the same parent should be shadowing the new one.
    And if it should, just use the same logics commit_tree() has - put the
    new mount into the hash and children lists right after the one that
    should shadow it.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37fada67e1a24ae31c4a2717d81b5c311385d288
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33319369579d86a9f70cf0aa310734fe6301053a
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 247640a32c08cb65dcbcab98721497e41796e58f
Author: Chin-Ran Lo <crlo@marvell.com>
Date:   Tue Jul 1 14:00:14 2014 -0700

    Bluetooth: btmrvl: wait for HOST_SLEEP_ENABLE event in suspend
    
    commit 396e04f4bb9afefb0744715dc76d9abe18ee5fb0 upstream.
    
    After BT_CMD_HOST_SLEEP_ENABLE command finishes, driver should
    wait until getting BT_EVENT_HOST_SLEEP_ENABLE event to complete
    suspend procedure.
    Without this patch the suspend handler would return success
    earlier. By the time when the BT_EVENT_HOST_SLEEP_ENABLE event
    comes in the controller driver could have already turned off the
    bus clock. This causes kernel crash or system reboot eventually.
    
    Signed-off-by: Chin-Ran Lo <crlo@marvell.com>
    Signed-off-by: Jeff CF Chen <jeffc@marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30f6a1fb4287de9dce822012bd4da1fbdf00cd73
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 30 18:32:05 2014 -0400

    fix EBUSY on umount() from MNT_SHRINKABLE
    
    commit 81b6b06197606b4bef4e427a197aeb808e8d89e1 upstream.
    
    We need the parents of victims alive until namespace_unlock() gets to
    dput() of the (ex-)mountpoints.  However, that screws up the "is it
    busy" checks in case when we have shrinkable mounts that need to be
    killed.  Solution: go ahead and decrement refcounts of parents right
    in umount_tree(), increment them again just before dropping rwsem in
    namespace_unlock() (and let the loop in the end of namespace_unlock()
    finally drop those references for good, as we do now).  Parents can't
    get freed until we drop rwsem - at least one reference is kept until
    then, both in case when parent is among the victims and when it is
    not.  So they'll still be around when we get to namespace_unlock().
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c532b9ce36b10a5b34def0870f5bd7dafc4b1384
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Aug 18 15:09:26 2014 -0400

    get rid of propagate_umount() mistakenly treating slaves as busy.
    
    commit 88b368f27a094277143d8ecd5a056116f6a41520 upstream.
    
    The check in __propagate_umount() ("has somebody explicitly mounted
    something on that slave?") is done *before* taking the already doomed
    victims out of the child lists.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93927a247ca105482a9dbaf58a739c5db2546990
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74006d6e96ec095bd518ba457c4b369d6ef549ba
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92ecaf8784ebb728f2b147f5bfd9af5aa8a35f4e
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Jul 28 17:26:07 2014 -0700

    mnt: Correct permission checks in do_remount
    
    commit 9566d6742852c527bf5af38af5cbb878dad75705 upstream.
    
    While invesgiating the issue where in "mount --bind -oremount,ro ..."
    would result in later "mount --bind -oremount,rw" succeeding even if
    the mount started off locked I realized that there are several
    additional mount flags that should be locked and are not.
    
    In particular MNT_NOSUID, MNT_NODEV, MNT_NOEXEC, and the atime
    flags in addition to MNT_READONLY should all be locked.  These
    flags are all per superblock, can all be changed with MS_BIND,
    and should not be changable if set by a more privileged user.
    
    The following additions to the current logic are added in this patch.
    - nosuid may not be clearable by a less privileged user.
    - nodev  may not be clearable by a less privielged user.
    - noexec may not be clearable by a less privileged user.
    - atime flags may not be changeable by a less privileged user.
    
    The logic with atime is that always setting atime on access is a
    global policy and backup software and auditing software could break if
    atime bits are not updated (when they are configured to be updated),
    and serious performance degradation could result (DOS attack) if atime
    updates happen when they have been explicitly disabled.  Therefore an
    unprivileged user should not be able to mess with the atime bits set
    by a more privileged user.
    
    The additional restrictions are implemented with the addition of
    MNT_LOCK_NOSUID, MNT_LOCK_NODEV, MNT_LOCK_NOEXEC, and MNT_LOCK_ATIME
    mnt flags.
    
    Taken together these changes and the fixes for MNT_LOCK_READONLY
    should make it safe for an unprivileged user to create a user
    namespace and to call "mount --bind -o remount,... ..." without
    the danger of mount flags being changed maliciously.
    
    Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9810174c0384f725a31be1dfc64a881695ad465d
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Jul 28 17:10:56 2014 -0700

    mnt: Move the test for MNT_LOCK_READONLY from change_mount_flags into do_remount
    
    commit 07b645589dcda8b7a5249e096fece2a67556f0f4 upstream.
    
    There are no races as locked mount flags are guaranteed to never change.
    
    Moving the test into do_remount makes it more visible, and ensures all
    filesystem remounts pass the MNT_LOCK_READONLY permission check.  This
    second case is not an issue today as filesystem remounts are guarded
    by capable(CAP_DAC_ADMIN) and thus will always fail in less privileged
    mount namespaces, but it could become an issue in the future.
    
    Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98e68ce8f4a6d3ad72243eecd1022ba120b515d2
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Jul 28 16:26:53 2014 -0700

    mnt: Only change user settable mount flags in remount
    
    commit a6138db815df5ee542d848318e5dae681590fccd 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.
    
    Correct this by replacing the mask of mount flags to preserve
    with a mask of mount flags that may be changed, and preserve
    all others.   This ensures that any future bugs with this mask and
    remount will fail in an easy to detect way where new mount flags
    simply won't change.
    
    Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75ad07770409c4f794a87695cb0661b8e358d6b4
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4d89566253f1631031060f79d5419ced7d53678
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd15e8aa93ffb83a2f0ea49c7838664b32c1e005
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Thu Jul 31 16:22:24 2014 +0100

    xen/events/fifo: reset control block and local HEADs on resume
    
    commit c12784c3d14a2110468ec4d1383f60cfd2665576 upstream.
    
    When using the FIFO-based event channel ABI, if the control block or
    the local HEADs are not reset after resuming the guest may see stale
    HEAD values and will fail to traverse the FIFO correctly.
    
    This may prevent one or more VCPUs from receiving any events following
    a resume.
    
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4df052078015216d52dd1357d82c131059ebfb18
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 089d41d4057ff601e34b701a4d03f06c479900aa
Author: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Date:   Wed Sep 3 13:39:13 2014 +0900

    ACPI / scan: not cache _SUN value in struct acpi_device_pnp
    
    commit a383b68d9fe9864c4d3b86f67ad6488f58136435 upstream.
    
    The _SUN device indentification object is not guaranteed to return
    the same value every time it is executed, so we should not cache its
    return value, but rather execute it every time as needed.  If it is
    cached, an incorrect stale value may be used in some situations.
    
    This issue was exposed by commit 202317a573b2 (ACPI / scan: Add
    acpi_device objects for all device nodes in the namespace).  Fix it
    by avoiding to cache the return value of _SUN.
    
    Fixes: 202317a573b2 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace)
    Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    [ rjw: Changelog ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b56ddf9debed7505e336202209a8a2dfda5852d
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Tue Aug 26 01:29:24 2014 +0200

    ACPI: Run fixed event device notifications in process context
    
    commit 236105db632c6279a020f78c83e22eaef746006b upstream.
    
    Currently, notify callbacks for fixed button events are run from
    interrupt context.  That is not necessary and after commit 0bf6368ee8f2
    (ACPI / button: Add ACPI Button event via netlink routine) it causes
    netlink routines to be called from interrupt context which is not
    correct.
    
    Also, that is different from non-fixed device events (including
    non-fixed button events) whose notify callbacks are all executed from
    process context.
    
    For the above reasons, make fixed button device notify callbacks run
    in process context which will avoid the deadlock when using netlink
    to report button events to user space.
    
    Fixes: 0bf6368ee8f2 (ACPI / button: Add ACPI Button event via netlink routine)
    Link: https://lkml.org/lkml/2014/8/21/606
    Reported-by: Benjamin Block <bebl@mageta.org>
    Reported-by: Knut Petersen <Knut_Petersen@t-online.de>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    [rjw: Function names, subject and changelog.]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6b21fd09d5c83adf6911a856345ebf6de15d321
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c13ebbe85e758f50e8af00e5076b1be9b570c648
Author: Tang Chen <tangchen@cn.fujitsu.com>
Date:   Fri Aug 8 10:30:45 2014 +0800

    ACPI / hotplug: Check scan handlers in acpi_scan_hot_remove()
    
    commit dee1592638ab7ea35a32179b73f9284dead49c03 upstream.
    
    When ACPI_HOTPLUG_MEMORY is not configured, memory_device_handler.attach
    is not set.  In acpi_scan_attach_handler(), the acpi_device->handler will
    not be initialized.
    
    In acpi_scan_hot_remove(), it doesn't check if acpi_device->handler is NULL.
    If we do memory hot-remove without ACPI_HOTPLUG_MEMORY configured, the kernel
    will panic.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000088
     IP: [<ffffffff813e318f>] acpi_device_hotplug+0x1d7/0x4c4
     PGD 0
     Oops: 0000 [#1] SMP
     Modules linked in: sd_mod(E) sr_mod(E) cdrom(E) crc_t10dif(E) crct10dif_common(E) ata_piix(E) libata(E)
     CPU: 0 PID: 41 Comm: kworker/u2:1 Tainted: G            E 3.16.0-rc7--3.16-rc7-tangchen+ #20
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014
     Workqueue: kacpi_hotplug acpi_hotplug_work_fn
     task: ffff8800182436c0 ti: ffff880018254000 task.ti: ffff880018254000
     RIP: 0010:[<ffffffff813e318f>]  [<ffffffff813e318f>] acpi_device_hotplug+0x1d7/0x4c4
     RSP: 0000:ffff880018257da8  EFLAGS: 00000246
     RAX: 0000000000000000 RBX: ffff88001cd8d800 RCX: 0000000000000000
     RDX: 0000000000000000 RSI: ffff88001e40e6f8 RDI: 0000000000000246
     RBP: ffff880018257df0 R08: 0000000000000096 R09: 00000000000011a0
     R10: 63735f6970636120 R11: 725f746f685f6e61 R12: 0000000000000003
     R13: ffff88001cc1c400 R14: ffff88001e062028 R15: 0000000000000040
     FS:  0000000000000000(0000) GS:ffff88001e400000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
     CR2: 0000000000000088 CR3: 000000001a9a2000 CR4: 00000000000006f0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000
     Stack:
      00000000523cab58 ffff88001cd8d9f8 ffff88001852d480 00000000523cab58
      ffff88001852d480 ffff880018221e40 ffff88001cc1c400 ffff88001cce2d00
      0000000000000040 ffff880018257e08 ffffffff813dc31d ffff88001852d480
     Call Trace:
      [<ffffffff813dc31d>] acpi_hotplug_work_fn+0x1e/0x29
      [<ffffffff8108eefb>] process_one_work+0x17b/0x460
      [<ffffffff8108f69d>] worker_thread+0x11d/0x5b0
      [<ffffffff8108f580>] ? rescuer_thread+0x3a0/0x3a0
      [<ffffffff81096811>] kthread+0xe1/0x100
      [<ffffffff81096730>] ? kthread_create_on_node+0x1a0/0x1a0
      [<ffffffff816cc6bc>] ret_from_fork+0x7c/0xb0
      [<ffffffff81096730>] ? kthread_create_on_node+0x1a0/0x1a0
    
    This patch fixes this problem by checking if acpi_device->handler is NULL
    in acpi_scan_hot_remove().
    
    Fixes: d22ddcbc4fb7 (ACPI / hotplug: Add demand_offline hotplug profile flag)
    Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
    [rjw: Subject]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e29a15484d7ea949e49ae7fb7e576a575da824a6
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eea7ccd743516658e7bd57bf4bfbeacc96c43e83
Author: Sebastian Reichel <sre@kernel.org>
Date:   Mon Apr 7 13:14:04 2014 +0200

    bq2415x_charger: Fix Atomic Sleep Bug
    
    commit 3c0185046c0ee49a6e55c714612ef3bcd5385df3 upstream.
    
    Move sysfs_notify and i2c_transfer calls from bq2415x_notifier_call
    to bq2415x_timer_work to avoid sleeping in atomic context.
    
    This fixes the following bug:
    
    [ 7.667449] Workqueue: events power_supply_changed_work
    [ 7.673034] [<c0015c28>] (unwind_backtrace+0x0/0xe0) from [<c0011e1c>] (show_stack+0x10/0x14)
    [ 7.682098] [<c0011e1c>] (show_stack+0x10/0x14) from [<c052cdd0>] (dump_stack+0x78/0xac)
    [ 7.690704] [<c052cdd0>] (dump_stack+0x78/0xac) from [<c052a044>] (__schedule_bug+0x48/0x60)
    [ 7.699645] [<c052a044>] (__schedule_bug+0x48/0x60) from [<c053071c>] (__schedule+0x74/0x638)
    [ 7.708618] [<c053071c>] (__schedule+0x74/0x638) from [<c05301fc>] (schedule_timeout+0x1dc/0x24c)
    [ 7.718017] [<c05301fc>] (schedule_timeout+0x1dc/0x24c) from [<c05316ec>] (wait_for_common+0x138/0x17c)
    [ 7.727966] [<c05316ec>] (wait_for_common+0x138/0x17c) from [<c0362a70>] (omap_i2c_xfer+0x340/0x4a0)
    [ 7.737640] [<c0362a70>] (omap_i2c_xfer+0x340/0x4a0) from [<c035d928>] (__i2c_transfer+0x40/0x74)
    [ 7.747039] [<c035d928>] (__i2c_transfer+0x40/0x74) from [<c035e22c>] (i2c_transfer+0x6c/0x90)
    [ 7.756195] [<c035e22c>] (i2c_transfer+0x6c/0x90) from [<c037ad24>] (bq2415x_i2c_write+0x48/0x78)
    [ 7.765563] [<c037ad24>] (bq2415x_i2c_write+0x48/0x78) from [<c037ae60>] (bq2415x_set_weak_battery_voltage+0x4c/0x50)
    [ 7.776824] [<c037ae60>] (bq2415x_set_weak_battery_voltage+0x4c/0x50) from [<c037bce8>] (bq2415x_set_mode+0xdc/0x14c)
    [ 7.788085] [<c037bce8>] (bq2415x_set_mode+0xdc/0x14c) from [<c037bfb8>] (bq2415x_notifier_call+0xa8/0xb4)
    [ 7.798309] [<c037bfb8>] (bq2415x_notifier_call+0xa8/0xb4) from [<c005f228>] (notifier_call_chain+0x38/0x68)
    [ 7.808715] [<c005f228>] (notifier_call_chain+0x38/0x68) from [<c005f284>] (__atomic_notifier_call_chain+0x2c/0x3c)
    [ 7.819732] [<c005f284>] (__atomic_notifier_call_chain+0x2c/0x3c) from [<c005f2a8>] (atomic_notifier_call_chain+0x14/0x18)
    [ 7.831420] [<c005f2a8>] (atomic_notifier_call_chain+0x14/0x18) from [<c0378078>] (power_supply_changed_work+0x6c/0xb8)
    [ 7.842864] [<c0378078>] (power_supply_changed_work+0x6c/0xb8) from [<c00556c0>] (process_one_work+0x248/0x440)
    [ 7.853546] [<c00556c0>] (process_one_work+0x248/0x440) from [<c0055d6c>] (worker_thread+0x208/0x350)
    [ 7.863372] [<c0055d6c>] (worker_thread+0x208/0x350) from [<c005b0ac>] (kthread+0xc8/0xdc)
    [ 7.872131] [<c005b0ac>] (kthread+0xc8/0xdc) from [<c000e138>] (ret_from_fork+0x14/0x3c)
    
    Fixes: 32260308b4ca ("bq2415x_charger: Use power_supply notifier for automode")
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e56febc9e53bfe891e9bc7fdb2f3903defeb278b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b1a024179d134f2630b2910647021e201cb8edc
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit deeb9f509b205b7b3edac5b8ac2ee7efe249f73a
Author: Andreas Färber <afaerber@suse.de>
Date:   Mon Jul 28 15:05:03 2014 +0200

    ASoC: axi: Fix ADI AXI SPDIF specification
    
    commit d1555c407a65db42126b295425379acb393ba83a upstream.
    
    The specification requires compatible = "adi,axi-spdif-1.00.a" but
    driver and example and file name indicate "adi,axi-spdif-tx-1.00.a".
    Change the specification to match the implementation.
    
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Reviewed-by: Michal Simek <michal.simek@xilinx.com>
    Fixes: d7b528eff927 ("dt: Add bindings documentation for the ADI AXI-SPDIF audio controller")
    Signed-off-by: Andreas Färber <afaerber@suse.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 222a4217299a850786b0cba5de2319b33fdc07b3
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae631fad83dcfa4bd905aa34db4317fc292b3120
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e9d0913e1754d5d0489767e03e4311ceff53891d
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e26a8159b3da6fc21e43c811ba147bce94814e7
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e2dc8d3b72a4a5f79d1d33b102dcdd69b09b426
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1866d24375c29525617aa745a49fd24383f2ad92
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f983c574f4841593d080da40a2facf4bb2740d5d
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1ccac415f7cb78f9f3709350f0eb60df775abdb
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32eda01126f6936ec5287b395ef752ac88e6a17f
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1040b2300e25faf91cba6c299d0d0af14d52fc3f
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87ddd670c859064694abf43f65cace9b5c8b76d0
Author: Alex Smith <alex@alex-smith.me.uk>
Date:   Wed Jul 23 14:40:08 2014 +0100

    MIPS: asm/reg.h: Make 32- and 64-bit definitions available at the same time
    
    commit bcec7c8da6b092b1ff3327fd83c2193adb12f684 upstream.
    
    Get rid of the WANT_COMPAT_REG_H test and instead define both the 32-
    and 64-bit register offset definitions at the same time with
    MIPS{32,64}_ prefixes, then define the existing EF_* names to the
    correct definitions for the kernel's bitness.
    
    This patch is a prerequisite of the following bug fix patch.
    
    Signed-off-by: Alex Smith <alex@alex-smith.me.uk>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7451/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4cda9ad55639841439f9993b4d69e0c551610274
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28391bdf0b5cae8986005963b36efa5614c2eacf
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be9c84dd8f4c6760bbb5ac6a54aaf0117c97cae3
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd5f561d6f2adbeddc86d4b9b71cb9117d4112ed
Author: Alex Smith <alex@alex-smith.me.uk>
Date:   Wed Jul 23 14:40:09 2014 +0100

    MIPS: ptrace: Change GP regset to use correct core dump register layout
    
    commit c23b3d1a53119849dc3c23c417124deb067aa33d upstream.
    
    Commit 6a9c001b7ec3 ("MIPS: Switch ELF core dumper to use regsets.")
    switched the core dumper to use regsets, however the GP regset code
    simply makes a direct copy of the kernel's pt_regs, which does not
    match the original core dump register layout as defined in asm/reg.h.
    Furthermore, the definition of pt_regs can vary with certain Kconfig
    variables, therefore the GP regset can never be relied upon to return
    registers in the same layout.
    
    Therefore, this patch changes the GP regset to match the original core
    dump layout. The layout differs for 32- and 64-bit processes, so
    separate implementations of the get/set functions are added for the
    32- and 64-bit regsets.
    
    Signed-off-by: Alex Smith <alex@alex-smith.me.uk>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7452/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca2bff955468169da9150e8f4bc616e55ff9e99d
Author: Alex Smith <alex@alex-smith.me.uk>
Date:   Wed Jul 23 14:40:07 2014 +0100

    MIPS: ptrace: Test correct task's flags in task_user_regset_view()
    
    commit 65768a1a92cb12cbba87588927cf597a65d560aa upstream.
    
    task_user_regset_view() should test for TIF_32BIT_REGS in the flags of
    the specified task, not of the current task.
    
    Signed-off-by: Alex Smith <alex@alex-smith.me.uk>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7450/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b32e95f23f40f9d932fd46bf6495c8151dccd64
Author: Alex Smith <alex.smith@imgtec.com>
Date:   Wed Jul 23 14:40:11 2014 +0100

    MIPS: O32/32-bit: Fix bug which can cause incorrect system call restarts
    
    commit e90e6fddc57055c4c6b57f92787fea1c065d440b upstream.
    
    On 32-bit/O32, pt_regs has a padding area at the beginning into which the
    syscall arguments passed via the user stack are copied. 4 arguments
    totalling 16 bytes are copied to offset 16 bytes into this area, however
    the area is only 24 bytes long. This means the last 2 arguments overwrite
    pt_regs->regs[{0,1}].
    
    If a syscall function returns an error, handle_sys stores the original
    syscall number in pt_regs->regs[0] for syscall restart. signal.c checks
    whether regs[0] is non-zero, if it is it will check whether the syscall
    return value is one of the ERESTART* codes to see if it must be
    restarted.
    
    Should a syscall be made that results in a non-zero value being copied
    off the user stack into regs[0], and then returns a positive (non-error)
    value that matches one of the ERESTART* error codes, this can be mistaken
    for requiring a syscall restart.
    
    While the possibility for this to occur has always existed, it is made
    much more likely to occur by commit 46e12c07b3b9 ("MIPS: O32 / 32-bit:
    Always copy 4 stack arguments."), since now every syscall will copy 4
    arguments and overwrite regs[0], rather than just those with 7 or 8
    arguments.
    
    Since that commit, booting Debian under a 32-bit MIPS kernel almost
    always results in a hang early in boot, due to a wait4 syscall returning
    a PID that matches one of the ERESTART* codes, which then causes an
    incorrect restart of the syscall.
    
    The problem is fixed by increasing the size of the padding area so that
    arguments copied off the stack will not overwrite pt_regs->regs[{0,1}].
    
    Signed-off-by: Alex Smith <alex.smith@imgtec.com>
    Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
    Tested-by: Aurelien Jarno <aurelien@aurel32.net>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7454/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbd087f41f3a9ab0f63bb5d1df96a50a0715edc6
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c4e8e0a0108f8cc9095a4e23df75b1873f59c31
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Jul 9 15:56:43 2014 +0200

    scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior
    
    commit cd53eb686d2418eda938aad3c9da42b7dfa9351f upstream.
    
    If scsi_remove_host() is called while an rport is in the blocked state
    then scsi_remove_host() will only finish if the rport is unblocked
    from inside a timer function. Make sure that an rport only enters the
    blocked state if a timer will be started that will unblock it. This
    avoids that unloading the ib_srp kernel module after having
    disconnected the initiator from the target system results in a
    deadlock if both the fast_io_fail_tmo and dev_loss_tmo parameters have
    been set to "off".
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
    Reviewed-by: David Dillow <dave@thedillows.org>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aeed424c53c76baac72c10892b10c3bfc5ffb5ee
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1988d080f8522b44d08ac38c9e5f6a881968fce
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2fc0acc5c14a0fd2973d8af261017df4f6d2fa3f
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3b5d5800b1d4a6dc558877eef41c152ee91b1f3
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d36862f10d06de924c743694e0534d373795cac3
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5bf79597351f07bc363394249d1e84bcdb22b6b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5efe60091b1ac9aa634fa50f1deb4eee0b45fa34
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 649c887fb4330e469625ee01b2b5aead263ad3aa
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f06be182d8834d89c80c279e531296e36d3f16e
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce87c6acfc090624d218e7d6c5601fd69f4538b9
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 367136a453ce72a17aa3a32153ccc9cd290f004d
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c376026185f8068e42318b063bc8cc36efd84ad
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edac82fdf82f9bbb6c56edea107320e130460c9b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a75a1f11372b2836f62edc5ce743606ed3df7203
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dae88987d2c185d5c51746451e22709e6ab13256
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da88dbe04677305f47fa4d34ae2aaf0cab5a11fb
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a63fb153d9ee52f36620a6841a55954a03ddc49
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a36b2d0a66165bdb1655cb0327c2aa108aaee66
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b30680d01f90ca25202292ad0412b84e12b1e922
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25c2dc614a5d8ea87bb9fbc9ed7f56cb9e966363
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89746afcbd50794456968318ed59c5c6455ab370
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eec08eecb892a47fba01fc1762d299e84ba98224
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ca5cd1e33333809622d07f34dccd39ceba10e4a
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ae2c97a0a284ca73754acd2b3be33fe4f2505b2
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0250c235de86b20b54d2a3477f48e13759160da8
Author: Stefan Berger <stefanb@linux.vnet.ibm.com>
Date:   Thu Jun 19 15:00:19 2014 -0400

    tpm: Properly clean sysfs entries in error path
    
    commit b49e1043c48dac23f64fba684d31c4a96c1ffaa0 upstream.
    
    Properly clean the sysfs entries in the error path
    
    Reported-by: Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
    Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
    Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b5a02ed633c1bfa97359abcd098aac689c1ca9b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>

commit 9124fa935352e7041fbd5e2ba9574aa32b61e97c
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c8834e3a9e8f7079e4b9876c18f26dd6d19506cf
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9691a7fd3936a8532e9bfa367cd0e01517b4fd5
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Aug 1 20:05:29 2014 +0200

    drm/radeon: use packet2 for nop on hawaii with old firmware
    
    commit 0e16e4cfde70e1cf00f9fe3a8f601d10e73e0ec6 upstream.
    
    Older firmware didn't support the new nop packet.
    
    v2 (Andreas Boll):
     - Drop usage of packet3 for new firmware
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com> (v1)
    Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42ce390ad9a3874337261b470fe1630cd3be27b1
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f8fe3d4b9962c775116e14fb5968328f487b0de
Author: Mark A. Greer <mgreer@animalcreek.com>
Date:   Tue Jul 1 20:28:32 2014 -0700

    spi: omap2-mcspi: Configure hardware when slave driver changes mode
    
    commit 97ca0d6cc118716840ea443e010cb3d5f2d25eaf upstream.
    
    Commit id 2bd16e3e23d9df41592c6b257c59b6860a9cc3ea
    (spi: omap2-mcspi: Do not configure the controller
    on each transfer unless needed) does its job too
    well so omap2_mcspi_setup_transfer() isn't called
    even when an SPI slave driver changes 'spi->mode'.
    The result is that the mode requested by the SPI
    slave driver never takes effect.
    
    Fix this by adding the 'mode' member to the
    omap2_mcspi_cs structure which holds the mode
    value that the hardware is configured for.
    When the SPI slave driver changes 'spi->mode'
    it will be different than the value of this new
    member and the SPI master driver will know that
    the hardware must be reconfigured (by calling
    omap2_mcspi_setup_transfer()).
    
    Fixes: 2bd16e3e23 (spi: omap2-mcspi: Do not configure the controller on each transfer unless needed)
    Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 60149cef5282f0c3ac2b5e55986b3e876391d96b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b35fc7d511cb771bcead67486ccafd94e3d7fbe
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca6e483cd96b13163bcd3939984631663d4cf63e
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bf210770c74c17464b3399d0c5d892d27cea516
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d826fecb15e82fb0af51435458435cc8088c790
Author: Philipp Zabel <p.zabel@pengutronix.de>
Date:   Mon May 26 10:55:51 2014 -0300

    media: mt9v032: fix hblank calculation
    
    commit f17bc3f4707eb87bdb80b895911c551cdd606fbd upstream.
    
    Since (min_row_time - crop->width) can be negative, we have to do a signed
    comparison here. Otherwise max_t casts the negative value to unsigned int
    and sets min_hblank to that invalid value.
    
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45f5ff8b66765f19fbd34b6a0ef49047c3c4a0a5
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dccf12f4879e9462ab1ba8bfc760d7355765504b
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42d452afa6b8d1b5661c51c68f645d0d1183b6d6
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ffb5428a73274d3420163c65379cb99b5d3b468e
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>