commit 24f70aa804cd7f8fee4353cf4990997d1c8375ae
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Mar 24 11:00:27 2018 +0100

    Linux 4.9.90

commit 8dd5c0c47332c67a04830e3842d4d6282f1824fd
Author: Krzysztof Opasiak <kopasiak90@gmail.com>
Date:   Tue Jan 24 03:27:24 2017 +0100

    usb: gadget: f_hid: fix: Move IN request allocation to set_alt()
    
    commit 749494b6bdbbaf0899aa1c62a1ad74cd747bce47 upstream.
    
    Since commit: ba1582f22231 ("usb: gadget: f_hid: use alloc_ep_req()")
    we cannot allocate any requests in bind() as we check if we should
    align request buffer based on endpoint descriptor which is assigned
    in set_alt().
    
    Allocating request in bind() function causes a NULL pointer
    dereference.
    
    This commit moves allocation of IN request from bind() to set_alt()
    to prevent this issue.
    
    Fixes: ba1582f22231 ("usb: gadget: f_hid: use alloc_ep_req()")
    Cc: stable@vger.kernel.org
    Tested-by: David Lechner <david@lechnology.com>
    Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Cc: Bin Liu <b-liu@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 805cbd500ee258f8c8e5c0c709389fffd70994eb
Author: Leon Romanovsky <leonro@mellanox.com>
Date:   Tue Mar 13 18:37:27 2018 +0200

    RDMA/ucma: Don't allow join attempts for unsupported AF family
    
    commit 0c81ffc60d5280991773d17e84bda605387148b1 upstream.
    
    Users can provide garbage while calling to ucma_join_ip_multicast(),
    it will indirectly cause to rdma_addr_size() return 0, making the
    call to ucma_process_join(), which had the right checks, but it is
    better to check the input as early as possible.
    
    The following crash from syzkaller revealed it.
    
    kernel BUG at lib/string.c:1052!
    invalid opcode: 0000 [#1] SMP KASAN Dumping ftrace buffer:
       (ftrace buffer empty)
    Modules linked in:
    CPU: 0 PID: 4113 Comm: syz-executor0 Not tainted 4.16.0-rc5+ #261
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:fortify_panic+0x13/0x20 lib/string.c:1051
    RSP: 0018:ffff8801ca81f8f0 EFLAGS: 00010286
    RAX: 0000000000000022 RBX: 1ffff10039503f23 RCX: 0000000000000000
    RDX: 0000000000000022 RSI: 1ffff10039503ed3 RDI: ffffed0039503f12
    RBP: ffff8801ca81f8f0 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000006 R11: 0000000000000000 R12: ffff8801ca81f998
    R13: ffff8801ca81f938 R14: ffff8801ca81fa58 R15: 000000000000fa00
    FS:  0000000000000000(0000) GS:ffff8801db200000(0063) knlGS:000000000a12a900
    CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
    CR2: 0000000008138024 CR3: 00000001cbb58004 CR4: 00000000001606f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     memcpy include/linux/string.h:344 [inline]
     ucma_join_ip_multicast+0x36b/0x3b0 drivers/infiniband/core/ucma.c:1421
     ucma_write+0x2d6/0x3d0 drivers/infiniband/core/ucma.c:1633
     __vfs_write+0xef/0x970 fs/read_write.c:480
     vfs_write+0x189/0x510 fs/read_write.c:544
     SYSC_write fs/read_write.c:589 [inline]
     SyS_write+0xef/0x220 fs/read_write.c:581
     do_syscall_32_irqs_on arch/x86/entry/common.c:330 [inline]
     do_fast_syscall_32+0x3ec/0xf9f arch/x86/entry/common.c:392
     entry_SYSENTER_compat+0x70/0x7f arch/x86/entry/entry_64_compat.S:139
    RIP: 0023:0xf7f9ec99
    RSP: 002b:00000000ff8172cc EFLAGS: 00000282 ORIG_RAX: 0000000000000004
    RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000020000100
    RDX: 0000000000000063 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    Code: 08 5b 41 5c 41 5d 41 5e 41 5f 5d c3 0f 0b 48 89 df e8 42 2c e3 fb eb de
    55 48 89 fe 48 c7 c7 80 75 98 86 48 89 e5 e8 85 95 94 fb <0f> 0b 90 90 90 90
    90 90 90 90 90 90 90 55 48 89 e5 41 57 41 56
    RIP: fortify_panic+0x13/0x20 lib/string.c:1051 RSP: ffff8801ca81f8f0
    
    Fixes: 5bc2b7b397b0 ("RDMA/ucma: Allow user space to specify AF_IB when joining multicast")
    Reported-by: <syzbot+2287ac532caa81900a4e@syzkaller.appspotmail.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Reviewed-by: Sean Hefty <sean.hefty@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3fb6525c99c2ac9940953f421e4e7d1e354b0e6
Author: Leon Romanovsky <leonro@mellanox.com>
Date:   Tue Mar 13 11:43:23 2018 +0200

    RDMA/ucma: Fix access to non-initialized CM_ID object
    
    commit 7688f2c3bbf55e52388e37ac5d63ca471a7712e1 upstream.
    
    The attempt to join multicast group without ensuring that CMA device
    exists will lead to the following crash reported by syzkaller.
    
    [   64.076794] BUG: KASAN: null-ptr-deref in rdma_join_multicast+0x26e/0x12c0
    [   64.076797] Read of size 8 at addr 00000000000000b0 by task join/691
    [   64.076797]
    [   64.076800] CPU: 1 PID: 691 Comm: join Not tainted 4.16.0-rc1-00219-gb97853b65b93 #23
    [   64.076802] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.0-0-g63451fca13-prebuilt.qemu-proj4
    [   64.076803] Call Trace:
    [   64.076809]  dump_stack+0x5c/0x77
    [   64.076817]  kasan_report+0x163/0x380
    [   64.085859]  ? rdma_join_multicast+0x26e/0x12c0
    [   64.086634]  rdma_join_multicast+0x26e/0x12c0
    [   64.087370]  ? rdma_disconnect+0xf0/0xf0
    [   64.088579]  ? __radix_tree_replace+0xc3/0x110
    [   64.089132]  ? node_tag_clear+0x81/0xb0
    [   64.089606]  ? idr_alloc_u32+0x12e/0x1a0
    [   64.090517]  ? __fprop_inc_percpu_max+0x150/0x150
    [   64.091768]  ? tracing_record_taskinfo+0x10/0xc0
    [   64.092340]  ? idr_alloc+0x76/0xc0
    [   64.092951]  ? idr_alloc_u32+0x1a0/0x1a0
    [   64.093632]  ? ucma_process_join+0x23d/0x460
    [   64.094510]  ucma_process_join+0x23d/0x460
    [   64.095199]  ? ucma_migrate_id+0x440/0x440
    [   64.095696]  ? futex_wake+0x10b/0x2a0
    [   64.096159]  ucma_join_multicast+0x88/0xe0
    [   64.096660]  ? ucma_process_join+0x460/0x460
    [   64.097540]  ? _copy_from_user+0x5e/0x90
    [   64.098017]  ucma_write+0x174/0x1f0
    [   64.098640]  ? ucma_resolve_route+0xf0/0xf0
    [   64.099343]  ? rb_erase_cached+0x6c7/0x7f0
    [   64.099839]  __vfs_write+0xc4/0x350
    [   64.100622]  ? perf_syscall_enter+0xe4/0x5f0
    [   64.101335]  ? kernel_read+0xa0/0xa0
    [   64.103525]  ? perf_sched_cb_inc+0xc0/0xc0
    [   64.105510]  ? syscall_exit_register+0x2a0/0x2a0
    [   64.107359]  ? __switch_to+0x351/0x640
    [   64.109285]  ? fsnotify+0x899/0x8f0
    [   64.111610]  ? fsnotify_unmount_inodes+0x170/0x170
    [   64.113876]  ? __fsnotify_update_child_dentry_flags+0x30/0x30
    [   64.115813]  ? ring_buffer_record_is_on+0xd/0x20
    [   64.117824]  ? __fget+0xa8/0xf0
    [   64.119869]  vfs_write+0xf7/0x280
    [   64.122001]  SyS_write+0xa1/0x120
    [   64.124213]  ? SyS_read+0x120/0x120
    [   64.126644]  ? SyS_read+0x120/0x120
    [   64.128563]  do_syscall_64+0xeb/0x250
    [   64.130732]  entry_SYSCALL_64_after_hwframe+0x21/0x86
    [   64.132984] RIP: 0033:0x7f5c994ade99
    [   64.135699] RSP: 002b:00007f5c99b97d98 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    [   64.138740] RAX: ffffffffffffffda RBX: 00000000200001e4 RCX: 00007f5c994ade99
    [   64.141056] RDX: 00000000000000a0 RSI: 00000000200001c0 RDI: 0000000000000015
    [   64.143536] RBP: 00007f5c99b97ec0 R08: 0000000000000000 R09: 0000000000000000
    [   64.146017] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f5c99b97fc0
    [   64.148608] R13: 0000000000000000 R14: 00007fff660e1c40 R15: 00007f5c99b989c0
    [   64.151060]
    [   64.153703] Disabling lock debugging due to kernel taint
    [   64.156032] BUG: unable to handle kernel NULL pointer dereference at 00000000000000b0
    [   64.159066] IP: rdma_join_multicast+0x26e/0x12c0
    [   64.161451] PGD 80000001d0298067 P4D 80000001d0298067 PUD 1dea39067 PMD 0
    [   64.164442] Oops: 0000 [#1] SMP KASAN PTI
    [   64.166817] CPU: 1 PID: 691 Comm: join Tainted: G    B 4.16.0-rc1-00219-gb97853b65b93 #23
    [   64.170004] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.0-0-g63451fca13-prebuilt.qemu-proj4
    [   64.174985] RIP: 0010:rdma_join_multicast+0x26e/0x12c0
    [   64.177246] RSP: 0018:ffff8801c8207860 EFLAGS: 00010282
    [   64.179901] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff94789522
    [   64.183344] RDX: 1ffffffff2d50fa5 RSI: 0000000000000297 RDI: 0000000000000297
    [   64.186237] RBP: ffff8801c8207a50 R08: 0000000000000000 R09: ffffed0039040ea7
    [   64.189328] R10: 0000000000000001 R11: ffffed0039040ea6 R12: 0000000000000000
    [   64.192634] R13: 0000000000000000 R14: ffff8801e2022800 R15: ffff8801d4ac2400
    [   64.196105] FS:  00007f5c99b98700(0000) GS:ffff8801e5d00000(0000) knlGS:0000000000000000
    [   64.199211] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   64.202046] CR2: 00000000000000b0 CR3: 00000001d1c48004 CR4: 00000000003606a0
    [   64.205032] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [   64.208221] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [   64.211554] Call Trace:
    [   64.213464]  ? rdma_disconnect+0xf0/0xf0
    [   64.216124]  ? __radix_tree_replace+0xc3/0x110
    [   64.219337]  ? node_tag_clear+0x81/0xb0
    [   64.222140]  ? idr_alloc_u32+0x12e/0x1a0
    [   64.224422]  ? __fprop_inc_percpu_max+0x150/0x150
    [   64.226588]  ? tracing_record_taskinfo+0x10/0xc0
    [   64.229763]  ? idr_alloc+0x76/0xc0
    [   64.232186]  ? idr_alloc_u32+0x1a0/0x1a0
    [   64.234505]  ? ucma_process_join+0x23d/0x460
    [   64.237024]  ucma_process_join+0x23d/0x460
    [   64.240076]  ? ucma_migrate_id+0x440/0x440
    [   64.243284]  ? futex_wake+0x10b/0x2a0
    [   64.245302]  ucma_join_multicast+0x88/0xe0
    [   64.247783]  ? ucma_process_join+0x460/0x460
    [   64.250841]  ? _copy_from_user+0x5e/0x90
    [   64.253878]  ucma_write+0x174/0x1f0
    [   64.257008]  ? ucma_resolve_route+0xf0/0xf0
    [   64.259877]  ? rb_erase_cached+0x6c7/0x7f0
    [   64.262746]  __vfs_write+0xc4/0x350
    [   64.265537]  ? perf_syscall_enter+0xe4/0x5f0
    [   64.267792]  ? kernel_read+0xa0/0xa0
    [   64.270358]  ? perf_sched_cb_inc+0xc0/0xc0
    [   64.272575]  ? syscall_exit_register+0x2a0/0x2a0
    [   64.275367]  ? __switch_to+0x351/0x640
    [   64.277700]  ? fsnotify+0x899/0x8f0
    [   64.280530]  ? fsnotify_unmount_inodes+0x170/0x170
    [   64.283156]  ? __fsnotify_update_child_dentry_flags+0x30/0x30
    [   64.286182]  ? ring_buffer_record_is_on+0xd/0x20
    [   64.288749]  ? __fget+0xa8/0xf0
    [   64.291136]  vfs_write+0xf7/0x280
    [   64.292972]  SyS_write+0xa1/0x120
    [   64.294965]  ? SyS_read+0x120/0x120
    [   64.297474]  ? SyS_read+0x120/0x120
    [   64.299751]  do_syscall_64+0xeb/0x250
    [   64.301826]  entry_SYSCALL_64_after_hwframe+0x21/0x86
    [   64.304352] RIP: 0033:0x7f5c994ade99
    [   64.306711] RSP: 002b:00007f5c99b97d98 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    [   64.309577] RAX: ffffffffffffffda RBX: 00000000200001e4 RCX: 00007f5c994ade99
    [   64.312334] RDX: 00000000000000a0 RSI: 00000000200001c0 RDI: 0000000000000015
    [   64.315783] RBP: 00007f5c99b97ec0 R08: 0000000000000000 R09: 0000000000000000
    [   64.318365] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f5c99b97fc0
    [   64.320980] R13: 0000000000000000 R14: 00007fff660e1c40 R15: 00007f5c99b989c0
    [   64.323515] Code: e8 e8 79 08 ff 4c 89 ff 45 0f b6 a7 b8 01 00 00 e8 68 7c 08 ff 49 8b 1f 4d 89 e5 49 c1 e4 04 48 8
    [   64.330753] RIP: rdma_join_multicast+0x26e/0x12c0 RSP: ffff8801c8207860
    [   64.332979] CR2: 00000000000000b0
    [   64.335550] ---[ end trace 0c00c17a408849c1 ]---
    
    Reported-by: <syzbot+e6aba77967bd72cbc9d6@syzkaller.appspotmail.com>
    Fixes: c8f6a362bf3e ("RDMA/cma: Add multicast communication support")
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Reviewed-by: Sean Hefty <sean.hefty@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbdfb44745abd2daa8af06e553d7628570daf250
Author: Jerome Brunet <jbrunet@baylibre.com>
Date:   Wed Feb 14 14:43:36 2018 +0100

    clk: migrate the count of orphaned clocks at init
    
    commit 99652a469df19086d594e8e89757d4081a812789 upstream.
    
    The orphan clocks reparents should migrate any existing count from the
    orphan clock to its new acestor clocks, otherwise we may have
    inconsistent counts in the tree and end-up with gated critical clocks
    
    Assuming we have two clocks, A and B.
    * Clock A has CLK_IS_CRITICAL flag set.
    * Clock B is an ancestor of A which can gate. Clock B gate is left
      enabled by the bootloader.
    
    Step 1: Clock A is registered. Since it is a critical clock, it is
    enabled. The clock being still an orphan, no parent are enabled.
    
    Step 2: Clock B is registered and reparented to clock A (potentially
    through several other clocks). We are now in situation where the enable
    count of clock A is 1 while the enable count of its ancestors is 0, which
    is not good.
    
    Step 3: in lateinit, clk_disable_unused() is called, the enable_count of
    clock B being 0, clock B is gated and and critical clock A actually gets
    disabled.
    
    This situation was found while adding fdiv_clk gates to the meson8b
    platform.  These clocks parent clk81 critical clock, which is the mother
    of all peripheral clocks in this system. Because of the issue described
    here, the system is crashing when clk_disable_unused() is called.
    
    The situation is solved by reverting
    commit f8f8f1d04494 ("clk: Don't touch hardware when reparenting during registration").
    To avoid breaking again the situation described in this commit
    description, enabling critical clock should be done before walking the
    orphan list. This way, a parent critical clock may not be accidentally
    disabled due to the CLK_OPS_PARENT_ENABLE mechanism.
    
    Fixes: f8f8f1d04494 ("clk: Don't touch hardware when reparenting during registration")
    Cc: Stephen Boyd <sboyd@codeaurora.org>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Cc: Dong Aisheng <aisheng.dong@nxp.com>
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Michael Turquette <mturquette@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 971e09c7be1c051272663cd552c4a815d6f7a151
Author: Boris Pismenny <borisp@mellanox.com>
Date:   Thu Mar 8 15:51:40 2018 +0200

    IB/mlx5: Fix out-of-bounds read in create_raw_packet_qp_rq
    
    commit 2c292dbb398ee46fc1343daf6c3cf9715a75688e upstream.
    
    Add a check for the length of the qpin structure to prevent out-of-bounds reads
    
    BUG: KASAN: slab-out-of-bounds in create_raw_packet_qp+0x114c/0x15e2
    Read of size 8192 at addr ffff880066b99290 by task syz-executor3/549
    
    CPU: 3 PID: 549 Comm: syz-executor3 Not tainted 4.15.0-rc2+ #27 Hardware
    name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014
    Call Trace:
     dump_stack+0x8d/0xd4
     print_address_description+0x73/0x290
     kasan_report+0x25c/0x370
     ? create_raw_packet_qp+0x114c/0x15e2
     memcpy+0x1f/0x50
     create_raw_packet_qp+0x114c/0x15e2
     ? create_raw_packet_qp_tis.isra.28+0x13d/0x13d
     ? lock_acquire+0x370/0x370
     create_qp_common+0x2245/0x3b50
     ? destroy_qp_user.isra.47+0x100/0x100
     ? kasan_kmalloc+0x13d/0x170
     ? sched_clock_cpu+0x18/0x180
     ? fs_reclaim_acquire.part.15+0x5/0x30
     ? __lock_acquire+0xa11/0x1da0
     ? sched_clock_cpu+0x18/0x180
     ? kmem_cache_alloc_trace+0x17e/0x310
     ? mlx5_ib_create_qp+0x30e/0x17b0
     mlx5_ib_create_qp+0x33d/0x17b0
     ? sched_clock_cpu+0x18/0x180
     ? create_qp_common+0x3b50/0x3b50
     ? lock_acquire+0x370/0x370
     ? __radix_tree_lookup+0x180/0x220
     ? uverbs_try_lock_object+0x68/0xc0
     ? rdma_lookup_get_uobject+0x114/0x240
     create_qp.isra.5+0xce4/0x1e20
     ? ib_uverbs_ex_create_cq_cb+0xa0/0xa0
     ? copy_ah_attr_from_uverbs.isra.2+0xa00/0xa00
     ? ib_uverbs_cq_event_handler+0x160/0x160
     ? __might_fault+0x17c/0x1c0
     ib_uverbs_create_qp+0x21b/0x2a0
     ? ib_uverbs_destroy_cq+0x2e0/0x2e0
     ib_uverbs_write+0x55a/0xad0
     ? ib_uverbs_destroy_cq+0x2e0/0x2e0
     ? ib_uverbs_destroy_cq+0x2e0/0x2e0
     ? ib_uverbs_open+0x760/0x760
     ? futex_wake+0x147/0x410
     ? check_prev_add+0x1680/0x1680
     ? do_futex+0x3d3/0xa60
     ? sched_clock_cpu+0x18/0x180
     __vfs_write+0xf7/0x5c0
     ? ib_uverbs_open+0x760/0x760
     ? kernel_read+0x110/0x110
     ? lock_acquire+0x370/0x370
     ? __fget+0x264/0x3b0
     vfs_write+0x18a/0x460
     SyS_write+0xc7/0x1a0
     ? SyS_read+0x1a0/0x1a0
     ? trace_hardirqs_on_thunk+0x1a/0x1c
     entry_SYSCALL_64_fastpath+0x18/0x85
    RIP: 0033:0x4477b9
    RSP: 002b:00007f1822cadc18 EFLAGS: 00000292 ORIG_RAX: 0000000000000001
    RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00000000004477b9
    RDX: 0000000000000070 RSI: 000000002000a000 RDI: 0000000000000005
    RBP: 0000000000708000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000292 R12: 00000000ffffffff
    R13: 0000000000005d70 R14: 00000000006e6e30 R15: 0000000020010ff0
    
    Allocated by task 549:
     __kmalloc+0x15e/0x340
     kvmalloc_node+0xa1/0xd0
     create_user_qp.isra.46+0xd42/0x1610
     create_qp_common+0x2e63/0x3b50
     mlx5_ib_create_qp+0x33d/0x17b0
     create_qp.isra.5+0xce4/0x1e20
     ib_uverbs_create_qp+0x21b/0x2a0
     ib_uverbs_write+0x55a/0xad0
     __vfs_write+0xf7/0x5c0
     vfs_write+0x18a/0x460
     SyS_write+0xc7/0x1a0
     entry_SYSCALL_64_fastpath+0x18/0x85
    
    Freed by task 368:
     kfree+0xeb/0x2f0
     kernfs_fop_release+0x140/0x180
     __fput+0x266/0x700
     task_work_run+0x104/0x180
     exit_to_usermode_loop+0xf7/0x110
     syscall_return_slowpath+0x298/0x370
     entry_SYSCALL_64_fastpath+0x83/0x85
    
    The buggy address belongs to the object at ffff880066b99180  which
    belongs to the cache kmalloc-512 of size 512 The buggy address is
    located 272 bytes inside of  512-byte region [ffff880066b99180,
    ffff880066b99380) The buggy address belongs to the page:
    page:000000006040eedd count:1 mapcount:0 mapping:          (null)
    index:0x0 compound_mapcount: 0
    flags: 0x4000000000008100(slab|head)
    raw: 4000000000008100 0000000000000000 0000000000000000 0000000180190019
    raw: ffffea00019a7500 0000000b0000000b ffff88006c403080 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff880066b99180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     ffff880066b99200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    >ffff880066b99280: 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                             ^
     ffff880066b99300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff880066b99380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    
    Cc: syzkaller <syzkaller@googlegroups.com>
    Fixes: 0fb2ed66a14c ("IB/mlx5: Add create and destroy functionality for Raw Packet QP")
    Signed-off-by: Boris Pismenny <borisp@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2ee1a1843e5cf0e4040d006d6895262e47332d4
Author: Boris Pismenny <borisp@mellanox.com>
Date:   Thu Mar 8 15:51:41 2018 +0200

    IB/mlx5: Fix integer overflows in mlx5_ib_create_srq
    
    commit c2b37f76485f073f020e60b5954b6dc4e55f693c upstream.
    
    This patch validates user provided input to prevent integer overflow due
    to integer manipulation in the mlx5_ib_create_srq function.
    
    Cc: syzkaller <syzkaller@googlegroups.com>
    Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
    Signed-off-by: Boris Pismenny <borisp@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 559205f2899596550b0ea19f733b59b557cc6c1e
Author: Vignesh R <vigneshr@ti.com>
Date:   Tue Dec 19 12:51:16 2017 +0200

    dmaengine: ti-dma-crossbar: Fix event mapping for TPCC_EVT_MUX_60_63
    
    
    [ Upstream commit d087f15786021a9605b20f4c678312510be4cac1 ]
    
    Register layout of a typical TPCC_EVT_MUX_M_N register is such that the
    lowest numbered event is at the lowest byte address and highest numbered
    event at highest byte address. But TPCC_EVT_MUX_60_63 register layout is
    different,  in that the lowest numbered event is at the highest address
    and highest numbered event is at the lowest address. Therefore, modify
    ti_am335x_xbar_write() to handle TPCC_EVT_MUX_60_63 register
    accordingly.
    
    Signed-off-by: Vignesh R <vigneshr@ti.com>
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc0e7313d869e2f67b83e099d540c295a4493281
Author: Sergej Sawazki <sergej@taudac.com>
Date:   Tue Jul 25 23:21:02 2017 +0200

    clk: si5351: Rename internal plls to avoid name collisions
    
    
    [ Upstream commit cdba9a4fb0b53703959ac861e415816cb61aded4 ]
    
    This drivers probe fails due to a clock name collision if a clock named
    'plla' or 'pllb' is already registered when registering this drivers
    internal plls.
    
    Fix it by renaming internal plls to avoid name collisions.
    
    Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Cc: Rabeeh Khoury <rabeeh@solid-run.com>
    Signed-off-by: Sergej Sawazki <sergej@taudac.com>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c53ae7d94e9a79eb6e589d02d4b1fc40fbfa5b45
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Tue Sep 5 11:32:40 2017 +0200

    clk: axi-clkgen: Correctly handle nocount bit in recalc_rate()
    
    
    [ Upstream commit 063578dc5f407f67d149133818efabe457daafda ]
    
    If the nocount bit is set the divider is bypassed and the settings for the
    divider count should be ignored and a divider value of 1 should be assumed.
    Handle this correctly in the driver recalc_rate() callback.
    
    While the driver sets up the part so that the read back dividers values
    yield the correct result the power-on reset settings of the part might not
    reflect this and hence calling e.g. clk_get_rate() without prior calls to
    clk_set_rate() will yield the wrong result.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9fd65f85db4565a3c8ad5728dad3e894cf4ffd11
Author: Stephen Boyd <sboyd@codeaurora.org>
Date:   Thu Nov 2 00:36:09 2017 -0700

    clk: Don't touch hardware when reparenting during registration
    
    
    [ Upstream commit f8f8f1d04494d3a6546bee3f0618c4dba31d7b72 ]
    
    The orphan clocks reparent operation shouldn't touch the hardware
    if clocks are enabled, otherwise it may get a chance to disable a
    newly registered critical clock which triggers the warning below.
    
    Assuming we have two clocks: A and B, B is the parent of A.
    Clock A has flag: CLK_OPS_PARENT_ENABLE
    Clock B has flag: CLK_IS_CRITICAL
    
    Step 1:
    Clock A is registered, then it becomes orphan.
    
    Step 2:
    Clock B is registered. Before clock B reach the critical clock enable
    operation, orphan A will find the newly registered parent B and do
    reparent operation, then parent B will be finally disabled in
    __clk_set_parent_after() due to CLK_OPS_PARENT_ENABLE flag as there's
    still no users of B which will then trigger the following warning.
    
    WARNING: CPU: 0 PID: 0 at drivers/clk/clk.c:597 clk_core_disable+0xb4/0xe0
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.11.0-rc1-00056-gdff1f66-dirty #1373
    Hardware name: Generic DT based system
    Backtrace:
    [<c010c4bc>] (dump_backtrace) from [<c010c764>] (show_stack+0x18/0x1c)
     r6:600000d3 r5:00000000 r4:c0e26358 r3:00000000
    [<c010c74c>] (show_stack) from [<c040599c>] (dump_stack+0xb4/0xe8)
    [<c04058e8>] (dump_stack) from [<c0125c94>] (__warn+0xd8/0x104)
     r10:c0c21cd0 r9:c048aa78 r8:00000255 r7:00000009 r6:c0c1cd90 r5:00000000
     r4:00000000 r3:c0e01d34
    [<c0125bbc>] (__warn) from [<c0125d74>] (warn_slowpath_null+0x28/0x30)
     r9:00000000 r8:ef00bf80 r7:c165ac4c r6:ef00bf80 r5:ef00bf80 r4:ef00bf80
    [<c0125d4c>] (warn_slowpath_null) from [<c048aa78>] (clk_core_disable+0xb4/0xe0)
    [<c048a9c4>] (clk_core_disable) from [<c048be88>] (clk_core_disable_lock+0x20/0x2c)
     r4:000000d3 r3:c0e0af00
    [<c048be68>] (clk_core_disable_lock) from [<c048c224>] (clk_core_disable_unprepare+0x14/0x28)
     r5:00000000 r4:ef00bf80
    [<c048c210>] (clk_core_disable_unprepare) from [<c048c270>] (__clk_set_parent_after+0x38/0x54)
     r4:ef00bd80 r3:000010a0
    [<c048c238>] (__clk_set_parent_after) from [<c048daa8>] (clk_register+0x4d0/0x648)
     r6:ef00d500 r5:ef00bf80 r4:ef00bd80 r3:ef00bfd4
    [<c048d5d8>] (clk_register) from [<c048dc30>] (clk_hw_register+0x10/0x1c)
     r9:00000000 r8:00000003 r7:00000000 r6:00000824 r5:00000001 r4:ef00d500
    [<c048dc20>] (clk_hw_register) from [<c048e698>] (_register_divider+0xcc/0x120)
    [<c048e5cc>] (_register_divider) from [<c048e730>] (clk_register_divider+0x44/0x54)
     r10:00000004 r9:00000003 r8:00000001 r7:00000000 r6:00000003 r5:00000001
     r4:f0810030
    [<c048e6ec>] (clk_register_divider) from [<c0d3ff58>] (imx7ulp_clocks_init+0x558/0xe98)
     r7:c0e296f8 r6:c165c808 r5:00000000 r4:c165c808
    [<c0d3fa00>] (imx7ulp_clocks_init) from [<c0d24db0>] (of_clk_init+0x118/0x1e0)
     r10:00000001 r9:c0e01f68 r8:00000000 r7:c0e01f60 r6:ef7f8974 r5:ef0035c0
     r4:00000006
    [<c0d24c98>] (of_clk_init) from [<c0d04a50>] (time_init+0x2c/0x38)
     r10:efffed40 r9:c0d61a48 r8:c0e78000 r7:c0e07900 r6:ffffffff r5:c0e78000
     r4:00000000
    [<c0d04a24>] (time_init) from [<c0d00b8c>] (start_kernel+0x218/0x394)
    [<c0d00974>] (start_kernel) from [<6000807c>] (0x6000807c)
     r10:00000000 r9:410fc075 r8:6000406a r7:c0e0c930 r6:c0d61a44 r5:c0e07918
     r4:c0e78294
    
    We know that the clk isn't enabled with any sort of prepare_count
    here so we don't need to enable anything to prevent a race. And
    we're holding the prepare mutex so set_rate/set_parent can't race
    here either. Based on an earlier patch by Dong Aisheng.
    
    Fixes: fc8726a2c021 ("clk: core: support clocks which requires parents enable (part 2)")
    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Reported-by: Dong Aisheng <aisheng.dong@nxp.com>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eeed4cf828189504c053c584ae70333c426a5bc2
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Tue Dec 19 09:35:25 2017 -0500

    nfsd4: permit layoutget of executable-only files
    
    
    [ Upstream commit 66282ec1cf004c09083c29cb5e49019037937bbd ]
    
    Clients must be able to read a file in order to execute it, and for pNFS
    that means the client needs to be able to perform a LAYOUTGET on the file.
    
    This behavior for executable-only files was added for OPEN in commit
    a043226bc140 "nfsd4: permit read opens of executable-only files".
    
    This fixes up xfstests generic/126 on block/scsi layouts.
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64d5c600648eab27c8b76189e0eb263f346448b3
Author: Joel Stanley <joel@jms.id.au>
Date:   Mon Dec 18 23:27:03 2017 +1030

    ARM: dts: aspeed-evb: Add unit name to memory node
    
    
    [ Upstream commit e40ed274489a5f516da120186578eb379b452ac6 ]
    
    Fixes a warning when building with W=1.
    
    All of the ASPEED device trees build without warnings now.
    
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc445b384679db0c811d789958963962f963767f
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Tue Aug 8 18:56:37 2017 +0300

    RDMA/ocrdma: Fix permissions for OCRDMA_RESET_STATS
    
    
    [ Upstream commit 744820869166c8c78be891240cf5f66e8a333694 ]
    
    Debugfs file reset_stats is created with S_IRUSR permissions,
    but ocrdma_dbgfs_ops_read() doesn't support OCRDMA_RESET_STATS,
    whereas ocrdma_dbgfs_ops_write() supports only OCRDMA_RESET_STATS.
    
    The patch fixes misstype with permissions.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
    Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1139d77d8a7f9aa6b6ae0a1c902f94775dad2f52
Author: Alexey Kodanev <alexey.kodanev@oracle.com>
Date:   Tue Dec 19 16:59:21 2017 +0300

    ip6_vti: adjust vti mtu according to mtu of lower device
    
    
    [ Upstream commit 53c81e95df1793933f87748d36070a721f6cb287 ]
    
    LTP/udp6_ipsec_vti tests fail when sending large UDP datagrams over
    ip6_vti that require fragmentation and the underlying device has an
    MTU smaller than 1500 plus some extra space for headers. This happens
    because ip6_vti, by default, sets MTU to ETH_DATA_LEN and not updating
    it depending on a destination address or link parameter. Further
    attempts to send UDP packets may succeed because pmtu gets updated on
    ICMPV6_PKT_TOOBIG in vti6_err().
    
    In case the lower device has larger MTU size, e.g. 9000, ip6_vti works
    but not using the possible maximum size, output packets have 1500 limit.
    
    The above cases require manual MTU setup after ip6_vti creation. However
    ip_vti already updates MTU based on lower device with ip_tunnel_bind_dev().
    
    Here is the example when the lower device MTU is set to 9000:
    
      # ip a sh ltp_ns_veth2
          ltp_ns_veth2@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 ...
            inet 10.0.0.2/24 scope global ltp_ns_veth2
            inet6 fd00::2/64 scope global
    
      # ip li add vti6 type vti6 local fd00::2 remote fd00::1
      # ip li show vti6
          vti6@NONE: <POINTOPOINT,NOARP> mtu 1500 ...
            link/tunnel6 fd00::2 peer fd00::1
    
    After the patch:
      # ip li add vti6 type vti6 local fd00::2 remote fd00::1
      # ip li show vti6
          vti6@NONE: <POINTOPOINT,NOARP> mtu 8832 ...
            link/tunnel6 fd00::2 peer fd00::1
    
    Reported-by: Petr Vorel <pvorel@suse.cz>
    Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62088f53b14ff275c32e5c9efb95dbab9e8423c8
Author: Jerry Snitselaar <jsnitsel@redhat.com>
Date:   Wed Dec 20 09:48:56 2017 -0700

    iommu/vt-d: clean up pr_irq if request_threaded_irq fails
    
    
    [ Upstream commit 72d548113881dd32bf7f0b221d031e6586468437 ]
    
    It is unlikely request_threaded_irq will fail, but if it does for some
    reason we should clear iommu->pr_irq in the error path. Also
    intel_svm_finish_prq shouldn't try to clean up the page request
    interrupt if pr_irq is 0. Without these, if request_threaded_irq were
    to fail the following occurs:
    
    fail with no fixes:
    
    [    0.683147] ------------[ cut here ]------------
    [    0.683148] NULL pointer, cannot free irq
    [    0.683158] WARNING: CPU: 1 PID: 1 at kernel/irq/irqdomain.c:1632 irq_domain_free_irqs+0x126/0x140
    [    0.683160] Modules linked in:
    [    0.683163] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.15.0-rc2 #3
    [    0.683165] Hardware name:                  /NUC7i3BNB, BIOS BNKBL357.86A.0036.2017.0105.1112 01/05/2017
    [    0.683168] RIP: 0010:irq_domain_free_irqs+0x126/0x140
    [    0.683169] RSP: 0000:ffffc90000037ce8 EFLAGS: 00010292
    [    0.683171] RAX: 000000000000001d RBX: ffff880276283c00 RCX: ffffffff81c5e5e8
    [    0.683172] RDX: 0000000000000001 RSI: 0000000000000096 RDI: 0000000000000246
    [    0.683174] RBP: ffff880276283c00 R08: 0000000000000000 R09: 000000000000023c
    [    0.683175] R10: 0000000000000007 R11: 0000000000000000 R12: 000000000000007a
    [    0.683176] R13: 0000000000000001 R14: 0000000000000000 R15: 0000010010000000
    [    0.683178] FS:  0000000000000000(0000) GS:ffff88027ec80000(0000) knlGS:0000000000000000
    [    0.683180] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    0.683181] CR2: 0000000000000000 CR3: 0000000001c09001 CR4: 00000000003606e0
    [    0.683182] Call Trace:
    [    0.683189]  intel_svm_finish_prq+0x3c/0x60
    [    0.683191]  free_dmar_iommu+0x1ac/0x1b0
    [    0.683195]  init_dmars+0xaaa/0xaea
    [    0.683200]  ? klist_next+0x19/0xc0
    [    0.683203]  ? pci_do_find_bus+0x50/0x50
    [    0.683205]  ? pci_get_dev_by_id+0x52/0x70
    [    0.683208]  intel_iommu_init+0x498/0x5c7
    [    0.683211]  pci_iommu_init+0x13/0x3c
    [    0.683214]  ? e820__memblock_setup+0x61/0x61
    [    0.683217]  do_one_initcall+0x4d/0x1a0
    [    0.683220]  kernel_init_freeable+0x186/0x20e
    [    0.683222]  ? set_debug_rodata+0x11/0x11
    [    0.683225]  ? rest_init+0xb0/0xb0
    [    0.683226]  kernel_init+0xa/0xff
    [    0.683229]  ret_from_fork+0x1f/0x30
    [    0.683259] Code: 89 ee 44 89 e7 e8 3b e8 ff ff 5b 5d 44 89 e7 44 89 ee 41 5c 41 5d 41 5e e9 a8 84 ff ff 48 c7 c7 a8 71 a7 81 31 c0 e8 6a d3 f9 ff <0f> ff 5b 5d 41 5c 41 5d 41 5
    e c3 0f 1f 44 00 00 66 2e 0f 1f 84
    [    0.683285] ---[ end trace f7650e42792627ca ]---
    
    with iommu->pr_irq = 0, but no check in intel_svm_finish_prq:
    
    [    0.669561] ------------[ cut here ]------------
    [    0.669563] Trying to free already-free IRQ 0
    [    0.669573] WARNING: CPU: 3 PID: 1 at kernel/irq/manage.c:1546 __free_irq+0xa4/0x2c0
    [    0.669574] Modules linked in:
    [    0.669577] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.15.0-rc2 #4
    [    0.669579] Hardware name:                  /NUC7i3BNB, BIOS BNKBL357.86A.0036.2017.0105.1112 01/05/2017
    [    0.669581] RIP: 0010:__free_irq+0xa4/0x2c0
    [    0.669582] RSP: 0000:ffffc90000037cc0 EFLAGS: 00010082
    [    0.669584] RAX: 0000000000000021 RBX: 0000000000000000 RCX: ffffffff81c5e5e8
    [    0.669585] RDX: 0000000000000001 RSI: 0000000000000086 RDI: 0000000000000046
    [    0.669587] RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000000023c
    [    0.669588] R10: 0000000000000007 R11: 0000000000000000 R12: ffff880276253960
    [    0.669589] R13: ffff8802762538a4 R14: ffff880276253800 R15: ffff880276283600
    [    0.669593] FS:  0000000000000000(0000) GS:ffff88027ed80000(0000) knlGS:0000000000000000
    [    0.669594] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    0.669596] CR2: 0000000000000000 CR3: 0000000001c09001 CR4: 00000000003606e0
    [    0.669602] Call Trace:
    [    0.669616]  free_irq+0x30/0x60
    [    0.669620]  intel_svm_finish_prq+0x34/0x60
    [    0.669623]  free_dmar_iommu+0x1ac/0x1b0
    [    0.669627]  init_dmars+0xaaa/0xaea
    [    0.669631]  ? klist_next+0x19/0xc0
    [    0.669634]  ? pci_do_find_bus+0x50/0x50
    [    0.669637]  ? pci_get_dev_by_id+0x52/0x70
    [    0.669639]  intel_iommu_init+0x498/0x5c7
    [    0.669642]  pci_iommu_init+0x13/0x3c
    [    0.669645]  ? e820__memblock_setup+0x61/0x61
    [    0.669648]  do_one_initcall+0x4d/0x1a0
    [    0.669651]  kernel_init_freeable+0x186/0x20e
    [    0.669653]  ? set_debug_rodata+0x11/0x11
    [    0.669656]  ? rest_init+0xb0/0xb0
    [    0.669658]  kernel_init+0xa/0xff
    [    0.669661]  ret_from_fork+0x1f/0x30
    [    0.669662] Code: 7a 08 75 0e e9 c3 01 00 00 4c 39 7b 08 74 57 48 89 da 48 8b 5a 18 48 85 db 75 ee 89 ee 48 c7 c7 78 67 a7 81 31 c0 e8 4c 37 fa ff <0f> ff 48 8b 34 24 4c 89 ef e
    8 0e 4c 68 00 49 8b 46 40 48 8b 80
    [    0.669688] ---[ end trace 58a470248700f2fc ]---
    
    Cc: Alex Williamson <alex.williamson@redhat.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Ashok Raj <ashok.raj@intel.com>
    Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Reviewed-by: Ashok Raj <ashok.raj@intel.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f03b94ef0e8792e06a0212912b1117f26cdc6dda
Author: Brian Norris <briannorris@chromium.org>
Date:   Tue Dec 12 09:43:43 2017 -0800

    pinctrl: rockchip: enable clock when reading pin direction register
    
    
    [ Upstream commit 5c9d8c4f6b8168738a26bcf288516cc3a0886810 ]
    
    We generally leave the GPIO clock disabled, unless an interrupt is
    requested or we're accessing IO registers. We forgot to do this for the
    ->get_direction() callback, which means we can sometimes [1] get
    incorrect results [2] from, e.g., /sys/kernel/debug/gpio.
    
    Enable the clock, so we get the right results!
    
    [1] Sometimes, because many systems have 1 or mor interrupt requested on
    each GPIO bank, so they always leave their clock on.
    
    [2] Incorrect, meaning the register returns 0, and so we interpret that
    as "input".
    
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd6552cfc5f7fce149a9bda2a5438a486db14831
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Wed Mar 1 10:32:57 2017 -0800

    pinctrl: Really force states during suspend/resume
    
    
    [ Upstream commit 981ed1bfbc6c4660b2ddaa8392893e20a6255048 ]
    
    In case a platform only defaults a "default" set of pins, but not a
    "sleep" set of pins, and this particular platform suspends and resumes
    in a way that the pin states are not preserved by the hardware, when we
    resume, we would call pinctrl_single_resume() -> pinctrl_force_default()
    -> pinctrl_select_state() and the first thing we do is check that the
    pins state is the same as before, and do nothing.
    
    In order to fix this, decouple the actual state change from
    pinctrl_select_state() and move it pinctrl_commit_state(), while keeping
    the p->state == state check in pinctrl_select_state() not to change the
    caller assumptions. pinctrl_force_sleep() and pinctrl_force_default()
    are updated to bypass the state check by calling pinctrl_commit_state().
    
    [Linus Walleij]
    The forced pin control states are currently only used in some pin
    controller drivers that grab their own reference to their own pins.
    This is equal to the pin control hogs: pins taken by pin control
    devices since there are no corresponding device in the Linux device
    hierarchy, such as memory controller lines or unused GPIO lines,
    or GPIO lines that are used orthogonally from the GPIO subsystem
    but pincontrol-wise managed as hogs (non-strict mode, allowing
    simultaneous use by GPIO and pin control). For this case forcing
    the state from the drivers' suspend()/resume() callbacks makes
    sense and should semantically match the name of the function.
    
    Fixes: 6e5e959dde0d ("pinctrl: API changes to support multiple states per device")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba936f25f95378142e854cc70e35375a452815a9
Author: Robert Walker <robert.walker@arm.com>
Date:   Mon Dec 18 11:05:44 2017 -0700

    coresight: Fix disabling of CoreSight TPIU
    
    
    [ Upstream commit 11595db8e17faaa05fadc25746c870e31276962f ]
    
    The CoreSight TPIU should be disabled when tracing to other sinks to allow
    them to operate at full bandwidth.
    
    This patch fixes tpiu_disable_hw() to correctly disable the TPIU by
    configuring the TPIU to stop on flush, initiating a manual flush, waiting
    for the flush to complete and then waits for the TPIU to indicate it has
    stopped.
    
    Signed-off-by: Robert Walker <robert.walker@arm.com>
    Tested-by: Mike Leach <mike.leach@linaro.org>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d69cf8561fb995be0e72da6c92e206f342707d67
Author: Sahara <keun-o.park@darkmatter.ae>
Date:   Wed Dec 13 09:10:48 2017 +0400

    pty: cancel pty slave port buf's work in tty_release
    
    
    [ Upstream commit 2b022ab7542df60021ab57854b3faaaf42552eaf ]
    
    In case that CONFIG_SLUB_DEBUG is on and pty is used, races between
    release_one_tty and flush_to_ldisc work threads may happen and lead
    to use-after-free condition on tty->link->port. Because SLUB_DEBUG
    is turned on, freed tty->link->port is filled with POISON_FREE value.
    So far without SLUB_DEBUG, port was filled with zero and flush_to_ldisc
    could return without a problem by checking if tty is NULL.
    
    CPU 0                                 CPU 1
    -----                                 -----
    release_tty                           pty_write
       cancel_work_sync(tty)                 to = tty->link
       tty_kref_put(tty->link)               tty_schedule_flip(to->port)
          << workqueue >>                 ...
          release_one_tty                 ...
             pty_cleanup                  ...
                kfree(tty->link->port)       << workqueue >>
                                             flush_to_ldisc
                                                tty = READ_ONCE(port->itty)
                                                tty is 0x6b6b6b6b6b6b6b6b
                                                !!PANIC!! access tty->ldisc
    
     Unable to handle kernel paging request at virtual address 6b6b6b6b6b6b6b93
     pgd = ffffffc0eb1c3000
     [6b6b6b6b6b6b6b93] *pgd=0000000000000000, *pud=0000000000000000
     ------------[ cut here ]------------
     Kernel BUG at ffffff800851154c [verbose debug info unavailable]
     Internal error: Oops - BUG: 96000004 [#1] PREEMPT SMP
     CPU: 3 PID: 265 Comm: kworker/u8:9 Tainted: G        W 3.18.31-g0a58eeb #1
     Hardware name: Qualcomm Technologies, Inc. MSM 8996pro v1.1 + PMI8996 Carbide (DT)
     Workqueue: events_unbound flush_to_ldisc
     task: ffffffc0ed610ec0 ti: ffffffc0ed624000 task.ti: ffffffc0ed624000
     PC is at ldsem_down_read_trylock+0x0/0x4c
     LR is at tty_ldisc_ref+0x24/0x4c
     pc : [<ffffff800851154c>] lr : [<ffffff800850f6c0>] pstate: 80400145
     sp : ffffffc0ed627cd0
     x29: ffffffc0ed627cd0 x28: 0000000000000000
     x27: ffffff8009e05000 x26: ffffffc0d382cfa0
     x25: 0000000000000000 x24: ffffff800a012f08
     x23: 0000000000000000 x22: ffffffc0703fbc88
     x21: 6b6b6b6b6b6b6b6b x20: 6b6b6b6b6b6b6b93
     x19: 0000000000000000 x18: 0000000000000001
     x17: 00e80000f80d6f53 x16: 0000000000000001
     x15: 0000007f7d826fff x14: 00000000000000a0
     x13: 0000000000000000 x12: 0000000000000109
     x11: 0000000000000000 x10: 0000000000000000
     x9 : ffffffc0ed624000 x8 : ffffffc0ed611580
     x7 : 0000000000000000 x6 : ffffff800a42e000
     x5 : 00000000000003fc x4 : 0000000003bd1201
     x3 : 0000000000000001 x2 : 0000000000000001
     x1 : ffffff800851004c x0 : 6b6b6b6b6b6b6b93
    
    Signed-off-by: Sahara <keun-o.park@darkmatter.ae>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abb3ee3ac5926b271af968737026674f24a90743
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Fri Sep 29 14:49:49 2017 +0300

    drm/omap: DMM: Check for DMM readiness after successful transaction commit
    
    
    [ Upstream commit b7ea6b286c4051e043f691781785e3c4672f014a ]
    
    Check the status of the DMM engine after it is reported that the
    transaction was completed as in rare cases the engine might not reached a
    working state.
    
    The wait_status() will print information in case the DMM is not reached the
    expected state and the dmm_txn_commit() will return with an error code to
    make sure that we are not continuing with a broken setup.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ae338d139874259807f686738b02cb25a863535
Author: H. Nikolaus Schaller <hns@goldelico.com>
Date:   Tue Nov 28 16:48:54 2017 +0100

    omapdrm: panel: fix compatible vendor string for td028ttec1
    
    
    [ Upstream commit c1b9d4c75cd549e08bd0596d7f9dcc20f7f6e8fa ]
    
    The vendor name was "toppoly" but other panels and the vendor list
    have defined it as "tpo". So let's fix it in driver and bindings.
    
    We keep the old definition in parallel to stay compatible with
    potential older DTB setup.
    
    Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87408eb1eae7c59e81e6e3efeadde168d3b3f130
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Fri Dec 1 11:06:39 2017 -0600

    vgacon: Set VGA struct resource types
    
    
    [ Upstream commit c82084117f79bcae085e40da526253736a247120 ]
    
    Set the resource type when we reserve VGA-related I/O port resources.
    
    The resource code doesn't actually look at the type, so it inserts
    resources without a type in the tree correctly even without this change.
    But if we ever print a resource without a type, it looks like this:
    
      vga+ [??? 0x000003c0-0x000003df flags 0x0]
    
    Setting the type means it will be printed correctly as:
    
      vga+ [io  0x000003c0-0x000003df]
    
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eba1940e654b8218c08ac575edb24865c1dc32c0
Author: Bharat Potnuri <bharat@chelsio.com>
Date:   Tue Nov 28 23:58:07 2017 +0530

    iser-target: avoid reinitializing rdma contexts for isert commands
    
    
    [ Upstream commit 66f53e6f5400578bae58db0c06d85a8820831f40 ]
    
    isert commands that failed during isert_rdma_rw_ctx_post() are queued to
    Queue-Full(QF) queue and are scheduled to be reposted during queue-full
    queue processing. During this reposting, the rdma contexts are initialised
    again in isert_rdma_rw_ctx_post(), which is leaking significant memory.
    
    unreferenced object 0xffff8830201d9640 (size 64):
      comm "kworker/0:2", pid 195, jiffies 4295374851 (age 4528.436s)
      hex dump (first 32 bytes):
        00 60 8b cb 2e 00 00 00 00 10 00 00 00 00 00 00  .`..............
        00 90 e3 cb 2e 00 00 00 00 10 00 00 00 00 00 00  ................
      backtrace:
        [<ffffffff8170711e>] kmemleak_alloc+0x4e/0xb0
        [<ffffffff811f8ba5>] __kmalloc+0x125/0x2b0
        [<ffffffffa046b24f>] rdma_rw_ctx_init+0x15f/0x6f0 [ib_core]
        [<ffffffffa07ab644>] isert_rdma_rw_ctx_post+0xc4/0x3c0 [ib_isert]
        [<ffffffffa07ad972>] isert_put_datain+0x112/0x1c0 [ib_isert]
        [<ffffffffa07dddce>] lio_queue_data_in+0x2e/0x30 [iscsi_target_mod]
        [<ffffffffa076c322>] target_qf_do_work+0x2b2/0x4b0 [target_core_mod]
        [<ffffffff81080c3b>] process_one_work+0x1db/0x5d0
        [<ffffffff8108107d>] worker_thread+0x4d/0x3e0
        [<ffffffff81088667>] kthread+0x117/0x150
        [<ffffffff81713fa7>] ret_from_fork+0x27/0x40
        [<ffffffffffffffff>] 0xffffffffffffffff
    
    Here is patch to use the older rdma contexts while reposting
    the isert commands intead of reinitialising them.
    
    Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37c704e0ec7f33599866d41921379ffa8d8a7a9e
Author: Artemy Kovalyov <artemyko@mellanox.com>
Date:   Tue Nov 14 14:51:59 2017 +0200

    IB/umem: Fix use of npages/nmap fields
    
    
    [ Upstream commit edf1a84fe37c51290e2c88154ecaf48dadff3d27 ]
    
    In ib_umem structure npages holds original number of sg entries, while
    nmap is number of DMA blocks returned by dma_map_sg.
    
    Fixes: c5d76f130b28 ('IB/core: Add umem function to read data from user-space')
    Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 211a1e9f5efc7eafbe24ddb5601c71e5325db435
Author: Parav Pandit <parav@mellanox.com>
Date:   Tue Nov 14 14:51:55 2017 +0200

    RDMA/cma: Use correct size when writing netlink stats
    
    
    [ Upstream commit 7baaa49af3716fb31877c61f59b74d029ce15b75 ]
    
    The code was using the src size when formatting the dst. They are almost
    certainly the same value but it reads wrong.
    
    Fixes: ce117ffac2e9 ("RDMA/cma: Export AF_IB statistics")
    Signed-off-by: Parav Pandit <parav@mellanox.com>
    Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15e113da626f0c91cb003c597c1be57eac5fd576
Author: Erez Shitrit <erezsh@mellanox.com>
Date:   Tue Nov 14 14:51:53 2017 +0200

    IB/ipoib: Avoid memory leak if the SA returns a different DGID
    
    
    [ Upstream commit 439000892ee17a9c92f1e4297818790ef8bb4ced ]
    
    The ipoib path database is organized around DGIDs from the LLADDR, but the
    SA is free to return a different GID when asked for path. This causes a
    bug because the SA's modified DGID is copied into the database key, even
    though it is no longer the correct lookup key, causing a memory leak and
    other malfunctions.
    
    Ensure the database key does not change after the SA query completes.
    
    Demonstration of the bug is as  follows
    ipoib wants to send to GID fe80:0000:0000:0000:0002:c903:00ef:5ee2, it
    creates new record in the DB with that gid as a key, and issues a new
    request to the SM.
    Now, the SM from some reason returns path-record with other SGID (for
    example, 2001:0000:0000:0000:0002:c903:00ef:5ee2 that contains the local
    subnet prefix) now ipoib will overwrite the current entry with the new
    one, and if new request to the original GID arrives ipoib  will not find
    it in the DB (was overwritten) and will create new record that in its
    turn will also be overwritten by the response from the SM, and so on
    till the driver eats all the device memory.
    
    Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 963f3129a189213876200d46e5698638d44c5e11
Author: Daniel Drake <drake@endlessm.com>
Date:   Tue Dec 12 10:49:02 2017 +0000

    mmc: avoid removing non-removable hosts during suspend
    
    
    [ Upstream commit de8dcc3d2c0e08e5068ee1e26fc46415c15e3637 ]
    
    The Weibu F3C MiniPC has an onboard AP6255 module, presenting
    two SDIO functions on a single MMC host (Bluetooth/btsdio and
    WiFi/brcmfmac), and the mmc layer correctly detects this as
    non-removable.
    
    After suspend/resume, the wifi and bluetooth interfaces disappear
    and do not get probed again.
    
    The conditions here are:
    
     1. During suspend, we reach mmc_pm_notify()
    
     2. mmc_pm_notify() calls mmc_sdio_pre_suspend() to see if we can
        suspend the SDIO host. However, mmc_sdio_pre_suspend() returns
        -ENOSYS because btsdio_driver does not have a suspend method.
    
     3. mmc_pm_notify() proceeds to remove the card
    
     4. Upon resume, mmc_rescan() does nothing with this host, because of
        the rescan_entered check which aims to only scan a non-removable
        device a single time (i.e. during boot).
    
    Fix the loss of functionality by detecting that we are unable to
    suspend a non-removable host, so avoid the forced removal in that
    case. The comment above this function already indicates that this
    code was only intended for removable devices.
    
    Signed-off-by: Daniel Drake <drake@endlessm.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7425b35a374cc25c18654c76ff7a88835e11380
Author: Logan Gunthorpe <logang@deltatee.com>
Date:   Tue Dec 5 16:30:51 2017 -0700

    drm/tilcdc: ensure nonatomic iowrite64 is not used
    
    
    [ Upstream commit 4e5ca2d930aa8714400aedf4bf1dc959cb04280f ]
    
    Add a check to ensure iowrite64 is only used if it is atomic.
    
    It was decided in [1] that the tilcdc driver should not be using an
    atomic operation (so it was left out of this patchset). However, it turns
    out that through the drm code, a nonatomic header is actually included:
    
    include/linux/io-64-nonatomic-lo-hi.h
    is included from include/drm/drm_os_linux.h:9:0,
                from include/drm/drmP.h:74,
                from include/drm/drm_modeset_helper.h:26,
                from include/drm/drm_atomic_helper.h:33,
                from drivers/gpu/drm/tilcdc/tilcdc_crtc.c:19:
    
    And thus, without this change, this patchset would inadvertantly
    change the behaviour of the tilcdc driver.
    
    [1] lkml.kernel.org/r/CAK8P3a2HhO_zCnsTzq7hmWSz5La5Thu19FWZpun16iMnyyNreQ@mail.gmail.com
    
    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Jyri Sarha <jsarha@ti.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: David Airlie <airlied@linux.ie>
    Signed-off-by: Jyri Sarha <jsarha@ti.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d443c9ee9f71fb37f5dac530b868b1ea27d202e
Author: Kedareswara rao Appana <appana.durga.rao@xilinx.com>
Date:   Thu Dec 7 10:54:28 2017 +0530

    dmaengine: zynqmp_dma: Fix race condition in the probe
    
    
    [ Upstream commit 5ba080aada5e739165e0f38d5cc3b04c82b323c8 ]
    
    Incase of interrupt property is not present,
    Driver is trying to free an invalid irq,
    This patch fixes it by adding a check before freeing the irq.
    
    Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 236738a6df2c87a8e3d5553ba93b7465cd9a0f4c
Author: Shawn Nematbakhsh <shawnn@chromium.org>
Date:   Fri Sep 8 13:50:11 2017 -0700

    platform/chrome: Use proper protocol transfer function
    
    
    [ Upstream commit d48b8c58c57f6edbe2965f0a5f62c5cf9593ca96 ]
    
    pkt_xfer should be used for protocol v3, and cmd_xfer otherwise. We had
    one instance of these functions correct, but not the second, fall-back
    case. We use the fall-back only when the first command returns an
    IN_PROGRESS status, which is only used on some EC firmwares where we
    don't want to constantly poll the bus, but instead back off and
    sleep/retry for a little while.
    
    Fixes: 2c7589af3c4d ("mfd: cros_ec: add proto v3 skeleton")
    Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Benson Leung <bleung@chromium.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ad31f858328e0c4257c3b0367271d7e99d16af2
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Mon Sep 25 09:17:01 2017 -0700

    watchdog: Fix potential kref imbalance when opening watchdog
    
    
    [ Upstream commit 4bcd615fad6adddc68b058d498b30a9e0e0db77a ]
    
    If a watchdog driver's open function sets WDOG_HW_RUNNING with the
    expectation that the watchdog can not be stopped, but then stops the
    watchdog anyway in its stop function, kref_get() wil not be called in
    watchdog_open(). If the watchdog then stops on close, WDOG_HW_RUNNING
    will be cleared and kref_put() will be called, causing a kref imbalance.
    As result the character device data structure will be released, which in
    turn will cause the system to crash on the next call to watchdog_open().
    
    Fixes: ee142889e32f5 ("watchdog: Introduce WDOG_HW_RUNNING flag")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32dc29cf72e866fafca3a12ea821954632a0edca
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Dec 4 15:49:48 2017 +0100

    cros_ec: fix nul-termination for firmware build info
    
    
    [ Upstream commit 50a0d71a5d20e1d3eff1d974fdc8559ad6d74892 ]
    
    As gcc-8 reports, we zero out the wrong byte:
    
    drivers/platform/chrome/cros_ec_sysfs.c: In function 'show_ec_version':
    drivers/platform/chrome/cros_ec_sysfs.c:190:12: error: array subscript 4294967295 is above array bounds of 'uint8_t[]' [-Werror=array-bounds]
    
    This changes the code back to what it did before changing to a
    zero-length array structure.
    
    Fixes: a841178445bb ("mfd: cros_ec: Use a zero-length array for command data")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Benson Leung <bleung@chromium.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a50521b04da98f22d1223b8396144d48427ff2fb
Author: Stefan Potyra <Stefan.Potyra@elektrobit.com>
Date:   Wed Dec 6 16:46:12 2017 +0100

    serial: 8250_dw: Disable clock on error
    
    
    [ Upstream commit 8af016aa5a27c6a2505460eb4d83f1e70c38dc43 ]
    
    If there is no clock rate for uartclk defined, disable the previously
    enabled clock again.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Fixes: 23f5b3fdd04e serial: 8250_dw: only get the clock rate in one place
    Signed-off-by: Stefan Potyra <Stefan.Potyra@elektrobit.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ee96dfd01bcab79e50a596c9d5142e0bf05c787
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu Dec 14 19:55:50 2017 +0100

    qmi_wwan: set FLAG_SEND_ZLP to avoid network initiated disconnect
    
    
    [ Upstream commit 245d21190aec547c0de64f70c0e6de871c185a24 ]
    
    It has been reported that the dummy byte we add to avoid
    ZLPs can be forwarded by the modem to the PGW/GGSN, and that
    some operators will drop the connection if this happens.
    
    In theory, QMI devices are based on CDC ECM and should as such
    both support ZLPs and silently ignore the dummy byte.  The latter
    assumption failed.  Let's test out the first.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 034371788a56304c2836eb58706b9e2f04387359
Author: Ron Economos <w6rz@comcast.net>
Date:   Mon Dec 11 19:51:53 2017 -0500

    media: [RESEND] media: dvb-frontends: Add delay to Si2168 restart
    
    
    [ Upstream commit 380a6c86457573aa42d27ae11e025eb25941a0b7 ]
    
    On faster CPUs a delay is required after the resume command and the restart command. Without the delay, the restart command often returns -EREMOTEIO and the Si2168 does not restart.
    
    Note that this patch fixes the same issue as https://patchwork.linuxtv.org/patch/44304/, but I believe my udelay() fix addresses the actual problem.
    
    Signed-off-by: Ron Economos <w6rz@comcast.net>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb32772bc409f3cb0a40c318a5dda37f177107c3
Author: Balaji Pothunoori <bpothuno@qti.qualcomm.com>
Date:   Thu Dec 7 16:58:04 2017 +0200

    ath10k: handling qos at STA side based on AP WMM enable/disable
    
    
    [ Upstream commit 07ffb4497360ae8789f05555fec8171ee952304d ]
    
    Data packets are not sent by STA in case of STA joined to
    non QOS AP (WMM disabled AP). This is happening because of STA
    is sending data packets to firmware from host with qos enabled
    along with non qos queue value(TID = 16).
    Due to qos enabled, firmware is discarding the packet.
    
    This patch fixes this issue by updating the qos based on station
    WME capability field if WMM is disabled in AP.
    
    This patch is required by 10.4 family chipsets like
    QCA4019/QCA9888/QCA9884/QCA99X0.
    Firmware Versoin : 10.4-3.5.1-00018.
    
    For 10.2.4 family chipsets QCA988X/QCA9887 and QCA6174 this patch
    has no effect.
    
    Signed-off-by: Balaji Pothunoori <bpothuno@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a20f36c59b459881d6ecf30eb6b34c461e81d5b5
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Thu Sep 21 19:23:56 2017 -0400

    media: bt8xx: Fix err 'bt878_probe()'
    
    
    [ Upstream commit 45392ff6881dbe56d41ef0b17c2e576065f8ffa1 ]
    
    This is odd to call 'pci_disable_device()' in an error path before a
    coresponding successful 'pci_enable_device()'.
    
    Return directly instead.
    
    Fixes: 77e0be12100a ("V4L/DVB (4176): Bug-fix: Fix memory overflow")
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f13ef920ad0ceccf22ba1d309f84d55608ef4eb
Author: Tsang-Shian Lin <thlin@realtek.com>
Date:   Sat Dec 9 11:37:10 2017 -0600

    rtlwifi: rtl_pci: Fix the bug when inactiveps is enabled.
    
    
    [ Upstream commit b7573a0a27bfa8270dea9b145448f6884b7cacc1 ]
    
    Reset the driver current tx read/write index to zero when inactiveps
    nic out of sync with HW state. Wrong driver tx read/write index will
    cause Tx fail.
    
    Signed-off-by: Tsang-Shian Lin <thlin@realtek.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
    Cc: Birming Chiu <birming@realtek.com>
    Cc: Shaofu <shaofu@realtek.com>
    Cc: Steven Ting <steventing@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c06c3dd3af35953963cb54b4cbecc327fc81b2e
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Wed Nov 29 09:47:33 2017 +0100

    RDMA/iwpm: Fix uninitialized error code in iwpm_send_mapinfo()
    
    
    [ Upstream commit 302d6424e4a293a5761997e6c9fc3dfb1e4c355f ]
    
    With gcc-4.1.2:
    
        drivers/infiniband/core/iwpm_util.c: In function ‘iwpm_send_mapinfo’:
        drivers/infiniband/core/iwpm_util.c:647: warning: ‘ret’ may be used uninitialized in this function
    
    Indeed, if nl_client is not found in any of the scanned has buckets, ret
    will be used uninitialized.
    
    Preinitialize ret to -EINVAL to fix this.
    
    Fixes: 30dc5e63d6a5ad24 ("RDMA/core: Add support for iWARP Port Mapper user space service")
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reviewed-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af302f2d047a4dccb501bfd7c74b7537e35ea4bf
Author: Prakash Kamliya <pkamliya@codeaurora.org>
Date:   Mon Dec 4 19:10:15 2017 +0530

    drm/msm: fix leak in failed get_pages
    
    
    [ Upstream commit 62e3a3e342af3c313ab38603811ecdb1fcc79edb ]
    
    get_pages doesn't keep a reference of the pages allocated
    when it fails later in the code path. This can lead to
    a memory leak. Keep reference of the allocated pages so
    that it can be freed when msm_gem_free_object gets called
    later during cleanup.
    
    Signed-off-by: Prakash Kamliya <pkamliya@codeaurora.org>
    Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bac8b847be924575031d0486b2c53ccad7c910b8
Author: Gustavo A. R. Silva <garsilva@embeddedor.com>
Date:   Mon Nov 20 09:00:55 2017 -0500

    media: c8sectpfe: fix potential NULL pointer dereference in c8sectpfe_timer_interrupt
    
    
    [ Upstream commit baed3c4bc4c13de93e0dba0a26d601411ebcb389 ]
    
    _channel_ is being dereferenced before it is null checked, hence there is a
    potential null pointer dereference. Fix this by moving the pointer dereference
    after _channel_ has been null checked.
    
    This issue was detected with the help of Coccinelle.
    
    Fixes: c5f5d0f99794 ("[media] c8sectpfe: STiH407/10 Linux DVB demux support")
    
    Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
    Acked-by: Patrice Chotard <patrice.chotard@st.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dadb6c1a8d889b5cab5ff6ed44db9cdb445467e7
Author: Loic Poulain <loic.poulain@linaro.org>
Date:   Wed Nov 22 15:03:17 2017 +0100

    Bluetooth: btqcomsmd: Fix skb double free corruption
    
    
    [ Upstream commit 67b8fbead4685b36d290a0ef91c6ddffc4920ec9 ]
    
    In case of hci send frame failure, skb is still owned
    by the caller (hci_core) and then should not be freed.
    
    This fixes crash on dragonboard-410c when sending SCO
    packet. skb is freed by both btqcomsmd and hci_core.
    
    Fixes: 1511cc750c3d ("Bluetooth: Introduce Qualcomm WCNSS SMD based HCI driver")
    Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f37dc00bace9e9deb2c3db35fc7bf815dbf0c913
Author: Loic Poulain <loic.poulain@linaro.org>
Date:   Mon Nov 6 12:16:56 2017 +0100

    Bluetooth: hci_qca: Avoid setup failure on missing rampatch
    
    
    [ Upstream commit ba8f3597900291a93604643017fff66a14546015 ]
    
    Assuming that the original code idea was to enable in-band sleeping
    only if the setup_rome method returns succes and run in 'standard'
    mode otherwise, we should not return setup_rome return value which
    makes qca_setup fail if no rampatch/nvm file found.
    
    This fixes BT issue on the dragonboard-820C p4 which includes the
    following QCA controller:
    hci0: Product:0x00000008
    hci0: Patch  :0x00000111
    hci0: ROM    :0x00000302
    hci0: SOC    :0x00000044
    
    Since there is no rampatch for this controller revision, just make
    it work as is.
    
    Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18dd7b964c01ac44497471f4ea3f4c0c663eab55
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Thu May 4 15:05:26 2017 +0200

    block/mq: Cure cpu hotplug lock inversion
    
    
    [ Upstream commit eabe06595d62cfa9278e2cd012df614bc68a7042 ]
    
    By poking at /debug/sched_features I triggered the following splat:
    
     [] ======================================================
     [] WARNING: possible circular locking dependency detected
     [] 4.11.0-00873-g964c8b7-dirty #694 Not tainted
     [] ------------------------------------------------------
     [] bash/2109 is trying to acquire lock:
     []  (cpu_hotplug_lock.rw_sem){++++++}, at: [<ffffffff8120cb8b>] static_key_slow_dec+0x1b/0x50
     []
     [] but task is already holding lock:
     []  (&sb->s_type->i_mutex_key#4){+++++.}, at: [<ffffffff81140216>] sched_feat_write+0x86/0x170
     []
     [] which lock already depends on the new lock.
     []
     []
     [] the existing dependency chain (in reverse order) is:
     []
     [] -> #2 (&sb->s_type->i_mutex_key#4){+++++.}:
     []        lock_acquire+0x100/0x210
     []        down_write+0x28/0x60
     []        start_creating+0x5e/0xf0
     []        debugfs_create_dir+0x13/0x110
     []        blk_mq_debugfs_register+0x21/0x70
     []        blk_mq_register_dev+0x64/0xd0
     []        blk_register_queue+0x6a/0x170
     []        device_add_disk+0x22d/0x440
     []        loop_add+0x1f3/0x280
     []        loop_init+0x104/0x142
     []        do_one_initcall+0x43/0x180
     []        kernel_init_freeable+0x1de/0x266
     []        kernel_init+0xe/0x100
     []        ret_from_fork+0x31/0x40
     []
     [] -> #1 (all_q_mutex){+.+.+.}:
     []        lock_acquire+0x100/0x210
     []        __mutex_lock+0x6c/0x960
     []        mutex_lock_nested+0x1b/0x20
     []        blk_mq_init_allocated_queue+0x37c/0x4e0
     []        blk_mq_init_queue+0x3a/0x60
     []        loop_add+0xe5/0x280
     []        loop_init+0x104/0x142
     []        do_one_initcall+0x43/0x180
     []        kernel_init_freeable+0x1de/0x266
     []        kernel_init+0xe/0x100
     []        ret_from_fork+0x31/0x40
    
     []  *** DEADLOCK ***
     []
     [] 3 locks held by bash/2109:
     []  #0:  (sb_writers#11){.+.+.+}, at: [<ffffffff81292bcd>] vfs_write+0x17d/0x1a0
     []  #1:  (debugfs_srcu){......}, at: [<ffffffff8155a90d>] full_proxy_write+0x5d/0xd0
     []  #2:  (&sb->s_type->i_mutex_key#4){+++++.}, at: [<ffffffff81140216>] sched_feat_write+0x86/0x170
     []
     [] stack backtrace:
     [] CPU: 9 PID: 2109 Comm: bash Not tainted 4.11.0-00873-g964c8b7-dirty #694
     [] Hardware name: Intel Corporation S2600GZ/S2600GZ, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013
     [] Call Trace:
    
     []  lock_acquire+0x100/0x210
     []  get_online_cpus+0x2a/0x90
     []  static_key_slow_dec+0x1b/0x50
     []  static_key_disable+0x20/0x30
     []  sched_feat_write+0x131/0x170
     []  full_proxy_write+0x97/0xd0
     []  __vfs_write+0x28/0x120
     []  vfs_write+0xb5/0x1a0
     []  SyS_write+0x49/0xa0
     []  entry_SYSCALL_64_fastpath+0x23/0xc2
    
    This is because of the cpu hotplug lock rework. Break the chain at #1
    by reversing the lock acquisition order. This way i_mutex_key#4 no
    longer depends on cpu_hotplug_lock and things are good.
    
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85e598bc1514ba0d161cc0960017ca3b7b1c1640
Author: Kim Phillips <kim.phillips@arm.com>
Date:   Wed May 3 13:14:02 2017 +0100

    perf tests kmod-path: Don't fail if compressed modules aren't supported
    
    
    [ Upstream commit 805b151a1afd24414706a7f6ae275fbb9649be74 ]
    
    __kmod_path__parse() uses is_supported_compression() to determine and
    parse out compressed module file extensions.  On systems without zlib,
    this test fails and __kmod_path__parse() continues to strcmp "ko" with
    "gz".  Don't do this on those systems.
    
    Signed-off-by: Kim Phillips <kim.phillips@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: 3c8a67f50a1e ("perf tools: Add kmod_path__parse function")
    Link: http://lkml.kernel.org/r/20170503131402.c66e314460026c80cd787b34@arm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 975760baa6e74d57502909b5dd0f01507187c6ff
Author: Michael Mera <dev@michaelmera.com>
Date:   Mon Apr 24 16:11:57 2017 +0900

    ath10k: fix out of bounds access to local buffer
    
    
    [ Upstream commit a16703aaeaedec7a8bee5be5522c7c3e75478951 ]
    
    During write to debugfs file simulate_fw_crash, fixed-size local buffer
    'buf' is accessed and modified at index 'count-1', where 'count' is the
    size of the write (so potentially out of bounds).
    This patch fixes this problem.
    
    Signed-off-by: Michael Mera <dev@michaelmera.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e37c9f8d3f5a77cfebca019a25478ce7e2f7874
Author: Moritz Fischer <mdf@kernel.org>
Date:   Mon Apr 24 15:05:12 2017 -0700

    rtc: ds1374: wdt: Fix stop/start ioctl always returning -EINVAL
    
    
    [ Upstream commit 538c08f4c89580fc644e2bc64e0a4b86c925da4e ]
    
    The WDIOC_SETOPTIONS case in the watchdog ioctl would alwayss falls
    through to the -EINVAL case. This is wrong since thew watchdog does
    actually get stopped or started correctly.
    
    Fixes: 920f91e50c5b ("drivers/rtc/rtc-ds1374.c: add watchdog support")
    Signed-off-by: Moritz Fischer <mdf@kernel.org>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a06dfdb14333c5b7e8069339fb5561debe5068e4
Author: Moritz Fischer <mdf@kernel.org>
Date:   Mon Apr 24 15:05:11 2017 -0700

    rtc: ds1374: wdt: Fix issue with timeout scaling from secs to wdt ticks
    
    
    [ Upstream commit 453d0744f6c6ca3f9749b8c57c2e85b5b9f52514 ]
    
    The issue is that the internal counter that triggers the watchdog reset
    is actually running at 4096 Hz instead of 1Hz, therefore the value
    given by userland (in sec) needs to be multiplied by 4096 to get the
    correct behavior.
    
    Fixes: 920f91e50c5b ("drivers/rtc/rtc-ds1374.c: add watchdog support")
    Signed-off-by: Moritz Fischer <mdf@kernel.org>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b42ce075d8ed11259b36cdbed99bbab8f1f69f1
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Wed May 3 14:56:22 2017 -0700

    mm: hwpoison: call shake_page() after try_to_unmap() for mlocked page
    
    
    [ Upstream commit 286c469a988fbaf68e3a97ddf1e6c245c1446968 ]
    
    Memory error handler calls try_to_unmap() for error pages in various
    states.  If the error page is a mlocked page, error handling could fail
    with "still referenced by 1 users" message.  This is because the page is
    linked to and stays in lru cache after the following call chain.
    
      try_to_unmap_one
        page_remove_rmap
          clear_page_mlock
            putback_lru_page
              lru_cache_add
    
    memory_failure() calls shake_page() to hanlde the similar issue, but
    current code doesn't cover because shake_page() is called only before
    try_to_unmap().  So this patches adds shake_page().
    
    Fixes: 23a003bfd23ea9ea0b7756b920e51f64b284b468 ("mm/madvise: pass return code of memory_failure() to userspace")
    Link: http://lkml.kernel.org/r/20170417055948.GM31394@yexl-desktop
    Link: http://lkml.kernel.org/r/1493197841-23986-3-git-send-email-n-horiguchi@ah.jp.nec.com
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Cc: Xiaolong Ye <xiaolong.ye@intel.com>
    Cc: Chen Gong <gong.chen@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82d938a9ed8e8d880dfd7e4def4adc1578e2710e
Author: David Rientjes <rientjes@google.com>
Date:   Wed May 3 14:53:02 2017 -0700

    mm, vmstat: suppress pcp stats for unpopulated zones in zoneinfo
    
    
    [ Upstream commit 7dfb8bf3b9caef4049bee51d2c22e1c3a311d483 ]
    
    After "mm, vmstat: print non-populated zones in zoneinfo",
    /proc/zoneinfo will show unpopulated zones.
    
    The per-cpu pageset statistics are not relevant for unpopulated zones
    and can be potentially lengthy, so supress them when they are not
    interesting.
    
    Also moves lowmem reserve protection information above pcp stats since
    it is relevant for all zones per vm.lowmem_reserve_ratio.
    
    Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1703061400500.46428@chino.kir.corp.google.com
    Signed-off-by: David Rientjes <rientjes@google.com>
    Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7eb0b7339722ec570a47503f0d7b14d9c14b8d86
Author: Johannes Weiner <hannes@cmpxchg.org>
Date:   Wed May 3 14:51:54 2017 -0700

    mm: fix check for reclaimable pages in PF_MEMALLOC reclaim throttling
    
    
    [ Upstream commit d450abd81b081d45adb12f303a07dd44b15eb1bc ]
    
    PF_MEMALLOC direct reclaimers get throttled on a node when the sum of
    all free pages in each zone fall below half the min watermark.  During
    the summation, we want to exclude zones that don't have reclaimables.
    Checking the same pgdat over and over again doesn't make sense.
    
    Fixes: 599d0c954f91 ("mm, vmscan: move LRU lists to node")
    Link: http://lkml.kernel.org/r/20170228214007.5621-3-hannes@cmpxchg.org
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Jia He <hejianet@gmail.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31da33dd8ed44ec5c5d72630644c06905c2be7c5
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon May 1 21:43:43 2017 +0300

    cifs: small underflow in cnvrtDosUnixTm()
    
    
    [ Upstream commit 564277eceeca01e02b1ef3e141cfb939184601b4 ]
    
    January is month 1.  There is no zero-th month.  If someone passes a
    zero month then it means we read from one space before the start of the
    total_days_of_prev_months[] array.
    
    We may as well also be strict about days as well.
    
    Fixes: 1bd5bbcb6531 ("[CIFS] Legacy time handling for Win9x and OS/2 part 1")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2a863dba3defce5f37af95007999ce9f48f8af6
Author: Timmy Li <lixiaoping3@huawei.com>
Date:   Tue May 2 10:46:52 2017 +0800

    net: hns: fix ethtool_get_strings overflow in hns driver
    
    
    [ Upstream commit 412b65d15a7f8a93794653968308fc100f2aa87c ]
    
    hns_get_sset_count() returns HNS_NET_STATS_CNT and the data space allocated
    is not enough for ethtool_get_strings(), which will cause random memory
    corruption.
    
    When SLAB and DEBUG_SLAB are both enabled, memory corruptions like the
    the following can be observed without this patch:
    [   43.115200] Slab corruption (Not tainted): Acpi-ParseExt start=ffff801fb0b69030, len=80
    [   43.115206] Redzone: 0x9f911029d006462/0x5f78745f31657070.
    [   43.115208] Last user: [<5f7272655f746b70>](0x5f7272655f746b70)
    [   43.115214] 010: 70 70 65 31 5f 74 78 5f 70 6b 74 00 6b 6b 6b 6b  ppe1_tx_pkt.kkkk
    [   43.115217] 030: 70 70 65 31 5f 74 78 5f 70 6b 74 5f 6f 6b 00 6b  ppe1_tx_pkt_ok.k
    [   43.115218] Next obj: start=ffff801fb0b69098, len=80
    [   43.115220] Redzone: 0x706d655f6f666966/0x9f911029d74e35b.
    [   43.115229] Last user: [<ffff0000084b11b0>](acpi_os_release_object+0x28/0x38)
    [   43.115231] 000: 74 79 00 6b 6b 6b 6b 6b 70 70 65 31 5f 74 78 5f  ty.kkkkkppe1_tx_
    [   43.115232] 010: 70 6b 74 5f 65 72 72 5f 63 73 75 6d 5f 66 61 69  pkt_err_csum_fai
    
    Signed-off-by: Timmy Li <lixiaoping3@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b9c9549b2c9814d35b22fa817466226d9fbb8e5
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Mon May 1 17:06:56 2017 -0400

    pNFS: Fix a deadlock when coalescing writes and returning the layout
    
    
    [ Upstream commit 61f454e30c18a28924e96be12592c0d5e24bcc81 ]
    
    Consider the following deadlock:
    
    Process P1      Process P2              Process P3
    ==========      ==========              ==========
                                            lock_page(page)
    
                    lseg = pnfs_update_layout(inode)
    
    lo = NFS_I(inode)->layout
    pnfs_error_mark_layout_for_return(lo)
    
                    lock_page(page)
    
                                            lseg = pnfs_update_layout(inode)
    
    In this scenario,
    - P1 has declared the layout to be in error, but P2 holds a reference to
      a layout segment on that inode, so the layoutreturn is deferred.
    - P2 is waiting for a page lock held by P3.
    - P3 is asking for a new layout segment, but is blocked waiting
      for the layoutreturn.
    
    The fix is to ensure that pnfs_error_mark_layout_for_return() does
    not set the NFS_LAYOUT_RETURN flag, which blocks P3. Instead, we allow
    the latter to call LAYOUTGET so that it can make progress and unblock
    P2.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e22a6754abda4ab563fce3f3241e71a8c917c979
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Tue May 2 13:47:53 2017 +0200

    sm501fb: don't return zero on failure path in sm501fb_start()
    
    
    [ Upstream commit dc85e9a87420613b3129d5cc5ecd79c58351c546 ]
    
    If fbmem iomemory mapping failed, sm501fb_start() breaks off
    initialization, deallocates resources, but returns zero.
    As a result, double deallocation can happen in sm501fb_stop().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5ea3b04080c790a1d8a1ec2e8526bebb66f497b
Author: Maksim Salau <maksim.salau@gmail.com>
Date:   Tue May 2 13:47:53 2017 +0200

    video: fbdev: udlfb: Fix buffer on stack
    
    
    [ Upstream commit 45f580c42e5c125d55dbd8099750a1998de3d917 ]
    
    Allocate buffers on HEAP instead of STACK for local array
    that is to be sent using usb_control_msg().
    
    Signed-off-by: Maksim Salau <maksim.salau@gmail.com>
    Cc: Bernie Thompson <bernie@plugable.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51174d2553d33d574c159098c94a10050762ee4c
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Tue Mar 14 18:35:43 2017 +0100

    x86/xen: split xen_smp_prepare_boot_cpu()
    
    
    [ Upstream commit a2d1078a35f9a38ae888aa6147e4ca32666154a1 ]
    
    Split xen_smp_prepare_boot_cpu() into xen_pv_smp_prepare_boot_cpu() and
    xen_hvm_smp_prepare_boot_cpu() to support further splitting of smp.c.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f29bc9dc0bef0cb6f3ca069d96fbd535439d1680
Author: Dmitry Monakhov <dmonakhov@openvz.org>
Date:   Fri Mar 31 19:53:35 2017 +0400

    tcm_fileio: Prevent information leak for short reads
    
    
    [ Upstream commit f11b55d13563e9428c88c873f4f03a6bef11ec0a ]
    
    If we failed to read data from backing file (probably because some one
    truncate file under us), we must zerofill cmd's data, otherwise it will
    be returned as is. Most likely cmd's data are unitialized pages from
    page cache. This result in information leak.
    
    (Change BUG_ON into -EINVAL se_cmd failure - nab)
    
    testcase: https://github.com/dmonakhov/xfstests/commit/e11a1b7b907ca67b1be51a1594025600767366d5
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9935f862199bf7ddc2d26fad089b756fab0ad816
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Mon May 1 11:51:55 2017 -0700

    ia64: fix module loading for gcc-5.4
    
    
    [ Upstream commit a25fb8508c1b80dce742dbeaa4d75a1e9f2c5617 ]
    
    Starting from gcc-5.4+ gcc generates MLX instructions in more cases to
    refer local symbols:
    
        https://gcc.gnu.org/PR60465
    
    That caused ia64 module loader to choke on such instructions:
    
        fuse: invalid slot number 1 for IMM64
    
    The Linux kernel used to handle only case where relocation pointed to
    slot=2 instruction in the bundle.  That limitation was fixed in linux by
    commit 9c184a073bfd ("[IA64] Fix 2.6 kernel for the new ia64 assembler")
    See
    
        http://sources.redhat.com/bugzilla/show_bug.cgi?id=1433
    
    This change lifts the slot=2 restriction from the kernel module loader.
    
    Tested on 'fuse' and 'btrfs' kernel modules.
    
    Cc: Markus Elfring <elfring@users.sourceforge.net>
    Cc: H J Lu <hjl.tools@gmail.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Bug: https://bugs.gentoo.org/601014
    Tested-by: Émeric MASCHINO <emeric.maschino@gmail.com>
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9b90d80db0e53ce4fe06a1ffe12ac683f7b06c9
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Apr 30 22:54:16 2017 +0200

    ACPI / power: Delay turning off unused power resources after suspend
    
    
    [ Upstream commit 8ece1d83346bcc431090d59a2184276192189cdd ]
    
    Commit 660b1113e0f3 (ACPI / PM: Fix consistency check for power resources
    during resume) introduced a check for ACPI power resources which have
    been turned on by the BIOS during suspend and turns these back off again.
    
    This is causing problems on a Dell Venue Pro 11 7130 (i5-4300Y) it causes
    the following messages to show up in dmesg:
    
    [  131.014605] ACPI: Waking up from system sleep state S3
    [  131.150271] acpi LNXPOWER:07: Turning OFF
    [  131.150323] acpi LNXPOWER:06: Turning OFF
    [  131.150911] acpi LNXPOWER:00: Turning OFF
    [  131.169014] ACPI : EC: interrupt unblocked
    [  131.181811] xhci_hcd 0000:00:14.0: System wakeup disabled by ACPI
    [  133.535728] pci_raw_set_power_state: 76 callbacks suppressed
    [  133.535735] iwlwifi 0000:01:00.0: Refused to change power state,
                   currently in D3
    [  133.597672] PM: noirq resume of devices complete after 2428.891 msecs
    
    Followed by a bunch of iwlwifi errors later on and the pcie device
    dropping from the bus (acpiphp thinks it has been unplugged).
    
    Disabling the turning off of unused power resources fixes this. Instead
    of adding a quirk for this system, this commit fixes this by moving the
    disabling of unused power resources to later in the resume sequence
    when the iwlwifi card has been moved out of D3 so the ref_count for
    its power resource no longer is 0.
    
    This new behavior seems to match the intend of the original commit which
    commit-msg says: "(... which means that no devices are going to need them
    any time soon) and we should turn them off".
    
    This also avoids power resources which we need when bringing devices out
    of D3 from getting bounced off and then back on again.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2710fb8f0c828656a147870dccc5164c0f0c48ea
Author: Shaohua Li <shli@fb.com>
Date:   Mon May 1 12:15:07 2017 -0700

    md/raid10: skip spare disk as 'first' disk
    
    
    [ Upstream commit b506335e5d2b4ec687dde392a3bdbf7601778f1d ]
    
    Commit 6f287ca(md/raid10: reset the 'first' at the end of loop) ignores
    a case in reshape, the first rdev could be a spare disk, which shouldn't
    be accounted as the first disk since it doesn't include the offset info.
    
    Fix: 6f287ca(md/raid10: reset the 'first' at the end of loop)
    Cc: Guoqing Jiang <gqjiang@suse.com>
    Cc: NeilBrown <neilb@suse.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9002e49554da9e3a4d70b2c18e7603d6fcefdbfe
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Thu Apr 6 14:49:44 2017 +0200

    IB/rxe: Don't clamp residual length to mtu
    
    
    [ Upstream commit d52418502e288b5c7e9e2e6cf1de5f1d3d79d2e1 ]
    
    When reading a RDMA WRITE FIRST packet we copy the DMA length from the RDMA
    header into the qp->resp.resid variable for later use. Later in check_rkey()
    we clamp it to the MTU if the packet is an  RDMA WRITE packet and has a
    residual length bigger than the MTU. Later in write_data_in() we subtract the
    payload of the packet from the residual length. If the packet happens to have a
    payload of exactly the MTU size we end up with a residual length of 0 despite
    the packet not being the last in the conversation. When the next packet in the
    conversation arrives, we don't have any residual length left and thus set the QP
    into an error state.
    
    This broke NVMe over Fabrics functionality over rdma_rxe.ko
    
    The patch was verified using the following test.
    
     # echo eth0 > /sys/module/rdma_rxe/parameters/add
     # nvme connect -t rdma -a 192.168.155.101 -s 1023 -n nvmf-test
     # mkfs.xfs -fK /dev/nvme0n1
     meta-data=/dev/nvme0n1           isize=256    agcount=4, agsize=65536 blks
              =                       sectsz=4096  attr=2, projid32bit=1
              =                       crc=0        finobt=0, sparse=0
     data     =                       bsize=4096   blocks=262144, imaxpct=25
              =                       sunit=0      swidth=0 blks
     naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
     log      =internal log           bsize=4096   blocks=2560, version=2
              =                       sectsz=4096  sunit=1 blks, lazy-count=1
     realtime =none                   extsz=4096   blocks=0, rtextents=0
     # mount /dev/nvme0n1 /tmp/
     [  148.923263] XFS (nvme0n1): Mounting V4 Filesystem
     [  148.961196] XFS (nvme0n1): Ending clean mount
     # dd if=/dev/urandom of=test.bin bs=1M count=128
     128+0 records in
     128+0 records out
     134217728 bytes (134 MB, 128 MiB) copied, 0.437991 s, 306 MB/s
     # sha256sum test.bin
     cde42941f045efa8c4f0f157ab6f29741753cdd8d1cff93a6b03649d83c4129a  test.bin
     # cp test.bin /tmp/
     sha256sum /tmp/test.bin
     cde42941f045efa8c4f0f157ab6f29741753cdd8d1cff93a6b03649d83c4129a  /tmp/test.bin
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Sagi Grimberg <sagi@grimberg.me>
    Cc: Max Gurtovoy <maxg@mellanox.com>
    Acked-by: Moni Shoua <monis@mellanox.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edc0bfd6e2276e3d53dc3ebb7f454d1b940e4967
Author: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Date:   Fri Apr 28 10:25:51 2017 -0700

    Input: twl4030-pwrbutton - use correct device for irq request
    
    
    [ Upstream commit 3071e9dd6cd3f2290d770117330f2c8b2e9a97e4 ]
    
    The interrupt should be requested for the platform device
    and not for the input device.
    
    Fixes: 7f9ce649d267 ("Input: twl4030-pwrbutton - simplify driver using devm_*")
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b65f7d823f3ce0e6e46eb08b2d35972e6092699
Author: Michael Trimarchi <michael@amarulasolutions.com>
Date:   Tue Apr 25 15:18:05 2017 +0200

    power: supply: pda_power: move from timer to delayed_work
    
    
    [ Upstream commit 633e8799ddc09431be2744c4a1efdbda13af2b0b ]
    
    This changed is needed to avoid locking problem during
    boot as shown:
    
    <5>[    8.824096] Registering SWP/SWPB emulation handler
    <6>[    8.977294] clock: disabling unused clocks to save power
    <3>[    9.108154] BUG: sleeping function called from invalid context at kernel_albert/kernel/mutex.c:269
    <3>[    9.122894] in_atomic(): 1, irqs_disabled(): 0, pid: 1, name: swapper/0
    <4>[    9.130249] 3 locks held by swapper/0/1:
    <4>[    9.134613]  #0:  (&__lockdep_no_validate__){......}, at: [<c0342430>] __driver_attach+0x58/0xa8
    <4>[    9.144500]  #1:  (&__lockdep_no_validate__){......}, at: [<c0342440>] __driver_attach+0x68/0xa8
    <4>[    9.154357]  #2:  (&polling_timer){......}, at: [<c0053770>] run_timer_softirq+0x108/0x3ec
    <4>[    9.163726] Backtrace:
    <4>[    9.166473] [<c001269c>] (dump_backtrace+0x0/0x114) from [<c067e5f0>] (dump_stack+0x20/0x24)
    <4>[    9.175811]  r6:00203230 r5:0000010d r4:d782e000 r3:60000113
    <4>[    9.182250] [<c067e5d0>] (dump_stack+0x0/0x24) from [<c007441c>] (__might_sleep+0x10c/0x128)
    <4>[    9.191650] [<c0074310>] (__might_sleep+0x0/0x128) from [<c0688f60>] (mutex_lock_nested+0x34/0x36c)
    <4>[    9.201660]  r5:c02d5350 r4:d79a0c64
    <4>[    9.205688] [<c0688f2c>] (mutex_lock_nested+0x0/0x36c) from [<c02d5350>] (regulator_set_current_limit+0x30/0x118)
    <4>[    9.217071] [<c02d5320>] (regulator_set_current_limit+0x0/0x118) from [<c0435ce0>] (update_charger+0x84/0xc4)
    <4>[    9.228027]  r7:d782fb20 r6:00000101 r5:c1767e94 r4:00000000
    <4>[    9.234436] [<c0435c5c>] (update_charger+0x0/0xc4) from [<c0435d40>] (psy_changed+0x20/0x48)
    <4>[    9.243804]  r5:d782e000 r4:c1767e94
    <4>[    9.247802] [<c0435d20>] (psy_changed+0x0/0x48) from [<c0435dec>] (polling_timer_func+0x84/0xb8)
    <4>[    9.257537]  r4:c1767e94 r3:00000002
    <4>[    9.261566] [<c0435d68>] (polling_timer_func+0x0/0xb8) from [<c00537e4>] (run_timer_softirq+0x17c/0x3ec)
    <4>[    9.272033]  r4:c1767eb0 r3:00000000
    <4>[    9.276062] [<c0053668>] (run_timer_softirq+0x0/0x3ec) from [<c004b000>] (__do_softirq+0xf0/0x298)
    <4>[    9.286010] [<c004af10>] (__do_softirq+0x0/0x298) from [<c004b650>] (irq_exit+0x98/0xa0)
    <4>[    9.295013] [<c004b5b8>] (irq_exit+0x0/0xa0) from [<c000edbc>] (handle_IRQ+0x60/0xc0)
    <4>[    9.303680]  r4:c1194e98 r3:c00bc778
    <4>[    9.307708] [<c000ed5c>] (handle_IRQ+0x0/0xc0) from [<c0008504>] (gic_handle_irq+0x34/0x68)
    <4>[    9.316955]  r8:000ac383 r7:d782fc3c r6:d782fc08 r5:c11936c4 r4:e0802100
    <4>[    9.324310] r3:c026ba48
    <4>[    9.327301] [<c00084d0>] (gic_handle_irq+0x0/0x68) from [<c068c2c0>] (__irq_svc+0x40/0x74)
    <4>[    9.336456] Exception stack(0xd782fc08 to 0xd782fc50)
    <4>[    9.342041] fc00:                   d6e30e6c ac383627 00000000 ac383417 ea19c000 ea200000
    <4>[    9.351104] fc20: beffffff 00000667 000ac383 d6e30670 d6e3066c d782fc94 d782fbe8 d782fc50
    <4>[    9.360168] fc40: c026ba48 c001d1f0 00000113 ffffffff
    
    Fixes: b2998049cfae ("[BATTERY] pda_power platform driver")
    Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
    Signed-off-by: Anthony Brandon <anthony@amarulasolutions.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9822cb80738a31f4e4821e385920547ddb95828e
Author: Pan Bian <bianpan2016@163.com>
Date:   Mon Apr 24 16:22:08 2017 +0800

    power: supply: isp1704: Fix unchecked return value of devm_kzalloc
    
    
    [ Upstream commit 8b20839988f1ed5e534b270f3776709b640dc7e0 ]
    
    Function devm_kzalloc() will return a NULL pointer. However, in function
    isp1704_charger_probe(), the return value of devm_kzalloc() is directly
    used without validation. This may result in a bad memory access bug.
    
    Fixes: 34a109610e2a ("isp1704_charger: Add DT support")
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ac685af62fb165a8bec3ca26c0c180e4de04929
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Apr 14 18:52:33 2017 +0200

    power: supply: bq24190_charger: Add disable-reset device-property
    
    
    [ Upstream commit 6cf62a3b97e78ba41d31390e59a1ddc98a9e3622 ]
    
    Allow platform-code to disable the reset on probe and suspend/resume
    by setting a "disable-reset" boolean device property on the device.
    
    There are several reasons why the platform-code may want to disable
    the reset on probe and suspend/resume:
    
    1) Resetting the charger should never be necessary it should always have
    sane values programmed. If it is running with invalid values while we
    are not running (system turned off or suspended) there is a big problem
    as that may lead to overcharging the battery.
    
    2) The reset in suspend() is meant to put the charger back into default
    mode, but this is not necessary and not a good idea. If the charger has
    been programmed with a higher max charge_current / charge_voltage then
    putting it back in default-mode will reset those to the safe power-on
    defaults, leading to slower charging, or charging to a lower voltage
    (and thus not using the full capacity) while suspended which is
    undesirable. Reprogramming the max charge_current / charge_voltage
    after the reset will not help here as that will put the charger back
    in host mode and start the i2c watchdog if the host then does not do
    anything for 40s (iow if we're suspended for more then 40s) the watchdog
    expires resetting the device to default-mode, including resetting all
    the registers to there safe power-on defaults. So the only way to keep
    using custom charge settings while suspending is to keep the charger in
    its normal running state with the i2c watchdog disabled. This is fine
    as the charger will still automatically switch from constant current
    to constant voltage and stop charging when the battery is full.
    
    3) Besides never being necessary resetting the charger also causes
    problems on systems where the charge voltage limit is set higher then the
    reset value, if this is the case and the charger is reset while charging
    and the battery voltage is between the 2 voltages, then about half the
    time the charger gets confused and claims to be charging (REG08 contains
    0x64) but in reality the charger has decoupled itself from VBUS (Q1 off)
    and is drawing 0A from VBUS, leaving the system running from the battery.
    
    This last problem is happening on a GPD-win mini PC with a bq24292i
    charger chip combined with a max17047 fuel-gauge and a LiHV battery.
    I've checked and TI does not list any errata for the bq24292i which
    could explain this (there are no errata at all).
    
    Cc: Liam Breck <kernel@networkimprov.net>
    Cc: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Liam Breck <kernel@networkimprov.net>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 909dbba2106f370d93bb4b6dc7520a8ef7791f08
Author: Scott Wood <swood@redhat.com>
Date:   Fri Apr 28 19:17:41 2017 -0500

    bnx2x: Align RX buffers
    
    
    [ Upstream commit 9b70de6d0266888b3743f03802502e43131043c8 ]
    
    The bnx2x driver is not providing proper alignment on the receive buffers it
    passes to build_skb(), causing skb_shared_info to be misaligned.
    skb_shared_info contains an atomic, and while PPC normally supports
    unaligned accesses, it does not support unaligned atomics.
    
    Aligning the size of rx buffers will ensure that page_frag_alloc() returns
    aligned addresses.
    
    This can be reproduced on PPC by setting the network MTU to 1450 (or other
    non-multiple-of-4) and then generating sufficient inbound network traffic
    (one or two large "wget"s usually does it), producing the following oops:
    
    Unable to handle kernel paging request for unaligned access at address 0xc00000ffc43af656
    Faulting instruction address: 0xc00000000080ef8c
    Oops: Kernel access of bad area, sig: 7 [#1]
    SMP NR_CPUS=2048
    NUMA
    PowerNV
    Modules linked in: vmx_crypto powernv_rng rng_core powernv_op_panel leds_powernv led_class nfsd ip_tables x_tables autofs4 xfs lpfc bnx2x mdio libcrc32c crc_t10dif crct10dif_generic crct10dif_common
    CPU: 104 PID: 0 Comm: swapper/104 Not tainted 4.11.0-rc8-00088-g4c761da #2
    task: c00000ffd4892400 task.stack: c00000ffd4920000
    NIP: c00000000080ef8c LR: c00000000080eee8 CTR: c0000000001f8320
    REGS: c00000ffffc33710 TRAP: 0600   Not tainted  (4.11.0-rc8-00088-g4c761da)
    MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE>
      CR: 24082042  XER: 00000000
    CFAR: c00000000080eea0 DAR: c00000ffc43af656 DSISR: 00000000 SOFTE: 1
    GPR00: c000000000907f64 c00000ffffc33990 c000000000dd3b00 c00000ffcaf22100
    GPR04: c00000ffcaf22e00 0000000000000000 0000000000000000 0000000000000000
    GPR08: 0000000000b80008 c00000ffc43af636 c00000ffc43af656 0000000000000000
    GPR12: c0000000001f6f00 c00000000fe1a000 000000000000049f 000000000000c51f
    GPR16: 00000000ffffef33 0000000000000000 0000000000008a43 0000000000000001
    GPR20: c00000ffc58a90c0 0000000000000000 000000000000dd86 0000000000000000
    GPR24: c000007fd0ed10c0 00000000ffffffff 0000000000000158 000000000000014a
    GPR28: c00000ffc43af010 c00000ffc9144000 c00000ffcaf22e00 c00000ffcaf22100
    NIP [c00000000080ef8c] __skb_clone+0xdc/0x140
    LR [c00000000080eee8] __skb_clone+0x38/0x140
    Call Trace:
    [c00000ffffc33990] [c00000000080fb74] skb_clone+0x74/0x110 (unreliable)
    [c00000ffffc339c0] [c000000000907f64] packet_rcv+0x144/0x510
    [c00000ffffc33a40] [c000000000827b64] __netif_receive_skb_core+0x5b4/0xd80
    [c00000ffffc33b00] [c00000000082b2bc] netif_receive_skb_internal+0x2c/0xc0
    [c00000ffffc33b40] [c00000000082c49c] napi_gro_receive+0x11c/0x260
    [c00000ffffc33b80] [d000000066483d68] bnx2x_poll+0xcf8/0x17b0 [bnx2x]
    [c00000ffffc33d00] [c00000000082babc] net_rx_action+0x31c/0x480
    [c00000ffffc33e10] [c0000000000d5a44] __do_softirq+0x164/0x3d0
    [c00000ffffc33f00] [c0000000000d60a8] irq_exit+0x108/0x120
    [c00000ffffc33f20] [c000000000015b98] __do_irq+0x98/0x200
    [c00000ffffc33f90] [c000000000027f14] call_do_irq+0x14/0x24
    [c00000ffd4923a90] [c000000000015d94] do_IRQ+0x94/0x110
    [c00000ffd4923ae0] [c000000000008d90] hardware_interrupt_common+0x150/0x160
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 498d02453e734133baff5ae24d54bf2b72abb179
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Apr 28 15:56:09 2017 +0300

    qed: Unlock on error in qed_vf_pf_acquire()
    
    
    [ Upstream commit 66117a9d9a8ca948680d6554769ef9e88f936954 ]
    
    My static checker complains that we're holding a mutex on this error
    path.  Let's goto exit instead of returning directly.
    
    Fixes: b0bccb69eba3 ("qed: Change locking scheme for VF channel")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c8cd2a87247a9561536345715ef63143551f0c9
Author: Jiri Benc <jbenc@redhat.com>
Date:   Thu Apr 27 21:24:35 2017 +0200

    vxlan: correctly handle ipv6.disable module parameter
    
    
    [ Upstream commit d074bf9600443403aa24fbc12c1f18eadc90f5aa ]
    
    When IPv6 is compiled but disabled at runtime, __vxlan_sock_add returns
    -EAFNOSUPPORT. For metadata based tunnels, this causes failure of the whole
    operation of bringing up the tunnel.
    
    Ignore failure of IPv6 socket creation for metadata based tunnels caused by
    IPv6 not being available.
    
    Fixes: b1be00a6c39f ("vxlan: support both IPv4 and IPv6 sockets in a single vxlan device")
    Signed-off-by: Jiri Benc <jbenc@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5d95e85b20634f58c2d57f4041222a9adefd282
Author: Dean Jenkins <Dean_Jenkins@mentor.com>
Date:   Fri Apr 28 13:57:26 2017 +0100

    Bluetooth: hci_ldisc: Add protocol check to hci_uart_tx_wakeup()
    
    
    [ Upstream commit 2d6f1da168e1d62c47f7d50135ac4cbd8411dcb1 ]
    
    Before attempting to schedule a work-item onto hu->write_work in
    hci_uart_tx_wakeup(), check that the Data Link protocol layer is
    still bound to the HCI UART driver.
    
    Failure to perform this protocol check causes a race condition between
    the work queue hu->write_work running hci_uart_write_work() and the
    Data Link protocol layer being unbound (closed) in hci_uart_tty_close().
    
    Note hci_uart_tty_close() does have a "cancel_work_sync(&hu->write_work)"
    but it is ineffective because it cannot prevent work-items being added
    to hu->write_work after cancel_work_sync() has run.
    
    Therefore, add a check for HCI_UART_PROTO_READY into hci_uart_tx_wakeup()
    which prevents scheduling of the work queue when HCI_UART_PROTO_READY
    is in the clear state. However, note a small race condition remains
    because the hci_uart_tx_wakeup() thread can run in parallel with the
    hci_uart_tty_close() thread so it is possible that a schedule of
    hu->write_work can occur when HCI_UART_PROTO_READY is cleared. A complete
    solution needs locking of the threads which is implemented in a future
    commit.
    
    Signed-off-by: Dean Jenkins <Dean_Jenkins@mentor.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbb952d00c8b254890e1cef7f7b7d23874c3aaa9
Author: Dean Jenkins <Dean_Jenkins@mentor.com>
Date:   Fri Apr 28 13:57:25 2017 +0100

    Bluetooth: hci_ldisc: Add protocol check to hci_uart_dequeue()
    
    
    [ Upstream commit 048e1bd3a27fbeb84ccdff52e165370c1339a193 ]
    
    Before attempting to dequeue a Data Link protocol encapsulated message,
    check that the Data Link protocol is still bound to the HCI UART driver.
    This makes the code consistent with the usage of the other proto
    function pointers.
    
    Therefore, add a check for HCI_UART_PROTO_READY into hci_uart_dequeue()
    and return NULL if the Data Link protocol is not bound.
    
    This is needed for robustness as there is a scheduling race condition.
    hci_uart_write_work() is scheduled to run via work queue hu->write_work
    from hci_uart_tx_wakeup(). Therefore, there is a delay between
    scheduling hci_uart_write_work() to run and hci_uart_dequeue() running
    whereby the Data Link protocol layer could become unbound during the
    scheduling delay. In this case, without the check, the call to the
    unbound Data Link protocol layer dequeue function can crash.
    
    It is noted that hci_uart_tty_close() has a
    "cancel_work_sync(&hu->write_work)" statement but this only reduces
    the window of the race condition because it is possible for a new
    work-item to be added to work queue hu->write_work after the call to
    cancel_work_sync(). For example, Data Link layer retransmissions can
    be added to the work queue after the cancel_work_sync() has finished.
    
    Signed-off-by: Dean Jenkins <Dean_Jenkins@mentor.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 949b9dc1818a100941ed63c5147059a5f64c7987
Author: Valentin Longchamp <valentin.longchamp@keymile.com>
Date:   Fri Feb 17 11:29:45 2017 +0100

    soc/fsl/qe: round brg_freq to 1kHz granularity
    
    
    [ Upstream commit 2ccf80b7566cc035d903dd0ac5d7ebd25c2c1060 ]
    
    Because of integer computation rounding in u-boot (that sets the QE
    brg-frequency DTS prop), the clk value is 99999999 Hz even though it is
    100 MHz.
    
    When setting brg clks that are exact divisors of 100 MHz, this small
    differnce plays a role and can result in lower clks to be output (for
    instance 20 MHz - divide by 5 - results in 16.666 MHz - divide by 6).
    
    This patch fixes that by "forcing" the brg_clk to the nearest kHz when
    the difference is below 2 integer rounding errors (i.e. 4).
    
    Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
    Signed-off-by: Scott Wood <oss@buserror.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0d0441f2a6ae3dc20ee4a6871d48178c17911a7
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Tue Feb 7 10:05:09 2017 +0100

    net: ethernet: ucc_geth: fix MEM_PART_MURAM mode
    
    
    [ Upstream commit 8b8642af15ed14b9a7a34d3401afbcc274533e13 ]
    
    Since commit 5093bb965a163 ("powerpc/QE: switch to the cpm_muram
    implementation"), muram area is not part of immrbar mapping anymore
    so immrbar_virt_to_phys() is not usable anymore.
    
    Fixes: 5093bb965a163 ("powerpc/QE: switch to the cpm_muram implementation")
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Acked-by: David S. Miller <davem@davemloft.net>
    Acked-by: Li Yang <pku.leo@gmail.com>
    Signed-off-by: Scott Wood <oss@buserror.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1b6f948b41cb69fe4ac81f49eb218df9399507c
Author: Emil Tantilov <emil.s.tantilov@intel.com>
Date:   Thu Mar 30 20:49:02 2017 -0700

    ixgbevf: fix size of queue stats length
    
    
    [ Upstream commit f87fc44770f54ff1b54d44ae9cec11f10efeca02 ]
    
    IXGBEVF_QUEUE_STATS_LEN is based on ixgebvf_stats, not ixgbe_stats.
    
    This change fixes a bug where ethtool -S displayed some empty fields.
    
    Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81ca30d9654a6035f0bef174bd7df541b3e94217
Author: Jan Kara <jack@suse.cz>
Date:   Sat Apr 29 20:12:16 2017 -0400

    jbd2: Fix lockdep splat with generic/270 test
    
    
    [ Upstream commit c52c47e4b4fbe4284602fc2ccbfc4a4d8dc05b49 ]
    
    I've hit a lockdep splat with generic/270 test complaining that:
    
    3216.fsstress.b/3533 is trying to acquire lock:
     (jbd2_handle){++++..}, at: [<ffffffff813152e0>] jbd2_log_wait_commit+0x0/0x150
    
    but task is already holding lock:
     (jbd2_handle){++++..}, at: [<ffffffff8130bd3b>] start_this_handle+0x35b/0x850
    
    The underlying problem is that jbd2_journal_force_commit_nested()
    (called from ext4_should_retry_alloc()) may get called while a
    transaction handle is started. In such case it takes care to not wait
    for commit of the running transaction (which would deadlock) but only
    for a commit of a transaction that is already committing (which is safe
    as that doesn't wait for any filesystem locks).
    
    In fact there are also other callers of jbd2_log_wait_commit() that take
    care to pass tid of a transaction that is already committing and for
    those cases, the lockdep instrumentation is too restrictive and leading
    to false positive reports. Fix the problem by calling
    jbd2_might_wait_for_commit() from jbd2_log_wait_commit() only if the
    transaction isn't already committing.
    
    Fixes: 1eaa566d368b214d99cbb973647c1b0b8102a9ae
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7be76fbbd25c4cd838125f8ea843d1fb1c657db0
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
Date:   Mon Apr 24 01:59:34 2017 +0200

    drm/nouveau/kms: Increase max retries in scanout position queries.
    
    
    [ Upstream commit 60b95d709525e3ce1c51e1fc93175dcd1755d345 ]
    
    So far we only allowed for 1 retry and just failed the query
    - and thereby high precision vblank timestamping - if we did
    not get a reasonable result, as such a failure wasn't considered
    all too horrible. There are a few NVidia gpu models out there which
    may need a bit more than 1 retry to get a successful query result
    under some conditions.
    
    Since Linux 4.4 the update code for vblank counter and timestamp
    in drm_update_vblank_count() changed so that the implementation
    assumes that high precision vblank timestamping of a kms driver
    either consistently succeeds or consistently fails for a given
    video mode and encoder/connector combo. Iow. switching from success
    to fail or vice versa on a modeset or connector change is ok, but
    spurious temporary failure for a given setup can confuse the core
    code and potentially cause bad miscounting of vblanks and confusion
    or hangs in userspace clients which rely on vblank  stuff, e.g.,
    desktop compositors.
    
    Therefore change the max retry count to a larger number - more than
    any gpu so far is known to need to succeed, but still low enough
    so that these queries which do also happen in vblank interrupt are
    still fast enough to be not disastrously long if something would
    go badly wrong with them.
    
    As such sporadic retries only happen seldom even on affected gpu's,
    this could mean a vblank irq could take a few dozen microseconds
    longer every few hours of uptime -- better than a desktop compositor
    randomly hanging every couple of hours or days of uptime in a hard
    to reproduce manner.
    
    Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8112fa3c00c68f4407c970aeaa73a8e64c1e717b
Author: Chunming Zhou <David1.Zhou@amd.com>
Date:   Mon Apr 24 17:09:15 2017 +0800

    drm/amdgpu: fix gpu reset crash
    
    
    [ Upstream commit 51687759be93fbc553f2727e86be25c38126ba93 ]
    
    [  413.687439] BUG: unable to handle kernel NULL pointer dereference at 0000000000000548
    [  413.687479] IP: [<ffffffff8109b175>] to_live_kthread+0x5/0x60
    [  413.687507] PGD 1efd12067
    [  413.687519] PUD 1efd11067
    [  413.687531] PMD 0
    
    [  413.687543] Oops: 0000 [#1] SMP
    [  413.687557] Modules linked in: amdgpu(OE) ttm(OE) drm_kms_helper(E) drm(E) i2c_algo_bit(E) fb_sys_fops(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) rpcsec_gss_krb5(E) nfsv4(E) nfs(E) fscache(E) snd_hda_codec_realtek(E) snd_hda_codec_generic(E) snd_hda_codec_hdmi(E) snd_hda_intel(E) eeepc_wmi(E) snd_hda_codec(E) asus_wmi(E) snd_hda_core(E) sparse_keymap(E) snd_hwdep(E) video(E) snd_pcm(E) snd_seq_midi(E) joydev(E) snd_seq_midi_event(E) snd_rawmidi(E) snd_seq(E) snd_seq_device(E) snd_timer(E) kvm(E) irqbypass(E) crct10dif_pclmul(E) snd(E) crc32_pclmul(E) ghash_clmulni_intel(E) soundcore(E) aesni_intel(E) aes_x86_64(E) lrw(E) gf128mul(E) glue_helper(E) ablk_helper(E) cryptd(E) shpchp(E) serio_raw(E) i2c_piix4(E) 8250_dw(E) i2c_designware_platform(E) i2c_designware_core(E) mac_hid(E) binfmt_misc(E)
    [  413.687894]  parport_pc(E) ppdev(E) lp(E) parport(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) autofs4(E) hid_generic(E) usbhid(E) hid(E) psmouse(E) ahci(E) r8169(E) mii(E) libahci(E) wmi(E)
    [  413.687989] CPU: 13 PID: 1134 Comm: kworker/13:2 Tainted: G           OE   4.9.0-custom #4
    [  413.688019] Hardware name: System manufacturer System Product Name/PRIME B350-PLUS, BIOS 0606 04/06/2017
    [  413.688089] Workqueue: events amd_sched_job_timedout [amdgpu]
    [  413.688116] task: ffff88020f9657c0 task.stack: ffffc90001a88000
    [  413.688139] RIP: 0010:[<ffffffff8109b175>]  [<ffffffff8109b175>] to_live_kthread+0x5/0x60
    [  413.688171] RSP: 0018:ffffc90001a8bd60  EFLAGS: 00010282
    [  413.688191] RAX: ffff88020f0073f8 RBX: ffff88020f000000 RCX: 0000000000000000
    [  413.688217] RDX: 0000000000000001 RSI: ffff88020f9670c0 RDI: 0000000000000000
    [  413.688243] RBP: ffffc90001a8bd78 R08: 0000000000000000 R09: 0000000000001000
    [  413.688269] R10: 0000006051b11a82 R11: 0000000000000001 R12: 0000000000000000
    [  413.688295] R13: ffff88020f002770 R14: ffff88020f004838 R15: ffff8801b23c2c60
    [  413.688321] FS:  0000000000000000(0000) GS:ffff88021ef40000(0000) knlGS:0000000000000000
    [  413.688352] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  413.688373] CR2: 0000000000000548 CR3: 00000001efd0f000 CR4: 00000000003406e0
    [  413.688399] Stack:
    [  413.688407]  ffffffff8109b304 ffff88020f000000 0000000000000070 ffffc90001a8bdf0
    [  413.688439]  ffffffffa05ce29d ffffffffa052feb7 ffffffffa07b5820 ffffc90001a8bda0
    [  413.688470]  ffffffff00000018 ffff8801bb88f060 0000000001a8bdb8 ffff88021ef59280
    [  413.688502] Call Trace:
    [  413.688514]  [<ffffffff8109b304>] ? kthread_park+0x14/0x60
    [  413.688555]  [<ffffffffa05ce29d>] amdgpu_gpu_reset+0x7d/0x670 [amdgpu]
    [  413.688589]  [<ffffffffa052feb7>] ? drm_printk+0x97/0xa0 [drm]
    [  413.688643]  [<ffffffffa0698136>] amdgpu_job_timedout+0x46/0x50 [amdgpu]
    [  413.688700]  [<ffffffffa06969e7>] amd_sched_job_timedout+0x17/0x20 [amdgpu]
    [  413.688727]  [<ffffffff81095493>] process_one_work+0x153/0x3f0
    [  413.688751]  [<ffffffff81095c5b>] worker_thread+0x12b/0x4b0
    [  413.688773]  [<ffffffff8100392e>] ? do_syscall_64+0x6e/0x180
    [  413.688795]  [<ffffffff81095b30>] ? rescuer_thread+0x350/0x350
    [  413.688818]  [<ffffffff8100392e>] ? do_syscall_64+0x6e/0x180
    [  413.688839]  [<ffffffff8109b423>] kthread+0xd3/0xf0
    [  413.688858]  [<ffffffff8109b350>] ? kthread_park+0x60/0x60
    [  413.688881]  [<ffffffff817e1ee5>] ret_from_fork+0x25/0x30
    [  413.688901] Code: 25 40 d3 00 00 48 8b 80 48 05 00 00 48 89 e5 5d 48 8b 40 c8 48 c1 e8 02 83 e0 01 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 <48> 8b b7 48 05 00 00 55 48 89 e5 48 85 f6 74 31 8b 97 f8 18 00
    [  413.689045] RIP  [<ffffffff8109b175>] to_live_kthread+0x5/0x60
    [  413.689064]  RSP <ffffc90001a8bd60>
    [  413.689076] CR2: 0000000000000548
    [  413.697985] ---[ end trace 0a314a64821f84e9 ]---
    
    The root cause is some ring doesn't have scheduler, like KIQ ring
    
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec4b63f5c0a47d01b92af90cd645f47e03f36a98
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Apr 21 13:48:08 2017 +0200

    ACPI / PMIC: xpower: Fix power_table addresses
    
    
    [ Upstream commit 2bde7c32b1db162692f05c6be066b5bcd3d9fdbe ]
    
    The power table addresses should be contiguous, but there was a hole
    where 0x34 was missing. On most devices this is not a problem as
    addresses above 0x34 are used for the BUC# convertors which are not
    used in the DSDTs I've access to but after the BUC# convertors
    there is a field named GPI1 in the DSTDs, which does get used in some
    cases and ended up turning BUC6 on and off due to the wrong addresses,
    resulting in turning the entire device off (or causing it to reboot).
    
    Removing the hole in the addresses fixes this, fixing one of my
    Bay Trail tablets turning off while booting the mainline kernel.
    
    While at it add comments with the field names used in the DSDTs to
    make it easier to compare the register and bits used at each address
    with the datasheet.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e9e5ad6b0ef2f00ba23f550c1347bbfb44b66e20
Author: Robert Lippert <roblip@gmail.com>
Date:   Thu Apr 20 16:49:47 2017 -0700

    ipmi/watchdog: fix wdog hang on panic waiting for ipmi response
    
    
    [ Upstream commit 2c1175c2e8e5487233cabde358a19577562ac83e ]
    
    Commit c49c097610fe ("ipmi: Don't call receive handler in the
    panic context") means that the panic_recv_free is not called during a
    panic and the atomic count does not drop to 0.
    
    Fix this by only expecting one decrement of the atomic variable
    which comes from panic_smi_free.
    
    Signed-off-by: Robert Lippert <rlippert@google.com>
    Signed-off-by: Corey Minyard <cminyard@mvista.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c1c184bb571e696ffcd57ed43c65f8c91a6d03e
Author: Oleksij Rempel <linux@rempel-privat.de>
Date:   Fri Apr 28 16:19:49 2017 +0200

    platform/x86: asus-wmi: try to set als by default
    
    
    [ Upstream commit e9b615186805e2c18a0ac76aca62c1543ecfdbb8 ]
    
    some laptops, for example ASUS UX330UAK, have brocken als_get function
    but working als_set funktion. In this case, ALS will stay turned off.
    
                 Method (WMNB, 3, Serialized)
                {
                ...
                   If (Local0 == 0x53545344)
                    {
                    ...
                        If (IIA0 == 0x00050001)
                        {
                            If (!ALSP)
                            {
                                Return (0x02)
                            }
    
                            Local0 = (GALS & 0x10)    <<<---- bug,
                                                        should be: (GALS () & 0x10)
                            If (Local0)
                            {
                                Return (0x00050001)
                            }
                            Else
                            {
                                Return (0x00050000)
                            }
                        }
    
                 .....
                    If (Local0 == 0x53564544)
                    {
                    ...
                        If (IIA0 == 0x00050001)
                        {
                            Return (ALSC (IIA1))
                        }
    
                      ......
                        Method (GALS, 0, NotSerialized)
                        {
                            Local0 = Zero
                            Local0 |= 0x20
                            If (ALAE)
                            {
                                Local0 |= 0x10
                            }
    
                            Local1 = 0x0A
                            Local1 <<= 0x08
                            Local0 |= Local1
                            Return (Local0)
                        }
    
    Since it works without problems on Windows I assume ASUS WMI driver for Win
    never trying to get ALS state, and instead it is setting it by default to ON.
    
    This patch will do the same. Turn ALS on by default.
    
    Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b38508b8e016e5017c3920000bd9233e0c4d3666
Author: Tadeusz Struk <tadeusz.struk@intel.com>
Date:   Fri Apr 28 10:40:02 2017 -0700

    IB/hfi1: Fix softlockup issue
    
    
    [ Upstream commit 22546b741af8355cd2e16739b6af4a8f17081839 ]
    
    Soft lockups can occur because the mad processing on different CPUs acquire
    the spin lock dc8051_lock:
    
    [534552.835870]  [<ffffffffa026f993>] ? read_dev_port_cntr.isra.37+0x23/0x160 [hfi1]
    [534552.835880]  [<ffffffffa02775af>] read_dev_cntr+0x4f/0x60 [hfi1]
    [534552.835893]  [<ffffffffa028d7cd>] pma_get_opa_portstatus+0x64d/0x8c0 [hfi1]
    [534552.835904]  [<ffffffffa0290e7d>] hfi1_process_mad+0x48d/0x18c0 [hfi1]
    [534552.835908]  [<ffffffff811dc1f1>] ? __slab_free+0x81/0x2f0
    [534552.835936]  [<ffffffffa024c34e>] ? ib_mad_recv_done+0x21e/0xa30 [ib_core]
    [534552.835939]  [<ffffffff811dd153>] ? __kmalloc+0x1f3/0x240
    [534552.835947]  [<ffffffffa024c3fb>] ib_mad_recv_done+0x2cb/0xa30 [ib_core]
    [534552.835955]  [<ffffffffa0237c85>] __ib_process_cq+0x55/0xd0 [ib_core]
    [534552.835962]  [<ffffffffa0237d70>] ib_cq_poll_work+0x20/0x60 [ib_core]
    [534552.835964]  [<ffffffff810a7f3b>] process_one_work+0x17b/0x470
    [534552.835966]  [<ffffffff810a8d76>] worker_thread+0x126/0x410
    [534552.835969]  [<ffffffff810a8c50>] ? rescuer_thread+0x460/0x460
    [534552.835971]  [<ffffffff810b052f>] kthread+0xcf/0xe0
    [534552.835974]  [<ffffffff810b0460>] ? kthread_create_on_node+0x140/0x140
    [534552.835977]  [<ffffffff81696418>] ret_from_fork+0x58/0x90
    [534552.835980]  [<ffffffff810b0460>] ? kthread_create_on_node+0x140/0x140
    
    This issue is made worse when the 8051 is busy and the reads take longer.
    Fix by using a non-spinning lock procure.
    
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Reviewed-by: Mike Marciszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 566edbdefb71f4b4852aa3d8c55b79ebf3fc1f09
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Apr 27 12:14:20 2017 +0300

    IB/rdmavt: restore IRQs on error path in rvt_create_ah()
    
    
    [ Upstream commit f0bb2d44ca26b7090dc7bade8877b77005f07dfc ]
    
    We need to call spin_unlock_irqrestore() instead of vanilla
    spin_unlock() on this error path.
    
    Fixes: 119a8e708d16 ("IB/rdmavt: Add AH to rdmavt")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Acked-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b642685751f3b998721ea318792004d474fca5b0
Author: Kishon Vijay Abraham I <kishon@ti.com>
Date:   Mon Mar 27 15:15:20 2017 +0530

    ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP
    
    
    [ Upstream commit 2c949ce38f4e81d7487f165fa3b8f77d74a2a6c4 ]
    
    The PCIe programming sequence in TRM suggests CLKSTCTRL of PCIe should be
    set to SW_WKUP. There are no issues when CLKSTCTRL is set to HW_AUTO in RC
    mode. However in EP mode, the host system is not able to access the
    MEMSPACE and setting the CLKSTCTRL to SW_WKUP fixes it.
    
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c70c7be280448ad7dce9d74fb66c858de534383a
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Apr 28 15:57:56 2017 +0300

    netfilter: x_tables: unlock on error in xt_find_table_lock()
    
    
    [ Upstream commit 7dde07e9c53617549d67dd3e1d791496d0d3868e ]
    
    According to my static checker we should unlock here before the return.
    That seems reasonable to me as well.
    
    Fixes" b9e69e127397 ("netfilter: xtables: don't hook tables by default")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff3d5600e2e6240869dd73e4c205108d672db7d7
Author: yangbo lu <yangbo.lu@nxp.com>
Date:   Thu Apr 20 14:58:29 2017 +0800

    mmc: sdhci-of-esdhc: limit SD clock for ls1012a/ls1046a
    
    
    [ Upstream commit a627f025eb0534052ff451427c16750b3530634c ]
    
    The ls1046a datasheet specified that the max SD clock frequency
    for eSDHC SDR104/HS200 was 167MHz, and the ls1012a datasheet
    specified it's 125MHz for ls1012a. So this patch is to add the
    limitation.
    
    Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92db807f6c2e2a05f00689ca7f23351400abf541
Author: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date:   Thu Apr 27 12:45:38 2017 +0530

    mac80211: Fix possible sband related NULL pointer de-reference
    
    
    [ Upstream commit 21a8e9dd52b64f0170bad208293ef8c30c3c1403 ]
    
    Existing API 'ieee80211_get_sdata_band' returns default 2 GHz band even
    if the channel context configuration is NULL. This crashes for chipsets
    which support 5 Ghz alone when it tries to access members of 'sband'.
    Channel context configuration can be NULL in multivif case and when
    channel switch is in progress (or) when it fails. Fix this by replacing
    the API 'ieee80211_get_sdata_band' with  'ieee80211_get_sband' which
    returns a NULL pointer for sband when the channel configuration is NULL.
    
    An example scenario is as below:
    
    In multivif mode (AP + STA) with drivers like ath10k, when we do a
    channel switch in the AP vif (which has a number of clients connected)
    and a STA vif which is connected to some other AP, when the channel
    switch in AP vif fails, while the STA vifs tries to connect to the
    other AP, there is a window where the channel context is NULL/invalid
    and this results in a crash  while the clients connected to the AP vif
    tries to reconnect and this race is very similar to the one investigated
    by Michal in https://patchwork.kernel.org/patch/3788161/ and this does
    happens with hardware that supports 5Ghz alone after long hours of
    testing with continuous channel switch on the AP vif
    
    ieee80211 phy0: channel context reservation cannot be finalized because
    some interfaces aren't switching
    wlan0: failed to finalize CSA, disconnecting
    wlan0-1: deauthenticating from 8c:fd:f0:01:54:9c by local choice
            (Reason: 3=DEAUTH_LEAVING)
    
            WARNING: CPU: 1 PID: 19032 at net/mac80211/ieee80211_i.h:1013 sta_info_alloc+0x374/0x3fc [mac80211]
            [<bf77272c>] (sta_info_alloc [mac80211])
            [<bf78776c>] (ieee80211_add_station [mac80211]))
            [<bf73cc50>] (nl80211_new_station [cfg80211])
    
            Unable to handle kernel NULL pointer dereference at virtual
            address 00000014
            pgd = d5f4c000
            Internal error: Oops: 17 [#1] PREEMPT SMP ARM
            PC is at sta_info_alloc+0x380/0x3fc [mac80211]
            LR is at sta_info_alloc+0x37c/0x3fc [mac80211]
            [<bf772738>] (sta_info_alloc [mac80211])
            [<bf78776c>] (ieee80211_add_station [mac80211])
            [<bf73cc50>] (nl80211_new_station [cfg80211]))
    
    Cc: Michal Kazior <michal.kazior@tieto.com>
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfe9c1de141667e360bb28e1e23904316a285607
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Thu Apr 20 11:44:16 2017 +0200

    ipvs: explicitly forbid ipv6 service/dest creation if ipv6 mod is disabled
    
    
    [ Upstream commit 1442f6f7c1b77de1c508318164a527e240c24a4d ]
    
    When creating a new ipvs service, ipv6 addresses are always accepted
    if CONFIG_IP_VS_IPV6 is enabled. On dest creation the address family
    is not explicitly checked.
    
    This allows the user-space to configure ipvs services even if the
    system is booted with ipv6.disable=1. On specific configuration, ipvs
    can try to call ipv6 routing code at setup time, causing the kernel to
    oops due to fib6_rules_ops being NULL.
    
    This change addresses the issue adding a check for the ipv6
    module being enabled while validating ipv6 service operations and
    adding the same validation for dest operations.
    
    According to git history, this issue is apparently present since
    the introduction of ipv6 support, and the oops can be triggered
    since commit 09571c7ae30865ad ("IPVS: Add function to determine
    if IPv6 address is local")
    
    Fixes: 09571c7ae30865ad ("IPVS: Add function to determine if IPv6 address is local")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 419707a9fbe14ec1877159707ecf4111197c38e8
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 19:53:58 2017 +0800

    staging: wilc1000: fix unchecked return value
    
    
    [ Upstream commit 9e96652756ad647b7bcc03cb99ffc9756d7b5f93 ]
    
    Function dev_alloc_skb() will return a NULL pointer if there is no
    enough memory. However, in function WILC_WFI_mon_xmit(), its return
    value is used without validation. This may result in a bad memory access
    bug. This patch fixes the bug.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6806bc0a63ef0797f429b0284f85f1c277d709be
Author: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Date:   Tue Apr 18 16:55:25 2017 -0400

    staging: unisys: visorhba: fix s-Par to boot with option CONFIG_VMAP_STACK set to y
    
    
    [ Upstream commit 3c2bf0bd08123f3497bd3e84bd9088c937b0cb40 ]
    
    The root issue is that we are not allowed to have items on the
    stack being passed to "DMA" like operations. In this case we have
    a vmcall and an inline completion of scsi command.
    
    This patch fixes the issue by moving the variables on stack in
    do_scsi_nolinuxstat() to heap memory.
    
    Signed-off-by: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
    Signed-off-by: David Kershner <david.kershner@unisys.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccda7d225dc55e8518a8aad974885ea3f0456a65
Author: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Date:   Mon Apr 24 12:15:04 2017 -0700

    gpio: gpio-wcove: fix GPIO IRQ status mask
    
    
    [ Upstream commit 881ebd229f4a5ea88f269c1225245e50db9ba303 ]
    
    According to Whiskey Cove PMIC spec, bit 7 of GPIOIRQ0_REG belongs to
    battery IO. So we should skip this bit when checking for GPIO IRQ pending
    status. Otherwise, wcove_gpio_irq_handler() might go into the infinite
    loop until IRQ "pending" status becomes 0. This patch fixes this issue.
    
    Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b0425c6b654028da99bab00b7c9a6eba87cd01b
Author: Baoquan He <bhe@redhat.com>
Date:   Thu Apr 27 15:42:20 2017 +0800

    x86/KASLR: Fix kexec kernel boot crash when KASLR randomization fails
    
    
    [ Upstream commit da63b6b20077469bd6bd96e07991ce145fc4fbc4 ]
    
    Dave found that a kdump kernel with KASLR enabled will reset to the BIOS
    immediately if physical randomization failed to find a new position for
    the kernel. A kernel with the 'nokaslr' option works in this case.
    
    The reason is that KASLR will install a new page table for the identity
    mapping, while it missed building it for the original kernel location
    if KASLR physical randomization fails.
    
    This only happens in the kexec/kdump kernel, because the identity mapping
    has been built for kexec/kdump in the 1st kernel for the whole memory by
    calling init_pgtable(). Here if physical randomizaiton fails, it won't build
    the identity mapping for the original area of the kernel but change to a
    new page table '_pgtable'. Then the kernel will triple fault immediately
    caused by no identity mappings.
    
    The normal kernel won't see this bug, because it comes here via startup_32()
    and CR3 will be set to _pgtable already. In startup_32() the identity
    mapping is built for the 0~4G area. In KASLR we just append to the existing
    area instead of entirely overwriting it for on-demand identity mapping
    building. So the identity mapping for the original area of kernel is still
    there.
    
    To fix it we just switch to the new identity mapping page table when physical
    KASLR succeeds. Otherwise we keep the old page table unchanged just like
    "nokaslr" does.
    
    Signed-off-by: Baoquan He <bhe@redhat.com>
    Signed-off-by: Dave Young <dyoung@redhat.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Garnier <thgarnie@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/1493278940-5885-1-git-send-email-bhe@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db54facd56a40e7766bf7f7cda1ae138e72a691c
Author: Ming Lei <ming.lei@redhat.com>
Date:   Thu Apr 27 07:45:18 2017 -0600

    mtip32xx: use runtime tag to initialize command header
    
    
    [ Upstream commit a4e84aae8139aca9fbfbced1f45c51ca81b57488 ]
    
    mtip32xx supposes that 'request_idx' passed to .init_request()
    is tag of the request, and use that as request's tag to initialize
    command header.
    
    After MQ IO scheduler is in, request tag assigned isn't same with
    the request index anymore, so cause strange hardware failure on
    mtip32xx, even whole system panic is triggered.
    
    This patch fixes the issue by initializing command header via
    request's real tag.
    
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ed083b35d291e06b1792fd4ff3fb45b5ab6e5c5
Author: Keerthy <j-keerthy@ti.com>
Date:   Thu Nov 10 10:39:18 2016 +0530

    mfd: palmas: Reset the POWERHOLD mux during power off
    
    
    [ Upstream commit 85fdaf8eb9bbec1f0f8a52fd5d85659d60738816 ]
    
    POWERHOLD signal has higher priority  over the DEV_ON bit.
    So power off will not happen if the POWERHOLD is held high.
    Hence reset the MUX to GPIO_7 mode to release the POWERHOLD
    and the DEV_ON bit to take effect to power off the PMIC.
    
    PMIC Power off happens in dire situations like thermal shutdown
    so irrespective of the POWERHOLD setting go ahead and turn off
    the powerhold.  Currently poweroff is broken on boards that have
    powerhold enabled. This fixes poweroff on those boards.
    
    Signed-off-by: Keerthy <j-keerthy@ti.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ba6aff7f6539d6923646eed031fcd032dc624f9
Author: Rask Ingemann Lambertsen <rask@formelder.dk>
Date:   Wed Feb 22 20:41:02 2017 +0100

    dt-bindings: mfd: axp20x: Add "xpowers,master-mode" property for AXP806 PMICs
    
    
    [ Upstream commit 8461cf20d17e0090e9236b73d25b31be4f7fadc5 ]
    
    commit b101829a029a ("mfd: axp20x: Fix AXP806 access errors on cold boot")
    was intended to fix the case where a board uses an AXP806 in slave mode,
    but the boot loader leaves it in master mode for lack of AXP806 support.
    But now the driver breaks on boards where the PMIC is operating in master
    mode. To let the device tree describe which mode of operation is needed,
    this patch introduces a new property "xpowers,master-mode".
    
    Fixes: 204ae2963e10 ("mfd: axp20x: Add bindings for AXP806 PMIC")
    Signed-off-by: Rask Ingemann Lambertsen <rask@formelder.dk>
    Acked-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a0c4d9778df57772d07ea241a2cc1f734dee986
Author: Colin Ian King <colin.king@canonical.com>
Date:   Wed Apr 19 15:35:48 2017 +0100

    iio: hid-sensor: fix return of -EINVAL on invalid values in ret or value
    
    
    [ Upstream commit c894acc7bf400d039bf740420b22f0b71b7fb504 ]
    
    Ensure that when an invalid value in ret or value is found -EINVAL
    is returned. A previous commit broke the way the return error is
    being returned and instead caused the return code in ret to be
    re-assigned rather than be returned.
    
    Fixes: 5d9854eaea776 ("iio: hid-sensor: Store restore poll and hysteresis on S3")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fff422f157f4e0b64591d4802d0ebe5b0b1579b
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Wed Apr 26 16:18:49 2017 +0800

    ACPICA: iasl: Fix IORT SMMU GSI disassembling
    
    
    [ Upstream commit bb1e23e66e6237ff7a1824b37366540a89149c33 ]
    
    ACPICA commit 637b88de24a78c20478728d9d66632b06fcaa5bf
    
    If the IORT template is compiled and then iort.aml binary disassembled to
    iort.dsl, SMMUv1 node lists incorrect offset for SMMU_Nsg_cfg_irpt Interrupt:
    [0ECh 0236   8]       SMMU_Nsg_irpt Interrupt : 0000000000000000
    [0ECh 0236   8]    SMMU_Nsg_cfg_irpt Interrupt : 0000000000000000
    This is because iasl hasn't implemented SMMU GSI decoding yet.
    
    This patch fixes this issue by preparing structures for decoding IORT SMMU
    GSI. ACPICA BZ 1340, reported by Alexei Fedorov, fixed by Lv Zheng.
    
    Link: https://github.com/acpica/acpica/commit/637b88de
    Link: https://bugs.acpica.org/show_bug.cgi?id=1340
    Reported-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Bob Moore <robert.moore@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e864196707d102f13a3ab6152c7f647628ffaefa
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Apr 26 10:58:51 2017 +0300

    mac80211: don't parse encrypted management frames in ieee80211_frame_acked
    
    
    [ Upstream commit cf147085fdda044622973a12e4e06f1c753ab677 ]
    
    ieee80211_frame_acked is called when a frame is acked by
    the peer. In case this is a management frame, we check
    if this an SMPS frame, in which case we can update our
    antenna configuration.
    
    When we parse the management frame we look at the category
    in case it is an action frame. That byte sits after the IV
    in case the frame was encrypted. This means that if the
    frame was encrypted, we basically look at the IV instead
    of looking at the category. It is then theorically
    possible that we think that an SMPS action frame was acked
    where really we had another frame that was encrypted.
    
    Since the only management frame whose ack needs to be
    tracked is the SMPS action frame, and that frame is not
    a robust management frame, it will never be encrypted.
    The easiest way to fix this problem is then to not look
    at frames that were encrypted.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 688b8451ee72f1ce5cc2e70297960597cfcf19ae
Author: Martin Brandenburg <martin@omnibond.com>
Date:   Tue Apr 25 15:38:07 2017 -0400

    orangefs: do not wait for timeout if umounting
    
    
    [ Upstream commit b5a9d61eebdd0016ccb383b25a5c3d04977a6549 ]
    
    When the computer is turned off, all the processes are killed and then
    all the filesystems are umounted.  OrangeFS should not wait for the
    userspace daemon to come back in that case.
    
    This only works for plain umount(2).  To actually take advantage of this
    interactively, `umount -f' is needed; otherwise umount will issue a
    statfs first, which will wait for the userspace daemon to come back.
    
    Signed-off-by: Martin Brandenburg <martin@omnibond.com>
    Signed-off-by: Mike Marshall <hubcap@omnibond.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfe9db1d7d40d277e79746bbcfc3046f64d57ba0
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Apr 3 15:57:17 2017 +0100

    Btrfs: fix extent map leak during fallocate error path
    
    
    [ Upstream commit be2d253cc98244765323a7c94cc1ac5cd5a17072 ]
    
    If the call to btrfs_qgroup_reserve_data() failed, we were leaking an
    extent map structure. The failure can happen either due to an -ENOMEM
    condition or, when quotas are enabled, due to -EDQUOT for example.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7016b20cab9b6e7e6d898355ea43eb07ecae14ad
Author: Filipe Manana <fdmanana@suse.com>
Date:   Tue Apr 4 20:31:00 2017 +0100

    Btrfs: send, fix file hole not being preserved due to inline extent
    
    
    [ Upstream commit e1cbfd7bf6dabdac561c75d08357571f44040a45 ]
    
    Normally we don't have inline extents followed by regular extents, but
    there's currently at least one harmless case where this happens. For
    example, when the page size is 4Kb and compression is enabled:
    
      $ mkfs.btrfs -f /dev/sdb
      $ mount -o compress /dev/sdb /mnt
      $ xfs_io -f -c "pwrite -S 0xaa 0 4K" -c "fsync" /mnt/foobar
      $ xfs_io -c "pwrite -S 0xbb 8K 4K" -c "fsync" /mnt/foobar
    
    In this case we get a compressed inline extent, representing 4Kb of
    data, followed by a hole extent and then a regular data extent. The
    inline extent was not expanded/converted to a regular extent exactly
    because it represents 4Kb of data. This does not cause any apparent
    problem (such as the issue solved by commit e1699d2d7bf6
    ("btrfs: add missing memset while reading compressed inline extents"))
    except trigger an unexpected case in the incremental send code path
    that makes us issue an operation to write a hole when it's not needed,
    resulting in more writes at the receiver and wasting space at the
    receiver.
    
    So teach the incremental send code to deal with this particular case.
    
    The issue can be currently triggered by running fstests btrfs/137 with
    compression enabled (MOUNT_OPTIONS="-o compress" ./check btrfs/137).
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd35ded5b59bf4d0c7e154b3bd5b72c5c06591e9
Author: Filipe Manana <fdmanana@suse.com>
Date:   Wed Mar 8 16:43:49 2017 +0000

    Btrfs: fix incorrect space accounting after failure to insert inline extent
    
    
    [ Upstream commit 1c81ba237bcecad9bc885a1ddcf02d725ea38482 ]
    
    When using compression, if we fail to insert an inline extent we
    incorrectly end up attempting to free the reserved data space twice,
    once through extent_clear_unlock_delalloc(), because we pass it the
    flag EXTENT_DO_ACCOUNTING, and once through a direct call to
    btrfs_free_reserved_data_space_noquota(). This results in a trace
    like the following:
    
    [  834.576240] ------------[ cut here ]------------
    [  834.576825] WARNING: CPU: 2 PID: 486 at fs/btrfs/extent-tree.c:4316 btrfs_free_reserved_data_space_noquota+0x60/0x9f [btrfs]
    [  834.579501] Modules linked in: btrfs crc32c_generic xor raid6_pq ppdev i2c_piix4 acpi_cpufreq psmouse tpm_tis parport_pc pcspkr serio_raw tpm_tis_core sg parport evdev i2c_core tpm button loop autofs4 ext4 crc16 jbd2 mbcache sr_mod cdrom sd_mod ata_generic virtio_scsi ata_piix virtio_pci libata virtio_ring virtio scsi_mod e1000 floppy [last unloaded: btrfs]
    [  834.592116] CPU: 2 PID: 486 Comm: kworker/u32:4 Not tainted 4.10.0-rc8-btrfs-next-37+ #2
    [  834.593316] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.1-0-gb3ef39f-prebuilt.qemu-project.org 04/01/2014
    [  834.595273] Workqueue: btrfs-delalloc btrfs_delalloc_helper [btrfs]
    [  834.596103] Call Trace:
    [  834.596103]  dump_stack+0x67/0x90
    [  834.596103]  __warn+0xc2/0xdd
    [  834.596103]  warn_slowpath_null+0x1d/0x1f
    [  834.596103]  btrfs_free_reserved_data_space_noquota+0x60/0x9f [btrfs]
    [  834.596103]  compress_file_range.constprop.42+0x2fa/0x3fc [btrfs]
    [  834.596103]  ? submit_compressed_extents+0x3a7/0x3a7 [btrfs]
    [  834.596103]  async_cow_start+0x32/0x4d [btrfs]
    [  834.596103]  btrfs_scrubparity_helper+0x187/0x3e7 [btrfs]
    [  834.596103]  btrfs_delalloc_helper+0xe/0x10 [btrfs]
    [  834.596103]  process_one_work+0x273/0x4e4
    [  834.596103]  worker_thread+0x1eb/0x2ca
    [  834.596103]  ? rescuer_thread+0x2b6/0x2b6
    [  834.596103]  kthread+0x100/0x108
    [  834.596103]  ? __list_del_entry+0x22/0x22
    [  834.596103]  ret_from_fork+0x2e/0x40
    [  834.611656] ---[ end trace 719902fe6bdef08f ]---
    
    So fix this by not calling directly btrfs_free_reserved_data_space_noquota()
    if an error happened.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3161cdbccf1ea0d516ad029ef6f1b3be0b65708
Author: Pan Bian <bianpan2016@163.com>
Date:   Mon Apr 24 08:40:28 2017 +0800

    rndis_wlan: add return value validation
    
    
    [ Upstream commit 9dc7efd3978aa67ae598129d2a3f240b390ce508 ]
    
    Function create_singlethread_workqueue() will return a NULL pointer if
    there is no enough memory, and its return value should be validated
    before using. However, in function rndis_wlan_bind(), its return value
    is not checked. This may cause NULL dereference bugs. This patch fixes
    it.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0397b294e87940c35af30e0a5bd6cfc110d132cb
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 21:19:38 2017 +0800

    libertas: check return value of alloc_workqueue
    
    
    [ Upstream commit dc3f89c38a8406554ffeffa370aad086a9c5e9de ]
    
    Function alloc_workqueue() will return a NULL pointer if there is no
    enough memory, and its return value should be validated before using.
    However, in function if_spi_probe(), its return value is not checked.
    This may result in a NULL dereference bug. This patch fixes the bug.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d79cd54ba0e3b712d734eb24210432680900154
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 15:00:23 2017 +0800

    mt7601u: check return value of alloc_skb
    
    
    [ Upstream commit 5fb01e91daf84ad1e50edfcf63116ecbe31e7ba7 ]
    
    Function alloc_skb() will return a NULL pointer if there is no enough
    memory. However, in function mt7601u_mcu_msg_alloc(), its return value
    is not validated before it is used. This patch fixes it.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Acked-by: Jakub Kicinski <kubakici@wp.pl>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19b0f2fad8ceb65480e8faf5cb8f7de015b94655
Author: Shrirang Bagul <shrirang.bagul@canonical.com>
Date:   Wed Apr 19 22:05:00 2017 +0800

    iio: st_pressure: st_accel: Initialise sensor platform data properly
    
    
    [ Upstream commit 7383d44b84c94aaca4bf695a6bd8a69f2295ef1a ]
    
    This patch fixes the sensor platform data initialisation for st_pressure
    and st_accel device drivers. Without this patch, the driver fails to
    register the sensors when the user removes and re-loads the driver.
    
    1. Unload the kernel modules for st_pressure
    $ sudo rmmod st_pressure_i2c
    $ sudo rmmod st_pressure
    
    2. Re-load the driver
    $ sudo insmod st_pressure
    $ sudo insmod st_pressure_i2c
    
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Acked-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5684e7a731d04dee1a2e9b76e5aba228647d5f9
Author: NeilBrown <neilb@suse.com>
Date:   Wed Mar 15 12:40:44 2017 +1100

    NFS: don't try to cross a mountpount when there isn't one there.
    
    
    [ Upstream commit 99bbf6ecc694dfe0b026e15359c5aa2a60b97a93 ]
    
    consider the sequence of commands:
     mkdir -p /import/nfs /import/bind /import/etc
     mount --bind / /import/bind
     mount --make-private /import/bind
     mount --bind /import/etc /import/bind/etc
    
     exportfs -o rw,no_root_squash,crossmnt,async,no_subtree_check localhost:/
     mount -o vers=4 localhost:/ /import/nfs
     ls -l /import/nfs/etc
    
    You would not expect this to report a stale file handle.
    Yet it does.
    
    The manipulations under /import/bind cause the dentry for
    /etc to get the DCACHE_MOUNTED flag set, even though nothing
    is mounted on /etc.  This causes nfsd to call
    nfsd_cross_mnt() even though there is no mountpoint.  So an
    upcall to mountd for "/etc" is performed.
    
    The 'crossmnt' flag on the export of / causes mountd to
    report that /etc is exported as it is a descendant of /.  It
    assumes the kernel wouldn't ask about something that wasn't
    a mountpoint.  The filehandle returned identifies the
    filesystem and the inode number of /etc.
    
    When this filehandle is presented to rpc.mountd, via
    "nfsd.fh", the inode cannot be found associated with any
    name in /etc/exports, or with any mountpoint listed by
    getmntent().  So rpc.mountd says the filehandle doesn't
    exist. Hence ESTALE.
    
    This is fixed by teaching nfsd not to trust DCACHE_MOUNTED
    too much.  It is just a hint, not a guarantee.
    Change nfsd_mountpoint() to return '1' for a certain mountpoint,
    '2' for a possible mountpoint, and 0 otherwise.
    
    Then change nfsd_crossmnt() to check if follow_down()
    actually found a mountpount and, if not, to avoid performing
    a lookup if the location is not known to certainly require
    an export-point.
    
    Signed-off-by: NeilBrown <neilb@suse.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abdb88128d3642ae378cf9239da4cb8228049476
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Tue Apr 11 13:22:29 2017 -0400

    xprtrdma: Cancel refresh worker during buffer shutdown
    
    
    [ Upstream commit 9378b274e1eb6925db315e345f48850d2d5d9789 ]
    
    Trying to create MRs while the transport is being torn down can
    cause a crash.
    
    Fixes: e2ac236c0b65 ("xprtrdma: Allocate MRs on demand")
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5e7b5ce7fa21d02b12d4383b003da22e79f91e1
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Tue Apr 25 11:26:53 2017 -0400

    pNFS: Fix use after free issues in pnfs_do_read()
    
    
    [ Upstream commit 6aeafd05eca9bc8ab6b03d7e56d09ffd18190f44 ]
    
    The assumption should be that if the caller returns PNFS_ATTEMPTED, then hdr
    has been consumed, and so we should not be testing hdr->task.tk_status.
    If the caller returns PNFS_TRY_AGAIN, then we need to recoalesce and
    free hdr.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81fa3239900f7fb378764318d200b5bb9c477cd6
Author: Vlad Tsyrklevich <vlad@tsyrklevich.net>
Date:   Fri Mar 24 15:55:17 2017 -0400

    infiniband/uverbs: Fix integer overflows
    
    
    [ Upstream commit 4f7f4dcfff2c19debbcdbcc861c325610a15e0c5 ]
    
    The 'num_sge' variable is verfied to be smaller than the 'sge_count'
    variable; however, since both are user-controlled it's possible to cause
    an integer overflow for the kmalloc multiply on 32-bit platforms
    (num_sge and sge_count are both defined u32). By crafting an input that
    causes a smaller-than-expected allocation it's possible to write
    controlled data out-of-bounds.
    
    Signed-off-by: Vlad Tsyrklevich <vlad@tsyrklevich.net>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a15303518c005ae63ce1e22053822ea43db6dd1
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Sun Apr 2 17:08:05 2017 +1000

    scsi: mac_esp: Replace bogus memory barrier with spinlock
    
    
    [ Upstream commit 4da2b1eb230ba4ad19b58984dc52e05b1073df5f ]
    
    Commit da244654c66e ("[SCSI] mac_esp: fix for quadras with two esp
    chips") added mac_scsi_esp_intr() to handle the IRQ lines from a pair of
    on-board ESP chips (a normal shared IRQ did not work).
    
    Proper mutual exclusion was missing from that patch. This patch fixes
    race conditions between comparison and assignment of esp_chips[]
    pointers.
    
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9338ee7eea66913d821e1db1ae7b308c1f99adbb
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Mon Apr 24 23:35:21 2017 +0200

    platform/x86: intel-vbtn: add volume up and down
    
    
    [ Upstream commit 8d9e29972836b75eb74f533594999500a4c7cc19 ]
    
    Tested on HP Elite X2 1012 G1.
    Matches event report of Lenovo Helix 2
    (https://www.spinics.net/lists/ibm-acpi-devel/msg03982.html).
    
    Signed-off-by: Maarten Maathuis <madman2003@shikahr.net>
    [andy: fixed indentation of comments and massaged title of the change]
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ad1c43e6dc47c5ab1843180a3764a3dd982205a
Author: Liping Zhang <zlpnobody@gmail.com>
Date:   Sun Apr 23 18:29:30 2017 +0800

    netfilter: nft_dynset: continue to next expr if _OP_ADD succeeded
    
    
    [ Upstream commit 277a292835c196894ef895d5e1fd6170bb916f55 ]
    
    Currently, after adding the following nft rules:
      # nft add set x target1 { type ipv4_addr \; flags timeout \;}
      # nft add rule x y set add ip daddr timeout 1d @target1 counter
    
    the counters will always be zero despite of the elements are added
    to the dynamic set "target1" or not, as we will break the nft expr
    traversal unconditionally:
      # nft list ruleset
      ...
      set target1 {
          ...
          elements = { 8.8.8.8 expires 23h59m53s}
      }
      chain output {
          ...
          set add ip daddr timeout 1d @target1 counter packets 0 bytes 0
                                                               ^       ^
          ...
      }
    
    Since we add the elements to the set successfully, we should continue
    to the next expression.
    
    Additionally, if elements are added to "flow table" successfully, we
    will _always_ continue to the next expr, even if the operation is
    _OP_ADD. So it's better to keep them to be consistent.
    
    Fixes: 22fe54d5fefc ("netfilter: nf_tables: add support for dynamic set updates")
    Reported-by: Robert White <rwhite@pobox.com>
    Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf4b579b67141d6d62ea3a243ce8397fb693d52c
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 20:04:04 2017 +0800

    qlcnic: fix unchecked return value
    
    
    [ Upstream commit 91ec701a553cb3de470fd471c6fefe3ad1125455 ]
    
    Function pci_find_ext_capability() may return 0, which is an invalid
    address. In function qlcnic_sriov_virtid_fn(), its return value is used
    without validation. This may result in invalid memory access bugs. This
    patch fixes the bug.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eff9431cafa95b343fc6035833a0ed342e6120d0
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 17:38:35 2017 +0800

    wan: pc300too: abort path on failure
    
    
    [ Upstream commit 2a39e7aa8a98f777f0732ca7125b6c9668791760 ]
    
    In function pc300_pci_init_one(), on the ioremap error path, function
    pc300_pci_remove_one() is called to free the allocated memory. However,
    the path is not terminated, and the freed memory will be used later,
    resulting in use-after-free bugs. This path fixes the bug.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 185c88b1ef47f9b0a35b92e7a66d51b4acce2136
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 15:09:19 2017 +0800

    tipc: check return value of nlmsg_new
    
    
    [ Upstream commit 78302fd405769c9a9379e9adda119d533dce2eed ]
    
    Function nlmsg_new() will return a NULL pointer if there is no enough
    memory, and its return value should be checked before it is used.
    However, in function tipc_nl_node_get_monitor(), the validation of the
    return value of function nlmsg_new() is missed. This patch fixes the
    bug.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abff7f51914942f1d1a80d674cb21aa48a534ba0
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Apr 10 16:54:17 2017 +0300

    mmc: host: omap_hsmmc: checking for NULL instead of IS_ERR()
    
    
    [ Upstream commit ec5ab8933772c87f24ad62a4a602fe8949f423c2 ]
    
    devm_pinctrl_get() returns error pointers, it never returns NULL.
    
    Fixes: 455e5cd6f736 ("mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a0427103f90ced70dc77fd3f098ac30697303dc
Author: Liping Zhang <zlpnobody@gmail.com>
Date:   Sat Apr 15 19:27:42 2017 +0800

    netfilter: nf_ct_helper: permit cthelpers with different names via nfnetlink
    
    
    [ Upstream commit 66e5a6b18bd09d0431e97cd3c162e76c5c2aebba ]
    
    cthelpers added via nfnetlink may have the same tuple, i.e. except for
    the l3proto and l4proto, other fields are all zero. So even with the
    different names, we will also fail to add them:
      # nfct helper add ssdp inet udp
      # nfct helper add tftp inet udp
      nfct v1.4.3: netlink error: File exists
    
    So in order to avoid unpredictable behaviour, we should:
    1. cthelpers can be selected by nft ct helper obj or xt_CT target, so
    report error if duplicated { name, l3proto, l4proto } tuple exist.
    2. cthelpers can be selected by nf_ct_tuple_src_mask_cmp when
    nf_ct_auto_assign_helper is enabled, so also report error if duplicated
    { l3proto, l4proto, src-port } tuple exist.
    
    Also note, if the cthelper is added from userspace, then the src-port will
    always be zero, it's invalid for nf_ct_auto_assign_helper, so there's no
    need to check the second point listed above.
    
    Fixes: 893e093c786c ("netfilter: nf_ct_helper: bail out on duplicated helpers")
    Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2e269c09fc74a5da3701d58954422612dae4a47
Author: Jarno Rajahalme <jarno@ovn.org>
Date:   Fri Apr 14 14:26:38 2017 -0700

    openvswitch: Delete conntrack entry clashing with an expectation.
    
    
    [ Upstream commit cf5d70918877c6a6655dc1e92e2ebb661ce904fd ]
    
    Conntrack helpers do not check for a potentially clashing conntrack
    entry when creating a new expectation.  Also, nf_conntrack_in() will
    check expectations (via init_conntrack()) only if a conntrack entry
    can not be found.  The expectation for a packet which also matches an
    existing conntrack entry will not be removed by conntrack, and is
    currently handled inconsistently by OVS, as OVS expects the
    expectation to be removed when the connection tracking entry matching
    that expectation is confirmed.
    
    It should be noted that normally an IP stack would not allow reuse of
    a 5-tuple of an old (possibly lingering) connection for a new data
    connection, so this is somewhat unlikely corner case.  However, it is
    possible that a misbehaving source could cause conntrack entries be
    created that could then interfere with new related connections.
    
    Fix this in the OVS module by deleting the clashing conntrack entry
    after an expectation has been matched.  This causes the following
    nf_conntrack_in() call also find the expectation and remove it when
    creating the new conntrack entry, as well as the forthcoming reply
    direction packets to match the new related connection instead of the
    old clashing conntrack entry.
    
    Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
    Reported-by: Yang Song <yangsong@vmware.com>
    Signed-off-by: Jarno Rajahalme <jarno@ovn.org>
    Acked-by: Joe Stringer <joe@ovn.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87cfd7f65fc22368291d54221510af3dd31b4a3b
Author: Gao Feng <fgao@ikuai8.com>
Date:   Fri Apr 14 10:00:08 2017 +0800

    netfilter: xt_CT: fix refcnt leak on error path
    
    
    [ Upstream commit 470acf55a021713869b9bcc967268ac90c8a0fac ]
    
    There are two cases which causes refcnt leak.
    
    1. When nf_ct_timeout_ext_add failed in xt_ct_set_timeout, it should
    free the timeout refcnt.
    Now goto the err_put_timeout error handler instead of going ahead.
    
    2. When the time policy is not found, we should call module_put.
    Otherwise, the related cthelper module cannot be removed anymore.
    It is easy to reproduce by typing the following command:
      # iptables -t raw -A OUTPUT -p tcp -j CT --helper ftp --timeout xxx
    
    Signed-off-by: Gao Feng <fgao@ikuai8.com>
    Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9907f1f6d86d10aecdc14427f7224cf95d32dd73
Author: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Date:   Fri Apr 14 10:29:25 2017 -0700

    gpio: gpio-wcove: fix irq pending status bit width
    
    
    [ Upstream commit 7c2d176fe3f8dce632b948f79c7e89916ffe2c70 ]
    
    Whiskey cove PMIC has three GPIO banks with total number of 13 GPIO
    pins. But when checking for the pending status, for_each_set_bit() uses
    bit width of 7 and hence it only checks the status for first 7 GPIO pins
    missing to check/clear the status of rest of the GPIO pins. This patch
    fixes this issue.
    
    Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5406a7557444708a5742a08acb83c6d339d0bb9
Author: James Smart <jsmart2021@gmail.com>
Date:   Fri Apr 21 16:05:05 2017 -0700

    Fix Express lane queue creation.
    
    
    [ Upstream commit 7e04e21afa82ef024416f5413b5bdb66e0505bcd ]
    
    The older sli4 adapters only supported the 64 byte WQE entry size.
    The new adapter (fw) support both 64 and 128 byte WQE entry sizies.
    The Express lane WQ was not being created with the 128 byte WQE sizes
    when it was supported.
    
    Not having the right WQE size created for the express lane work queue
    caused the the firmware to overwrite the lun indentifier in the FCP header.
    
    This patch correctly creates the express lane work queue with the
    supported size.
    
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <james.smart@broadcom.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 730ff617b9ed6f35a98b6a8d7a5f8d5baa042556
Author: James Smart <jsmart2021@gmail.com>
Date:   Fri Apr 21 16:04:56 2017 -0700

    Fix driver usage of 128B WQEs when WQ_CREATE is V1.
    
    
    [ Upstream commit 3f247de750b8dd8f50a2c1390e2a1238790a9dff ]
    
    There are two versions of a structure for queue creation and setup that the
    driver shares with FW. The driver was only treating as version 0.
    
    Verify WQ_CREATE with 128B WQEs in V0 and V1.
    
    Code review of another bug showed the driver passing
    128B WQEs and 8 pages in WQ CREATE and V0.
    Code inspection/instrumentation showed that the driver
    uses V0 in WQ_CREATE and if the caller passes queue->entry_size
    128B, the driver sets the hdr_version to V1 so all is good.
    When I tested the V1 WQ_CREATE, the mailbox failed causing
    the driver to unload.
    
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <james.smart@broadcom.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72bded3b6c5201d15050ec639e9ec8d9aeceda10
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Apr 19 13:53:49 2017 -0700

    netvsc: Deal with rescinded channels correctly
    
    
    [ Upstream commit 73e64fa4f417b22d8d5521999a631ced8e2d442e ]
    
    We will not be able to send packets over a channel that has been
    rescinded. Make necessary adjustments so we can properly cleanup
    even when the channel is rescinded. This issue can be trigerred
    in the NIC hot-remove path.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a049986d6a6759ae23685cb2fd93ce56163bb34
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Wed Apr 19 13:45:10 2017 -0400

    ibmvnic: Disable irq prior to close
    
    
    [ Upstream commit dd9c20fa07ba5cfb5a0ab3181d68530506610605 ]
    
        Add some code to call disable_irq on all the vnic interface's irqs.
        This fixes a crash observed when closing an active interface, as
        seen in the oops below when we try to access a buffer in the interrupt
        handler which we've already freed.
    
        Unable to handle kernel paging request for data at address 0x00000001
        Faulting instruction address: 0xd000000003886824
        Oops: Kernel access of bad area, sig: 11 [#1]
        SMP NR_CPUS=2048 NUMA pSeries
        Modules linked in: ibmvnic(OEN) rpadlpar_io(X) rpaphp(X) tcp_diag udp_diag inet_diag unix_diag af_packet_diag netlink_diag rpcsec_
        Supported: No, Unsupported modules are loaded
        CPU: 8 PID: 0 Comm: swapper/8 Tainted: G           OE   NX 4.4.49-92.11-default #1
        task: c00000007f990110 ti: c0000000fffa0000 task.ti: c00000007f9b8000
        NIP: d000000003886824 LR: d000000003886824 CTR: c0000000007eff60
        REGS: c0000000fffa3a70 TRAP: 0300   Tainted: G           OE   NX  (4.4.49-92.11-default)
        MSR: 8000000000009033 <SF,EE,ME,IR,DR,RI,LE>  CR: 22008042  XER: 20000008
        CFAR: c000000000008468 DAR: 0000000000000001 DSISR: 40000000 SOFTE: 0
        GPR00: d000000003886824 c0000000fffa3cf0 d000000003894118 0000000000000000
        GPR04: 0000000000000000 0000000000000000 c000000001249da0 0000000000000000
        GPR08: 000000000000000e 0000000000000000 c0000000ccb00000 d000000003889180
        GPR12: c0000000007eff60 c000000007af4c00 0000000000000001 c0000000010def30
        GPR16: c00000007f9b8000 c000000000b98c30 c00000007f9b8080 c000000000bab858
        GPR20: 0000000000000005 0000000000000000 c0000000ff5d7e80 c0000000f809f648
        GPR24: c0000000ff5d7ec8 0000000000000000 0000000000000000 c0000000ccb001a0
        GPR28: 000000000000000a c0000000f809f600 c0000000fd4cd900 c0000000f9cd5b00
        NIP [d000000003886824] ibmvnic_interrupt_tx+0x114/0x380 [ibmvnic]
        LR [d000000003886824] ibmvnic_interrupt_tx+0x114/0x380 [ibmvnic]
        Call Trace:
        [c0000000fffa3cf0] [d000000003886824] ibmvnic_interrupt_tx+0x114/0x380 [ibmvnic] (unreliable)
        [c0000000fffa3dd0] [c000000000132940] __handle_irq_event_percpu+0x90/0x2e0
        [c0000000fffa3e90] [c000000000132bcc] handle_irq_event_percpu+0x3c/0x90
        [c0000000fffa3ed0] [c000000000132c88] handle_irq_event+0x68/0xc0
        [c0000000fffa3f00] [c000000000137edc] handle_fasteoi_irq+0xec/0x250
        [c0000000fffa3f30] [c000000000131b04] generic_handle_irq+0x54/0x80
        [c0000000fffa3f60] [c000000000011190] __do_irq+0x80/0x1d0
        [c0000000fffa3f90] [c0000000000248d8] call_do_irq+0x14/0x24
        [c00000007f9bb9e0] [c000000000011380] do_IRQ+0xa0/0x120
        [c00000007f9bba40] [c000000000002594] hardware_interrupt_common+0x114/0x180
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b281844747fbbfbab6a0427f8a58bd4af580de38
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Apr 20 13:17:02 2017 +0300

    ASoC: Intel: Skylake: Uninitialized variable in probe_codec()
    
    
    [ Upstream commit e6a33532affd14c12688c0e9b2e773e8b2550f3b ]
    
    My static checker complains that if snd_hdac_bus_get_response() returns
    -EIO then "res" is uninitialized.  Fix this by initializing it to -1 so
    that the error is handled correctly.
    
    Fixes: d8c2dab8381d ("ASoC: Intel: Add Skylake HDA audio driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b829c03c902b4b79f3078402b130a61e5cce286
Author: Moni Shoua <monis@mellanox.com>
Date:   Thu Apr 20 13:26:54 2017 +0300

    IB/mlx5: Set correct SL in completion for RoCE
    
    
    [ Upstream commit 12f8fedef2ec94c783f929126b20440a01512c14 ]
    
    There is a difference when parsing a completion entry between Ethernet
    and IB ports. When link layer is Ethernet the bits describe the type of
    L3 header in the packet. In the case when link layer is Ethernet and VLAN
    header is present the value of SL is equal to the 3 UP bits in the VLAN
    header. If VLAN header is not present then the SL is undefined and consumer
    of the completion should check if IB_WC_WITH_VLAN is set.
    
    While that, this patch also fills the vlan_id field in the completion if
    present.
    
    Signed-off-by: Moni Shoua <monis@mellanox.com>
    Reviewed-by: Majd Dibbiny <majd@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c404dff4874d44e89783d2a4534d3b29ca7b68f0
Author: Maor Gottlieb <maorg@mellanox.com>
Date:   Wed Mar 29 06:03:03 2017 +0300

    IB/mlx5: Change vma from shared to private
    
    
    [ Upstream commit 1377661298d2820d675553d186c31b6f46c140d0 ]
    
    Anonymous VMA (->vm_ops == NULL) cannot be shared, otherwise
    it would lead to SIGBUS.
    
    Remove the shared flags from the vma after we change it to be
    anonymous.
    
    This is easily reproduced by doing modprobe -r while running a
    user-space application such as raw_ethernet_bw.
    
    Fixes: 7c2344c3bbf97 ('IB/mlx5: Implements disassociate_ucontext API')
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9238066e2838e2981c908e66bfc599442fd6917b
Author: Maor Gottlieb <maorg@mellanox.com>
Date:   Wed Mar 29 06:03:02 2017 +0300

    IB/mlx5: Take write semaphore when changing the vma struct
    
    
    [ Upstream commit ecc7d83be3243835c9396a1a2fb8ce95f205207b ]
    
    When the driver disassociate user context, it changes the vma to
    anonymous by setting the vm_ops to null and zap the vma ptes.
    
    In order to avoid race in the kernel, we need to take write lock
    before we change the vma entries.
    
    Fixes: 7c2344c3bbf97 ('IB/mlx5: Implements disassociate_ucontext API')
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df7aedb171e262c4f2c692f323bc9b1c8c13ef59
Author: Maor Gottlieb <maorg@mellanox.com>
Date:   Wed Mar 29 06:03:01 2017 +0300

    IB/mlx4: Change vma from shared to private
    
    
    [ Upstream commit ca37a664a8e4e9988b220988ceb4d79e3316f195 ]
    
    Anonymous VMA (->vm_ops == NULL) cannot be shared, otherwise
    it would lead to SIGBUS.
    
    Remove the shared flags from the vma after we change it to be
    anonymous.
    
    This is easily reproduced by doing modprobe -r while running a
    user-space application such as raw_ethernet_bw.
    
    Fixes: ae184ddeca5db ('IB/mlx4_ib: Disassociate support')
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0021b4613a8acf33937c7492817fe484e19e4381
Author: Maor Gottlieb <maorg@mellanox.com>
Date:   Wed Mar 29 06:03:00 2017 +0300

    IB/mlx4: Take write semaphore when changing the vma struct
    
    
    [ Upstream commit 22c3653d04bd0c67b75e99d85e0c0bdf83947df5 ]
    
    When the driver disassociate user context, it changes the vma to
    anonymous by setting the vm_ops to null and zap the vma ptes.
    
    In order to avoid race in the kernel, we need to take write lock
    before we change the vma entries.
    
    Fixes: ae184ddeca5db ('IB/mlx4_ib: Disassociate support')
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b09da0e7718bc7bd203b9ea62c21d7a088dbe98
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Apr 21 13:39:09 2017 +0300

    HSI: ssi_protocol: double free in ssip_pn_xmit()
    
    
    [ Upstream commit 3026050179a3a9a6f5c892c414b5e36ecf092081 ]
    
    If skb_pad() fails then it frees skb and we don't need to free it again
    at the end of the function.
    
    Fixes: dc7bf5d7 ("HSI: Introduce driver for SSI Protocol")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 089f13786bdc483d0ff54367d9dbe0dd19746481
Author: Feras Daoud <ferasda@mellanox.com>
Date:   Sun Mar 19 11:18:54 2017 +0200

    IB/ipoib: Update broadcast object if PKey value was changed in index 0
    
    
    [ Upstream commit 9a9b8112699d78e7f317019b37f377e90023f3ed ]
    
    Update the broadcast address in the priv->broadcast object when the
    Pkey value changes in index 0, otherwise the multicast GID value will
    keep the previous value of the PKey, and will not be updated.
    This leads to interface state down because the interface will keep the
    old PKey value.
    
    For example, in SR-IOV environment, if the PF changes the value of PKey
    index 0 for one of the VFs, then the VF receives PKey change event that
    triggers heavy flush. This flush calls update_parent_pkey that update the
    broadcast object and its relevant members. If in this case the multicast
    GID will not be updated, the interface state will be down.
    
    Fixes: c2904141696e ("IPoIB: Fix pkey change flow for virtualization environments")
    Signed-off-by: Feras Daoud <ferasda@mellanox.com>
    Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
    Reviewed-by: Alex Vesker <valex@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7bd191b0a0946f877f4d355e44aa944e6849fd63
Author: Feras Daoud <ferasda@mellanox.com>
Date:   Sun Mar 19 11:18:55 2017 +0200

    IB/ipoib: Fix deadlock between ipoib_stop and mcast join flow
    
    
    [ Upstream commit 3e31a490e01a6e67cbe9f6e1df2f3ff0fbf48972 ]
    
    Before calling ipoib_stop, rtnl_lock should be taken, then
    the flow clears the IPOIB_FLAG_ADMIN_UP and IPOIB_FLAG_OPER_UP
    flags, and waits for mcast completion if IPOIB_MCAST_FLAG_BUSY
    is set.
    
    On the other hand, the flow of multicast join task initializes
    a mcast completion, sets the IPOIB_MCAST_FLAG_BUSY and calls
    ipoib_mcast_join. If IPOIB_FLAG_OPER_UP flag is not set, this
    call returns EINVAL without setting the mcast completion and
    leads to a deadlock.
    
        ipoib_stop                          |
            |                               |
        clear_bit(IPOIB_FLAG_ADMIN_UP)      |
            |                               |
        Context Switch                      |
            |                       ipoib_mcast_join_task
            |                               |
            |                       spin_lock_irq(lock)
            |                               |
            |                       init_completion(mcast)
            |                               |
            |                       set_bit(IPOIB_MCAST_FLAG_BUSY)
            |                               |
            |                       Context Switch
            |                               |
        clear_bit(IPOIB_FLAG_OPER_UP)       |
            |                               |
        spin_lock_irqsave(lock)             |
            |                               |
        Context Switch                      |
            |                       ipoib_mcast_join
            |                       return (-EINVAL)
            |                               |
            |                       spin_unlock_irq(lock)
            |                               |
            |                       Context Switch
            |                               |
        ipoib_mcast_dev_flush               |
        wait_for_completion(mcast)          |
    
    ipoib_stop will wait for mcast completion for ever, and will
    not release the rtnl_lock. As a result panic occurs with the
    following trace:
    
        [13441.639268] Call Trace:
        [13441.640150]  [<ffffffff8168b579>] schedule+0x29/0x70
        [13441.641038]  [<ffffffff81688fc9>] schedule_timeout+0x239/0x2d0
        [13441.641914]  [<ffffffff810bc017>] ? complete+0x47/0x50
        [13441.642765]  [<ffffffff810a690d>] ? flush_workqueue_prep_pwqs+0x16d/0x200
        [13441.643580]  [<ffffffff8168b956>] wait_for_completion+0x116/0x170
        [13441.644434]  [<ffffffff810c4ec0>] ? wake_up_state+0x20/0x20
        [13441.645293]  [<ffffffffa05af170>] ipoib_mcast_dev_flush+0x150/0x190 [ib_ipoib]
        [13441.646159]  [<ffffffffa05ac967>] ipoib_ib_dev_down+0x37/0x60 [ib_ipoib]
        [13441.647013]  [<ffffffffa05a4805>] ipoib_stop+0x75/0x150 [ib_ipoib]
    
    Fixes: 08bc327629cb ("IB/ipoib: fix for rare multicast join race condition")
    Signed-off-by: Feras Daoud <ferasda@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67dc18ea69f42802f0087870f886aed397dcf21d
Author: Mikhail Paulyshka <me@mixaill.tk>
Date:   Fri Apr 21 08:52:42 2017 +0200

    ALSA: hda - Fix headset microphone detection for ASUS N551 and N751
    
    
    [ Upstream commit fc7438b1eb12b6c93d7b7a62423779eb5dfc673c ]
    
    Headset microphone does not work out of the box on ASUS Nx51
    laptops. This patch fixes it.
    
    Patch tested on Asus N551 laptop. Asus N751 part is not tested, but
    according to [1] this laptop uses the same audiosystem.
    
    1. https://bugzilla.kernel.org/show_bug.cgi?id=117781
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195437
    Signed-off-by: Mikhail Paulyshka <me@mixaill.tk>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91dbad3979787d6b4e6f7194191698b0f35040b9
Author: Bernd Faust <berndfaust@gmail.com>
Date:   Thu Feb 16 19:42:07 2017 +0100

    e1000e: fix timing for 82579 Gigabit Ethernet controller
    
    
    [ Upstream commit 5313eeccd2d7f486be4e5c7560e3e2be239ec8f7 ]
    
    After an upgrade to Linux kernel v4.x the hardware timestamps of the
    82579 Gigabit Ethernet Controller are different than expected.
    The values that are being read are almost four times as big as before
    the kernel upgrade.
    
    The difference is that after the upgrade the driver sets the clock
    frequency to 25MHz, where before the upgrade it was set to 96MHz. Intel
    confirmed that the correct frequency for this network adapter is 96MHz.
    
    Signed-off-by: Bernd Faust <berndfaust@gmail.com>
    Acked-by: Sasha Neftin <sasha.neftin@intel.com>
    Acked-by: Jacob Keller <jacob.e.keller@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f63431093a2be7ac048f6ce072e3606eb70c87c
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Apr 18 09:45:52 2017 -0700

    tcp: remove poll() flakes with FastOpen
    
    
    [ Upstream commit 0f9fa831aecfc297b7b45d4f046759bcefcf87f0 ]
    
    When using TCP FastOpen for an active session, we send one wakeup event
    from tcp_finish_connect(), right before the data eventually contained in
    the received SYNACK is queued to sk->sk_receive_queue.
    
    This means that depending on machine load or luck, poll() users
    might receive POLLOUT events instead of POLLIN|POLLOUT
    
    To fix this, we need to move the call to sk->sk_state_change()
    after the (optional) call to tcp_rcv_fastopen_synack()
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76441e151c0a4950cdbf014c2377895f48fba2c6
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Fri Apr 14 12:29:54 2017 -0400

    NFS: Fix missing pg_cleanup after nfs_pageio_cond_complete()
    
    
    [ Upstream commit 43b7d964ed30dbca5c83c90cb010985b429ec4f9 ]
    
    Commit a7d42ddb3099727f58366fa006f850a219cce6c8 ("nfs: add mirroring
    support to pgio layer") moved pg_cleanup out of the path when there was
    non-sequental I/O that needed to be flushed.  The result is that for
    layouts that have more than one layout segment per file, the pg_lseg is not
    cleared, so we can end up hitting the WARN_ON_ONCE(req_start >= seg_end) in
    pnfs_generic_pg_test since the pg_lseg will be pointing to that
    previously-flushed layout segment.
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Fixes: a7d42ddb3099 ("nfs: add mirroring support to pgio layer")
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a09ef5ba1592302c2f2d6ee7f3301191b2a5296
Author: Guoqing Jiang <gqjiang@suse.com>
Date:   Mon Apr 17 17:11:05 2017 +0800

    md/raid10: wait up frozen array in handle_write_completed
    
    
    [ Upstream commit cf25ae78fc50010f66b9be945017796da34c434d ]
    
    Since nr_queued is changed, we need to call wake_up here
    if the array is already frozen and waiting for condition
    "nr_pending == nr_queued + extra" to be true.
    
    And commit 824e47daddbf ("RAID1: avoid unnecessary spin
    locks in I/O barrier code") which has already added the
    wake_up for raid1.
    
    Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
    Reviewed-by: NeilBrown <neilb@suse.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3a9a972e230b6198aea87c66fec0104c2b55ad1
Author: Suman Anna <s-anna@ti.com>
Date:   Wed Apr 12 00:21:26 2017 -0500

    iommu/omap: Register driver before setting IOMMU ops
    
    
    [ Upstream commit abaa7e5b054aae567861628b74dbc7fbf8ed79e8 ]
    
    Move the registration of the OMAP IOMMU platform driver before
    setting the IOMMU callbacks on the platform bus. This causes
    the IOMMU devices to be probed first before the .add_device()
    callback is invoked for all registered devices, and allows
    the iommu_group support to be added to the OMAP IOMMU driver.
    
    While at this, also check for the return status from bus_set_iommu.
    
    Signed-off-by: Suman Anna <s-anna@ti.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 994f316d50e2a3ee7ec83745824398a169a030e2
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Thu Apr 20 10:07:34 2017 +0100

    irqchip/mips-gic: Separate IPI reservation & usage tracking
    
    
    [ Upstream commit f8dcd9e81797ae24acc44c84f0eb3b9e6cee9791 ]
    
    Since commit 2af70a962070 ("irqchip/mips-gic: Add a IPI hierarchy
    domain") introduced the GIC IPI IRQ domain we have tracked both
    reservation of interrupts & their use with a single bitmap - ipi_resrv.
    If an interrupt is reserved for use as an IPI but not actually in use
    then the appropriate bit is set in ipi_resrv. If an interrupt is either
    not reserved for use as an IPI or has been allocated as one then the
    appropriate bit is clear in ipi_resrv.
    
    Unfortunately this means that checking whether a bit is set in ipi_resrv
    to prevent IPI interrupts being allocated for use with a device is
    broken, because if the interrupt has been allocated as an IPI first then
    its bit will be clear.
    
    Fix this by separating the tracking of IPI reservation & usage,
    introducing a separate ipi_available bitmap for the latter. This means
    that ipi_resrv will now always have bits set corresponding to all
    interrupts reserved for use as IPIs, whether or not they have been
    allocated yet, and therefore that checking it when allocating device
    interrupts works as expected.
    
    Fixes: 2af70a962070 ("irqchip/mips-gic: Add a IPI hierarchy domain")
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Link: http://lkml.kernel.org/r/1492679256-14513-2-git-send-email-matt.redfearn@imgtec.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84c9248a240ec9c5cd98ecbe6f241d7b2cb7eeca
Author: Abel Vesa <abelvesa@linux.com>
Date:   Mon Apr 3 23:58:54 2017 +0100

    ARM: 8668/1: ftrace: Fix dynamic ftrace with DEBUG_RODATA and !FRAME_POINTER
    
    
    [ Upstream commit 6f05d0761af612e04572ba4d65b4c0274a88444f ]
    
    The support for dynamic ftrace with CONFIG_DEBUG_RODATA involves
    overriding the weak arch_ftrace_update_code() with a variant which makes
    the kernel text writable around the patching.
    
    This override was however added under the CONFIG_OLD_MCOUNT ifdef, and
    CONFIG_OLD_MCOUNT is only enabled if frame pointers are enabled.
    
    This leads to non-functional dynamic ftrace (ftrace triggers a
    WARN_ON()) when CONFIG_DEBUG_RODATA is enabled and CONFIG_FRAME_POINTER
    is not.
    
    Move the override out of that ifdef and into the CONFIG_DYNAMIC_FTRACE
    ifdef where it belongs.
    
    Fixes: 80d6b0c2eed2a ("ARM: mm: allow text and rodata sections to be read-only")
    Suggested-by: Nicolai Stange <nicstange@gmail.com>
    Suggested-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Abel Vesa <abelvesa@gmail.com>
    Acked-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7de32ed33d8ce036f7b33d902318523b73d1b74
Author: Tiantian Feng <fengtiantian@huawei.com>
Date:   Wed Apr 19 18:18:39 2017 +0200

    x86/reboot: Turn off KVM when halting a CPU
    
    
    [ Upstream commit fba4f472b33aa81ca1836f57d005455261e9126f ]
    
    A CPU in VMX root mode will ignore INIT signals and will fail to bring
    up the APs after reboot.  Therefore, on a panic we disable VMX on all
    CPUs before rebooting or triggering kdump.
    
    Do this when halting the machine as well, in case a firmware-level reboot
    does not perform a cold reset for all processors.  Without doing this,
    rebooting the host may hang.
    
    Signed-off-by: Tiantian Feng <fengtiantian@huawei.com>
    Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
    [ Rewritten commit message. ]
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: kvm@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170419161839.30550-1-pbonzini@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1c0f99f4fab4ccc194a846693288b820404e833
Author: Brian Norris <briannorris@chromium.org>
Date:   Fri Apr 14 14:51:20 2017 -0700

    mwifiex: don't leak 'chan_stats' on reset
    
    
    [ Upstream commit fb9e67bee3ab7111513130c516ffe378d885c0d0 ]
    
    'chan_stats' is (re)allocated in _mwifiex_fw_dpc() ->
    mwifiex_init_channel_scan_gap(), which is called whenever the device is
    initialized -- at probe or at reset.
    
    But we only free it in we completely unregister the adapter, meaning we
    leak a copy of it during every reset.
    
    Let's free it in the shutdown / removal paths instead (and in the
    error-handling path), to avoid the leak.
    
    Ideally, we can eventually unify much of mwifiex_shutdown_sw() and
    mwifiex_remove_card() (way too much copy-and-paste) to reduce the burden
    on bugfixes like this. But that's work for tomorrow.
    
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90089934fce3a476d508c08bfb271f5ba19d6204
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Fri Mar 24 17:48:10 2017 +1100

    KVM: PPC: Book3S PR: Exit KVM on failed mapping
    
    
    [ Upstream commit bd9166ffe624000140fc6b606b256df01fc0d060 ]
    
    At the moment kvmppc_mmu_map_page() returns -1 if
    mmu_hash_ops.hpte_insert() fails for any reason so the page fault handler
    resumes the guest and it faults on the same address again.
    
    This adds distinction to kvmppc_mmu_map_page() to return -EIO if
    mmu_hash_ops.hpte_insert() failed for a reason other than full pteg.
    At the moment only pSeries_lpar_hpte_insert() returns -2 if
    plpar_pte_enter() failed with a code other than H_PTEG_FULL.
    Other mmu_hash_ops.hpte_insert() instances can only fail with
    -1 "full pteg".
    
    With this change, if PR KVM fails to update HPT, it can signal
    the userspace about this instead of returning to guest and having
    the very same page fault over and over again.
    
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 489e563cd3e1086ef30ac0b3a4a76ef25b8e3ff2
Author: David Gibson <david@gibson.dropbear.id.au>
Date:   Thu Apr 13 12:13:00 2017 +1000

    scsi: virtio_scsi: Always try to read VPD pages
    
    
    [ Upstream commit 25d1d50e23275e141e3a3fe06c25a99f4c4bf4e0 ]
    
    Passed through SCSI targets may have transfer limits which come from the
    host SCSI controller or something on the host side other than the target
    itself.
    
    To make this work properly, the hypervisor can adjust the target's VPD
    information to advertise these limits.  But for that to work, the guest
    has to look at the VPD pages, which we won't do by default if it is an
    SPC-2 device, even if it does actually support it.
    
    This adds a workaround to address this, forcing devices attached to a
    virtio-scsi controller to always check the VPD pages.  This is modelled
    on a similar workaround for the storvsc (Hyper-V) SCSI controller,
    although that exists for slightly different reasons.
    
    A specific case which causes this is a volume from IBM's IPR RAID
    controller (which presents as an SPC-2 device, although it does support
    VPD) passed through with qemu's 'scsi-block' device.
    
    [mkp: fixed typo]
    
    Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
    Acked-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bb43a3a7542c907d2c32e811d75faed6d55eda1
Author: Liad Kaufman <liad.kaufman@intel.com>
Date:   Sun Feb 19 10:42:40 2017 +0200

    iwlwifi: a000: fix memory offsets and lengths
    
    
    [ Upstream commit f4d1047914ea05e0f8393944da18f6ee5dad24c4 ]
    
    Memory offsets and lengths for A000 HW is different
    than currently specified.
    
    Fixes: e34d975e40ff ("iwlwifi: Add a000 HW family support")
    Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2b737ef004896714a3f73c9bab0444da8dfc7b7
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Mon Feb 13 11:29:16 2017 +0200

    iwlwifi: split the handler and the wake parts of the notification infra
    
    
    [ Upstream commit 2220fb2960b72915e7fd9da640a4695dceff238c ]
    
    The notification infrastructure (iwl_notification_wait_*
    functions) allows to wait until a list of notifications
    will come up from the firmware and to run a special handler
    (notif_wait handler) when those are received.
    
    The operation mode notifies the notification infrastructure
    about any Rx being received by the mean of
    iwl_notification_wait_notify() which will do two things:
    1) call the notif_wait handler
    2) wakeup the thread that was waiting for the notification
    
    Typically, only after those two steps happened, the
    operation mode will run its own handler for the notification
    that was received from the firmware. This means that the
    thread that was waiting for that notification can be
    running before the operation mode's handler was called.
    
    When the operation mode's handler is ASYNC, things get even
    worse since the thread that was waiting for the
    notification isn't even guaranteed that the ASYNC callback
    was added to async_handlers_list before it starts to run.
    This means that even calling
    iwl_mvm_wait_for_async_handlers() can't guarantee that
    absolutely everything related to that notification has run.
    The following can happen:
    
    Thread sending the command        Operation mode's Rx path
    --------------------------        ------------------------
    iwl_init_notification_wait()
    iwl_mvm_send_cmd()
                                      iwl_mvm_rx_common()
                                      iwl_notification_wait_notify()
    iwl_mvm_wait_for_async_handlers()
    // Possibly free some data
    // structure
                                      list_add_tail(async_handlers_list);
                                      schedule_work(async_handlers_wk);
                                      // Access the freed structure
    
    Split the 'run notif_wait's handler' and the 'wake up the
    thread' parts to fix this. This allows the operation mode
    to do the following:
    
    Thread sending the command        Operation mode's Rx path
    --------------------------        ------------------------
    iwl_init_notification_wait()
    iwl_mvm_send_cmd()
                                      iwl_mvm_rx_common()
                                      iwl_notification_wait()
                                      // Will run the notif_wait's handler
                                      list_add_tail(async_handlers_list);
                                      schedule_work(async_handlers_wk);
                                      iwl_notification_notify()
    iwl_mvm_wait_for_async_handlers()
    
    This way, the waiter is guaranteed that all the handlers
    have been run (if SYNC), or at least enqueued (if ASYNC)
    by the time it wakes up.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfa8803d3876f8842152df5034b4434930efd1f5
Author: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
Date:   Mon Mar 20 18:12:14 2017 -0400

    clk: ns2: Correct SDIO bits
    
    
    [ Upstream commit 8973aa4aecac223548366ca81818309a0f0efa6d ]
    
    Corrected the bits for power and iso.
    
    Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
    Signed-off-by: Jon Mason <jon.mason@broadcom.com>
    Fixes: f7225a83 ("clk: ns2: add clock support for Broadcom Northstar 2 SoC")
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 723052b2540bf8bea0df3b73547c75c50bdd86ae
Author: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date:   Wed Apr 12 23:19:37 2017 +0530

    ath: Fix updating radar flags for coutry code India
    
    
    [ Upstream commit c0c345d4cacc6a1f39d4856f37dcf6e34f51a5e4 ]
    
    As per latest regulatory update for India, channel 52, 56, 60, 64
    is no longer restricted to DFS. Enabling DFS/no infra flags in driver
    results in applying all DFS related restrictions (like doing CAC etc
    before this channel moves to 'available state') for these channels
    even though the country code is programmed as 'India' in he hardware,
    fix this by relaxing the frequency range while applying RADAR flags
    only if the country code is programmed to India. If the frequency range
    needs to modified based on different country code, ath_is_radar_freq
    can be extended/modified dynamically.
    
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3095a0dc94b82910627ec18ddae50a8b0fc718b6
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Wed Apr 19 12:27:38 2017 +1000

    powerpc/64s: Remove SAO feature from Power9 DD1
    
    
    [ Upstream commit ca80d5d0a8175c9be04cfbce24180b8f5e0a744b ]
    
    Power9 DD1 does not implement SAO. Although it's not widely used, its presence
    or absence is visible to user space via arch_validate_prot() so it's moderately
    important that we get the value right.
    
    Fixes: 7dccfbc325bb ("powerpc/book3s: Add a cpu table entry for different POWER9 revs")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5df9a59c68ea8272960cb88d31434ccb69b3510
Author: Marek Vasut <marex@denx.de>
Date:   Tue Apr 18 20:09:06 2017 +0200

    spi: dw: Disable clock after unregistering the host
    
    
    [ Upstream commit 400c18e3dc86e04ef5afec9b86a8586ca629b9e9 ]
    
    The dw_mmio driver disables the block clock before unregistering
    the host. The code unregistering the host may access the SPI block
    registers. If register access happens with block clock disabled,
    this may lead to a bus hang. Disable the clock after unregistering
    the host to prevent such situation.
    
    This bug was observed on Altera Cyclone V SoC.
    
    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Mark Brown <broonie@kernel.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61ea482ba847c373e2dd7c5de9132d9ca47cf90a
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Thu Apr 13 23:14:34 2017 -0700

    tools/testing/nvdimm: fix nfit_test shutdown crash
    
    
    [ Upstream commit 8b06b884cd98f7ec8b5028680b99fabfb7b3e192 ]
    
    Keep the nfit_test instances alive until after nfit_test_teardown(), as
    we may be doing resource lookups until the final un-registrations have
    completed. This fixes crashes of the form.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
     IP: __release_resource+0x12/0x90
     Call Trace:
      remove_resource+0x23/0x40
      __wrap_remove_resource+0x29/0x30 [nfit_test_iomap]
      acpi_nfit_remove_resource+0xe/0x10 [nfit]
      devm_action_release+0xf/0x20
      release_nodes+0x16d/0x2b0
      devres_release_all+0x3c/0x60
      device_release+0x21/0x90
      kobject_release+0x6a/0x170
      kobject_put+0x2f/0x60
      put_device+0x17/0x20
      platform_device_unregister+0x20/0x30
      nfit_test_exit+0x36/0x960 [nfit_test]
    
    Reported-by: Linda Knippers <linda.knippers@hpe.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92bfedfa933ef9aa5fded7de9415d09c1dcd3200
Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date:   Mon Apr 17 10:04:07 2017 -0500

    ASoC: Intel: Atom: update Thinkpad 10 quirk
    
    
    [ Upstream commit beb5989a8c6c6867b4e873cca2a66d31f977368f ]
    
    There are multiple skews of the same Lenovo audio hardware
    based on the Realtek RT5670 codec.
    
    Manufacturer: LENOVO
            Product Name: 20C1CTO1WW
            Version: ThinkPad 10
    
    Manufacturer: LENOVO
            Product Name: 20C3001VHH
            Version: ThinkPad 10
    
    Manufacturer: LENOVO
            Product Name: 20C10024GE
            Version: ThinkPad Tablet B
    
    Manufacturer: LENOVO
            Product Name: 20359
            Version: Lenovo Miix 2 10
    
    For all these devices, the same quirk is used to force
    the machine driver to be based on RT5670 instead of RT5640
    as indicated by the BIOS.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96691
    Tested-by: Nicole Faerber <nicole.faerber@dpin.de>
    Tested-by: Viacheslav Ostroukh <v.dev@ostroukh.me>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4bd1761b69f3e627dfb5fc6c2ac38e451e9e67c8
Author: Adam Borowski <kilobyte@angband.pl>
Date:   Tue Mar 7 23:34:44 2017 +0100

    btrfs: fix a bogus warning when converting only data or metadata
    
    
    [ Upstream commit 14506127979a5a3d0c5d9b4cc76ce9d4ec23b717 ]
    
    If your filesystem has, eg, data:raid0 metadata:raid1, and you run "btrfs
    balance -dconvert=raid1", the meta.target field will be uninitialized.
    That's otherwise ok, as it's unused except for this warning.
    
    Thus, let's use the existing set of raid levels for the comparison.
    
    As a side effect, non-convert balances will now nag about data>metadata.
    
    Signed-off-by: Adam Borowski <kilobyte@angband.pl>
    Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 355edc25c3f9b5171abaea2a160c569a1e52f4d2
Author: Jasmin J <jasmin@anw.at>
Date:   Fri Mar 17 23:04:20 2017 -0300

    media/dvb-core: Race condition when writing to CAM
    
    
    [ Upstream commit e7080d4471d805d921a9ea21b32f911a91e248cb ]
    
    It started with a sporadic message in syslog: "CAM tried to send a
    buffer larger than the ecount size" This message is not the fault
    itself, but a consecutive fault, after a read error from the CAM. This
    happens only on several CAMs, several hardware, and of course sporadic.
    
    It is a consecutive fault, if the last read from the CAM did fail. I
    guess this will not happen on all CAMs, but at least it did on mine.
    There was a write error to the CAM and during the re-initialization
    procedure, the CAM finished the last read, although it got a RS.
    
    The write error to the CAM happened because a race condition between HC
    write, checking DA and FR.
    
    This patch added an additional check for DA(RE), just after checking FR.
    It is important to read the CAMs status register again, to give the CAM
    the necessary time for a proper reaction to HC. Please note the
    description within the source code (patch below).
    
    [mchehab@s-opensource.com: make checkpatch happy]
    
    Signed-off-by: Jasmin jessich <jasmin@anw.at>
    Tested-by: Ralph Metzler <rjkm@metzlerbros.de>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bea4875294f1715e2b52dd66d8b666d733f1308
Author: David Ahern <dsa@cumulusnetworks.com>
Date:   Wed Apr 12 11:49:04 2017 -0700

    net: ipv6: send unsolicited NA on admin up
    
    
    [ Upstream commit 4a6e3c5def13c91adf2acc613837001f09af3baa ]
    
    ndisc_notify is the ipv6 equivalent to arp_notify. When arp_notify is
    set to 1, gratuitous arp requests are sent when the device is brought up.
    The same is expected when ndisc_notify is set to 1 (per ndisc_notify in
    Documentation/networking/ip-sysctl.txt). The NA is not sent on NETDEV_UP
    event; add it.
    
    Fixes: 5cb04436eef6 ("ipv6: add knob to send unsolicited ND on link-layer address change")
    Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cda29d440c39e267ab67217171ed708ac27a0b4
Author: Edgar Cherkasov <echerkasov@dev.rtsoft.ru>
Date:   Tue Apr 4 19:18:27 2017 +0300

    i2c: i2c-scmi: add a MS HID
    
    
    [ Upstream commit e058e7a4bc89104540a8a303682248614b5df6f1 ]
    
    Description of the problem:
     - i2c-scmi driver contains only two identifiers "SMBUS01" and "SMBUSIBM";
     - the fist HID (SMBUS01) is clearly defined in "SMBus Control Method
       Interface Specification, version 1.0": "Each device must specify
       'SMBUS01' as its _HID and use a unique _UID value";
     - unfortunately, BIOS vendors (like AMI) seem to ignore this requirement
       and implement "SMB0001" HID instead of "SMBUS01";
     - I speculate that they do this because only "SMB0001" is hard coded in
       Windows SMBus driver produced by Microsoft.
    
    This leads to following situation:
     - SMBus works out of box in Windows but not in Linux;
     - board vendors are forced to add correct "SMBUS01" HID to BIOS to make
       SMBus work in Linux. Moreover the same board vendors complain that
       tools (3-rd party ASL compiler) do not like the "SMBUS01" identifier
       and produce errors.  So they need to constantly patch the compiler for
       each new version of BIOS.
    
    As it is very unlikely that BIOS vendors implement a correct HID in
    future, I would propose to consider whether it is possible to work around
    the problem by adding MS HID to the Linux i2c-scmi driver.
    
    v2: move the definition of the new HID to the driver itself.
    
    Signed-off-by: Edgar Cherkasov <echerkasov@dev.rtsoft.ru>
    Signed-off-by: Michael Brunner <Michael.Brunner@kontron.com>
    Acked-by: Viktor Krasnov <vkrasnov@dev.rtsoft.ru>
    Reviewed-by: Jean Delvare <jdelvare@suse.de>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2596a9808acfd02ce1ee389f0e1c37e64aec5f6
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 15 12:08:31 2017 +0200

    genirq: Use irqd_get_trigger_type to compare the trigger type for shared IRQs
    
    
    [ Upstream commit 382bd4de61827dbaaf5fb4fb7b1f4be4a86505e7 ]
    
    When requesting a shared irq with IRQF_TRIGGER_NONE then the irqaction
    flags get filled with the trigger type from the irq_data:
    
            if (!(new->flags & IRQF_TRIGGER_MASK))
                    new->flags |= irqd_get_trigger_type(&desc->irq_data);
    
    On the first setup_irq() the trigger type in irq_data is NONE when the
    above code executes, then the irq is started up for the first time and
    then the actual trigger type gets established, but that's too late to fix
    up new->flags.
    
    When then a second user of the irq requests the irq with IRQF_TRIGGER_NONE
    its irqaction's triggertype gets set to the actual trigger type and the
    following check fails:
    
            if (!((old->flags ^ new->flags) & IRQF_TRIGGER_MASK))
    
    Resulting in the request_irq failing with -EBUSY even though both
    users requested the irq with IRQF_SHARED | IRQF_TRIGGER_NONE
    
    Fix this by comparing the new irqaction's trigger type to the trigger type
    stored in the irq_data which correctly reflects the actual trigger type
    being used for the irq.
    
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Link: http://lkml.kernel.org/r/20170415100831.17073-1-hdegoede@redhat.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ade9f4ba0d7af1ee2a310f1dda96c9174e35202b
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed Apr 12 22:07:36 2017 +0200

    cpufreq/sh: Replace racy task affinity logic
    
    
    [ Upstream commit 205dcc1ecbc566cbc20acf246e68de3b080b3ecf ]
    
    The target() callback must run on the affected cpu. This is achieved by
    temporarily setting the affinity of the calling thread to the requested CPU
    and reset it to the original affinity afterwards.
    
    That's racy vs. concurrent affinity settings for that thread resulting in
    code executing on the wrong CPU.
    
    Replace it by work_on_cpu(). All call pathes which invoke the callbacks are
    already protected against CPU hotplug.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Sebastian Siewior <bigeasy@linutronix.de>
    Cc: linux-pm@vger.kernel.org
    Cc: Lai Jiangshan <jiangshanlai@gmail.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Len Brown <lenb@kernel.org>
    Link: http://lkml.kernel.org/r/20170412201042.958216363@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7e5f1a204e1209c6abeda71956b58f0f6ee21fe
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed Apr 12 22:07:34 2017 +0200

    ACPI/processor: Replace racy task affinity logic
    
    
    [ Upstream commit 8153f9ac43897f9f4786b30badc134fcc1a4fb11 ]
    
    acpi_processor_get_throttling() requires to invoke the getter function on
    the target CPU. This is achieved by temporarily setting the affinity of the
    calling user space thread to the requested CPU and reset it to the original
    affinity afterwards.
    
    That's racy vs. CPU hotplug and concurrent affinity settings for that
    thread resulting in code executing on the wrong CPU and overwriting the
    new affinity setting.
    
    acpi_processor_get_throttling() is invoked in two ways:
    
    1) The CPU online callback, which is already running on the target CPU and
       obviously protected against hotplug and not affected by affinity
       settings.
    
    2) The ACPI driver probe function, which is not protected against hotplug
       during modprobe.
    
    Switch it over to work_on_cpu() and protect the probe function against CPU
    hotplug.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Sebastian Siewior <bigeasy@linutronix.de>
    Cc: Lai Jiangshan <jiangshanlai@gmail.com>
    Cc: linux-acpi@vger.kernel.org
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Len Brown <lenb@kernel.org>
    Link: http://lkml.kernel.org/r/20170412201042.785920903@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 723dde3922983e1eb5bbc336d826fe6eac57fc9a
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed Apr 12 22:07:33 2017 +0200

    ACPI/processor: Fix error handling in __acpi_processor_start()
    
    
    [ Upstream commit a5cbdf693a60d5b86d4d21dfedd90f17754eb273 ]
    
    When acpi_install_notify_handler() fails the cooling device stays
    registered and the sysfs files created via acpi_pss_perf_init() are
    leaked and the function returns success.
    
    Undo acpi_pss_perf_init() and return a proper error code.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Sebastian Siewior <bigeasy@linutronix.de>
    Cc: Lai Jiangshan <jiangshanlai@gmail.com>
    Cc: linux-acpi@vger.kernel.org
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Len Brown <lenb@kernel.org>
    Link: http://lkml.kernel.org/r/20170412201042.695499645@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58e7fd9cae5f0b8deabfae1f1f87526b5a874e08
Author: Deepa Dinamani <deepa.kernel@gmail.com>
Date:   Sun Mar 26 12:04:13 2017 -0700

    time: Change posix clocks ops interfaces to use timespec64
    
    
    [ Upstream commit d340266e19ddb70dbd608f9deedcfb35fdb9d419 ]
    
    struct timespec is not y2038 safe on 32 bit machines.
    
    The posix clocks apis use struct timespec directly and through struct
    itimerspec.
    
    Replace the posix clock interfaces to use struct timespec64 and struct
    itimerspec64 instead.  Also fix up their implementations accordingly.
    
    Note that the clock_getres() interface has also been changed to use
    timespec64 even though this particular interface is not affected by the
    y2038 problem. This helps verification for internal kernel code for y2038
    readiness by getting rid of time_t/ timeval/ timespec.
    
    Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
    Cc: arnd@arndb.de
    Cc: y2038@lists.linaro.org
    Cc: netdev@vger.kernel.org
    Cc: Richard Cochran <richardcochran@gmail.com>
    Cc: john.stultz@linaro.org
    Link: http://lkml.kernel.org/r/1490555058-4603-3-git-send-email-deepa.kernel@gmail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4dbe5cc3885b98f3a8e45065e42d90901c1f33c2
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Mon Dec 12 15:32:57 2016 -0800

    Input: ar1021_i2c - fix too long name in driver's device table
    
    
    [ Upstream commit 95123fc43560d6f4a60e74f72836e63cd8848f76 ]
    
    The name field in structure i2c_device_id is 20 characters, and we expect
    it to be NULL-terminated, however we are trying to stuff it with 21 bytes
    and thus NULL-terminator is lost. This causes issues when one creates
    device with name "MICROCHIP_AR1021_I2C" as i2c core cuts off the last "C",
    and automatic module loading by alias does not work as result.
    
    The -I2C suffix in the device name is superfluous, we know what bus we are
    dealing with, so let's drop it. Also, no other driver uses capitals, and
    the manufacturer name is normally not included, except in very rare cases
    of incompatible name collisions.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=116211
    Fixes: dd4cae8bf166 ("Input: Add Microchip AR1021 i2c touchscreen")
    Reviewed-By: Christian Gmeiner <christian.gmeiner@gmail.com>
    Tested-by: Martin Kepplinger <martin.kepplinger@ginzinger.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f114850808ea4aadc9d033f895ff024b7faf8dee
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Mar 18 14:45:49 2017 +0100

    rtc: cmos: Do not assume irq 8 for rtc when there are no legacy irqs
    
    
    [ Upstream commit a1e23a42f1bdc00e32fc4869caef12e4e6272f26 ]
    
    On some systems (e.g. Intel Bay Trail systems) the legacy PIC is not
    used, in this case virq 8 will be a random irq, rather then hw_irq 8
    from the PIC.
    
    Requesting virq 8 in this case will not help us to get alarm irqs and
    may cause problems for other drivers which actually do need virq 8,
    for example on an Asus Transformer T100TA this leads to:
    
    [ 28.745155] genirq: Flags mismatch irq 8. 00000088 (mmc0) vs. 00000080 (rtc0)
    <snip oops>
    [ 28.753700] mmc0: Failed to request IRQ 8: -16
    [ 28.975934] sdhci-acpi: probe of 80860F14:01 failed with error -16
    
    This commit fixes this by making the rtc-cmos driver continue
    without using an irq rather then claiming irq 8 when no irq is
    specified in the pnp-info and there are no legacy-irqs.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd1ff13ae462558879061456667ca105e3c2f051
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 8 19:54:20 2017 +0200

    x86: i8259: export legacy_pic symbol
    
    
    [ Upstream commit 7ee06cb2f840a96be46233181ed4557901a74385 ]
    
    The classic PC rtc-coms driver has a workaround for broken ACPI device
    nodes for it which lack an irq resource. This workaround used to
    unconditionally hardcode the irq to 8 in these cases.
    
    This was causing irq conflict problems on systems without a legacy-pic
    so a recent patch added an if (nr_legacy_irqs()) guard to the
    workaround to avoid this irq conflict.
    
    nr_legacy_irqs() uses the legacy_pic symbol under the hood causing
    an undefined symbol error if the rtc-cmos code is build as a module.
    
    This commit exports the legacy_pic symbol to fix this.
    
    Cc: rtc-linux@googlegroups.com
    Cc: alexandre.belloni@free-electrons.com
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f15ea8e12821a5709b2eec406cbefa1dba27ff5b
Author: Liam Breck <kernel@networkimprov.net>
Date:   Tue Apr 11 04:59:54 2017 -0700

    power: supply: bq24190_charger: Limit over/under voltage fault logging
    
    
    [ Upstream commit d63d07c6fc25182af6d3ab5b3b8737b0c1025ebd ]
    
    If the charger is unplugged before the battery is full we may
    see an over/under voltage fault. Ignore this rather then emitting
    a message or uevent.
    
    This fixes messages like these getting logged on charger unplug + replug:
    bq24190-charger 15-006b: Fault: boost 0, charge 1, battery 0, ntc 0
    bq24190-charger 15-006b: Fault: boost 0, charge 0, battery 0, ntc 0
    
    Cc: Tony Lindgren <tony@atomide.com>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Liam Breck <kernel@networkimprov.net>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8623759933ff15a3864d33225ad26ae87566655d
Author: Dong Aisheng <aisheng.dong@nxp.com>
Date:   Wed Apr 12 09:58:47 2017 +0800

    regulator: anatop: set default voltage selector for pcie
    
    
    [ Upstream commit 9bf944548169f6153c3d3778cf983cb5db251a0e ]
    
    Set the initial voltage selector for vddpcie in case it's disabled
    by default.
    
    This fixes the below warning:
    20c8000.anatop:regulator-vddpcie: Failed to read a valid default voltage selector.
    anatop_regulator: probe of 20c8000.anatop:regulator-vddpcie failed with error -22
    
    Cc: Liam Girdwood <lgirdwood@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Cc: Sascha Hauer <kernel@pengutronix.de>
    Cc: Robin Gong <yibin.gong@nxp.com>
    Cc: Richard Zhu <hongxing.zhu@nxp.com>
    Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
    Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86138a4972c4c347413f8461cd06f6a947947dfc
Author: Mahesh Bandewar <maheshb@google.com>
Date:   Tue Apr 11 22:36:00 2017 -0700

    bonding: handle link transition from FAIL to UP correctly
    
    
    [ Upstream commit fb9eb899a6dc663e4a2deed9af2ac28f507d0ffb ]
    
    When link transitions from LINK_FAIL to LINK_UP, the commit phase is
    not called. This leads to an erroneous state causing slave-link state to
    get stuck in "going down" state while its speed and duplex are perfectly
    fine. This issue is a side-effect of splitting link-set into propose and
    commit phases introduced by de77ecd4ef02 ("bonding: improve link-status
    update in mii-monitoring")
    
    This patch fixes these issues by calling commit phase whenever link
    state change is proposed.
    
    Fixes: de77ecd4ef02 ("bonding: improve link-status update in mii-monitoring")
    Signed-off-by: Mahesh Bandewar <maheshb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09604c91cb04979eff200d05e44df845cd0fb7cf
Author: Santeri Toivonen <santeri.toivonen@vatsul.com>
Date:   Tue Apr 4 21:09:00 2017 +0300

    platform/x86: asus-nb-wmi: Add wapf4 quirk for the X302UA
    
    
    [ Upstream commit f35823619db8bbaa2afea8705f239c3cecb9d22f ]
    
    Asus laptop X302UA starts up with Wi-Fi disabled,
    without a way to enable it. Set wapf=4 to fix the problem.
    
    Signed-off-by: Santeri Toivonen <santeri.toivonen@vatsul.com>
    Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1ef7ed6e586ef69b366719bc37f1009e1d7d5d4
Author: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Date:   Mon Mar 19 20:23:19 2018 +0100

    led: core: Clear LED_BLINK_SW flag in led_blink_set()
    
    [Only needed in 4.9.y due to other fixes in mainline - gregkh]
    
    With the current code, the following sequence won't work :
    echo timer > trigger
    
    echo 0 >  delay_off
    * at this point we call
    ** led_delay_off_store
    ** led_blink_set

commit 2d07d7d7032c340564d84cedfba60a4d53355e95
Author: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Date:   Mon Mar 19 20:23:18 2018 +0100

    Revert "led: core: Fix brightness setting when setting delay_off=0"
    
    This reverts commit 86b9fa2190907f4f550d9d6bf490c5f89ca33836 which was
    commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c upstream.
    
    The commit being reverted has two flaws:
     - it introduces a regression, fixed in the upstream
       commit 7b6af2c53192f1766892ef40c8f48a413509ed72.
     - it has truncated commit message
    
    Reported-by: Sasha Levin <Alexander.Levin@microsoft.com>
    Reported-by: Matthias Schiffer <mschiffer@universe-factory.net>
    Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3c79a38843b7d44734dacc17694a72a0b269b74
Author: Yisheng Xie <xieyisheng1@huawei.com>
Date:   Wed Feb 28 14:59:22 2018 +0800

    staging: android: ashmem: Fix possible deadlock in ashmem_ioctl
    
    commit 740a5759bf222332fbb5eda42f89aa25ba38f9b2 upstream.
    
    ashmem_mutex may create a chain of dependencies like:
    
    CPU0                                    CPU1
     mmap syscall                           ioctl syscall
     -> mmap_sem (acquired)                 -> ashmem_ioctl
     -> ashmem_mmap                            -> ashmem_mutex (acquired)
        -> ashmem_mutex (try to acquire)       -> copy_from_user
                                                  -> mmap_sem (try to acquire)
    
    There is a lock odering problem between mmap_sem and ashmem_mutex causing
    a lockdep splat[1] during a syzcaller test. This patch fixes the problem
    by move copy_from_user out of ashmem_mutex.
    
    [1] https://www.spinics.net/lists/kernel/msg2733200.html
    
    Fixes: ce8a3a9e76d0 (staging: android: ashmem: Fix a race condition in pin ioctls)
    Reported-by: syzbot+d7a918a7a8e1c952bc36@syzkaller.appspotmail.com
    Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
    Cc: "Joel Fernandes (Google)" <joel.opensrc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df09b6f7b54adba78693997096d0bcb1bd80537c
Author: Pavel Shilovsky <pshilov@microsoft.com>
Date:   Mon Nov 7 18:20:50 2016 -0800

    CIFS: Enable encryption during session setup phase
    
    commit cabfb3680f78981d26c078a26e5c748531257ebb upstream.
    
    In order to allow encryption on SMB connection we need to exchange
    a session key and generate encryption and decryption keys.
    
    Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
    Cc: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fca16f9a02d9c44d8231ee52f84de3d57422bc3d
Author: Steve French <smfrench@gmail.com>
Date:   Wed Oct 25 15:58:31 2017 -0500

    SMB3: Validate negotiate request must always be signed
    
    commit 4587eee04e2ac7ac3ac9fa2bc164fb6e548f99cd upstream.
    
    According to MS-SMB2 3.2.55 validate_negotiate request must
    always be signed. Some Windows can fail the request if you send it unsigned
    
    See kernel bugzilla bug 197311
    
    CC: Stable <stable@vger.kernel.org>
    Acked-by: Ronnie Sahlberg <lsahlber.redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 548af581f939bbad7fa21fa8dace32e5eef075e5
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Wed May 17 06:50:32 2017 +0000

    ASoC: rsnd: check src mod pointer for rsnd_mod_id()
    
    commit 374503c6109e60f48fa9b11341b14466f07bd3f4 upstream.
    
    Without this patch, gcc 4.9.x says
    
        sound/soc/sh/rcar/cmd.c: In function 'rsnd_cmd_init':
        sound/soc/sh/rcar/cmd.c:85:14: warning: array subscript is below array\
            bounds [-Warray-bounds]
            data = path[rsnd_mod_id(src)] |
    
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 890962b83636836b044022773995d5ae558499ea
Author: Jeremy Boone <jeremy.boone@nccgroup.trust>
Date:   Thu Feb 8 12:28:08 2018 -0800

    tpm: fix potential buffer overruns caused by bit glitches on the bus
    
    commit 3be23274755ee85771270a23af7691dc9b3a95db upstream.
    
    Discrete TPMs are often connected over slow serial buses which, on
    some platforms, can have glitches causing bit flips.  If a bit does
    flip it could cause an overrun if it's in one of the size parameters,
    so sanity check that we're not overrunning the provided buffer when
    doing a memcpy().
    
    Signed-off-by: Jeremy Boone <jeremy.boone@nccgroup.trust>
    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: James Morris <james.morris@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
