commit cc0eb4dd504b8a0adab865a9488297aca63013ba
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Apr 13 19:48:37 2018 +0200

    Linux 4.9.94

commit 0efce82a41ce9b9cd1371622011a85827c099d0f
Author: Greg Hackmann <ghackmann@google.com>
Date:   Thu Apr 12 17:29:51 2018 -0700

    Revert "xhci: plat: Register shutdown for xhci_plat"
    
    Pixel 2 field testers reported that when they tried to reboot their
    phones with some USB devices plugged in, the reboot would get wedged and
    eventually trigger watchdog reset.  Once the Pixel kernel team found a
    reliable repro case, they narrowed it down to this commit's 4.4.y
    backport.  Reverting the change made the issue go away.
    
    This reverts commit b07c12517f2aed0add8ce18146bb426b14099392.
    
    Signed-off-by: Greg Hackmann <ghackmann@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89cd658056d24f8fbde817a263674a5253d4f427
Author: David Ahern <dsahern@gmail.com>
Date:   Thu Mar 29 12:49:52 2018 -0700

    vrf: Fix use after free and double free in vrf_finish_output
    
    commit 82dd0d2a9a76fc8fa2b18d80b987d455728bf83a upstream.
    
    Miguel reported an skb use after free / double free in vrf_finish_output
    when neigh_output returns an error. The vrf driver should return after
    the call to neigh_output as it takes over the skb on error path as well.
    
    Patch is a simplified version of Miguel's patch which was written for 4.9,
    and updated to top of tree.
    
    Fixes: 8f58336d3f78a ("net: Add ethernet header for pass through VRF device")
    Signed-off-by: Miguel Fadon Perlines <mfadon@teldat.com>
    Signed-off-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [ backport to 4.4 and 4.9 dropped the sock_confirm_neigh and
      changed neigh_output to dst_neigh_output ]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4363b972ada0968732ef7393eabffddf0b9f4341
Author: Craig Dillabaugh <cdillaba@mojatatu.com>
Date:   Mon Mar 26 14:58:32 2018 -0400

    net sched actions: fix dumping which requires several messages to user space
    
    
    [ Upstream commit 734549eb550c0c720bc89e50501f1b1e98cdd841 ]
    
    Fixes a bug in the tcf_dump_walker function that can cause some actions
    to not be reported when dumping a large number of actions. This issue
    became more aggrevated when cookies feature was added. In particular
    this issue is manifest when large cookie values are assigned to the
    actions and when enough actions are created that the resulting table
    must be dumped in multiple batches.
    
    The number of actions returned in each batch is limited by the total
    number of actions and the memory buffer size.  With small cookies
    the numeric limit is reached before the buffer size limit, which avoids
    the code path triggering this bug. When large cookies are used buffer
    fills before the numeric limit, and the erroneous code path is hit.
    
    For example after creating 32 csum actions with the cookie
    aaaabbbbccccdddd
    
    $ tc actions ls action csum
    total acts 26
    
        action order 0: csum (tcp) action continue
        index 1 ref 1 bind 0
        cookie aaaabbbbccccdddd
    
        .....
    
        action order 25: csum (tcp) action continue
        index 26 ref 1 bind 0
        cookie aaaabbbbccccdddd
    total acts 6
    
        action order 0: csum (tcp) action continue
        index 28 ref 1 bind 0
        cookie aaaabbbbccccdddd
    
        ......
    
        action order 5: csum (tcp) action continue
        index 32 ref 1 bind 0
        cookie aaaabbbbccccdddd
    
    Note that the action with index 27 is omitted from the report.
    
    Fixes: 4b3550ef530c ("[NET_SCHED]: Use nla_nest_start/nla_nest_end")"
    Signed-off-by: Craig Dillabaugh <cdillaba@mojatatu.com>
    Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32a2fd96bf77b27e55f6524d16501f55887b3b7b
Author: Dave Watson <davejwatson@fb.com>
Date:   Mon Mar 26 12:31:21 2018 -0700

    strparser: Fix sign of err codes
    
    
    [ Upstream commit cd00edc179863848abab5cc5683de5b7b5f70954 ]
    
    strp_parser_err is called with a negative code everywhere, which then
    calls abort_parser with a negative code.  strp_msg_timeout calls
    abort_parser directly with a positive code.  Negate ETIMEDOUT
    to match signed-ness of other calls.
    
    The default abort_parser callback, strp_abort_strp, sets
    sk->sk_err to err.  Also negate the error here so sk_err always
    holds a positive value, as the rest of the net code expects.  Currently
    a negative sk_err can result in endless loops, or user code that
    thinks it actually sent/received err bytes.
    
    Found while testing net/tls_sw recv path.
    
    Fixes: 43a0c6751a322847 ("strparser: Stream parser for messages")
    Signed-off-by: Dave Watson <davejwatson@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d392d2e3ed5b59b995da08a8deb3abb3e48b99b
Author: Moshe Shemesh <moshe@mellanox.com>
Date:   Tue Mar 27 14:41:19 2018 +0300

    net/mlx4_core: Fix memory leak while delete slave's resources
    
    
    [ Upstream commit 461d5f1b59490ce0096dfda45e10038c122a7892 ]
    
    mlx4_delete_all_resources_for_slave in resource tracker should free all
    memory allocated for a slave.
    While releasing memory of fs_rule, it misses releasing memory of
    fs_rule->mirr_mbox.
    
    Fixes: 78efed275117 ('net/mlx4_core: Support mirroring VF DMFS rules on both ports')
    Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1cb81756b7c3813f7d65d3c6bb1133cb53b69775
Author: Jason Wang <jasowang@redhat.com>
Date:   Mon Mar 26 16:10:23 2018 +0800

    vhost_net: add missing lock nesting notation
    
    
    [ Upstream commit aaa3149bbee9ba9b4e6f0bd6e3e7d191edeae942 ]
    
    We try to hold TX virtqueue mutex in vhost_net_rx_peek_head_len()
    after RX virtqueue mutex is held in handle_rx(). This requires an
    appropriate lock nesting notation to calm down deadlock detector.
    
    Fixes: 0308813724606 ("vhost_net: basic polling support")
    Reported-by: syzbot+7f073540b1384a614e09@syzkaller.appspotmail.com
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0cfa0d3e53b6e4f2fd4280b2f9474e6fb8e13f4
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Mar 26 01:25:06 2018 +0800

    team: move dev_mc_sync after master_upper_dev_link in team_port_add
    
    
    [ Upstream commit 982cf3b3999d39a2eaca0a65542df33c19b5d814 ]
    
    The same fix as in 'bonding: move dev_mc_sync after master_upper_dev_link
    in bond_enslave' is needed for team driver.
    
    The panic can be reproduced easily:
    
      ip link add team1 type team
      ip link set team1 up
      ip link add link team1 vlan1 type vlan id 80
      ip link set vlan1 master team1
    
    Fixes: cb41c997d444 ("team: team should sync the port's uc/mc addrs when add a port")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cba34a7a66444f11f1d5c315e947222e21cfe4d
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sun Apr 1 22:40:35 2018 +0800

    route: check sysctl_fib_multipath_use_neigh earlier than hash
    
    
    [ Upstream commit 6174a30df1b902e1fedbd728f5343937e83e64e6 ]
    
    Prior to this patch, when one packet is hashed into path [1]
    (hash <= nh_upper_bound) and it's neigh is dead, it will try
    path [2]. However, if path [2]'s neigh is alive but it's
    hash > nh_upper_bound, it will not return this alive path.
    This packet will never be sent even if path [2] is alive.
    
     3.3.3.1/24:
      nexthop via 1.1.1.254 dev eth1 weight 1 <--[1] (dead neigh)
      nexthop via 2.2.2.254 dev eth2 weight 1 <--[2]
    
    With sysctl_fib_multipath_use_neigh set is supposed to find an
    available path respecting to the l3/l4 hash. But if there is
    no available route with this hash, it should at least return
    an alive route even with other hash.
    
    This patch is to fix it by processing fib_multipath_use_neigh
    earlier than the hash check, so that it will at least return
    an alive route if there is when fib_multipath_use_neigh is
    enabled. It's also compatible with before when there are alive
    routes with the l3/l4 hash.
    
    Fixes: a6db4494d218 ("net: ipv4: Consider failed nexthops in multipath routes")
    Reported-by: Jianlin Shi <jishi@redhat.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: David Ahern <dsa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 992dbb1d5a653c49a7f2159f75d9cda0d8248f1f
Author: Jason Wang <jasowang@redhat.com>
Date:   Thu Mar 29 16:00:04 2018 +0800

    vhost: validate log when IOTLB is enabled
    
    
    [ Upstream commit d65026c6c62e7d9616c8ceb5a53b68bcdc050525 ]
    
    Vq log_base is the userspace address of bitmap which has nothing to do
    with IOTLB. So it needs to be validated unconditionally otherwise we
    may try use 0 as log_base which may lead to pin pages that will lead
    unexpected result (e.g trigger BUG_ON() in set_bit_to_user()).
    
    Fixes: 6b1e6cc7855b0 ("vhost: new device IOTLB API")
    Reported-by: syzbot+6304bf97ef436580fede@syzkaller.appspotmail.com
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3e1c92e59911cd61672f8f735bc78f36ca7fef0
Author: Eran Ben Elisha <eranbe@mellanox.com>
Date:   Tue Mar 27 14:41:18 2018 +0300

    net/mlx4_en: Fix mixed PFC and Global pause user control requests
    
    
    [ Upstream commit 6e8814ceb7e8f468659ef9253bd212c07ae19584 ]
    
    Global pause and PFC configuration should be mutually exclusive (i.e. only
    one of them at most can be set). However, once PFC was turned off,
    driver automatically turned Global pause on. This is a bug.
    
    Fix the driver behaviour to turn off PFC/Global once the user turned the
    other on.
    
    This also fixed a weird behaviour that at a current time, the profile
    had both PFC and global pause configuration turned on, which is
    Hardware-wise impossible and caused returning false positive indication
    to query tools.
    
    In addition, fix error code when setting global pause or PFC to change
    metadata only upon successful change.
    
    Also, removed useless debug print.
    
    Fixes: af7d51852631 ("net/mlx4_en: Add DCB PFC support through CEE netlink commands")
    Fixes: c27a02cd94d6 ("mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC")
    Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e8d6e87d2965999219d140d6a078aef128e1703
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Fri Mar 16 00:00:57 2018 +0100

    net/sched: fix NULL dereference on the error path of tcf_skbmod_init()
    
    
    [ Upstream commit 2d433610176d6569e8b3a28f67bc72235bf69efc ]
    
    when the following command
    
     # tc action replace action skbmod swap mac index 100
    
    is run for the first time, and tcf_skbmod_init() fails to allocate struct
    tcf_skbmod_params, tcf_skbmod_cleanup() calls kfree_rcu(NULL), thus
    causing the following error:
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
     IP: __call_rcu+0x23/0x2b0
     PGD 8000000034057067 P4D 8000000034057067 PUD 74937067 PMD 0
     Oops: 0002 [#1] SMP PTI
     Modules linked in: act_skbmod(E) psample ip6table_filter ip6_tables iptable_filter binfmt_misc ext4 snd_hda_codec_generic snd_hda_intel snd_hda_codec crct10dif_pclmul mbcache jbd2 crc32_pclmul snd_hda_core ghash_clmulni_intel snd_hwdep pcbc snd_seq snd_seq_device snd_pcm aesni_intel snd_timer crypto_simd glue_helper snd cryptd virtio_balloon joydev soundcore pcspkr i2c_piix4 nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c ata_generic pata_acpi qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm virtio_console virtio_net virtio_blk ata_piix libata crc32c_intel virtio_pci serio_raw virtio_ring virtio i2c_core floppy dm_mirror dm_region_hash dm_log dm_mod [last unloaded: act_skbmod]
     CPU: 3 PID: 3144 Comm: tc Tainted: G            E    4.16.0-rc4.act_vlan.orig+ #403
     Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
     RIP: 0010:__call_rcu+0x23/0x2b0
     RSP: 0018:ffffbd2e403e7798 EFLAGS: 00010246
     RAX: ffffffffc0872080 RBX: ffff981d34bff780 RCX: 00000000ffffffff
     RDX: ffffffff922a5f00 RSI: 0000000000000000 RDI: 0000000000000000
     RBP: 0000000000000000 R08: 0000000000000001 R09: 000000000000021f
     R10: 000000003d003000 R11: 0000000000aaaaaa R12: 0000000000000000
     R13: ffffffff922a5f00 R14: 0000000000000001 R15: ffff981d3b698c2c
     FS:  00007f3678292740(0000) GS:ffff981d3fd80000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000008 CR3: 000000007c57a006 CR4: 00000000001606e0
     Call Trace:
      __tcf_idr_release+0x79/0xf0
      tcf_skbmod_init+0x1d1/0x210 [act_skbmod]
      tcf_action_init_1+0x2cc/0x430
      tcf_action_init+0xd3/0x1b0
      tc_ctl_action+0x18b/0x240
      rtnetlink_rcv_msg+0x29c/0x310
      ? _cond_resched+0x15/0x30
      ? __kmalloc_node_track_caller+0x1b9/0x270
      ? rtnl_calcit.isra.28+0x100/0x100
      netlink_rcv_skb+0xd2/0x110
      netlink_unicast+0x17c/0x230
      netlink_sendmsg+0x2cd/0x3c0
      sock_sendmsg+0x30/0x40
      ___sys_sendmsg+0x27a/0x290
      ? filemap_map_pages+0x34a/0x3a0
      ? __handle_mm_fault+0xbfd/0xe20
      __sys_sendmsg+0x51/0x90
      do_syscall_64+0x6e/0x1a0
      entry_SYSCALL_64_after_hwframe+0x3d/0xa2
     RIP: 0033:0x7f36776a3ba0
     RSP: 002b:00007fff4703b618 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
     RAX: ffffffffffffffda RBX: 00007fff4703b740 RCX: 00007f36776a3ba0
     RDX: 0000000000000000 RSI: 00007fff4703b690 RDI: 0000000000000003
     RBP: 000000005aaaba36 R08: 0000000000000002 R09: 0000000000000000
     R10: 00007fff4703b0a0 R11: 0000000000000246 R12: 0000000000000000
     R13: 00007fff4703b754 R14: 0000000000000001 R15: 0000000000669f60
     Code: 5d e9 42 da ff ff 66 90 0f 1f 44 00 00 41 57 41 56 41 55 49 89 d5 41 54 55 48 89 fd 53 48 83 ec 08 40 f6 c7 07 0f 85 19 02 00 00 <48> 89 75 08 48 c7 45 00 00 00 00 00 9c 58 0f 1f 44 00 00 49 89
     RIP: __call_rcu+0x23/0x2b0 RSP: ffffbd2e403e7798
     CR2: 0000000000000008
    
    Fix it in tcf_skbmod_cleanup(), ensuring that kfree_rcu(p, ...) is called
    only when p is not NULL.
    
    Fixes: 86da71b57383 ("net_sched: Introduce skbmod action")
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d1ff266f8a08b02f5eeee5293cd43032438dbc6
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Fri Mar 16 00:00:55 2018 +0100

    net/sched: fix NULL dereference in the error path of tunnel_key_init()
    
    
    [ Upstream commit abdadd3cfd3e7ea3da61ac774f84777d1f702058 ]
    
    when the following command
    
     # tc action add action tunnel_key unset index 100
    
    is run for the first time, and tunnel_key_init() fails to allocate struct
    tcf_tunnel_key_params, tunnel_key_release() dereferences NULL pointers.
    This causes the following error:
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
     IP: tunnel_key_release+0xd/0x40 [act_tunnel_key]
     PGD 8000000033787067 P4D 8000000033787067 PUD 74646067 PMD 0
     Oops: 0000 [#1] SMP PTI
     Modules linked in: act_tunnel_key(E) act_csum ip6table_filter ip6_tables iptable_filter binfmt_misc ext4 mbcache jbd2 crct10dif_pclmul crc32_pclmul snd_hda_codec_generic ghash_clmulni_intel snd_hda_intel pcbc snd_hda_codec snd_hda_core snd_hwdep snd_seq aesni_intel snd_seq_device crypto_simd glue_helper snd_pcm cryptd joydev snd_timer pcspkr virtio_balloon snd i2c_piix4 soundcore nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c ata_generic pata_acpi qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm virtio_net virtio_blk drm virtio_console crc32c_intel ata_piix serio_raw i2c_core virtio_pci libata virtio_ring virtio floppy dm_mirror dm_region_hash dm_log dm_mod
     CPU: 2 PID: 3101 Comm: tc Tainted: G            E    4.16.0-rc4.act_vlan.orig+ #403
     Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
     RIP: 0010:tunnel_key_release+0xd/0x40 [act_tunnel_key]
     RSP: 0018:ffffba46803b7768 EFLAGS: 00010286
     RAX: ffffffffc09010a0 RBX: 0000000000000000 RCX: 0000000000000024
     RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff99ee336d7480
     RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000044
     R10: 0000000000000220 R11: ffff99ee79d73131 R12: 0000000000000000
     R13: ffff99ee32d67610 R14: ffff99ee7671dc38 R15: 00000000fffffff4
     FS:  00007febcb2cd740(0000) GS:ffff99ee7fd00000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000010 CR3: 000000007c8e4005 CR4: 00000000001606e0
     Call Trace:
      __tcf_idr_release+0x79/0xf0
      tunnel_key_init+0xd9/0x460 [act_tunnel_key]
      tcf_action_init_1+0x2cc/0x430
      tcf_action_init+0xd3/0x1b0
      tc_ctl_action+0x18b/0x240
      rtnetlink_rcv_msg+0x29c/0x310
      ? _cond_resched+0x15/0x30
      ? __kmalloc_node_track_caller+0x1b9/0x270
      ? rtnl_calcit.isra.28+0x100/0x100
      netlink_rcv_skb+0xd2/0x110
      netlink_unicast+0x17c/0x230
      netlink_sendmsg+0x2cd/0x3c0
      sock_sendmsg+0x30/0x40
      ___sys_sendmsg+0x27a/0x290
      __sys_sendmsg+0x51/0x90
      do_syscall_64+0x6e/0x1a0
      entry_SYSCALL_64_after_hwframe+0x3d/0xa2
     RIP: 0033:0x7febca6deba0
     RSP: 002b:00007ffe7b0dd128 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
     RAX: ffffffffffffffda RBX: 00007ffe7b0dd250 RCX: 00007febca6deba0
     RDX: 0000000000000000 RSI: 00007ffe7b0dd1a0 RDI: 0000000000000003
     RBP: 000000005aaa90cb R08: 0000000000000002 R09: 0000000000000000
     R10: 00007ffe7b0dcba0 R11: 0000000000000246 R12: 0000000000000000
     R13: 00007ffe7b0dd264 R14: 0000000000000001 R15: 0000000000669f60
     Code: 44 00 00 8b 0d b5 23 00 00 48 8b 87 48 10 00 00 48 8b 3c c8 e9 a5 e5 d8 c3 0f 1f 44 00 00 0f 1f 44 00 00 53 48 8b 9f b0 00 00 00 <83> 7b 10 01 74 0b 48 89 df 31 f6 5b e9 f2 fa 7f c3 48 8b 7b 18
     RIP: tunnel_key_release+0xd/0x40 [act_tunnel_key] RSP: ffffba46803b7768
     CR2: 0000000000000010
    
    Fix this in tunnel_key_release(), ensuring 'param' is not NULL before
    dereferencing it.
    
    Fixes: d0f6dd8a914f ("net/sched: Introduce act_tunnel_key")
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb9b11a1abce0122d7851bb1f6ad1790a98f5eb9
Author: Shahar Klein <shahark@mellanox.com>
Date:   Tue Mar 20 14:44:40 2018 +0200

    net/mlx5e: Sync netdev vxlan ports at open
    
    
    [ Upstream commit a117f73dc2430443f23e18367fa545981129c1a6 ]
    
    When mlx5_core is loaded it is expected to sync ports
    with all vxlan devices so it can support vxlan encap/decap.
    This is done via udp_tunnel_get_rx_info(). Currently this
    call is set in mlx5e_nic_enable() and if the netdev is not in
    NETREG_REGISTERED state it will not be called.
    
    Normally on load the netdev state is not NETREG_REGISTERED
    so udp_tunnel_get_rx_info() will not be called.
    
    Moving udp_tunnel_get_rx_info() to mlx5e_open() so
    it will be called on netdev UP event and allow encap/decap.
    
    Fixes: 610e89e05c3f ("net/mlx5e: Don't sync netdev state when not registered")
    Signed-off-by: Shahar Klein <shahark@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dbb6ed68192765066bf16067d76ec699c87d42f0
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 5 06:39:31 2018 -0700

    vti6: better validate user provided tunnel names
    
    
    [ Upstream commit 537b361fbcbcc3cd6fe2bb47069fd292b9256d16 ]
    
    Use valid_name() to make sure user does not provide illegal
    device name.
    
    Fixes: ed1efb2aefbb ("ipv6: Add support for IPsec virtual tunnel interfaces")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92b2828c7c361ce44f8b01c2268265478841c586
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 5 06:39:30 2018 -0700

    ip6_tunnel: better validate user provided tunnel names
    
    
    [ Upstream commit db7a65e3ab78e5b1c4b17c0870ebee35a4ee3257 ]
    
    Use valid_name() to make sure user does not provide illegal
    device name.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dcf6eb5a275ddb00eea4d6a8127ffaf5428a475
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 5 06:39:29 2018 -0700

    ip6_gre: better validate user provided tunnel names
    
    
    [ Upstream commit 5f42df013b8bc1b6511af7a04bf93b014884ae2a ]
    
    Use dev_valid_name() to make sure user does not provide illegal
    device name.
    
    syzbot caught the following bug :
    
    BUG: KASAN: stack-out-of-bounds in strlcpy include/linux/string.h:300 [inline]
    BUG: KASAN: stack-out-of-bounds in ip6gre_tunnel_locate+0x334/0x860 net/ipv6/ip6_gre.c:339
    Write of size 20 at addr ffff8801afb9f7b8 by task syzkaller851048/4466
    
    CPU: 1 PID: 4466 Comm: syzkaller851048 Not tainted 4.16.0+ #1
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x1b9/0x29f lib/dump_stack.c:53
     print_address_description+0x6c/0x20b mm/kasan/report.c:256
     kasan_report_error mm/kasan/report.c:354 [inline]
     kasan_report.cold.7+0xac/0x2f5 mm/kasan/report.c:412
     check_memory_region_inline mm/kasan/kasan.c:260 [inline]
     check_memory_region+0x13e/0x1b0 mm/kasan/kasan.c:267
     memcpy+0x37/0x50 mm/kasan/kasan.c:303
     strlcpy include/linux/string.h:300 [inline]
     ip6gre_tunnel_locate+0x334/0x860 net/ipv6/ip6_gre.c:339
     ip6gre_tunnel_ioctl+0x69d/0x12e0 net/ipv6/ip6_gre.c:1195
     dev_ifsioc+0x43e/0xb90 net/core/dev_ioctl.c:334
     dev_ioctl+0x69a/0xcc0 net/core/dev_ioctl.c:525
     sock_ioctl+0x47e/0x680 net/socket.c:1015
     vfs_ioctl fs/ioctl.c:46 [inline]
     file_ioctl fs/ioctl.c:500 [inline]
     do_vfs_ioctl+0x1cf/0x1650 fs/ioctl.c:684
     ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
     SYSC_ioctl fs/ioctl.c:708 [inline]
     SyS_ioctl+0x24/0x30 fs/ioctl.c:706
     do_syscall_64+0x29e/0x9d0 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    Fixes: c12b395a4664 ("gre: Support GRE over IPv6")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1f1f94f7d70703baf7d4f966b69601a9042a306
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 5 06:39:28 2018 -0700

    ipv6: sit: better validate user provided tunnel names
    
    
    [ Upstream commit b95211e066fc3494b7c115060b2297b4ba21f025 ]
    
    Use dev_valid_name() to make sure user does not provide illegal
    device name.
    
    syzbot caught the following bug :
    
    BUG: KASAN: stack-out-of-bounds in strlcpy include/linux/string.h:300 [inline]
    BUG: KASAN: stack-out-of-bounds in ipip6_tunnel_locate+0x63b/0xaa0 net/ipv6/sit.c:254
    Write of size 33 at addr ffff8801b64076d8 by task syzkaller932654/4453
    
    CPU: 0 PID: 4453 Comm: syzkaller932654 Not tainted 4.16.0+ #1
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x1b9/0x29f lib/dump_stack.c:53
     print_address_description+0x6c/0x20b mm/kasan/report.c:256
     kasan_report_error mm/kasan/report.c:354 [inline]
     kasan_report.cold.7+0xac/0x2f5 mm/kasan/report.c:412
     check_memory_region_inline mm/kasan/kasan.c:260 [inline]
     check_memory_region+0x13e/0x1b0 mm/kasan/kasan.c:267
     memcpy+0x37/0x50 mm/kasan/kasan.c:303
     strlcpy include/linux/string.h:300 [inline]
     ipip6_tunnel_locate+0x63b/0xaa0 net/ipv6/sit.c:254
     ipip6_tunnel_ioctl+0xe71/0x241b net/ipv6/sit.c:1221
     dev_ifsioc+0x43e/0xb90 net/core/dev_ioctl.c:334
     dev_ioctl+0x69a/0xcc0 net/core/dev_ioctl.c:525
     sock_ioctl+0x47e/0x680 net/socket.c:1015
     vfs_ioctl fs/ioctl.c:46 [inline]
     file_ioctl fs/ioctl.c:500 [inline]
     do_vfs_ioctl+0x1cf/0x1650 fs/ioctl.c:684
     ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
     SYSC_ioctl fs/ioctl.c:708 [inline]
     SyS_ioctl+0x24/0x30 fs/ioctl.c:706
     do_syscall_64+0x29e/0x9d0 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6cc0290b932d9d02831a826e54e2cce70f109c4c
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 5 06:39:27 2018 -0700

    ip_tunnel: better validate user provided tunnel names
    
    
    [ Upstream commit 9cb726a212a82c88c98aa9f0037fd04777cd8fe5 ]
    
    Use dev_valid_name() to make sure user does not provide illegal
    device name.
    
    syzbot caught the following bug :
    
    BUG: KASAN: stack-out-of-bounds in strlcpy include/linux/string.h:300 [inline]
    BUG: KASAN: stack-out-of-bounds in __ip_tunnel_create+0xca/0x6b0 net/ipv4/ip_tunnel.c:257
    Write of size 20 at addr ffff8801ac79f810 by task syzkaller268107/4482
    
    CPU: 0 PID: 4482 Comm: syzkaller268107 Not tainted 4.16.0+ #1
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x1b9/0x29f lib/dump_stack.c:53
     print_address_description+0x6c/0x20b mm/kasan/report.c:256
     kasan_report_error mm/kasan/report.c:354 [inline]
     kasan_report.cold.7+0xac/0x2f5 mm/kasan/report.c:412
     check_memory_region_inline mm/kasan/kasan.c:260 [inline]
     check_memory_region+0x13e/0x1b0 mm/kasan/kasan.c:267
     memcpy+0x37/0x50 mm/kasan/kasan.c:303
     strlcpy include/linux/string.h:300 [inline]
     __ip_tunnel_create+0xca/0x6b0 net/ipv4/ip_tunnel.c:257
     ip_tunnel_create net/ipv4/ip_tunnel.c:352 [inline]
     ip_tunnel_ioctl+0x818/0xd40 net/ipv4/ip_tunnel.c:861
     ipip_tunnel_ioctl+0x1c5/0x420 net/ipv4/ipip.c:350
     dev_ifsioc+0x43e/0xb90 net/core/dev_ioctl.c:334
     dev_ioctl+0x69a/0xcc0 net/core/dev_ioctl.c:525
     sock_ioctl+0x47e/0x680 net/socket.c:1015
     vfs_ioctl fs/ioctl.c:46 [inline]
     file_ioctl fs/ioctl.c:500 [inline]
     do_vfs_ioctl+0x1cf/0x1650 fs/ioctl.c:684
     ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
     SYSC_ioctl fs/ioctl.c:708 [inline]
     SyS_ioctl+0x24/0x30 fs/ioctl.c:706
     do_syscall_64+0x29e/0x9d0 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    Fixes: c54419321455 ("GRE: Refactor GRE tunneling code.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d1c057dd6f373d8bfb168ee33f5ef8ee9e92e1b
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Apr 5 06:39:26 2018 -0700

    net: fool proof dev_valid_name()
    
    
    [ Upstream commit a9d48205d0aedda021fc3728972a9e9934c2b9de ]
    
    We want to use dev_valid_name() to validate tunnel names,
    so better use strnlen(name, IFNAMSIZ) than strlen(name) to make
    sure to not upset KASAN.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 359d6e35786b3aafc4dea0d5cf59ff62c1eb126c
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Mar 26 01:16:47 2018 +0800

    bonding: process the err returned by dev_set_allmulti properly in bond_enslave
    
    
    [ Upstream commit 9f5a90c107741b864398f4ac0014711a8c1d8474 ]
    
    When dev_set_promiscuity(1) succeeds but dev_set_allmulti(1) fails,
    dev_set_promiscuity(-1) should be done before going to the err path.
    Otherwise, dev->promiscuity will leak.
    
    Fixes: 7e1a1ac1fbaa ("bonding: Check return of dev_set_promiscuity/allmulti")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6d65b4c8fd700be97bd24980bc0bde9b0c55109
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Mar 26 01:16:46 2018 +0800

    bonding: move dev_mc_sync after master_upper_dev_link in bond_enslave
    
    
    [ Upstream commit ae42cc62a9f07f1f6979054ed92606b9c30f4a2e ]
    
    Beniamino found a crash when adding vlan as slave of bond which is also
    the parent link:
    
      ip link add bond1 type bond
      ip link set bond1 up
      ip link add link bond1 vlan1 type vlan id 80
      ip link set vlan1 master bond1
    
    The call trace is as below:
    
      [<ffffffffa850842a>] queued_spin_lock_slowpath+0xb/0xf
      [<ffffffffa8515680>] _raw_spin_lock+0x20/0x30
      [<ffffffffa83f6f07>] dev_mc_sync+0x37/0x80
      [<ffffffffc08687dc>] vlan_dev_set_rx_mode+0x1c/0x30 [8021q]
      [<ffffffffa83efd2a>] __dev_set_rx_mode+0x5a/0xa0
      [<ffffffffa83f7138>] dev_mc_sync_multiple+0x78/0x80
      [<ffffffffc084127c>] bond_enslave+0x67c/0x1190 [bonding]
      [<ffffffffa8401909>] do_setlink+0x9c9/0xe50
      [<ffffffffa8403bf2>] rtnl_newlink+0x522/0x880
      [<ffffffffa8403ff7>] rtnetlink_rcv_msg+0xa7/0x260
      [<ffffffffa8424ecb>] netlink_rcv_skb+0xab/0xc0
      [<ffffffffa83fe498>] rtnetlink_rcv+0x28/0x30
      [<ffffffffa8424850>] netlink_unicast+0x170/0x210
      [<ffffffffa8424bf8>] netlink_sendmsg+0x308/0x420
      [<ffffffffa83cc396>] sock_sendmsg+0xb6/0xf0
    
    This is actually a dead lock caused by sync slave hwaddr from master when
    the master is the slave's 'slave'. This dead loop check is actually done
    by netdev_master_upper_dev_link. However, Commit 1f718f0f4f97 ("bonding:
    populate neighbour's private on enslave") moved it after dev_mc_sync.
    
    This patch is to fix it by moving dev_mc_sync after master_upper_dev_link,
    so that this loop check would be earlier than dev_mc_sync. It also moves
    if (mode == BOND_MODE_8023AD) into if (!bond_uses_primary) clause as an
    improvement.
    
    Note team driver also has this issue, I will fix it in another patch.
    
    Fixes: 1f718f0f4f97 ("bonding: populate neighbour's private on enslave")
    Reported-by: Beniamino Galvani <bgalvani@redhat.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f611a5e1433f71989d3d9846964e91cfb0c1ba01
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Mar 26 01:16:45 2018 +0800

    bonding: fix the err path for dev hwaddr sync in bond_enslave
    
    
    [ Upstream commit 5c78f6bfae2b10ff70e21d343e64584ea6280c26 ]
    
    vlan_vids_add_by_dev is called right after dev hwaddr sync, so on
    the err path it should unsync dev hwaddr. Otherwise, the slave
    dev's hwaddr will never be unsync when this err happens.
    
    Fixes: 1ff412ad7714 ("bonding: change the bond's vlan syncing functions with the standard ones")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Reviewed-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Acked-by: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2463af64c2b445e10e0c3f5a2f4c4db49dabc114
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Fri Mar 30 09:44:00 2018 +0800

    vlan: also check phy_driver ts_info for vlan's real device
    
    
    [ Upstream commit ec1d8ccb07deaf30fd0508af6755364ac47dc08d ]
    
    Just like function ethtool_get_ts_info(), we should also consider the
    phy_driver ts_info call back. For example, driver dp83640.
    
    Fixes: 37dd9255b2f6 ("vlan: Pass ethtool get_ts_info queries to real device.")
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 827148d08d43bce95fda03b462e213fc0094c8b1
Author: Jason Wang <jasowang@redhat.com>
Date:   Tue Mar 27 20:50:52 2018 +0800

    vhost: correctly remove wait queue during poll failure
    
    
    [ Upstream commit dc6455a71c7fc5117977e197f67f71b49f27baba ]
    
    We tried to remove vq poll from wait queue, but do not check whether
    or not it was in a list before. This will lead double free. Fixing
    this by switching to use vhost_poll_stop() which zeros poll->wqh after
    removing poll from waitqueue to make sure it won't be freed twice.
    
    Cc: Darren Kenny <darren.kenny@oracle.com>
    Reported-by: syzbot+c0272972b01b872e604a@syzkaller.appspotmail.com
    Fixes: 2b8b328b61c79 ("vhost_net: handle polling errors when setting backend")
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10200c71c411a451eec56d32dbcc29cdd940786e
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Sat Mar 31 23:42:03 2018 +0800

    sky2: Increase D3 delay to sky2 stops working after suspend
    
    
    [ Upstream commit afb133637071be6deeb8b3d0e55593ffbf63c527 ]
    
    The sky2 ethernet stops working after system resume from suspend:
    [ 582.852065] sky2 0000:04:00.0: Refused to change power state, currently in D3
    
    The current 150ms delay is not enough, change it to 200ms can solve the
    issue.
    
    BugLink: https://bugs.launchpad.net/bugs/1758507
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16002a42da497ad78c14a880da1cab49bd80024f
Author: Eric Dumazet <edumazet@google.com>
Date:   Sun Apr 8 07:52:08 2018 -0700

    sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
    
    
    [ Upstream commit 81e98370293afcb58340ce8bd71af7b97f925c26 ]
    
    Check must happen before call to ipv6_addr_v4mapped()
    
    syzbot report was :
    
    BUG: KMSAN: uninit-value in sctp_sockaddr_af net/sctp/socket.c:359 [inline]
    BUG: KMSAN: uninit-value in sctp_do_bind+0x60f/0xdc0 net/sctp/socket.c:384
    CPU: 0 PID: 3576 Comm: syzkaller968804 Not tainted 4.16.0+ #82
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x185/0x1d0 lib/dump_stack.c:53
     kmsan_report+0x142/0x240 mm/kmsan/kmsan.c:1067
     __msan_warning_32+0x6c/0xb0 mm/kmsan/kmsan_instr.c:676
     sctp_sockaddr_af net/sctp/socket.c:359 [inline]
     sctp_do_bind+0x60f/0xdc0 net/sctp/socket.c:384
     sctp_bind+0x149/0x190 net/sctp/socket.c:332
     inet6_bind+0x1fd/0x1820 net/ipv6/af_inet6.c:293
     SYSC_bind+0x3f2/0x4b0 net/socket.c:1474
     SyS_bind+0x54/0x80 net/socket.c:1460
     do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x3d/0xa2
    RIP: 0033:0x43fd49
    RSP: 002b:00007ffe99df3d28 EFLAGS: 00000213 ORIG_RAX: 0000000000000031
    RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 000000000043fd49
    RDX: 0000000000000010 RSI: 0000000020000000 RDI: 0000000000000003
    RBP: 00000000006ca018 R08: 00000000004002c8 R09: 00000000004002c8
    R10: 00000000004002c8 R11: 0000000000000213 R12: 0000000000401670
    R13: 0000000000401700 R14: 0000000000000000 R15: 0000000000000000
    
    Local variable description: ----address@SYSC_bind
    Variable was created at:
     SYSC_bind+0x6f/0x4b0 net/socket.c:1461
     SyS_bind+0x54/0x80 net/socket.c:1460
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2cd9afc8b75abd60939890b5af50372c07d92ee4
Author: Eric Dumazet <edumazet@google.com>
Date:   Sat Apr 7 17:15:22 2018 -0700

    sctp: do not leak kernel memory to user space
    
    
    [ Upstream commit 6780db244d6b1537d139dea0ec8aad10cf9e4adb ]
    
    syzbot produced a nice report [1]
    
    Issue here is that a recvmmsg() managed to leak 8 bytes of kernel memory
    to user space, because sin_zero (padding field) was not properly cleared.
    
    [1]
    BUG: KMSAN: uninit-value in copy_to_user include/linux/uaccess.h:184 [inline]
    BUG: KMSAN: uninit-value in move_addr_to_user+0x32e/0x530 net/socket.c:227
    CPU: 1 PID: 3586 Comm: syzkaller481044 Not tainted 4.16.0+ #82
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x185/0x1d0 lib/dump_stack.c:53
     kmsan_report+0x142/0x240 mm/kmsan/kmsan.c:1067
     kmsan_internal_check_memory+0x164/0x1d0 mm/kmsan/kmsan.c:1176
     kmsan_copy_to_user+0x69/0x160 mm/kmsan/kmsan.c:1199
     copy_to_user include/linux/uaccess.h:184 [inline]
     move_addr_to_user+0x32e/0x530 net/socket.c:227
     ___sys_recvmsg+0x4e2/0x810 net/socket.c:2211
     __sys_recvmmsg+0x54e/0xdb0 net/socket.c:2313
     SYSC_recvmmsg+0x29b/0x3e0 net/socket.c:2394
     SyS_recvmmsg+0x76/0xa0 net/socket.c:2378
     do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x3d/0xa2
    RIP: 0033:0x4401c9
    RSP: 002b:00007ffc56f73098 EFLAGS: 00000217 ORIG_RAX: 000000000000012b
    RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 00000000004401c9
    RDX: 0000000000000001 RSI: 0000000020003ac0 RDI: 0000000000000003
    RBP: 00000000006ca018 R08: 0000000020003bc0 R09: 0000000000000010
    R10: 0000000000000000 R11: 0000000000000217 R12: 0000000000401af0
    R13: 0000000000401b80 R14: 0000000000000000 R15: 0000000000000000
    
    Local variable description: ----addr@___sys_recvmsg
    Variable was created at:
     ___sys_recvmsg+0xd5/0x810 net/socket.c:2172
     __sys_recvmmsg+0x54e/0xdb0 net/socket.c:2313
    
    Bytes 8-15 of 16 are uninitialized
    
    ==================================================================
    Kernel panic - not syncing: panic_on_warn set ...
    
    CPU: 1 PID: 3586 Comm: syzkaller481044 Tainted: G    B            4.16.0+ #82
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x185/0x1d0 lib/dump_stack.c:53
     panic+0x39d/0x940 kernel/panic.c:183
     kmsan_report+0x238/0x240 mm/kmsan/kmsan.c:1083
     kmsan_internal_check_memory+0x164/0x1d0 mm/kmsan/kmsan.c:1176
     kmsan_copy_to_user+0x69/0x160 mm/kmsan/kmsan.c:1199
     copy_to_user include/linux/uaccess.h:184 [inline]
     move_addr_to_user+0x32e/0x530 net/socket.c:227
     ___sys_recvmsg+0x4e2/0x810 net/socket.c:2211
     __sys_recvmmsg+0x54e/0xdb0 net/socket.c:2313
     SYSC_recvmmsg+0x29b/0x3e0 net/socket.c:2394
     SyS_recvmmsg+0x76/0xa0 net/socket.c:2378
     do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x3d/0xa2
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc:     Vlad Yasevich <vyasevich@gmail.com>
    Cc:     Neil Horman <nhorman@tuxdriver.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 360e1e58f3fa7fe4eb266ebc0ae1690e0d1e372b
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Mon Mar 26 19:19:30 2018 +0200

    r8169: fix setting driver_data after register_netdev
    
    
    [ Upstream commit 19c9ea363a244f85f90a424f9936e6d56449e33c ]
    
    pci_set_drvdata() is called only after registering the net_device,
    therefore we could run into a NPE if one of the functions using
    driver_data is called before it's set.
    
    Fix this by calling pci_set_drvdata() before registering the
    net_device.
    
    This fix is a candidate for stable. As far as I can see the
    bug has been there in kernel version 3.2 already, therefore
    I can't provide a reference which commit is fixed by it.
    
    The fix may need small adjustments per kernel version because
    due to other changes the label which is jumped to if
    register_netdev() fails has changed over time.
    
    Reported-by: David Miller <davem@davemloft.net>
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 765884bc645b142bbac3c18a08d06237cbd05a73
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Apr 2 18:48:37 2018 -0700

    pptp: remove a buggy dst release in pptp_connect()
    
    
    [ Upstream commit bfacfb457b36911a10140b8cb3ce76a74883ac5a ]
    
    Once dst has been cached in socket via sk_setup_caps(),
    it is illegal to call ip_rt_put() (or dst_release()),
    since sk_setup_caps() did not change dst refcount.
    
    We can still dereference it since we hold socket lock.
    
    Caugth by syzbot :
    
    BUG: KASAN: use-after-free in atomic_dec_return include/asm-generic/atomic-instrumented.h:198 [inline]
    BUG: KASAN: use-after-free in dst_release+0x27/0xa0 net/core/dst.c:185
    Write of size 4 at addr ffff8801c54dc040 by task syz-executor4/20088
    
    CPU: 1 PID: 20088 Comm: syz-executor4 Not tainted 4.16.0+ #376
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x1a7/0x27d lib/dump_stack.c:53
     print_address_description+0x73/0x250 mm/kasan/report.c:256
     kasan_report_error mm/kasan/report.c:354 [inline]
     kasan_report+0x23c/0x360 mm/kasan/report.c:412
     check_memory_region_inline mm/kasan/kasan.c:260 [inline]
     check_memory_region+0x137/0x190 mm/kasan/kasan.c:267
     kasan_check_write+0x14/0x20 mm/kasan/kasan.c:278
     atomic_dec_return include/asm-generic/atomic-instrumented.h:198 [inline]
     dst_release+0x27/0xa0 net/core/dst.c:185
     sk_dst_set include/net/sock.h:1812 [inline]
     sk_dst_reset include/net/sock.h:1824 [inline]
     sock_setbindtodevice net/core/sock.c:610 [inline]
     sock_setsockopt+0x431/0x1b20 net/core/sock.c:707
     SYSC_setsockopt net/socket.c:1845 [inline]
     SyS_setsockopt+0x2ff/0x360 net/socket.c:1828
     do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x42/0xb7
    RIP: 0033:0x4552d9
    RSP: 002b:00007f4878126c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000036
    RAX: ffffffffffffffda RBX: 00007f48781276d4 RCX: 00000000004552d9
    RDX: 0000000000000019 RSI: 0000000000000001 RDI: 0000000000000013
    RBP: 000000000072bea0 R08: 0000000000000010 R09: 0000000000000000
    R10: 00000000200010c0 R11: 0000000000000246 R12: 00000000ffffffff
    R13: 0000000000000526 R14: 00000000006fac30 R15: 0000000000000000
    
    Allocated by task 20088:
     save_stack+0x43/0xd0 mm/kasan/kasan.c:447
     set_track mm/kasan/kasan.c:459 [inline]
     kasan_kmalloc+0xad/0xe0 mm/kasan/kasan.c:552
     kasan_slab_alloc+0x12/0x20 mm/kasan/kasan.c:489
     kmem_cache_alloc+0x12e/0x760 mm/slab.c:3542
     dst_alloc+0x11f/0x1a0 net/core/dst.c:104
     rt_dst_alloc+0xe9/0x540 net/ipv4/route.c:1520
     __mkroute_output net/ipv4/route.c:2265 [inline]
     ip_route_output_key_hash_rcu+0xa49/0x2c60 net/ipv4/route.c:2493
     ip_route_output_key_hash+0x20b/0x370 net/ipv4/route.c:2322
     __ip_route_output_key include/net/route.h:126 [inline]
     ip_route_output_flow+0x26/0xa0 net/ipv4/route.c:2577
     ip_route_output_ports include/net/route.h:163 [inline]
     pptp_connect+0xa84/0x1170 drivers/net/ppp/pptp.c:453
     SYSC_connect+0x213/0x4a0 net/socket.c:1639
     SyS_connect+0x24/0x30 net/socket.c:1620
     do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    Freed by task 20082:
     save_stack+0x43/0xd0 mm/kasan/kasan.c:447
     set_track mm/kasan/kasan.c:459 [inline]
     __kasan_slab_free+0x11a/0x170 mm/kasan/kasan.c:520
     kasan_slab_free+0xe/0x10 mm/kasan/kasan.c:527
     __cache_free mm/slab.c:3486 [inline]
     kmem_cache_free+0x83/0x2a0 mm/slab.c:3744
     dst_destroy+0x266/0x380 net/core/dst.c:140
     dst_destroy_rcu+0x16/0x20 net/core/dst.c:153
     __rcu_reclaim kernel/rcu/rcu.h:178 [inline]
     rcu_do_batch kernel/rcu/tree.c:2675 [inline]
     invoke_rcu_callbacks kernel/rcu/tree.c:2930 [inline]
     __rcu_process_callbacks kernel/rcu/tree.c:2897 [inline]
     rcu_process_callbacks+0xd6c/0x17b0 kernel/rcu/tree.c:2914
     __do_softirq+0x2d7/0xb85 kernel/softirq.c:285
    
    The buggy address belongs to the object at ffff8801c54dc000
     which belongs to the cache ip_dst_cache of size 168
    The buggy address is located 64 bytes inside of
     168-byte region [ffff8801c54dc000, ffff8801c54dc0a8)
    The buggy address belongs to the page:
    page:ffffea0007153700 count:1 mapcount:0 mapping:ffff8801c54dc000 index:0x0
    flags: 0x2fffc0000000100(slab)
    raw: 02fffc0000000100 ffff8801c54dc000 0000000000000000 0000000100000010
    raw: ffffea0006b34b20 ffffea0006b6c1e0 ffff8801d674a1c0 0000000000000000
    page dumped because: kasan: bad access detected
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44c8871e421c41572ea4a0c62694b3b6d07373f5
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Fri Apr 6 01:19:37 2018 +0200

    net/sched: fix NULL dereference in the error path of tcf_bpf_init()
    
    
    [ Upstream commit 3239534a79ee6f20cffd974173a1e62e0730e8ac ]
    
    when tcf_bpf_init_from_ops() fails (e.g. because of program having invalid
    number of instructions), tcf_bpf_cfg_cleanup() calls bpf_prog_put(NULL) or
    bpf_prog_destroy(NULL). Unless CONFIG_BPF_SYSCALL is unset, this causes
    the following error:
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000020
     PGD 800000007345a067 P4D 800000007345a067 PUD 340e1067 PMD 0
     Oops: 0000 [#1] SMP PTI
     Modules linked in: act_bpf(E) ip6table_filter ip6_tables iptable_filter binfmt_misc ext4 mbcache jbd2 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec_generic pcbc snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm aesni_intel crypto_simd glue_helper cryptd joydev snd_timer snd virtio_balloon pcspkr soundcore i2c_piix4 nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c ata_generic pata_acpi qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm virtio_blk drm virtio_net virtio_console i2c_core crc32c_intel serio_raw virtio_pci ata_piix libata virtio_ring floppy virtio dm_mirror dm_region_hash dm_log dm_mod [last unloaded: act_bpf]
     CPU: 3 PID: 5654 Comm: tc Tainted: G            E    4.16.0.bpf_test+ #408
     Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
     RIP: 0010:__bpf_prog_put+0xc/0xc0
     RSP: 0018:ffff9594003ef728 EFLAGS: 00010202
     RAX: 0000000000000000 RBX: ffff9594003ef758 RCX: 0000000000000024
     RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
     RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000044
     R10: 0000000000000220 R11: ffff8a7ab9f17131 R12: 0000000000000000
     R13: ffff8a7ab7c3c8e0 R14: 0000000000000001 R15: ffff8a7ab88f1054
     FS:  00007fcb2f17c740(0000) GS:ffff8a7abfd80000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000020 CR3: 000000007c888006 CR4: 00000000001606e0
     Call Trace:
      tcf_bpf_cfg_cleanup+0x2f/0x40 [act_bpf]
      tcf_bpf_cleanup+0x4c/0x70 [act_bpf]
      __tcf_idr_release+0x79/0x140
      tcf_bpf_init+0x125/0x330 [act_bpf]
      tcf_action_init_1+0x2cc/0x430
      ? get_page_from_freelist+0x3f0/0x11b0
      tcf_action_init+0xd3/0x1b0
      tc_ctl_action+0x18b/0x240
      rtnetlink_rcv_msg+0x29c/0x310
      ? _cond_resched+0x15/0x30
      ? __kmalloc_node_track_caller+0x1b9/0x270
      ? rtnl_calcit.isra.29+0x100/0x100
      netlink_rcv_skb+0xd2/0x110
      netlink_unicast+0x17c/0x230
      netlink_sendmsg+0x2cd/0x3c0
      sock_sendmsg+0x30/0x40
      ___sys_sendmsg+0x27a/0x290
      ? mem_cgroup_commit_charge+0x80/0x130
      ? page_add_new_anon_rmap+0x73/0xc0
      ? do_anonymous_page+0x2a2/0x560
      ? __handle_mm_fault+0xc75/0xe20
      __sys_sendmsg+0x58/0xa0
      do_syscall_64+0x6e/0x1a0
      entry_SYSCALL_64_after_hwframe+0x3d/0xa2
     RIP: 0033:0x7fcb2e58eba0
     RSP: 002b:00007ffc93c496c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
     RAX: ffffffffffffffda RBX: 00007ffc93c497f0 RCX: 00007fcb2e58eba0
     RDX: 0000000000000000 RSI: 00007ffc93c49740 RDI: 0000000000000003
     RBP: 000000005ac6a646 R08: 0000000000000002 R09: 0000000000000000
     R10: 00007ffc93c49120 R11: 0000000000000246 R12: 0000000000000000
     R13: 00007ffc93c49804 R14: 0000000000000001 R15: 000000000066afa0
     Code: 5f 00 48 8b 43 20 48 c7 c7 70 2f 7c b8 c7 40 10 00 00 00 00 5b e9 a5 8b 61 00 0f 1f 44 00 00 0f 1f 44 00 00 41 54 55 48 89 fd 53 <48> 8b 47 20 f0 ff 08 74 05 5b 5d 41 5c c3 41 89 f4 0f 1f 44 00
     RIP: __bpf_prog_put+0xc/0xc0 RSP: ffff9594003ef728
     CR2: 0000000000000020
    
    Fix it in tcf_bpf_cfg_cleanup(), ensuring that bpf_prog_{put,destroy}(f)
    is called only when f is not NULL.
    
    Fixes: bbc09e7842a5 ("net/sched: fix idr leak on the error path of tcf_bpf_init()")
    Reported-by: Lucas Bates <lucasb@mojatatu.com>
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf10533553686617e2b76a84d21764a81e3692da
Author: Alexander Potapenko <glider@google.com>
Date:   Fri Mar 23 13:49:02 2018 +0100

    netlink: make sure nladdr has correct size in netlink_connect()
    
    
    [ Upstream commit 7880287981b60a6808f39f297bb66936e8bdf57a ]
    
    KMSAN reports use of uninitialized memory in the case when |alen| is
    smaller than sizeof(struct sockaddr_nl), and therefore |nladdr| isn't
    fully copied from the userspace.
    
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Fixes: 1da177e4c3f41524 ("Linux-2.6.12-rc2")
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 584d541c12157989af1491b007721e18ea0503c1
Author: Jeff Barnhill <0xeffeff@gmail.com>
Date:   Thu Apr 5 21:29:47 2018 +0000

    net/ipv6: Increment OUTxxx counters after netfilter hook
    
    
    [ Upstream commit 71a1c915238c970cd9bdd5bf158b1279d6b6d55b ]
    
    At the end of ip6_forward(), IPSTATS_MIB_OUTFORWDATAGRAMS and
    IPSTATS_MIB_OUTOCTETS are incremented immediately before the NF_HOOK call
    for NFPROTO_IPV6 / NF_INET_FORWARD.  As a result, these counters get
    incremented regardless of whether or not the netfilter hook allows the
    packet to continue being processed.  This change increments the counters
    in ip6_forward_finish() so that it will not happen if the netfilter hook
    chooses to terminate the packet, which is similar to how IPv4 works.
    
    Signed-off-by: Jeff Barnhill <0xeffeff@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb3dd0f9fedef46620c75818af56213df1935e42
Author: David Ahern <dsahern@gmail.com>
Date:   Thu Mar 29 17:44:57 2018 -0700

    net/ipv6: Fix route leaking between VRFs
    
    
    [ Upstream commit b6cdbc85234b072340b8923e69f49ec293f905dc ]
    
    Donald reported that IPv6 route leaking between VRFs is not working.
    The root cause is the strict argument in the call to rt6_lookup when
    validating the nexthop spec.
    
    ip6_route_check_nh validates the gateway and device (if given) of a
    route spec. It in turn could call rt6_lookup (e.g., lookup in a given
    table did not succeed so it falls back to a full lookup) and if so
    sets the strict argument to 1. That means if the egress device is given,
    the route lookup needs to return a result with the same device. This
    strict requirement does not work with VRFs (IPv4 or IPv6) because the
    oif in the flow struct is overridden with the index of the VRF device
    to trigger a match on the l3mdev rule and force the lookup to its table.
    
    The right long term solution is to add an l3mdev index to the flow
    struct such that the oif is not overridden. That solution will not
    backport well, so this patch aims for a simpler solution to relax the
    strict argument if the route spec device is an l3mdev slave. As done
    in other places, use the FLOWI_FLAG_SKIP_NH_OIF to know that the
    RT6_LOOKUP_F_IFACE flag needs to be removed.
    
    Fixes: ca254490c8df ("net: Add VRF support to IPv6 stack")
    Reported-by: Donald Sharp <sharpd@cumulusnetworks.com>
    Signed-off-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb9fa142d45bbbb968b99bd1c0959dd40b4cc9f4
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Mar 26 08:08:07 2018 -0700

    net: fix possible out-of-bound read in skb_network_protocol()
    
    
    [ Upstream commit 1dfe82ebd7d8fd43dba9948fdfb31f145014baa0 ]
    
    skb mac header is not necessarily set at the time skb_network_protocol()
    is called. Use skb->data instead.
    
    BUG: KASAN: slab-out-of-bounds in skb_network_protocol+0x46b/0x4b0 net/core/dev.c:2739
    Read of size 2 at addr ffff8801b3097a0b by task syz-executor5/14242
    
    CPU: 1 PID: 14242 Comm: syz-executor5 Not tainted 4.16.0-rc6+ #280
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x194/0x24d lib/dump_stack.c:53
     print_address_description+0x73/0x250 mm/kasan/report.c:256
     kasan_report_error mm/kasan/report.c:354 [inline]
     kasan_report+0x23c/0x360 mm/kasan/report.c:412
     __asan_report_load_n_noabort+0xf/0x20 mm/kasan/report.c:443
     skb_network_protocol+0x46b/0x4b0 net/core/dev.c:2739
     harmonize_features net/core/dev.c:2924 [inline]
     netif_skb_features+0x509/0x9b0 net/core/dev.c:3011
     validate_xmit_skb+0x81/0xb00 net/core/dev.c:3084
     validate_xmit_skb_list+0xbf/0x120 net/core/dev.c:3142
     packet_direct_xmit+0x117/0x790 net/packet/af_packet.c:256
     packet_snd net/packet/af_packet.c:2944 [inline]
     packet_sendmsg+0x3aed/0x60b0 net/packet/af_packet.c:2969
     sock_sendmsg_nosec net/socket.c:629 [inline]
     sock_sendmsg+0xca/0x110 net/socket.c:639
     ___sys_sendmsg+0x767/0x8b0 net/socket.c:2047
     __sys_sendmsg+0xe5/0x210 net/socket.c:2081
    
    Fixes: 19acc327258a ("gso: Handle Trans-Ether-Bridging protocol in skb_network_protocol()")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Pravin B Shelar <pshelar@ovn.org>
    Reported-by: Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81eb03e07efccb1ce87e79c3453d35a3f6185e93
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Fri Mar 23 14:47:30 2018 +0100

    ipv6: the entire IPv6 header chain must fit the first fragment
    
    
    [ Upstream commit 10b8a3de603df7b96004179b1b33b1708c76d144 ]
    
    While building ipv6 datagram we currently allow arbitrary large
    extheaders, even beyond pmtu size. The syzbot has found a way
    to exploit the above to trigger the following splat:
    
    kernel BUG at ./include/linux/skbuff.h:2073!
    invalid opcode: 0000 [#1] SMP KASAN
    Dumping ftrace buffer:
        (ftrace buffer empty)
    Modules linked in:
    CPU: 1 PID: 4230 Comm: syzkaller672661 Not tainted 4.16.0-rc2+ #326
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
    Google 01/01/2011
    RIP: 0010:__skb_pull include/linux/skbuff.h:2073 [inline]
    RIP: 0010:__ip6_make_skb+0x1ac8/0x2190 net/ipv6/ip6_output.c:1636
    RSP: 0018:ffff8801bc18f0f0 EFLAGS: 00010293
    RAX: ffff8801b17400c0 RBX: 0000000000000738 RCX: ffffffff84f01828
    RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8801b415ac18
    RBP: ffff8801bc18f360 R08: ffff8801b4576844 R09: 0000000000000000
    R10: ffff8801bc18f380 R11: ffffed00367aee4e R12: 00000000000000d6
    R13: ffff8801b415a740 R14: dffffc0000000000 R15: ffff8801b45767c0
    FS:  0000000001535880(0000) GS:ffff8801db300000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000000002000b000 CR3: 00000001b4123001 CR4: 00000000001606e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
      ip6_finish_skb include/net/ipv6.h:969 [inline]
      udp_v6_push_pending_frames+0x269/0x3b0 net/ipv6/udp.c:1073
      udpv6_sendmsg+0x2a96/0x3400 net/ipv6/udp.c:1343
      inet_sendmsg+0x11f/0x5e0 net/ipv4/af_inet.c:764
      sock_sendmsg_nosec net/socket.c:630 [inline]
      sock_sendmsg+0xca/0x110 net/socket.c:640
      ___sys_sendmsg+0x320/0x8b0 net/socket.c:2046
      __sys_sendmmsg+0x1ee/0x620 net/socket.c:2136
      SYSC_sendmmsg net/socket.c:2167 [inline]
      SyS_sendmmsg+0x35/0x60 net/socket.c:2162
      do_syscall_64+0x280/0x940 arch/x86/entry/common.c:287
      entry_SYSCALL_64_after_hwframe+0x42/0xb7
    RIP: 0033:0x4404c9
    RSP: 002b:00007ffdce35f948 EFLAGS: 00000217 ORIG_RAX: 0000000000000133
    RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 00000000004404c9
    RDX: 0000000000000003 RSI: 0000000020001f00 RDI: 0000000000000003
    RBP: 00000000006cb018 R08: 00000000004002c8 R09: 00000000004002c8
    R10: 0000000020000080 R11: 0000000000000217 R12: 0000000000401df0
    R13: 0000000000401e80 R14: 0000000000000000 R15: 0000000000000000
    Code: ff e8 1d 5e b9 fc e9 15 e9 ff ff e8 13 5e b9 fc e9 44 e8 ff ff e8 29
    5e b9 fc e9 c0 e6 ff ff e8 3f f3 80 fc 0f 0b e8 38 f3 80 fc <0f> 0b 49 8d
    87 80 00 00 00 4d 8d 87 84 00 00 00 48 89 85 20 fe
    RIP: __skb_pull include/linux/skbuff.h:2073 [inline] RSP: ffff8801bc18f0f0
    RIP: __ip6_make_skb+0x1ac8/0x2190 net/ipv6/ip6_output.c:1636 RSP:
    ffff8801bc18f0f0
    
    As stated by RFC 7112 section 5:
    
       When a host fragments an IPv6 datagram, it MUST include the entire
       IPv6 Header Chain in the First Fragment.
    
    So this patch addresses the issue dropping datagrams with excessive
    extheader length. It also updates the error path to report to the
    calling socket nonnegative pmtu values.
    
    The issue apparently predates git history.
    
    v1 -> v2: cleanup error path, as per Eric's suggestion
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+91e6f9932ff122fa4410@syzkaller.appspotmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24123fdee85dfb8fea8b5796e5c481c3a1572d65
Author: Miguel Fadon Perlines <mfadon@teldat.com>
Date:   Thu Apr 5 10:25:38 2018 +0200

    arp: fix arp_filter on l3slave devices
    
    
    [ Upstream commit 58b35f27689b5eb514fc293c332966c226b1b6e4 ]
    
    arp_filter performs an ip_route_output search for arp source address and
    checks if output device is the same where the arp request was received,
    if it is not, the arp request is not answered.
    
    This route lookup is always done on main route table so l3slave devices
    never find the proper route and arp is not answered.
    
    Passing l3mdev_master_ifindex_rcu(dev) return value as oif fixes the
    lookup for l3slave devices while maintaining same behavior for non
    l3slave devices as this function returns 0 in that case.
    
    Fixes: 613d09b30f8b ("net: Use VRF device index for lookups on TX")
    Signed-off-by: Miguel Fadon Perlines <mfadon@teldat.com>
    Acked-by: David Ahern <dsa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f9c90e7ad3314f5207d9fc6d069cc218303199a
Author: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Date:   Mon Jun 5 00:02:57 2017 +0200

    clk: at91: fix clk-generated compilation
    
    commit 4a5f06a01cfd1f7a9141bdb760bf5b68cca7f224 upstream.
    
    Fix missing }
    
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Cc: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4d93c6f89688a1e18fc1e4d8c089e163c1ce54f
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Wed Jun 7 19:01:32 2017 -0400

    random: use lockless method of accessing and updating f->reg_idx
    
    commit 92e75428ffc90e2a0321062379f883f3671cfebe upstream.
    
    Linus pointed out that there is a much more efficient way of avoiding
    the problem that we were trying to address in commit 9dfa7bba35ac0:
    "fix race in drivers/char/random.c:get_reg()".
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: Michael Schmitz <schmitzmic@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32a1f12961b485a02ba84ecddf39c17deeb345d7
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Apr 9 18:21:50 2018 -0700

    virtio_net: check return value of skb_to_sgvec in one more location
    
    Kernels that do not have f6b10209b90d ("virtio-net: switch to use
    build_skb() for small buffer") will have an extra call to skb_to_sgvec
    that is not handled by e2fcad58fd23 ("virtio_net: check return value of
    skb_to_sgvec always"). Since the former does not appear to be stable
    material, just fix the call up directly.
    
    Cc: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0414cff3e8de1688d694439d366be04d1dacd835
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Jun 4 04:16:26 2017 +0200

    virtio_net: check return value of skb_to_sgvec always
    
    commit e2fcad58fd230f635a74e4e983c6f4ea893642d2 upstream.
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a7ba601935c7128bbd711420ccb5423e9ef83ec
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Jun 4 04:16:24 2017 +0200

    rxrpc: check return value of skb_to_sgvec always
    
    commit 89a5ea99662505d2d61f2a3030a6896c2cb3cdb0 upstream.
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Acked-by: David Howells <dhowells@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 753b04d213ec51ad3c476510ed87b60a3612d467
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Jun 4 04:16:23 2017 +0200

    ipsec: check return value of skb_to_sgvec always
    
    commit 3f29770723fe498a5c5f57c3a31a996ebdde03e1 upstream.
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [natechancellor: Adjusted context due to lack of fca11ebde3f0]
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 720f6277784d5b53bd5bd4195f7d2ff7447f981b
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Tue Jan 9 14:39:23 2018 +0100

    perf tools: Fix copyfile_offset update of output offset
    
    
    [ Upstream commit fa1195ccc0af2d121abe0fe266a1caee8c265eea ]
    
    We need to increase output offset in each iteration, not decrease it as
    we currently do.
    
    I guess we were lucky to finish in most cases in first iteration, so the
    bug never showed. However it shows a lot when working with big (~4GB)
    size data.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: 9c9f5a2f1944 ("perf tools: Introduce copyfile_offset() function")
    Link: http://lkml.kernel.org/r/20180109133923.25406-1-jolsa@kernel.org
    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 f6df92f22be342118d2eedbbcc5ca1953aab1a13
Author: Miquel Raynal <miquel.raynal@free-electrons.com>
Date:   Thu Jan 11 21:39:20 2018 +0100

    mtd: mtd_oobtest: Handle bitflips during reads
    
    
    [ Upstream commit 12663b442e5ac5aa3d6097cd3f287c71ba46d26e ]
    
    Reads from NAND devices usually trigger bitflips, this is an expected
    behavior. While bitflips are under a given threshold, the MTD core
    returns 0. However, when the number of corrected bitflips is above this
    same threshold, -EUCLEAN is returned to inform the upper layer that this
    block is slightly dying and soon the ECC engine will be overtaken so
    actions should be taken to move the data out of it.
    
    This particular condition should not be treated like an error and the
    test should continue.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a584051aba85f3fbb246c01429df073db3e3f2f
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Jan 12 00:36:48 2018 -0800

    Input: goodix - disable IRQs while suspended
    
    
    [ Upstream commit faec44b6838312484d63e82286087cf2d5ebb891 ]
    
    We should not try to do any i2c transfers before the controller is
    resumed (which happens before our resume method gets called).
    
    So we need to disable our IRQ while suspended to enforce this. The
    code paths for devices with GPIOs for the int and reset pins already
    disable the IRQ the through goodix_free_irq().
    
    This commit also disables the IRQ while suspended for devices without
    GPIOs for the int and reset pins.
    
    This fixes the i2c bus sometimes getting stuck after a suspend/resume
    causing the touchscreen to sometimes not work after a suspend/resume.
    This has been tested on a GPD pocked device.
    
    BugLink: https://github.com/nexus511/gpd-ubuntu-packages/issues/10
    BugLink: https://www.reddit.com/r/GPDPocket/comments/7niut2/fix_for_broken_touch_after_resume_all_linux/
    Tested-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Bastien Nocera <hadess@hadess.net>
    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 905348d08acd1d35d270f49090c3ac1d2c4bc374
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Jan 11 15:51:58 2018 +0200

    sdhci: Advertise 2.0v supply on SDIO host controller
    
    
    [ Upstream commit 2a609abe71ca59e4bd7139e161eaca2144ae6f2e ]
    
    On Intel Edison the Broadcom Wi-Fi card, which is connected to SDIO,
    requires 2.0v, while the host, according to Intel Merrifield TRM,
    supports 1.8v supply only.
    
    The card announces itself as
    
      mmc2: new ultra high speed DDR50 SDIO card at address 0001
    
    Introduce a custom OCR mask for SDIO host controller on Intel Merrifield
    and add a special case to sdhci_set_power_noreg() to override 2.0v supply
    by enforcing 1.8v power choice.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.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 d774913ba20e86338aedda6fee84351739dc100d
Author: Arjun Vynipadath <arjun@chelsio.com>
Date:   Wed Jan 10 12:02:13 2018 +0530

    cxgb4vf: Fix SGE FL buffer initialization logic for 64K pages
    
    
    [ Upstream commit ea0a42109aee7b92e631c4eb3f2219fadf58acdd ]
    
    We'd come in with SGE_FL_BUFFER_SIZE[0] and [1] both equal to 64KB and
    the extant logic would flag that as an error. This was already fixed in
    cxgb4 driver with "92ddcc7 cxgb4: Fix some small bugs in
    t4_sge_init_soft() when our Page Size is 64KB".
    
    Original Work by: Casey Leedom <leedom@chelsio.com>
    Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
    Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.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 8c2ba5fafdd9b0fc822f78fce42fc46ef5a2c3af
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Jan 7 21:54:00 2018 +0100

    EDAC, mv64x60: Fix an error handling path
    
    
    [ Upstream commit 68fa24f9121c04ef146b5158f538c8b32f285be5 ]
    
    We should not call edac_mc_del_mc() if a corresponding call to
    edac_mc_add_mc() has not been performed yet.
    
    So here, we should go to err instead of err2 to branch at the right
    place of the error handling path.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Link: http://lkml.kernel.org/r/20180107205400.14068-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a74b51be6cf0dec61dccff34358daf7e900dd096
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed Jan 3 10:18:03 2018 -0800

    tty: n_gsm: Allow ADM response in addition to UA for control dlci
    
    
    [ Upstream commit ea3d8465ab9b3e01be329ac5195970a84bef76c5 ]
    
    Some devices have the control dlci stay in ADM mode instead of the UA
    mode. This can seen at least on droid 4 when trying to open the ts
    27.010 mux port. Enabling n_gsm debug mode shows the control dlci
    always respond with DM to SABM instead of UA:
    
    # modprobe n_gsm debug=0xff
    # ldattach -d GSM0710 /dev/ttyS0 &
    gsmld_output: 00000000: f9 03 3f 01 1c f9
    --> 0) C: SABM(P)
    gsmld_receive: 00000000: f9 03 1f 01 36 f9
    <-- 0) C: DM(P)
    ...
    $ minicom -D /dev/gsmtty1
    minicom: cannot open /dev/gsmtty1: No error information
    $ strace minicom -D /dev/gsmtty1
    ...
    open("/dev/gsmtty1", O_RDWR|O_NOCTTY|O_NONBLOCK|O_LARGEFILE) = -1 EL2HLT
    
    Note that this is different issue from other n_gsm -EL2HLT issues such
    as timeouts when the control dlci does not respond at all.
    
    The ADM mode seems to be a quite common according to "RF Wireless World"
    article "GSM Issue-UE sends SABM and gets a DM response instead of
    UA response":
    
      This issue is most commonly observed in GSM networks where in UE sends
      SABM and expects network to send UA response but it ends up receiving
      DM response from the network. SABM stands for Set asynchronous balanced
      mode, UA stands for Unnumbered Acknowledge and DA stands for
      Disconnected Mode.
    
      An RLP entity can be in one of two modes:
      - Asynchronous Balanced Mode (ABM)
      - Asynchronous Disconnected Mode (ADM)
    
    Currently Linux kernel closes the control dlci after several retries
    in gsm_dlci_t1() on DM. This causes n_gsm /dev/gsmtty ports to produce
    error code -EL2HLT when trying to open them as the closing of control
    dlci has already set gsm->dead.
    
    Let's fix the issue by allowing control dlci stay in ADM mode after the
    retries so the /dev/gsmtty ports can be opened and used. It seems that
    it might take several attempts to get any response from the control
    dlci, so it's best to allow ADM mode only after the SABM retries are
    done.
    
    Note that for droid 4 additional patches are needed to mux the ttyS0
    pins and to toggle RTS gpio_149 to wake up the mdm6600 modem are also
    needed to use n_gsm. And the mdm6600 modem needs to be powered on.
    
    Cc: linux-serial@vger.kernel.org
    Cc: Alan Cox <alan@llwyncelyn.cymru>
    Cc: Jiri Prchal <jiri.prchal@aksignal.cz>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Cc: Marcel Partap <mpartap@gmx.net>
    Cc: Michael Scott <michael.scott@linaro.org>
    Cc: Peter Hurley <peter@hurleysoftware.com>
    Cc: Russ Gorby <russ.gorby@intel.com>
    Cc: Sascha Hauer <s.hauer@pengutronix.de>
    Cc: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Tony Lindgren <tony@atomide.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 3f4e241969e87b26a17702457a364228bd675880
Author: Ming Lei <ming.lei@redhat.com>
Date:   Tue Jan 9 21:28:29 2018 +0800

    blk-mq: fix kernel oops in blk_mq_tag_idle()
    
    
    [ Upstream commit 8ab0b7dc73e1b3e2987d42554b2bff503f692772 ]
    
    HW queues may be unmapped in some cases, such as blk_mq_update_nr_hw_queues(),
    then we need to check it before calling blk_mq_tag_idle(), otherwise
    the following kernel oops can be triggered, so fix it by checking if
    the hw queue is unmapped since it doesn't make sense to idle the tags
    any more after hw queues are unmapped.
    
    [  440.771298] Workqueue: nvme-wq nvme_rdma_del_ctrl_work [nvme_rdma]
    [  440.779104] task: ffff894bae755ee0 ti: ffff893bf9bc8000 task.ti: ffff893bf9bc8000
    [  440.788359] RIP: 0010:[<ffffffffb730e2b4>]  [<ffffffffb730e2b4>] __blk_mq_tag_idle+0x24/0x40
    [  440.798697] RSP: 0018:ffff893bf9bcbd10  EFLAGS: 00010286
    [  440.805538] RAX: 0000000000000000 RBX: ffff895bb131dc00 RCX: 000000000000011f
    [  440.814426] RDX: 00000000ffffffff RSI: 0000000000000120 RDI: ffff895bb131dc00
    [  440.823301] RBP: ffff893bf9bcbd10 R08: 000000000001b860 R09: 4a51d361c00c0000
    [  440.832193] R10: b5907f32b4cc7003 R11: ffffd6cabfb57000 R12: ffff894bafd1e008
    [  440.841091] R13: 0000000000000001 R14: ffff895baf770000 R15: 0000000000000080
    [  440.849988] FS:  0000000000000000(0000) GS:ffff894bbdcc0000(0000) knlGS:0000000000000000
    [  440.859955] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  440.867274] CR2: 0000000000000008 CR3: 000000103d098000 CR4: 00000000001407e0
    [  440.876169] Call Trace:
    [  440.879818]  [<ffffffffb7309d68>] blk_mq_exit_hctx+0xd8/0xe0
    [  440.887051]  [<ffffffffb730dc40>] blk_mq_free_queue+0xf0/0x160
    [  440.894465]  [<ffffffffb72ff679>] blk_cleanup_queue+0xd9/0x150
    [  440.901881]  [<ffffffffc08a802b>] nvme_ns_remove+0x5b/0xb0 [nvme_core]
    [  440.910068]  [<ffffffffc08a811b>] nvme_remove_namespaces+0x3b/0x60 [nvme_core]
    [  440.919026]  [<ffffffffc08b817b>] __nvme_rdma_remove_ctrl+0x2b/0xb0 [nvme_rdma]
    [  440.928079]  [<ffffffffc08b8237>] nvme_rdma_del_ctrl_work+0x17/0x20 [nvme_rdma]
    [  440.937126]  [<ffffffffb70ab58a>] process_one_work+0x17a/0x440
    [  440.944517]  [<ffffffffb70ac3a8>] worker_thread+0x278/0x3c0
    [  440.951607]  [<ffffffffb70ac130>] ? manage_workers.isra.24+0x2a0/0x2a0
    [  440.959760]  [<ffffffffb70b352f>] kthread+0xcf/0xe0
    [  440.966055]  [<ffffffffb70b3460>] ? insert_kthread_work+0x40/0x40
    [  440.973715]  [<ffffffffb76d8658>] ret_from_fork+0x58/0x90
    [  440.980586]  [<ffffffffb70b3460>] ? insert_kthread_work+0x40/0x40
    [  440.988229] Code: 5b 41 5c 5d c3 66 90 0f 1f 44 00 00 48 8b 87 20 01 00 00 f0 0f ba 77 40 01 19 d2 85 d2 75 08 c3 0f 1f 80 00 00 00 00 55 48 89 e5 <f0> ff 48 08 48 8d 78 10 e8 7f 0f 05 00 5d c3 0f 1f 00 66 2e 0f
    [  441.011620] RIP  [<ffffffffb730e2b4>] __blk_mq_tag_idle+0x24/0x40
    [  441.019301]  RSP <ffff893bf9bcbd10>
    [  441.024052] CR2: 0000000000000008
    
    Reported-by: Zhang Yi <yizhan@redhat.com>
    Tested-by: Zhang Yi <yizhan@redhat.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cafd951e8bf2b2f70246a329dd0e226bf3c45d3d
Author: chenxiang <chenxiang66@hisilicon.com>
Date:   Thu Jan 4 21:04:33 2018 +0800

    scsi: libsas: initialize sas_phy status according to response of DISCOVER
    
    
    [ Upstream commit affc67788fe5dfffad5cda3d461db5cf2b2ff2b0 ]
    
    The status of SAS PHY is in sas_phy->enabled. There is an issue that the
    status of a remote SAS PHY may be initialized incorrectly: if disable
    remote SAS PHY through sysfs interface (such as echo 0 >
    /sys/class/sas_phy/phy-1:0:0/enable), then reboot the system, and we
    will find the status of remote SAS PHY which is disabled before is
    1 (cat /sys/class/sas_phy/phy-1:0:0/enable). But actually the status of
    remote SAS PHY is disabled and the device attached is not found.
    
    In SAS protocol, NEGOTIATED LOGICAL LINK RATE field of DISCOVER response
    is 0x1 when remote SAS PHY is disabled. So initialize sas_phy->enabled
    according to the value of NEGOTIATED LOGICAL LINK RATE field.
    
    Signed-off-by: chenxiang <chenxiang66@hisilicon.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Hannes Reinecke <hare@suse.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 7333f17273a15a218e778135ef730f2d4a6f9213
Author: Jason Yan <yanaijie@huawei.com>
Date:   Thu Jan 4 21:04:32 2018 +0800

    scsi: libsas: fix error when getting phy events
    
    
    [ Upstream commit 2b23d9509fd7174b362482cf5f3b5f9a2265bc33 ]
    
    The intend purpose here was to goto out if smp_execute_task() returned
    error. Obviously something got screwed up. We will never get these link
    error statistics below:
    
    ~:/sys/class/sas_phy/phy-1:0:12 # cat invalid_dword_count
    0
    ~:/sys/class/sas_phy/phy-1:0:12 # cat running_disparity_error_count
    0
    ~:/sys/class/sas_phy/phy-1:0:12 # cat loss_of_dword_sync_count
    0
    ~:/sys/class/sas_phy/phy-1:0:12 # cat phy_reset_problem_count
    0
    
    Obviously we should goto error handler if smp_execute_task() returns
    non-zero.
    
    Fixes: 2908d778ab3e ("[SCSI] aic94xx: new driver")
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    CC: John Garry <john.garry@huawei.com>
    CC: chenqilin <chenqilin2@huawei.com>
    CC: chenxiang <chenxiang66@hisilicon.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    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 0ef71347d2e8db15ab0f8c7b79cf2c38d34d1870
Author: Jason Yan <yanaijie@huawei.com>
Date:   Thu Jan 4 21:04:31 2018 +0800

    scsi: libsas: fix memory leak in sas_smp_get_phy_events()
    
    
    [ Upstream commit 4a491b1ab11ca0556d2fda1ff1301e862a2d44c4 ]
    
    We've got a memory leak with the following producer:
    
    while true;
    do cat /sys/class/sas_phy/phy-1:0:12/invalid_dword_count >/dev/null;
    done
    
    The buffer req is allocated and not freed after we return. Fix it.
    
    Fixes: 2908d778ab3e ("[SCSI] aic94xx: new driver")
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    CC: John Garry <john.garry@huawei.com>
    CC: chenqilin <chenqilin2@huawei.com>
    CC: chenxiang <chenxiang66@hisilicon.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Hannes Reinecke <hare@suse.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 38f1e54e5dfa3d132b884cd4c394efb3d265b4e5
Author: Tang Junhui <tang.junhui@zte.com.cn>
Date:   Mon Jan 8 12:21:21 2018 -0800

    bcache: segregate flash only volume write streams
    
    
    [ Upstream commit 4eca1cb28d8b0574ca4f1f48e9331c5f852d43b9 ]
    
    In such scenario that there are some flash only volumes
    , and some cached devices, when many tasks request these devices in
    writeback mode, the write IOs may fall to the same bucket as bellow:
    | cached data | flash data | cached data | cached data| flash data|
    then after writeback of these cached devices, the bucket would
    be like bellow bucket:
    | free | flash data | free | free | flash data |
    
    So, there are many free space in this bucket, but since data of flash
    only volumes still exists, so this bucket cannot be reclaimable,
    which would cause waste of bucket space.
    
    In this patch, we segregate flash only volume write streams from
    cached devices, so data from flash only volumes and cached devices
    can store in different buckets.
    
    Compare to v1 patch, this patch do not add a additionally open bucket
    list, and it is try best to segregate flash only volume write streams
    from cached devices, sectors of flash only volumes may still be mixed
    with dirty sectors of cached device, but the number is very small.
    
    [mlyle: fixed commit log formatting, permissions, line endings]
    
    Signed-off-by: Tang Junhui <tang.junhui@zte.com.cn>
    Reviewed-by: Michael Lyle <mlyle@lyle.org>
    Signed-off-by: Michael Lyle <mlyle@lyle.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d046bb9ec4947cd131ff22e1989179007c41b31f
Author: Tang Junhui <tang.junhui@zte.com.cn>
Date:   Mon Jan 8 12:21:19 2018 -0800

    bcache: stop writeback thread after detaching
    
    
    [ Upstream commit 8d29c4426b9f8afaccf28de414fde8a722b35fdf ]
    
    Currently, when a cached device detaching from cache, writeback thread is
    not stopped, and writeback_rate_update work is not canceled. For example,
    after the following command:
    echo 1 >/sys/block/sdb/bcache/detach
    you can still see the writeback thread. Then you attach the device to the
    cache again, bcache will create another writeback thread, for example,
    after below command:
    echo  ba0fb5cd-658a-4533-9806-6ce166d883b9 > /sys/block/sdb/bcache/attach
    then you will see 2 writeback threads.
    This patch stops writeback thread and cancels writeback_rate_update work
    when cached device detaching from cache.
    
    Compare with patch v1, this v2 patch moves code down into the register
    lock for safety in case of any future changes as Coly and Mike suggested.
    
    [edit by mlyle: commit log spelling/formatting]
    
    Signed-off-by: Tang Junhui <tang.junhui@zte.com.cn>
    Reviewed-by: Michael Lyle <mlyle@lyle.org>
    Signed-off-by: Michael Lyle <mlyle@lyle.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9622668cf21a54b7df0c0d2d5e923576187ab603
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Fri May 12 14:38:03 2017 +0200

    drm/vc4: Fix resource leak in 'vc4_get_hang_state_ioctl()' in error handling path
    
    
    [ Upstream commit d0b1d259a4b58b21a21ea82d7174bf7ea825e9cc ]
    
    If one 'drm_gem_handle_create()' fails, we leak somes handles and some
    memory.
    
    In order to fix it:
      - move the 'free(bo_state)' at the end of the function so that it is also
        called in the eror handling path. This has the side effect to also try
        to free it if the first 'kcalloc' fails. This is harmless.
      - add a new label, err_delete_handle, in order to delete already
        allocated handles in error handling path
      - remove the now useless 'err' label
    
    The way the code is now written will also delete the handles if the
    'copy_to_user()' call fails.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170512123803.1886-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db14d7564396bd3325a7a3e9e74ad4574a094ca8
Author: Mickaël Salaün <mic@digikod.net>
Date:   Sun Jun 11 14:32:58 2017 +0200

    selftests: kselftest_harness: Fix compile warning
    
    
    [ Upstream commit 34a048cc06802556e5f96f325dc32cc2f6a11225 ]
    
    Do not confuse the compiler with a semicolon preceding a block. Replace
    the semicolon with an empty block to avoid a warning:
    
      gcc -Wl,-no-as-needed -Wall -lpthread seccomp_bpf.c -o /.../linux/tools/testing/selftests/seccomp/seccomp_bpf
      In file included from seccomp_bpf.c:40:0:
      seccomp_bpf.c: In function ‘change_syscall’:
      ../kselftest_harness.h:558:2: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
        for (; _metadata->trigger;  _metadata->trigger = __bail(_assert))
        ^
      ../kselftest_harness.h:574:14: note: in expansion of macro ‘OPTIONAL_HANDLER’
       } while (0); OPTIONAL_HANDLER(_assert)
                    ^~~~~~~~~~~~~~~~
      ../kselftest_harness.h:440:2: note: in expansion of macro ‘__EXPECT’
        __EXPECT(expected, seen, ==, 0)
        ^~~~~~~~
      seccomp_bpf.c:1313:2: note: in expansion of macro ‘EXPECT_EQ’
        EXPECT_EQ(0, ret);
        ^~~~~~~~~
      seccomp_bpf.c:1317:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
        {
        ^
    
    Signed-off-by: Mickaël Salaün <mic@digikod.net>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Shuah Khan <shuahkh@osg.samsung.com>
    Cc: Will Drewry <wad@chromium.org>
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 329812f9e6944ae14662e2cd51975ef76c3ac61c
Author: Karicheri, Muralidharan <m-karicheri2@ti.com>
Date:   Mon Jun 12 15:06:26 2017 -0400

    hsr: fix incorrect warning
    
    
    [ Upstream commit 675c8da049fd6556eb2d6cdd745fe812752f07a8 ]
    
    When HSR interface is setup using ip link command, an annoying warning
    appears with the trace as below:-
    
    [  203.019828] hsr_get_node: Non-HSR frame
    [  203.019833] Modules linked in:
    [  203.019848] CPU: 0 PID: 158 Comm: sd-resolve Tainted: G        W       4.12.0-rc3-00052-g9fa6bf70 #2
    [  203.019853] Hardware name: Generic DRA74X (Flattened Device Tree)
    [  203.019869] [<c0110280>] (unwind_backtrace) from [<c010c2f4>] (show_stack+0x10/0x14)
    [  203.019880] [<c010c2f4>] (show_stack) from [<c04b9f64>] (dump_stack+0xac/0xe0)
    [  203.019894] [<c04b9f64>] (dump_stack) from [<c01374e8>] (__warn+0xd8/0x104)
    [  203.019907] [<c01374e8>] (__warn) from [<c0137548>] (warn_slowpath_fmt+0x34/0x44)
    root@am57xx-evm:~# [  203.019921] [<c0137548>] (warn_slowpath_fmt) from [<c081126c>] (hsr_get_node+0x148/0x170)
    [  203.019932] [<c081126c>] (hsr_get_node) from [<c0814240>] (hsr_forward_skb+0x110/0x7c0)
    [  203.019942] [<c0814240>] (hsr_forward_skb) from [<c0811d64>] (hsr_dev_xmit+0x2c/0x34)
    [  203.019954] [<c0811d64>] (hsr_dev_xmit) from [<c06c0828>] (dev_hard_start_xmit+0xc4/0x3bc)
    [  203.019963] [<c06c0828>] (dev_hard_start_xmit) from [<c06c13d8>] (__dev_queue_xmit+0x7c4/0x98c)
    [  203.019974] [<c06c13d8>] (__dev_queue_xmit) from [<c0782f54>] (ip6_finish_output2+0x330/0xc1c)
    [  203.019983] [<c0782f54>] (ip6_finish_output2) from [<c0788f0c>] (ip6_output+0x58/0x454)
    [  203.019994] [<c0788f0c>] (ip6_output) from [<c07b16cc>] (mld_sendpack+0x420/0x744)
    
    As this is an expected path to hsr_get_node() with frame coming from
    the master interface, add a check to ensure packet is not from the
    master port and then warn.
    
    Signed-off-by: Murali Karicheri <m-karicheri2@ti.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 deaee4d29d05bde5fa3c2dda5ad813b8bae944e2
Author: Roopa Prabhu <roopa@cumulusnetworks.com>
Date:   Sun Jun 11 16:32:50 2017 -0700

    vxlan: dont migrate permanent fdb entries during learn
    
    
    [ Upstream commit e0090a9e979de5202c7d16c635dea2f005221073 ]
    
    This patch fixes vxlan_snoop to not move permanent fdb entries
    on learn events. This is consistent with the bridge fdb
    handling of permanent entries.
    
    Fixes: 26a41ae60438 ("vxlan: only migrate dynamic FDB entries")
    Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.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 d5a4ef2bce3598d5dd6ca749e2e48e56869d9965
Author: Stefan Haberland <sth@linux.vnet.ibm.com>
Date:   Thu May 18 13:24:45 2017 +0200

    s390/dasd: fix hanging safe offline
    
    
    [ Upstream commit e8ac01555d9e464249e8bb122337d6d6e5589ccc ]
    
    The safe offline processing may hang forever because it waits for I/O
    which can not be started because of the offline flag that prevents new
    I/O from being started.
    
    Allow I/O to be started during safe offline processing because in this
    special case we take care that the queues are empty before throwing away
    the device.
    
    Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 352b45c2ff86d59944e6bbc5381f6c1e62822a65
Author: Bob Moore <robert.moore@intel.com>
Date:   Mon Jun 5 16:40:34 2017 +0800

    ACPICA: Disassembler: Abort on an invalid/unknown AML opcode
    
    
    [ Upstream commit 6f0527b77d9e0129dd8e50945b0d610ed943d6b2 ]
    
    ACPICA commit ed0389cb11a61e63c568ac1f67948fc6a7bd1aeb
    
    An invalid opcode indicates something seriously wrong with the
    input AML file. The AML parser is immediately confused and lost,
    causing the resulting parse tree to be ill-formed. The actual
    disassembly can then cause numerous unrelated errors and faults.
    
    This change aborts the disassembly upon discovery of such an
    opcode during the AML parse phase.
    
    Link: https://github.com/acpica/acpica/commit/ed0389cb
    Signed-off-by: Bob Moore <robert.moore@intel.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9711cf143de362d05ae149bd5c54be23aa4d4882
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Mon Jun 5 16:40:02 2017 +0800

    ACPICA: Events: Add runtime stub support for event APIs
    
    
    [ Upstream commit 861ba6351c520328e94a78c923b415faa9116287 ]
    
    ACPICA commit 99bc3beca92c6574ea1d69de42e54f872e6373ce
    
    It is reported that on Linux, RTC driver complains wrong errors on
    hardware reduced platform:
      [    4.085420] ACPI Warning: Could not enable fixed event - real_time_clock (4) (20160422/evxface-654)
    
    This patch fixes this by correctly adding runtime reduced hardware check.
    Reported by Chandan Tagore, fixed by Lv Zheng.
    
    Link: https://github.com/acpica/acpica/commit/99bc3bec
    Tested-by: Chandan Tagore <tagore.chandan@gmail.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 ac748c54d3617b7a4c5f42e695d5f90e099deee4
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Mon Jun 5 16:39:56 2017 +0800

    ACPICA: OSL: Add support to exclude stdarg.h
    
    
    [ Upstream commit 84676b87b27d8aefafb9f712a5b444938f284513 ]
    
    ACPICA commit e2df7455a9a4301b03668e4c9c02c7a564cc841c
    
    Some hosts may choose not to include stdarg.h, implementing a
    configurability in acgcc.h, allowing OSen like Solaris to exclude stdarg.h.
    This patch also fixes acintel.h accordingly without providing builtin
    support as Intel compiler is similar as GCC. Reported by Dana Myers, fixed
    by Lv Zheng.
    
    Link: https://github.com/acpica/acpica/commit/e2df7455
    Reported-by: Dana Myers <dana.myers@oracle.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 b22081fbfbaac0016fec3c087216ec11adba64d3
Author: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
Date:   Sun Jun 11 14:28:54 2017 +0200

    cpuidle: dt: Add missing 'of_node_put()'
    
    
    [ Upstream commit b2cdd8e1b54849477a32d820acc2e87828a38f3d ]
    
    'of_node_put()' should be called on pointer returned by
    'of_parse_phandle()' when done. In this function this is done in all path
    except this 'continue', so add it.
    
    Fixes: 97735da074fd (drivers: cpuidle: Add status property to ARM idle states)
    Signed-off-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
    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 f5d899cbec6f4733cbc5366cb03f442a31785acd
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Fri Jun 9 18:43:56 2017 +0200

    Bluetooth: Send HCI Set Event Mask Page 2 command only when needed
    
    
    [ Upstream commit 313f6888c8fbb1bc8b36c9012ce4e1de848df696 ]
    
    The Broadcom BCM20702 Bluetooth controller in ThinkPad-T530 devices
    report support for the Set Event Mask Page 2 command, but actually do
    return an error when trying to use it.
    
      < HCI Command: Read Local Supported Commands (0x04|0x0002) plen 0
      > HCI Event: Command Complete (0x0e) plen 68
           Read Local Supported Commands (0x04|0x0002) ncmd 1
             Status: Success (0x00)
             Commands: 162 entries
               ...
               Set Event Mask Page 2 (Octet 22 - Bit 2)
               ...
    
      < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8
             Mask: 0x0000000000000000
      > HCI Event: Command Complete (0x0e) plen 4
           Set Event Mask Page 2 (0x03|0x0063) ncmd 1
             Status: Unknown HCI Command (0x01)
    
    Since these controllers do not support any feature that would require
    the event mask page 2 to be modified, it is safe to not send this
    command at all. The default value is all bits set to zero.
    
    T:  Bus=01 Lev=02 Prnt=02 Port=03 Cnt=03 Dev#=  9 Spd=12   MxCh= 0
    D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0a5c ProdID=21e6 Rev= 1.12
    S:  Manufacturer=Broadcom Corp
    S:  Product=BCM20702A0
    S:  SerialNumber=F82FA8E8CFC0
    C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=btusb
    E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
    Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
    Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a81437a759337a9fa6a89704d22e9adf1874a20d
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sun Jun 4 20:33:39 2017 +0200

    clk: meson: meson8b: add compatibles for Meson8 and Meson8m2
    
    
    [ Upstream commit 855f06a1009faabb0c6a3e9b49d115496d325856 ]
    
    The clock controller on Meson8, Meson8b and Meson8m2 is very similar
    based on the code from the Amlogic GPL kernel sources. Add separate
    compatibles for each SoC to make sure that we can easily implement
    all the small differences for each SoC later on.
    
    In general the Meson8 and Meson8m2 seem to be almost identical as they
    even share the same mach-meson8 directory in Amlogic's GPL kernel
    sources.
    The main clocks on Meson8, Meson8b and Meson8m2 are very similar,
    because they are all using the same PLL values, 90% of the clock gates
    are the same (the actual diffstat of the mach-meson8/clock.c and
    mach-meson8b/clock.c files is around 30 to 40 lines, when excluding
    all commented out code).
    The difference between the Meson8 and Meson8b clock gates seem to be:
    - Meson8 has AIU_PCLK, HDMI_RX, VCLK2_ENCT, VCLK2_ENCL, UART3,
      CSI_DIG_CLKIN gates which don't seem to be available on Meson8b
    - the gate on Meson8 for bit 7 seems to be named "_1200XXX" instead
      of "PERIPHS_TOP" (on Meson8b)
    - Meson8b has a SANA gate which doesn't seem to exist on Meson8 (or
      on Meson8 the same bit is used by the UART3 gate in Amlogic's GPL
      kernel sources)
    None of these gates is added for now, since it's unclear whether these
    definitions are actually correct (the VCLK2_ENCT gate for example is
    defined, but only used in some commented block).
    
    The main difference between all three SoCs seem to be the video (VPU)
    clocks. Apart from different supported clock rates (according to vpu.c
    in mach-meson8 and mach-meson8b from Amlogic's GPL kernel sources) the
    most notable difference is that Meson8m2 has a GP_PLL clock and a mux
    (probably the same as on the Meson GX SoCs) to support glitch-free
    (clock rate) switching.
    None of these VPU clocks are not supported by our mainline meson8b
    clock driver yet though.
    
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Acked-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 70accaaca83b13210a8c866fa60421ff88b63d60
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Jun 11 15:42:49 2017 +0300

    net: ena: disable admin msix while working in polling mode
    
    
    [ Upstream commit a2cc5198dac102775b21787752a2e0afe44ad311 ]
    
    Fixes: 1738cd3ed342 ("Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 ff5b272d686912f1e49f01bb779ea57176095aa3
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Jun 11 15:42:47 2017 +0300

    net: ena: add missing unmap bars on device removal
    
    
    [ Upstream commit 0857d92f71b6cb75281fde913554b2d5436c394b ]
    
    This patch also change the mapping functions to devm_ functions
    
    Fixes: 1738cd3ed342 ("Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 d06b43ba6706b26c9c3eadd9383161e220dfe808
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Jun 11 15:42:45 2017 +0300

    net: ena: add missing return when ena_com_get_io_handlers() fails
    
    
    [ Upstream commit 2d2c600a917127f16f179d5a88fc44ba3ed263ed ]
    
    Fixes: 1738cd3ed342 ("Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 0dc5e02cf060233b5a7c11f3b3e0592f8fb4505f
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Jun 11 15:42:46 2017 +0300

    net: ena: fix race condition between submit and completion admin command
    
    
    [ Upstream commit 661d2b0ccef6a63f48b61105cf7be17403d1db01 ]
    
    Bug:
    "Completion context is occupied" error printout will be noticed in
    dmesg.
    This error will cause the admin command to fail, which will lead to
    an ena_probe() failure or a watchdog reset (depends on which admin
    command failed).
    
    Root cause:
    __ena_com_submit_admin_cmd() is the function that submits new entries to
    the admin queue.
    The function have a check that makes sure the queue is not full and the
    function does not override any outstanding command.
    It uses head and tail indexes for this check.
    The head is increased by ena_com_handle_admin_completion() which runs
    from interrupt context, and the tail index is increased by the submit
    function (the function is running under ->q_lock, so there is no risk
    of multithread increment).
    Each command is associated with a completion context. This context
    allocated before call to __ena_com_submit_admin_cmd() and freed by
    ena_com_wait_and_process_admin_cq_interrupts(), right after the command
    was completed.
    
    This can lead to a state where the head was increased, the check passed,
    but the completion context is still in use.
    
    Solution:
    Use the atomic variable ->outstanding_cmds instead of using the head and
    the tail indexes.
    This variable is safe for use since it is bumped in get_comp_ctx() in
    __ena_com_submit_admin_cmd() and is freed by comp_ctxt_release()
    
    Fixes: 1738cd3ed342 ("Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 61e01f1db6dadcfd56b32fb879bcad01f691f064
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Jun 11 15:42:43 2017 +0300

    net: ena: fix rare uncompleted admin command false alarm
    
    
    [ Upstream commit a77c1aafcc906f657d1a0890c1d898be9ee1d5c9 ]
    
    The current flow to detect admin completion is:
    while (command_not_completed) {
            if (timeout)
                    error
    
            check_for_completion()
                    sleep()
       }
    So in case the sleep took more than the timeout
    (in case the thread/workqueue was not scheduled due to higher priority
    task or prolonged VMexit), the driver can detect a stall even if
    the completion is present.
    
    The fix changes the order of this function to first check for
    completion and only after that check if the timeout expired.
    
    Fixes: 1738cd3ed342 ("Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 c613f7c06b9ad259cf66fb14bdc8f7442dfeea85
Author: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Date:   Tue Jun 6 22:51:24 2017 +0200

    iio: magnetometer: st_magn_spi: fix spi_device_id table
    
    
    [ Upstream commit c83761ff0aac954aa368c623bb0f0d1a3214e834 ]
    
    Remove LSM303DLHC, LSM303DLM from st_magn_id_table since LSM303DL series
    does not support spi interface
    
    Fixes: 872e79add756 (iio: magn: Add STMicroelectronics magn driver)
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.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 3da8b25acacfdf4ac760b721977cfc96ffdc601c
Author: Jag Raman <jag.raman@oracle.com>
Date:   Fri Jun 9 12:29:31 2017 -0400

    sparc64: ldc abort during vds iso boot
    
    
    [ Upstream commit 6c95483b768c62f8ee933ae08a1bdbcb78b5410f ]
    
    Orabug: 20902628
    
    When an ldc control-only packet is received during data exchange in
    read_nonraw(), a new rx head is calculated but the rx queue head is not
    actually advanced (rx_set_head() is not called) and a branch is taken to
    'no_data' at which point two things can happen depending on the value
    of the newly calculated rx head and the current rx tail:
    
    - If the rx queue is determined to be not empty, then the wrong packet
      is picked up.
    
    - If the rx queue is determined to be empty, then a read error (EAGAIN)
      is eventually returned since it is falsely assumed that more data was
      expected.
    
    The fix is to update the rx head and return in case of a control only
    packet during data exchange.
    
    Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
    Reviewed-by: Aaron Young <aaron.young@oracle.com>
    Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
    Reviewed-by: Bijan Mottahedeh <bijan.mottahedeh@oracle.com>
    Reviewed-by: Liam Merwick <liam.merwick@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 aabd70361a7ff2546d00f32d83a96713b33ad4ad
Author: Fabio Estevam <fabio.estevam@nxp.com>
Date:   Fri Jun 9 22:37:22 2017 -0300

    net: fec: Add a fec_enet_clear_ethtool_stats() stub for CONFIG_M5272
    
    
    [ Upstream commit bf292f1b2c813f1d6ac49b04bd1a9863d8314266 ]
    
    Commit 2b30842b23b9 ("net: fec: Clear and enable MIB counters on imx51")
    introduced fec_enet_clear_ethtool_stats(), but missed to add a stub
    for the CONFIG_M5272=y case, causing build failure for the
    m5272c3_defconfig.
    
    Add the missing empty stub to fix the build failure.
    
    Reported-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Fabio Estevam <fabio.estevam@nxp.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 2c7608e644c01cdf638b9f3cb7e0c596ae950964
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sat Jun 10 14:56:56 2017 +0800

    sctp: fix recursive locking warning in sctp_do_peeloff
    
    
    [ Upstream commit 6dfe4b97e08ec3d1a593fdaca099f0ef0a3a19e6 ]
    
    Dmitry got the following recursive locking report while running syzkaller
    fuzzer, the Call Trace:
     __dump_stack lib/dump_stack.c:16 [inline]
     dump_stack+0x2ee/0x3ef lib/dump_stack.c:52
     print_deadlock_bug kernel/locking/lockdep.c:1729 [inline]
     check_deadlock kernel/locking/lockdep.c:1773 [inline]
     validate_chain kernel/locking/lockdep.c:2251 [inline]
     __lock_acquire+0xef2/0x3430 kernel/locking/lockdep.c:3340
     lock_acquire+0x2a1/0x630 kernel/locking/lockdep.c:3755
     lock_sock_nested+0xcb/0x120 net/core/sock.c:2536
     lock_sock include/net/sock.h:1460 [inline]
     sctp_close+0xcd/0x9d0 net/sctp/socket.c:1497
     inet_release+0xed/0x1c0 net/ipv4/af_inet.c:425
     inet6_release+0x50/0x70 net/ipv6/af_inet6.c:432
     sock_release+0x8d/0x1e0 net/socket.c:597
     __sock_create+0x38b/0x870 net/socket.c:1226
     sock_create+0x7f/0xa0 net/socket.c:1237
     sctp_do_peeloff+0x1a2/0x440 net/sctp/socket.c:4879
     sctp_getsockopt_peeloff net/sctp/socket.c:4914 [inline]
     sctp_getsockopt+0x111a/0x67e0 net/sctp/socket.c:6628
     sock_common_getsockopt+0x95/0xd0 net/core/sock.c:2690
     SYSC_getsockopt net/socket.c:1817 [inline]
     SyS_getsockopt+0x240/0x380 net/socket.c:1799
     entry_SYSCALL_64_fastpath+0x1f/0xc2
    
    This warning is caused by the lock held by sctp_getsockopt() is on one
    socket, while the other lock that sctp_close() is getting later is on
    the newly created (which failed) socket during peeloff operation.
    
    This patch is to avoid this warning by use lock_sock with subclass
    SINGLE_DEPTH_NESTING as Wang Cong and Marcelo's suggestion.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Suggested-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Suggested-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.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 5c27f6464438761af16038180e37d1b92986f29a
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Fri Jun 9 17:17:01 2017 +0300

    bnx2x: Allow vfs to disable txvlan offload
    
    
    [ Upstream commit 92f85f05caa51d844af6ea14ffbc7a786446a644 ]
    
    VF clients are configured as enforced, meaning firmware is validating
    the correctness of their ethertype/vid during transmission.
    Once txvlan is disabled, VF would start getting SKBs for transmission
    here vlan is on the payload - but it'll pass the packet's ethertype
    instead of the vid, leading to firmware declaring it as malicious.
    
    Signed-off-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 1fb08363c85da3c3c3c0acb53d7809ca2c72bede
Author: Tero Kristo <t-kristo@ti.com>
Date:   Wed May 24 10:35:33 2017 +0300

    crypto: omap-sham - fix closing of hash with separate finalize call
    
    
    [ Upstream commit 898d86a565925f09de3d0b30cf3b47ec2e409680 ]
    
    Currently there is an interesting corner case failure with omap-sham
    driver, if the finalize call is done separately with no data, but
    all previous data has already been processed. In this case, it is not
    possible to close the hash with the hardware without providing any data,
    so we get incorrect results. Fix this by adjusting the size of data
    sent to the hardware crypto engine in case the non-final data size falls
    on the block size boundary, by reducing the amount of data sent by one
    full block. This makes it sure that we always have some data available
    for the finalize call and we can close the hash properly.
    
    Signed-off-by: Tero Kristo <t-kristo@ti.com>
    Reported-by: Aparna Balasubramanian <aparnab@ti.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0fe1e29a59f436c10b9ed05df52ab650a9f3727
Author: Tero Kristo <t-kristo@ti.com>
Date:   Wed May 24 10:35:32 2017 +0300

    crypto: omap-sham - buffer handling fixes for hashing later
    
    
    [ Upstream commit 5d78d57ede8f9e7f656c610ed25be7be337e0529 ]
    
    Currently, the hash later code only handles the cases when we have
    either new data coming in with the request or old data in the buffer,
    but not the combination when we have both. Fix this by changing the
    ordering of the code a bit and handling both cases properly
    simultaneously if needed. Also, fix an issue with omap_sham_update
    that surfaces with this fix, so that the code checks the bufcnt
    instead of total data amount against buffer length to avoid any
    buffer overflows.
    
    Signed-off-by: Tero Kristo <t-kristo@ti.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb96822d6c4d5c3e252dbf687ad2f7d6d8b0ef8b
Author: Girish Moodalbail <girish.moodalbail@oracle.com>
Date:   Thu Jun 8 17:07:48 2017 -0700

    geneve: add missing rx stats accounting
    
    
    [ Upstream commit fe741e2362f33bbea813bcc3a921de356c6653db ]
    
    There are few places on the receive path where packet drops and packet
    errors were not accounted for. This patch fixes that issue.
    
    Signed-off-by: Girish Moodalbail <girish.moodalbail@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 3f7b3c7a792c8d74bcdf6dfca0189c9d2065508f
Author: Mario Molitor <mario_molitor@web.de>
Date:   Thu Jun 8 22:41:02 2017 +0200

    stmmac: fix ptp header for GMAC3 hw timestamp
    
    
    [ Upstream commit fd6720aefde06eacf17404eed2cad65c6ec103e1 ]
    
    According the CYCLON V documention only the bit 16 of snaptypesel should
    set.
    (more information see Table 17-20 (cv_5v4.pdf) :
     Timestamp Snapshot Dependency on Register Bits)
    
    Fixes: d2042052a0aa ("stmmac: update the PTP header file")
    Signed-off-by: Mario Molitor <mario_molitor@web.de>
    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 9606743ca7f8f45b0e589e5ff8dd93a3e49dcdd1
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Mon Jun 5 14:15:09 2017 -0600

    coresight: tmc: Configure DMA mask appropriately
    
    
    [ Upstream commit a3959c50b02f57df4c4e4f14f632220f1c0b1f79 ]
    
    Before making any DMA API calls, the ETR driver should really be setting
    its masks to ensure that DMA is possible. Especially since it can
    address more than the 32-bit default mask set by the AMBA bus code.
    
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    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 41830b8672a801adb74486d37fee4c35c9ca42b2
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Mon Jun 5 14:15:03 2017 -0600

    coresight: Fix reference count for software sources
    
    
    [ Upstream commit 022aa1a81b778789ee7cf3124595854276a0330d ]
    
    For software sources (i.e STM), there could be multiple agents
    generating the trace data, unlike the ETMs. So we need to
    properly do the accounting for the active number of users
    to disable the device when the last user goes away. Right
    now, the reference counting is broken for sources as we skip
    the actions when we detect that the source is enabled.
    
    This patch fixes the problem by adding the refcounting for
    software sources, even when they are enabled.
    
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reported-by: Robert Walker <robert.walker@arm.com>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    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 577438f5774154305c80a5f5a4a66cd7c4a2ca39
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Wed Jun 7 07:44:20 2017 +0200

    pinctrl: meson-gxbb: remove non-existing pin GPIOX_22
    
    
    [ Upstream commit 4c8127cb523982e0a474ad80b14b665dc2f37b3b ]
    
    After commit 34e61801a3b9 "pinctrl: meson-gxbb: Add missing GPIODV_18
    pin entry" I started to get the following warning:
    
    "meson-pinctrl c8834000.periphs:pinctrl@4b0: names 119 do not match
    number of GPIOs 120"
    
    It turned out that not the mentioned commit has a problem, it just
    revealed another problem which had existed before.
    
    There is no PIN GPIOX_22 on Meson GXBB.
    
    Fixes: 468c234f9ed7 ("pinctrl: amlogic: Add support for Amlogic Meson GXBB SoC")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Reviewed-by: Neil Armstrong <narmstrong@baylibre.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 4b8fd8db48be40261cb1eafb8a9605a2e4d37091
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jun 8 14:47:49 2017 +0100

    X.509: Fix error code in x509_cert_parse()
    
    
    [ Upstream commit 4e880168e9ffb1cdbdb72b3b48ab0324b30c2d62 ]
    
    We forgot to set the error code on this path so it could result in
    returning NULL which leads to a NULL dereference.
    
    Fixes: db6c43bd2132 ("crypto: KEYS: convert public key and digsig asym to the akcipher api")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45be9b7771600c650acfdcc8501999df8751f695
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Jun 8 10:53:10 2017 +0200

    xen: avoid type warning in xchg_xen_ulong
    
    
    [ Upstream commit 9cc91f212111cdcbefa02dcdb7dd443f224bf52c ]
    
    The improved type-checking version of container_of() triggers a warning for
    xchg_xen_ulong, pointing out that 'xen_ulong_t' is unsigned, but atomic64_t
    contains a signed value:
    
    drivers/xen/events/events_2l.c: In function 'evtchn_2l_handle_events':
    drivers/xen/events/events_2l.c:187:1020: error: call to '__compiletime_assert_187' declared with attribute error: pointer type mismatch in container_of()
    
    This adds a cast to work around the warning.
    
    Cc: Ian Abbott <abbotti@mev.co.uk>
    Fixes: 85323a991d40 ("xen: arm: mandate EABI and use generic atomic operations.")
    Fixes: daa2ac80834d ("kernel.h: handle pointers to arrays better in container_of()")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fcfb53c3a8c61d9e2866edf4cdc45715c8b1dfbd
Author: Willem de Bruijn <willemb@google.com>
Date:   Thu Jun 8 11:35:03 2017 -0400

    skbuff: only inherit relevant tx_flags
    
    
    [ Upstream commit fff88030b3ff930ca7a3d74acfee0472f33887ea ]
    
    When inheriting tx_flags from one skbuff to another, always apply a
    mask to avoid overwriting unrelated other bits in the field.
    
    The two SKBTX_SHARED_FRAG cases clears all other bits. In practice,
    tx_flags are zero at this point now. But this is fragile. Timestamp
    flags are set, for instance, if in tcp_gso_segment, after this clear
    in skb_segment.
    
    The SKBTX_ANY_TSTAMP mask in __skb_tstamp_tx ensures that new
    skbs do not accidentally inherit flags such as SKBTX_SHARED_FRAG.
    
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
    Acked-by: Eric Dumazet <edumazet@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 7525a238be8f46617cdda29d1be5b85ffe3b042d
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Thu Jun 8 16:31:07 2017 +0900

    perf tests: Decompress kernel module before objdump
    
    
    [ Upstream commit 94df1040b1e6aacd8dec0ba3c61d7e77cd695f26 ]
    
    If a kernel modules is compressed, it should be decompressed before
    running objdump to parse binary data correctly.  This fixes a failure of
    object code reading test for me.
    
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170608073109.30699-8-namhyung@kernel.org
    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 e2d054998b151e85b6305aa72264f67097bd78e9
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Thu Jun 8 16:31:05 2017 +0900

    perf tools: Decompress kernel module when reading DSO data
    
    
    [ Upstream commit 1d6b3c9ba756a5134fd7ad1959acac776d17404b ]
    
    Currently perf decompresses kernel modules when loading the symbol table
    but it missed to do it when reading raw data.
    
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170608073109.30699-6-namhyung@kernel.org
    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 b3ec3723a42fcaf998e128fd3768ce815e1ff398
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Wed Jun 7 15:51:15 2017 +0200

    net: emac: fix reset timeout with AR8035 phy
    
    
    [ Upstream commit 19d90ece81da802207a9b91ce95a29fbdc40626e ]
    
    This patch fixes a problem where the AR8035 PHY can't be
    detected on an Cisco Meraki MR24, if the ethernet cable is
    not connected on boot.
    
    Russell Senior provided steps to reproduce the issue:
    |Disconnect ethernet cable, apply power, wait until device has booted,
    |plug in ethernet, check for interfaces, no eth0 is listed.
    |
    |This appears to be a problem during probing of the AR8035 Phy chip.
    |When ethernet has no link, the phy detection fails, and eth0 is not
    |created. Plugging ethernet later has no effect, because there is no
    |interface as far as the kernel is concerned. The relevant part of
    |the boot log looks like this:
    |this is the failing case:
    |
    |[    0.876611] /plb/opb/emac-rgmii@ef601500: input 0 in RGMII mode
    |[    0.882532] /plb/opb/ethernet@ef600c00: reset timeout
    |[    0.888546] /plb/opb/ethernet@ef600c00: can't find PHY!
    |and the succeeding case:
    |
    |[    0.876672] /plb/opb/emac-rgmii@ef601500: input 0 in RGMII mode
    |[    0.883952] eth0: EMAC-0 /plb/opb/ethernet@ef600c00, MAC 00:01:..
    |[    0.890822] eth0: found Atheros 8035 Gigabit Ethernet PHY (0x01)
    
    Based on the comment and the commit message of
    commit 23fbb5a87c56 ("emac: Fix EMAC soft reset on 460EX/GT").
    This is because the AR8035 PHY doesn't provide the TX Clock,
    if the ethernet cable is not attached. This causes the reset
    to timeout and the PHY detection code in emac_init_phy() is
    unable to detect the AR8035 PHY. As a result, the emac driver
    bails out early and the user left with no ethernet.
    
    In order to stay compatible with existing configurations, the driver
    tries the current reset approach at first. Only if the first attempt
    timed out, it does perform one more retry with the clock temporarily
    switched to the internal source for just the duration of the reset.
    
    LEDE-Bug: #687 <https://bugs.lede-project.org/index.php?do=details&task_id=687>
    
    Cc: Chris Blake <chrisrblake93@gmail.com>
    Reported-by: Russell Senior <russell@personaltelco.net>
    Fixes: 23fbb5a87c56e98 ("emac: Fix EMAC soft reset on 460EX/GT")
    Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    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 7f736f0e9ba38705eaf8e36a622a4b47218c14ae
Author: James Wang <jnwang@suse.com>
Date:   Thu Jun 8 14:52:51 2017 +0800

    Fix loop device flush before configure v3
    
    
    [ Upstream commit 6460495709aeb651896bc8e5c134b2e4ca7d34a8 ]
    
    While installing SLES-12 (based on v4.4), I found that the installer
    will stall for 60+ seconds during LVM disk scan.  The root cause was
    determined to be the removal of a bound device check in loop_flush()
    by commit b5dd2f6047ca ("block: loop: improve performance via blk-mq").
    
    Restoring this check, examining ->lo_state as set by loop_set_fd()
    eliminates the bad behavior.
    
    Test method:
    modprobe loop max_loop=64
    dd if=/dev/zero of=disk bs=512 count=200K
    for((i=0;i<4;i++))do losetup -f disk; done
    mkfs.ext4 -F /dev/loop0
    for((i=0;i<4;i++))do mkdir t$i; mount /dev/loop$i t$i;done
    for f in `ls /dev/loop[0-9]*|sort`; do \
            echo $f; dd if=$f of=/dev/null  bs=512 count=1; \
            done
    
    Test output:  stock          patched
    /dev/loop0    18.1217e-05    8.3842e-05
    /dev/loop1     6.1114e-05    0.000147979
    /dev/loop10    0.414701      0.000116564
    /dev/loop11    0.7474        6.7942e-05
    /dev/loop12    0.747986      8.9082e-05
    /dev/loop13    0.746532      7.4799e-05
    /dev/loop14    0.480041      9.3926e-05
    /dev/loop15    1.26453       7.2522e-05
    
    Note that from loop10 onward, the device is not mounted, yet the
    stock kernel consumes several orders of magnitude more wall time
    than it does for a mounted device.
    (Thanks for Mike Galbraith <efault@gmx.de>, give a changelog review.)
    
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: James Wang <jnwang@suse.com>
    Fixes: b5dd2f6047ca ("block: loop: improve performance via blk-mq")
    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 90963c61ff0ae480090895725eabb4c60ed358bd
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Jun 1 12:27:00 2017 +0200

    ARM: dts: armadillo800eva: Split LCD mux and gpio
    
    
    [ Upstream commit 13132b3f44d3600983aceb7e9920b8ebb55a7cf8 ]
    
    Configuration of the lcd0 pinmux group and GPIO hog for the external
    GPIO mux are done using a single device node, causing the "output-high"
    property to be applied to both.  This will fail for the pinmux group,
    but doesn't cause any harm, as the failure is ignored silently.
    
    However, after "pinctrl: sh-pfc: propagate errors on group config", the
    failure will become fatal, leading to a broken display:
    
        sh-pfc e6050000.pin-controller: pin_config_group_set op failed for group 102
        sh-pfc e6050000.pin-controller: Error applying setting, reverse things back
        sh-pfc e6050000.pin-controller: failed to select default state
    
    Move the GPIO hog to its own node to fix this.
    
    Fixes: ffd2f9a5afb730b9 ("ARM: shmobile: armadillo800eva dts: Add pinctrl and gpio-hog for lcdc0")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 353a7186f1ec39881d6b20d4b150f283393e4ce6
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Thu Jun 8 15:20:32 2017 +0200

    MIPS: kprobes: flush_insn_slot should flush only if probe initialised
    
    
    [ Upstream commit 698b851073ddf5a894910d63ca04605e0473414e ]
    
    When ftrace is used with kprobes, it is possible for a kprobe to contain
    an invalid location (ie. only initialised to 0 and not to a specific
    location in the code). Trying to perform a cache flush on such location
    leads to a crash r4k_flush_icache_range().
    
    Fixes: c1bf207d6ee1 ("MIPS: kprobe: Add support.")
    Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16296/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b79e6d2da9e6ee7068049c3514a4ca9a73d8db80
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Tue Apr 11 09:00:36 2017 +0200

    MIPS: mm: adjust PKMAP location
    
    
    [ Upstream commit c56e7a4c3e77f6fbd9b55c06c14eda65aae58958 ]
    
    Space reserved for PKMap should span from PKMAP_BASE to FIXADDR_START.
    For large page sizes this is not the case as eg. for 64k pages the range
    currently defined is from 0xfe000000 to 0x102000000(!!) which obviously
    isn't right.
    Remove the hardcoded location and set the BASE address as an offset from
    FIXADDR_START.
    
    Since all PKMAP ptes have to be placed in a contiguous memory, ensure
    that this is the case by placing them all in a single page. This is
    achieved by aligning the end address to pkmap pages count pages.
    
    Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/15950/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 222c8b45a69c8be582d0a5b282dcc28387b6c72e
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Tue Apr 11 09:00:34 2017 +0200

    MIPS: mm: fixed mappings: correct initialisation
    
    
    [ Upstream commit 71eb989ab5a110df8bcbb9609bacde73feacbedd ]
    
    fixrange_init operates at PMD-granularity and expects the addresses to
    be PMD-size aligned, but currently that might not be the case for
    PKMAP_BASE unless it is defined properly, so ensure a correct alignment
    is used before passing the address to fixrange_init.
    
    fixed mappings: only align the start address that is passed to
    fixrange_init rather than the value before adding the size, as we may
    end up with uninitialised upper part of the range.
    
    Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/15948/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0559ea3414d146426aa7e5a95584eee50b1cf967
Author: Daniel Bristot de Oliveira <bristot@redhat.com>
Date:   Mon May 29 16:24:03 2017 +0200

    sched/deadline: Use the revised wakeup rule for suspending constrained dl tasks
    
    
    [ Upstream commit 3effcb4247e74a51f5d8b775a1ee4abf87cc089a ]
    
    We have been facing some problems with self-suspending constrained
    deadline tasks. The main reason is that the original CBS was not
    designed for such sort of tasks.
    
    One problem reported by Xunlei Pang takes place when a task
    suspends, and then is awakened before the deadline, but so close
    to the deadline that its remaining runtime can cause the task
    to have an absolute density higher than allowed. In such situation,
    the original CBS assumes that the task is facing an early activation,
    and so it replenishes the task and set another deadline, one deadline
    in the future. This rule works fine for implicit deadline tasks.
    Moreover, it allows the system to adapt the period of a task in which
    the external event source suffered from a clock drift.
    
    However, this opens the window for bandwidth leakage for constrained
    deadline tasks. For instance, a task with the following parameters:
    
      runtime   = 5 ms
      deadline  = 7 ms
      [density] = 5 / 7 = 0.71
      period    = 1000 ms
    
    If the task runs for 1 ms, and then suspends for another 1ms,
    it will be awakened with the following parameters:
    
      remaining runtime = 4
      laxity = 5
    
    presenting a absolute density of 4 / 5 = 0.80.
    
    In this case, the original CBS would assume the task had an early
    wakeup. Then, CBS will reset the runtime, and the absolute deadline will
    be postponed by one relative deadline, allowing the task to run.
    
    The problem is that, if the task runs this pattern forever, it will keep
    receiving bandwidth, being able to run 1ms every 2ms. Following this
    behavior, the task would be able to run 500 ms in 1 sec. Thus running
    more than the 5 ms / 1 sec the admission control allowed it to run.
    
    Trying to address the self-suspending case, Luca Abeni, Giuseppe
    Lipari, and Juri Lelli [1] revisited the CBS in order to deal with
    self-suspending tasks. In the new approach, rather than
    replenishing/postponing the absolute deadline, the revised wakeup rule
    adjusts the remaining runtime, reducing it to fit into the allowed
    density.
    
    A revised version of the idea is:
    
    At a given time t, the maximum absolute density of a task cannot be
    higher than its relative density, that is:
    
      runtime / (deadline - t) <= dl_runtime / dl_deadline
    
    Knowing the laxity of a task (deadline - t), it is possible to move
    it to the other side of the equality, thus enabling to define max
    remaining runtime a task can use within the absolute deadline, without
    over-running the allowed density:
    
      runtime = (dl_runtime / dl_deadline) * (deadline - t)
    
    For instance, in our previous example, the task could still run:
    
      runtime = ( 5 / 7 ) * 5
      runtime = 3.57 ms
    
    Without causing damage for other deadline tasks. It is note worthy
    that the laxity cannot be negative because that would cause a negative
    runtime. Thus, this patch depends on the patch:
    
      df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline")
    
    Which throttles a constrained deadline task activated after the
    deadline.
    
    Finally, it is also possible to use the revised wakeup rule for
    all other tasks, but that would require some more discussions
    about pros and cons.
    
    Reported-by: Xunlei Pang <xpang@redhat.com>
    Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
    [peterz: replaced dl_is_constrained with dl_is_implicit]
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Juri Lelli <juri.lelli@arm.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Luca Abeni <luca.abeni@santannapisa.it>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Romulo Silva de Oliveira <romulo.deoliveira@ufsc.br>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tommaso Cucinotta <tommaso.cucinotta@sssup.it>
    Link: http://lkml.kernel.org/r/5c800ab3a74a168a84ee5f3f84d12a02e11383be.1495803804.git.bristot@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 50fe37e83e14a6848aaccf5ad707bf4de070d75d
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Tue May 30 11:45:12 2017 +0200

    perf/core: Correct event creation with PERF_FORMAT_GROUP
    
    
    [ Upstream commit ba5213ae6b88fb170c4771fef6553f759c7d8cdd ]
    
    Andi was asking about PERF_FORMAT_GROUP vs inherited events, which led
    to the discovery of a bug from commit:
    
      3dab77fb1bf8 ("perf: Rework/fix the whole read vs group stuff")
    
     -       PERF_SAMPLE_GROUP                       = 1U << 4,
     +       PERF_SAMPLE_READ                        = 1U << 4,
    
     -       if (attr->inherit && (attr->sample_type & PERF_SAMPLE_GROUP))
     +       if (attr->inherit && (attr->read_format & PERF_FORMAT_GROUP))
    
    is a clear fail :/
    
    While this changes user visible behaviour; it was previously possible
    to create an inherited event with PERF_SAMPLE_READ; this is deemed
    acceptible because its results were always incorrect.
    
    Reported-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vince@deater.net>
    Fixes:  3dab77fb1bf8 ("perf: Rework/fix the whole read vs group stuff")
    Link: http://lkml.kernel.org/r/20170530094512.dy2nljns2uq7qa3j@hirez.programming.kicks-ass.net
    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 d54421849563260d8344a5f60190188822214cda
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 31 18:50:43 2017 +0300

    e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails
    
    
    [ Upstream commit 833521ebc65b1c3092e5c0d8a97092f98eec595d ]
    
    An error during suspend (e100e_pm_suspend),
    
    [  429.994338] ACPI : EC: event blocked
    [  429.994633] e1000e: EEE TX LPI TIMER: 00000011
    [  430.955451] pci_pm_suspend(): e1000e_pm_suspend+0x0/0x30 [e1000e] returns -2
    [  430.955454] dpm_run_callback(): pci_pm_suspend+0x0/0x140 returns -2
    [  430.955458] PM: Device 0000:00:19.0 failed to suspend async: error -2
    [  430.955581] PM: Some devices failed to suspend, or early wake event detected
    [  430.957709] ACPI : EC: event unblocked
    
    lead to complete failure:
    
    [  432.585002] ------------[ cut here ]------------
    [  432.585013] WARNING: CPU: 3 PID: 8372 at kernel/irq/manage.c:1478 __free_irq+0x9f/0x280
    [  432.585015] Trying to free already-free IRQ 20
    [  432.585016] Modules linked in: cdc_ncm usbnet x86_pkg_temp_thermal intel_powerclamp coretemp mii crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep lpc_ich snd_hda_core snd_pcm mei_me mei sdhci_pci sdhci i915 mmc_core e1000e ptp pps_core prime_numbers
    [  432.585042] CPU: 3 PID: 8372 Comm: kworker/u16:40 Tainted: G     U          4.10.0-rc8-CI-Patchwork_3870+ #1
    [  432.585044] Hardware name: LENOVO 2356GCG/2356GCG, BIOS G7ET31WW (1.13 ) 07/02/2012
    [  432.585050] Workqueue: events_unbound async_run_entry_fn
    [  432.585051] Call Trace:
    [  432.585058]  dump_stack+0x67/0x92
    [  432.585062]  __warn+0xc6/0xe0
    [  432.585065]  warn_slowpath_fmt+0x4a/0x50
    [  432.585070]  ? _raw_spin_lock_irqsave+0x49/0x60
    [  432.585072]  __free_irq+0x9f/0x280
    [  432.585075]  free_irq+0x34/0x80
    [  432.585089]  e1000_free_irq+0x65/0x70 [e1000e]
    [  432.585098]  e1000e_pm_freeze+0x7a/0xb0 [e1000e]
    [  432.585106]  e1000e_pm_suspend+0x21/0x30 [e1000e]
    [  432.585113]  pci_pm_suspend+0x71/0x140
    [  432.585118]  dpm_run_callback+0x6f/0x330
    [  432.585122]  ? pci_pm_freeze+0xe0/0xe0
    [  432.585125]  __device_suspend+0xea/0x330
    [  432.585128]  async_suspend+0x1a/0x90
    [  432.585132]  async_run_entry_fn+0x34/0x160
    [  432.585137]  process_one_work+0x1f4/0x6d0
    [  432.585140]  ? process_one_work+0x16e/0x6d0
    [  432.585143]  worker_thread+0x49/0x4a0
    [  432.585145]  kthread+0x107/0x140
    [  432.585148]  ? process_one_work+0x6d0/0x6d0
    [  432.585150]  ? kthread_create_on_node+0x40/0x40
    [  432.585154]  ret_from_fork+0x2e/0x40
    [  432.585156] ---[ end trace 6712df7f8c4b9124 ]---
    
    The unwind failures stems from commit 2800209994f8 ("e1000e: Refactor PM
    flows"), but it may be a later patch that introduced the non-recoverable
    behaviour.
    
    Fixes: 2800209994f8 ("e1000e: Refactor PM flows")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99847
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Jani Nikula <jani.nikula@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 4933e9f2a0d98d3e53597c421e5945c9e9d1ce5b
Author: Jim Mattson <jmattson@google.com>
Date:   Thu Jun 1 12:44:46 2017 -0700

    KVM: nVMX: Update vmcs12->guest_linear_address on nested VM-exit
    
    
    [ Upstream commit d281e13b0bfe745a21061a194e386a949784393f ]
    
    The guest-linear address field is set for VM exits due to attempts to
    execute LMSW with a memory operand and VM exits due to attempts to
    execute INS or OUTS for which the relevant segment is usable,
    regardless of whether or not EPT is in use.
    
    Fixes: 119a9c01a5922 ("KVM: nVMX: pass valid guest linear-address to the L1")
    Signed-off-by: Jim Mattson <jmattson@google.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4aae4388165a2611fa4206363ccb243c1622446c
Author: Ming Lei <ming.lei@redhat.com>
Date:   Fri Jun 2 16:32:08 2017 +0800

    nvme: fix hang in remove path
    
    
    [ Upstream commit 82654b6b8ef8b93ee87a97fc562f87f081fc2f91 ]
    
    We need to start admin queues too in nvme_kill_queues()
    for avoiding hang in remove path[1].
    
    This patch is very similar with 806f026f9b901eaf(nvme: use
    blk_mq_start_hw_queues() in nvme_kill_queues()).
    
    [1] hang stack trace
    [<ffffffff813c9716>] blk_execute_rq+0x56/0x80
    [<ffffffff815cb6e9>] __nvme_submit_sync_cmd+0x89/0xf0
    [<ffffffff815ce7be>] nvme_set_features+0x5e/0x90
    [<ffffffff815ce9f6>] nvme_configure_apst+0x166/0x200
    [<ffffffff815cef45>] nvme_set_latency_tolerance+0x35/0x50
    [<ffffffff8157bd11>] apply_constraint+0xb1/0xc0
    [<ffffffff8157cbb4>] dev_pm_qos_constraints_destroy+0xf4/0x1f0
    [<ffffffff8157b44a>] dpm_sysfs_remove+0x2a/0x60
    [<ffffffff8156d951>] device_del+0x101/0x320
    [<ffffffff8156db8a>] device_unregister+0x1a/0x60
    [<ffffffff8156dc4c>] device_destroy+0x3c/0x50
    [<ffffffff815cd295>] nvme_uninit_ctrl+0x45/0xa0
    [<ffffffff815d4858>] nvme_remove+0x78/0x110
    [<ffffffff81452b69>] pci_device_remove+0x39/0xb0
    [<ffffffff81572935>] device_release_driver_internal+0x155/0x210
    [<ffffffff81572a02>] device_release_driver+0x12/0x20
    [<ffffffff815d36fb>] nvme_remove_dead_ctrl_work+0x6b/0x70
    [<ffffffff810bf3bc>] process_one_work+0x18c/0x3a0
    [<ffffffff810bf61e>] worker_thread+0x4e/0x3b0
    [<ffffffff810c5ac9>] kthread+0x109/0x140
    [<ffffffff8185800c>] ret_from_fork+0x2c/0x40
    [<ffffffffffffffff>] 0xffffffffffffffff
    
    Fixes: c5552fde102fc("nvme: Enable autonomous power state transitions")
    Reported-by: Rakesh Pandit <rakesh@tuxera.com>
    Tested-by: Rakesh Pandit <rakesh@tuxera.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 383f15ee34fb21137a6486162132f79fc049cb3e
Author: Rakesh Pandit <rakesh@tuxera.com>
Date:   Mon Jun 5 14:43:11 2017 +0300

    nvme-pci: fix multiple ctrl removal scheduling
    
    
    [ Upstream commit 82b057caefaff2a891f821a617d939f46e03e844 ]
    
    Commit c5f6ce97c1210 tries to address multiple resets but fails as
    work_busy doesn't involve any synchronization and can fail.  This is
    reproducible easily as can be seen by WARNING below which is triggered
    with line:
    
    WARN_ON(dev->ctrl.state == NVME_CTRL_RESETTING)
    
    Allowing multiple resets can result in multiple controller removal as
    well if different conditions inside nvme_reset_work fail and which
    might deadlock on device_release_driver.
    
    [  480.327007] WARNING: CPU: 3 PID: 150 at drivers/nvme/host/pci.c:1900 nvme_reset_work+0x36c/0xec0
    [  480.327008] Modules linked in: rfcomm fuse nf_conntrack_netbios_ns nf_conntrack_broadcast...
    [  480.327044]  btusb videobuf2_core ghash_clmulni_intel snd_hwdep cfg80211 acer_wmi hci_uart..
    [  480.327065] CPU: 3 PID: 150 Comm: kworker/u16:2 Not tainted 4.12.0-rc1+ #13
    [  480.327065] Hardware name: Acer Predator G9-591/Mustang_SLS, BIOS V1.10 03/03/2016
    [  480.327066] Workqueue: nvme nvme_reset_work
    [  480.327067] task: ffff880498ad8000 task.stack: ffffc90002218000
    [  480.327068] RIP: 0010:nvme_reset_work+0x36c/0xec0
    [  480.327069] RSP: 0018:ffffc9000221bdb8 EFLAGS: 00010246
    [  480.327070] RAX: 0000000000460000 RBX: ffff880498a98128 RCX: dead000000000200
    [  480.327070] RDX: 0000000000000001 RSI: ffff8804b1028020 RDI: ffff880498a98128
    [  480.327071] RBP: ffffc9000221be50 R08: 0000000000000000 R09: 0000000000000000
    [  480.327071] R10: ffffc90001963ce8 R11: 000000000000020d R12: ffff880498a98000
    [  480.327072] R13: ffff880498a53500 R14: ffff880498a98130 R15: ffff880498a98128
    [  480.327072] FS:  0000000000000000(0000) GS:ffff8804c1cc0000(0000) knlGS:0000000000000000
    [  480.327073] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  480.327074] CR2: 00007ffcf3c37f78 CR3: 0000000001e09000 CR4: 00000000003406e0
    [  480.327074] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  480.327075] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [  480.327075] Call Trace:
    [  480.327079]  ? __switch_to+0x227/0x400
    [  480.327081]  process_one_work+0x18c/0x3a0
    [  480.327082]  worker_thread+0x4e/0x3b0
    [  480.327084]  kthread+0x109/0x140
    [  480.327085]  ? process_one_work+0x3a0/0x3a0
    [  480.327087]  ? kthread_park+0x60/0x60
    [  480.327102]  ret_from_fork+0x2c/0x40
    [  480.327103] Code: e8 5a dc ff ff 85 c0 41 89 c1 0f.....
    
    This patch addresses the problem by using state of controller to
    decide whether reset should be queued or not as state change is
    synchronizated using controller spinlock.  Also cancel_work_sync is
    used to make sure remove cancels the reset_work and waits for it to
    finish.  This patch also changes return value from -ENODEV to more
    appropriate -EBUSY if nvme_reset fails to change state.
    
    Fixes: c5f6ce97c1210 ("nvme: don't schedule multiple resets")
    Signed-off-by: Rakesh Pandit <rakesh@tuxera.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72da86afee86904a7bb5963e52d11e53d2e29641
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Tue Jun 6 20:50:42 2017 +0300

    ARM: imx: Add MXC_CPU_IMX6ULL and cpu_is_imx6ull
    
    
    [ Upstream commit b3ea575770c7eeb259c77b6861cd14d00eb309df ]
    
    Support for imx6ull is already present but it's based on
    of_machine_is_compatible("fsl,imx6ull") checks. Add it to the MXC_CPU_*
    enumeration as well.
    
    This also fixes /sys/devices/soc0/soc_id reading "Unknown".
    
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e9399672360e6ecdcb6a9ebfe88e156922d1694c
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Mon Jun 5 12:22:55 2017 +0100

    net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support
    
    
    [ Upstream commit 41408ad519f7a2a1c5229e61f2a97f4df1b61adc ]
    
    Avoid calling genphy_aneg_done() for PHYs that do not implement the
    Clause 22 register set.
    
    Clause 45 PHYs may implement the Clause 22 register set along with the
    Clause 22 extension MMD.  Hence, we can't simply block access to the
    Clause 22 functions based on the PHY being a Clause 45 PHY.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.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 085da766de30ca002dc226fb9d90f58b58e73312
Author: A Sun <as1033x@comcast.net>
Date:   Sun Mar 26 15:33:07 2017 -0300

    mceusb: sporadic RX truncation corruption fix
    
    
    [ Upstream commit 8e175b22e8640bf3a58e071af54190b909e4a944 ]
    
    Intermittent RX truncation and loss of IR received data. This resulted
    in receive stream synchronization errors where driver attempted to
    incorrectly parse IR data (eg 0x90 below) as command response.
    
    [ 3969.139898] mceusb 1-1.2:1.0: processed IR data
    [ 3969.151315] mceusb 1-1.2:1.0: rx data: 00 90 (length=2)
    [ 3969.151321] mceusb 1-1.2:1.0: Unknown command 0x00 0x90
    [ 3969.151336] mceusb 1-1.2:1.0: rx data: 98 0a 8d 0a 8e 0a 8e 0a 8e 0a 8e 0a 9a 0a 8e 0a 0b 3a 8e 00 80 41 59 00 00 (length=25)
    [ 3969.151341] mceusb 1-1.2:1.0: Raw IR data, 24 pulse/space samples
    [ 3969.151348] mceusb 1-1.2:1.0: Storing space with duration 500000
    
    Bug trigger appears to be normal, but heavy, IR receiver use.
    
    Signed-off-by: A Sun <as1033x@comcast.net>
    Signed-off-by: Sean Young <sean@mess.org>
    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 7c484e3bcf10c9a83e78fe77fc3d4d0b8074b12c
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 10:06:36 2017 -0300

    cx25840: fix unchecked return values
    
    
    [ Upstream commit 35378ce143071c2a6bad4b59a000e9b9f8f6ea67 ]
    
    In functions cx25840_initialize(), cx231xx_initialize(), and
    cx23885_initialize(), the return value of create_singlethread_workqueue()
    is used without validation. This may result in NULL dereference and cause
    kernel crash. This patch fixes it.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.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 20c29d92ce653c216e1adb892bcb04846871d537
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri May 5 08:34:58 2017 +0300

    cxl: Unlock on error in probe
    
    
    [ Upstream commit 58d876fa7181f2f393190c1d32c056b5a9d34aa2 ]
    
    We should unlock if get_cxl_adapter() fails.
    
    Fixes: 594ff7d067ca ("cxl: Support to flash a new image on the adapter from a guest")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.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 f07ce2798efa11713d032513096f1912f2b1916f
Author: Jacob Keller <jacob.e.keller@intel.com>
Date:   Wed May 3 10:28:52 2017 -0700

    igb: fix race condition with PTP_TX_IN_PROGRESS bits
    
    
    [ Upstream commit 4ccdc013b0ae04755a8f7905e0525955d52a77d0 ]
    
    Hardware related to the igb driver has a limitation of only handling one
    Tx timestamp at a time. Thus, the driver uses a state bit lock to
    enforce that only one timestamp request is honored at a time.
    
    Unfortunately this suffers from a simple race condition. The bit lock is
    not cleared until after skb_tstamp_tx() is called notifying the stack of
    a new Tx timestamp. Even a well behaved application which sends only one
    timestamp request at once and waits for a response might wake up and
    send a new packet before the bit lock is cleared. This results in
    needlessly dropping some Tx timestamp requests.
    
    We can fix this by unlocking the state bit as soon as we read the
    Timestamp register, as this is the first point at which it is safe to
    unlock.
    
    To avoid issues with the skb pointer, we'll use a copy of the pointer
    and set the global variable in the driver structure to NULL first. This
    ensures that the next timestamp request does not modify our local copy
    of the skb pointer.
    
    This ensures that well behaved applications do not accidentally race
    with the unlock bit. Obviously an application which sends multiple Tx
    timestamp requests at once will still only timestamp one packet at
    a time. Unfortunately there is nothing we can do about this.
    
    Reported-by: David Mirabito <davidm@metamako.com>
    Signed-off-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 5b81fa9664ca252010ddfcffb7d61bde3642c966
Author: Jacob Keller <jacob.e.keller@intel.com>
Date:   Wed May 3 10:28:50 2017 -0700

    e1000e: fix race condition around skb_tstamp_tx()
    
    
    [ Upstream commit 5012863b7347866764c4a4e58b62fb05346b0d06 ]
    
    The e1000e driver and related hardware has a limitation on Tx PTP
    packets which requires we limit to timestamping a single packet at once.
    We do this by verifying that we never request a new Tx timestamp while
    we still have a tx_hwtstamp_skb pointer.
    
    Unfortunately the driver suffers from a race condition around this. The
    tx_hwtstamp_skb pointer is not set to NULL until after skb_tstamp_tx()
    is called. This function notifies the stack and applications of a new
    timestamp. Even a well behaved application that only sends a new request
    when the first one is finished might be woken up and possibly send
    a packet before we can free the timestamp in the driver again. The
    result is that we needlessly ignore some Tx timestamp requests in this
    corner case.
    
    Fix this by assigning the tx_hwtstamp_skb pointer prior to calling
    skb_tstamp_tx() and use a temporary pointer to hold the timestamped skb
    until that function finishes. This ensures that the application is not
    woken up until the driver is ready to begin timestamping a new packet.
    
    This ensures that well behaved applications do not accidentally race
    with condition to skip Tx timestamps. Obviously an application which
    sends multiple Tx timestamp requests at once will still only timestamp
    one packet at a time. Unfortunately there is nothing we can do about
    this.
    
    Reported-by: David Mirabito <davidm@metamako.com>
    Signed-off-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 017c118c7534f36b5a6db3079266024a4a667135
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Tue May 2 21:19:24 2017 +0200

    ARM: dts: qcom: ipq4019: fix i2c_0 node
    
    
    [ Upstream commit 650df439cfb96c303328935559b2d06127a5a0b0 ]
    
    This patch fixes two typos in the i2c_0 node for the ipq4019.
    The reg property length is just 0x600. The core clock is
    GCC_BLSP1_QUP1_I2C_APPS_CLK. GCC_BLSP1_QUP2_I2C_APPS_CLK is
    used by the second i2c.
    
    Fixes: e76b4284b520ba3 ("qcom: ipq4019: add i2c node to ipq4019 SoC and DK01 device tree")
    Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
    Signed-off-by: Andy Gross <andy.gross@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8339488663f23b7d59413f756a6507879d83b4bf
Author: Robert Jarzmik <robert.jarzmik@free.fr>
Date:   Mon Jun 5 13:59:15 2017 +0200

    tags: honor COMPILED_SOURCE with apart output directory
    
    
    [ Upstream commit cbf52a3e6a8a92beec6e0c70abf4111cd8f8faf7 ]
    
    When the kernel is compiled with an "O=" argument, the object files are
    not in the source tree, but in the build tree.
    
    This patch fixes O= build by looking for object files in the build tree.
    
    Fixes: 923e02ecf3f8 ("scripts/tags.sh: Support compiled source")
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d85c2a32c413be3e37b39337a927a8872ebb4a5
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Tue Apr 25 10:18:10 2017 +0300

    iwlwifi: fix min API version for 7265D, 3168, 8000 and 8265
    
    
    [ Upstream commit 15098803d38778070b8edfa5a3d5fc4fef10d0a1 ]
    
    In a previous commit, we removed support for API versions earlier than
    22 for these NICs.  By mistake, the *_UCODE_API_MIN definitions were
    set to 17.  Fix that.
    
    Fixes: 4b87e5af638b ("iwlwifi: remove support for fw older than -17 and -22")
    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 9345b98879420bde44fa448ad8d9d04e47d18835
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Fri Mar 24 11:01:45 2017 +0200

    iwlwifi: pcie: only use d0i3 in suspend/resume if system_pm is set to d0i3
    
    
    [ Upstream commit e4c49c4937951de1cdbe35572ade40c948dec1e1 ]
    
    We only need to handle d0i3 entry and exit during suspend resume if
    system_pm is set to IWL_PLAT_PM_MODE_D0I3, otherwise d0i3 entry
    failures will cause suspend to fail.
    
    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=194791
    
    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 87a9c569fea9d88a5a47064a9fb6720707010114
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Mar 22 22:00:10 2017 +0100

    iwlwifi: tt: move ucode_loaded check under mutex
    
    
    [ Upstream commit d9954405758a0cbbe258d9b4d4dc12a06fa48a28 ]
    
    The ucode_loaded check should be under the mutex, since it can
    otherwise change state after we looked at it and before we got
    the mutex. Fix that.
    
    Fixes: 5c89e7bc557e ("iwlwifi: mvm: add registration to cooling device")
    Signed-off-by: Johannes Berg <johannes.berg@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 6dc9a4b33b355c4bddb994b0abf1982a798ea1f4
Author: Haim Dreyfuss <haim.dreyfuss@intel.com>
Date:   Thu Mar 16 17:26:03 2017 +0200

    iwlwifi: mvm: Fix command queue number on d0i3 flow
    
    
    [ Upstream commit c72c37b7f392ad7edc10b6092fa48c632ba6f4ed ]
    
    During d0i3 flow we flush all the queue except from the command queue.
    Currently, in this flow the command queue is hard coded to 9.
    In DQA the command queue number has changed from 9 to 0.
    Fix that.
    
    This fixes a problem in runtime PM resume flow.
    
    Fixes: 097129c9e625 ("iwlwifi: mvm: move cmd queue to be #0 in dqa mode")
    Signed-off-by: Haim Dreyfuss <haim.dreyfuss@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 c3a1c5ab6ccef80768c445bc583d0b94248cda78
Author: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Date:   Mon Apr 17 22:37:05 2017 +0200

    watchdog: f71808e_wdt: Add F71868 support
    
    
    [ Upstream commit 166fbcf88fdafa02f784ec25ac64745c716b2de0 ]
    
    This adds support for watchdog part of Fintek F71868 Super I/O chip to
    f71808e_wdt driver.
    
    The F71868 chip is, in general, very similar to a F71869, however it has
    slightly different set of available reset pulse widths.
    
    Tested on MSI A55M-P33 motherboard.
    
    Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    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 fe587505e7d566982717493ddc95b935de81047c
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Mar 29 10:21:09 2017 +0300

    iwlwifi: mvm: fix firmware debug restart recording
    
    
    [ Upstream commit addce854f164a68da9cb158e2e7e447705068549 ]
    
    When we want to stop the recording of the firmware debug
    and restart it later without reloading the firmware we
    don't need to resend the configuration that comes with
    host commands.
    Sending those commands confused the hardware and led to
    an NMI 0x66.
    
    Change the flow as following:
    * read the relevant registers (DBGC_IN_SAMPLE, DBGC_OUT_CTRL)
    * clear those registers
    * wait for the hardware to complete its write to the buffer
    * get the data
    * restore the value of those registers (to restart the
      recording)
    
    For early start (where the configuration is already
    compiled in the firmware), we don't need to set those
    registers after the firmware has been loaded, but only
    when we want to restart the recording without having
    restarted the firmware.
    
    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 aee0f56512ca2395544e5b1ab4defcc2b9dc6bc6
Author: Milian Wolff <milian.wolff@kdab.com>
Date:   Fri Jun 2 16:37:52 2017 +0200

    perf report: Ensure the perf DSO mapping matches what libdw sees
    
    
    [ Upstream commit 2538b9e2450ae255337c04356e9e0f8cb9ec48d9 ]
    
    In some situations the libdw unwinder stopped working properly.  I.e.
    with libunwind we see:
    
    ~~~~~
    heaptrack_gui  2228 135073.400112:     641314 cycles:
                        e8ed _dl_fixup (/usr/lib/ld-2.25.so)
                       15f06 _dl_runtime_resolve_sse_vex (/usr/lib/ld-2.25.so)
                       ed94c KDynamicJobTracker::KDynamicJobTracker (/home/milian/projects/compiled/kf5/lib64/libKF5KIOWidgets.so.5.35.0)
                       608f3 _GLOBAL__sub_I_kdynamicjobtracker.cpp (/home/milian/projects/compiled/kf5/lib64/libKF5KIOWidgets.so.5.35.0)
                        f199 call_init.part.0 (/usr/lib/ld-2.25.so)
                        f2a5 _dl_init (/usr/lib/ld-2.25.so)
                         db9 _dl_start_user (/usr/lib/ld-2.25.so)
    ~~~~~
    
    But with libdw and without this patch this sample is not properly
    unwound:
    
    ~~~~~
    heaptrack_gui  2228 135073.400112:     641314 cycles:
                        e8ed _dl_fixup (/usr/lib/ld-2.25.so)
                       15f06 _dl_runtime_resolve_sse_vex (/usr/lib/ld-2.25.so)
                       ed94c KDynamicJobTracker::KDynamicJobTracker (/home/milian/projects/compiled/kf5/lib64/libKF5KIOWidgets.so.5.35.0)
    ~~~~~
    
    Debug output showed me that libdw found a module for the last frame
    address, but it thinks it belongs to /usr/lib/ld-2.25.so. This patch
    double-checks what libdw sees and what perf knows. If the mappings
    mismatch, we now report the elf known to perf. This fixes the situation
    above, and the libdw unwinder produces the same stack as libunwind.
    
    Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lkml.kernel.org/r/20170602143753.16907-1-milian.wolff@kdab.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 81da672aec5eb159835fafaac8b9ebefcba27452
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Wed May 31 21:01:03 2017 +0900

    perf header: Set proper module name when build-id event found
    
    
    [ Upstream commit 1deec1bd96ccd8beb04d2112a6d12fe20505c3a6 ]
    
    When perf processes build-id event, it creates DSOs with the build-id.
    But it didn't set the module short name (like '[module-name]') so when
    processing a kernel mmap event of the module, it cannot found the DSO as
    it only checks the short names.
    
    That leads for perf to create a same DSO without the build-id info and
    it'll lookup the system path even if the DSO is already in the build-id
    cache.  After kernel was updated, perf cannot find the DSO  and cannot
    show symbols in it anymore.
    
    You can see this if you have an old data file (w/ old kernel version):
    
      $ perf report -i perf.data.old -v |& grep scsi_mod
      build id event received for /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz : cafe1ce6ca13a98a5d9ed3425cde249e57a27fc1
      Failed to open /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz, continuing without symbols
      ...
    
    The second message didn't show the build-id.  With this patch:
    
      $ perf report -i perf.data.old -v |& grep scsi_mod
      build id event received for /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz: cafe1ce6ca13a98a5d9ed3425cde249e57a27fc1
      /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz with build id cafe1ce6ca13a98a5d9ed3425cde249e57a27fc1 not found, continuing without symbols
      ...
    
    Now it shows the build-id but still cannot load the symbol table.  This
    is a different problem which will be fixed in the next patch.
    
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170531120105.21731-1-namhyung@kernel.org
    [ Fix the build on older compilers (debian <= 8, fedora <= 21, etc) wrt kmod_path var init ]
    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 5366c5ff9e13d6362408e25ced761f3228de7b60
Author: Ido Shamay <idos@mellanox.com>
Date:   Mon Jun 5 10:44:56 2017 +0300

    net/mlx4: Check if Granular QoS per VF has been enabled before updating QP qos_vport
    
    
    [ Upstream commit 269f9883fe254d109afdfc657875c456d6fabb08 ]
    
    The Granular QoS per VF feature must be enabled in FW before it can be
    used.
    
    Thus, the driver cannot modify a QP's qos_vport value (via the UPDATE_QP FW
    command) if the feature has not been enabled -- the FW returns an error if
    this is attempted.
    
    Fixes: 08068cd5683f ("net/mlx4: Added qos_vport QP configuration in VST mode")
    Signed-off-by: Ido Shamay <idos@mellanox.com>
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.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 eec6e0a4b168b26f99b91c58dc17f948deaa9d9f
Author: Talat Batheesh <talatb@mellanox.com>
Date:   Sun Jun 4 14:30:07 2017 +0300

    net/mlx4: Fix the check in attaching steering rules
    
    
    [ Upstream commit 6dc06c08bef1c746ff8da33dab677cfbacdcad32 ]
    
    Our previous patch (cited below) introduced a regression
    for RAW Eth QPs.
    
    Fix it by checking if the QP number provided by user-space
    exists, hence allowing steering rules to be added for valid
    QPs only.
    
    Fixes: 89c557687a32 ("net/mlx4_en: Avoid adding steering rules with invalid ring")
    Reported-by: Or Gerlitz <gerlitz.or@gmail.com>
    Signed-off-by: Talat Batheesh <talatb@mellanox.com>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Acked-by: Or Gerlitz <ogerlitz@mellanox.com>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.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 92b86857ed7e8be6843d216fefe2178b172dbf63
Author: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
Date:   Sun Jun 4 14:43:43 2017 +0800

    sit: reload iphdr in ipip6_rcv
    
    
    [ Upstream commit b699d0035836f6712917a41e7ae58d84359b8ff9 ]
    
    Since iptunnel_pull_header() can call pskb_may_pull(),
    we must reload any pointer that was related to skb->head.
    
    Fixes: a09a4c8dd1ec ("tunnels: Remove encapsulation offloads on decap")
    Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.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 6083f1625b75a9c711ab14e95f581fc2bb8e3710
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Jun 4 04:16:25 2017 +0200

    macsec: check return value of skb_to_sgvec always
    
    
    [ Upstream commit cda7ea6903502af34015000e16be290a79f07638 ]
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Sabrina Dubroca <sd@queasysnail.net>
    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 2cd3aa5a3a7b4b24a2492087d054fdcc818ff53e
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Jun 4 04:16:22 2017 +0200

    skbuff: return -EMSGSIZE in skb_to_sgvec to prevent overflow
    
    
    [ Upstream commit 48a1df65334b74bd7531f932cca5928932abf769 ]
    
    This is a defense-in-depth measure in response to bugs like
    4d6fa57b4dab ("macsec: avoid heap overflow in skb_to_sgvec"). There's
    not only a potential overflow of sglist items, but also a stack overflow
    potential, so we fix this by limiting the amount of recursion this function
    is allowed to do. Not actually providing a bounded base case is a future
    disaster that we can easily avoid here.
    
    As a small matter of house keeping, we take this opportunity to move the
    documentation comment over the actual function the documentation is for.
    
    While this could be implemented by using an explicit stack of skbuffs,
    when implementing this, the function complexity increased considerably,
    and I don't think such complexity and bloat is actually worth it. So,
    instead I built this and tested it on x86, x86_64, ARM, ARM64, and MIPS,
    and measured the stack usage there. I also reverted the recent MIPS
    changes that give it a separate IRQ stack, so that I could experience
    some worst-case situations. I found that limiting it to 24 layers deep
    yielded a good stack usage with room for safety, as well as being much
    deeper than any driver actually ever creates.
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Sabrina Dubroca <sd@queasysnail.net>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@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 fdd62a4286fbbf811ff650b90b2ef6e4abfe6f77
Author: Liam McBirnie <mcbirnie.l@gmail.com>
Date:   Thu Jun 1 15:36:01 2017 +1000

    ip6_tunnel: fix traffic class routing for tunnels
    
    
    [ Upstream commit 5f733ee68f9a4df94775299ac6a7ab260704f6ed ]
    
    ip6_route_output() requires that the flowlabel contains the traffic
    class for policy routing.
    
    Commit 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on
    encapsulated packets") removed the code which previously added the
    traffic class to the flowlabel.
    
    The traffic class is added here because only route lookup needs the
    flowlabel to contain the traffic class.
    
    Fixes: 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets")
    Signed-off-by: Liam McBirnie <liam.mcbirnie@boeing.com>
    Acked-by: Peter Dawson <peter.a.dawson@boeing.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 7f851311e4d1e7bd60a5a9a2e761aba178f8bdae
Author: Dmitry Monakhov <dmonakhov@openvz.org>
Date:   Wed May 10 19:20:44 2017 +0400

    bio-integrity: Do not allocate integrity context for bio w/o data
    
    
    [ Upstream commit 3116a23bb30272d74ea81baf5d0ee23f602dd15b ]
    
    If bio has no data, such as ones from blkdev_issue_flush(),
    then we have nothing to protect.
    
    This patch prevent bugon like follows:
    
    kfree_debugcheck: out of range ptr ac1fa1d106742a5ah
    kernel BUG at mm/slab.c:2773!
    invalid opcode: 0000 [#1] SMP
    Modules linked in: bcache
    CPU: 0 PID: 4428 Comm: xfs_io Tainted: G        W       4.11.0-rc4-ext4-00041-g2ef0043-dirty #43
    Hardware name: Virtuozzo KVM, BIOS seabios-1.7.5-11.vz7.4 04/01/2014
    task: ffff880137786440 task.stack: ffffc90000ba8000
    RIP: 0010:kfree_debugcheck+0x25/0x2a
    RSP: 0018:ffffc90000babde0 EFLAGS: 00010082
    RAX: 0000000000000034 RBX: ac1fa1d106742a5a RCX: 0000000000000007
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88013f3ccb40
    RBP: ffffc90000babde8 R08: 0000000000000000 R09: 0000000000000000
    R10: 00000000fcb76420 R11: 00000000725172ed R12: 0000000000000282
    R13: ffffffff8150e766 R14: ffff88013a145e00 R15: 0000000000000001
    FS:  00007fb09384bf40(0000) GS:ffff88013f200000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fd0172f9e40 CR3: 0000000137fa9000 CR4: 00000000000006f0
    Call Trace:
     kfree+0xc8/0x1b3
     bio_integrity_free+0xc3/0x16b
     bio_free+0x25/0x66
     bio_put+0x14/0x26
     blkdev_issue_flush+0x7a/0x85
     blkdev_fsync+0x35/0x42
     vfs_fsync_range+0x8e/0x9f
     vfs_fsync+0x1c/0x1e
     do_fsync+0x31/0x4a
     SyS_fsync+0x10/0x14
     entry_SYSCALL_64_fastpath+0x1f/0xc2
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.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 e8b356ae7876d4661aee3d307fc2dedd46aa1f42
Author: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Date:   Wed May 31 22:21:03 2017 +0200

    Fix serial console on SNI RM400 machines
    
    
    [ Upstream commit e279e6d98e0cf2c2fe008b3c29042b92f0e17b1d ]
    
    sccnxp driver doesn't get the correct uart clock rate, if CONFIG_HAVE_CLOCK
    is disabled. Correct usage of clk API to make it work with/without it.
    
    Fixes: 90efa75f7ab0 (serial: sccnxp: Using CLK API for getting UART clock)
    
    Suggested-by: Russell King - ARM Linux <linux@armlinux.org.uk>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    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 6b3c6821f0ebb3153f05fe78f165ea000847270b
Author: Ganesh Goudar <ganeshgr@chelsio.com>
Date:   Wed May 31 19:10:21 2017 +0530

    cxgb4: fix incorrect cim_la output for T6
    
    
    [ Upstream commit a97051f4553551d13e586ab3cb6ae13093a44a81 ]
    
    take care of UpDbgLaRdPtr[0-3] restriction for T6.
    
    Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.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 31462de6ba1d0a60299665ef40caeaf517bfd632
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Fri Mar 10 11:37:01 2017 +0100

    powerpc/8xx: fix mpc8xx_get_irq() return on no irq
    
    
    [ Upstream commit 3c29b6038828c1f4c9ecbfec14d4fc5e25f1c947 ]
    
    IRQ 0 is a valid HW interrupt. So get_irq() shall return 0 when
    there is no irq, instead of returning irq_linear_revmap(... ,0)
    
    Fixes: f2a0bd3753dad ("[POWERPC] 8xx: powerpc port of core CPM PIC")
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    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 80c9698bd6a8f0385167c20eccd8d9dda25577a0
Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
Date:   Thu May 18 11:51:51 2017 +0300

    drm/omap: fix tiled buffer stride calculations
    
    
    [ Upstream commit cc8dd7661ccc2d8dc88921da8e6cc7c2fcdb0341 ]
    
    omap_gem uses page alignment for buffer stride. The related calculations
    are a bit off, though, as byte stride of 4096 gets aligned to 8192,
    instead of 4096.
    
    This patch changes the code to use DIV_ROUND_UP(), which fixes those
    calculations and makes them more readable.
    
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4581de2bfa6f8aeb03cd7bd28a2a4d6246b67c51
Author: Steven L. Roberts <robers97@gmail.com>
Date:   Wed May 10 10:54:12 2017 -0500

    RDMA/hfi1: fix array termination by appending NULL to attr array
    
    
    [ Upstream commit c4dd4b69f55abcc8dd079f8de55d9d8c2ddbefce ]
    
    This fixes a kernel panic when loading the hfi driver as a dynamic module.
    
    Signed-off-by: Steven L Roberts <robers97@gmail.com>
    Reviewed-by: Leon Romanovsky <leon@kernel.org>
    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 9d4aa135e44ecee5c295891aea97f86eb234ff77
Author: Raju Rangoju <rajur@chelsio.com>
Date:   Mon May 15 06:40:39 2017 +0000

    RDMA/iw_cxgb4: Avoid touch after free error in ARP failure handlers
    
    
    [ Upstream commit 1dad0ebeea1cd890b8892523f736916e245b0aef ]
    
    The patch 761e19a504af (RDMA/iw_cxgb4: Handle return value of
    c4iw_ofld_send() in abort_arp_failure()) from May 6, 2016
    leads to the following static checker warning:
            drivers/infiniband/hw/cxgb4/cm.c:575 abort_arp_failure()
            warn: passing freed memory 'skb'
    
    Also fixes skb leak when l2t resolution fails
    
    Fixes: 761e19a504afa55 (RDMA/iw_cxgb4: Handle return value of
    c4iw_ofld_send() in abort_arp_failure())
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Raju Rangoju <rajur@chelsio.com>
    Reviewed-by: Steve Wise <swise@opengridcomputing.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 d7ba3c00047dfd88fe0360a2d27169b54c88c4f1
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Wed May 31 13:29:30 2017 +0300

    net: phy: micrel: Restore led_mode and clk_sel on resume
    
    
    [ Upstream commit 79e498a9c7da0737829ff864aae44df434105676 ]
    
    These bits seem to be lost after a suspend/resume cycle so just set them
    again. Do this by splitting the handling of these bits into a function
    that is also called on resume.
    
    This patch fixes ethernet suspend/resume on imx6ul-14x14-evk boards.
    
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.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 96770d43016bbb1f0491c2611f0a5e07092101f2
Author: Jia-Ju Bai <baijiaju1990@163.com>
Date:   Wed May 31 15:08:25 2017 +0800

    mISDN: Fix a sleep-in-atomic bug
    
    
    [ Upstream commit 93818da5eed63fbc17b64080406ea53b86b23309 ]
    
    The driver may sleep under a read spin lock, and the function call path is:
    send_socklist (acquire the lock by read_lock)
      skb_copy(GFP_KERNEL) --> may sleep
    
    To fix it, the "GFP_KERNEL" is replaced with "GFP_ATOMIC".
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@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 50f48039a7bd246aeafdb6733d406ab7c1a6a96a
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Fri May 19 16:42:00 2017 +0100

    arm64: kernel: restrict /dev/mem read() calls to linear region
    
    
    [ Upstream commit 1151f838cb626005f4d69bf675dacaaa5ea909d6 ]
    
    When running lscpu on an AArch64 system that has SMBIOS version 2.0
    tables, it will segfault in the following way:
    
      Unable to handle kernel paging request at virtual address ffff8000bfff0000
      pgd = ffff8000f9615000
      [ffff8000bfff0000] *pgd=0000000000000000
      Internal error: Oops: 96000007 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 0 PID: 1284 Comm: lscpu Not tainted 4.11.0-rc3+ #103
      Hardware name: QEMU QEMU Virtual Machine, BIOS 0.0.0 02/06/2015
      task: ffff8000fa78e800 task.stack: ffff8000f9780000
      PC is at __arch_copy_to_user+0x90/0x220
      LR is at read_mem+0xcc/0x140
    
    This is caused by the fact that lspci issues a read() on /dev/mem at the
    offset where it expects to find the SMBIOS structure array. However, this
    region is classified as EFI_RUNTIME_SERVICE_DATA (as per the UEFI spec),
    and so it is omitted from the linear mapping.
    
    So let's restrict /dev/mem read/write access to those areas that are
    covered by the linear region.
    
    Reported-by: Alexander Graf <agraf@suse.de>
    Fixes: 4dffbfc48d65 ("arm64/efi: mark UEFI reserved regions as MEMBLOCK_NOMAP")
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d78b198c02c4276ad93af106f7f38904bd45d6cb
Author: Jia-Ju Bai <baijiaju1990@163.com>
Date:   Thu Jun 1 16:18:10 2017 +0800

    qlcnic: Fix a sleep-in-atomic bug in qlcnic_82xx_hw_write_wx_2M and qlcnic_82xx_hw_read_wx_2M
    
    
    [ Upstream commit 5ea6d691aac6c93b790f0905e3460d44cc4c449b ]
    
    The driver may sleep under a write spin lock, and the function
    call path is:
    qlcnic_82xx_hw_write_wx_2M (acquire the lock by write_lock_irqsave)
      crb_win_lock
        qlcnic_pcie_sem_lock
          usleep_range
    qlcnic_82xx_hw_read_wx_2M (acquire the lock by write_lock_irqsave)
      crb_win_lock
        qlcnic_pcie_sem_lock
          usleep_range
    
    To fix it, the usleep_range is replaced with udelay.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@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 2761edad2fba4a3b4b02238b212f639b64b8e85a
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Wed May 31 13:35:57 2017 +0200

    perf trace: Add mmap alias for s390
    
    
    [ Upstream commit 54265664c15a68905d8d67d19205e9a767636434 ]
    
    The s390 architecture maps sys_mmap (nr 90) into sys_old_mmap.  For this
    reason perf trace can't find the proper syscall event to get args format
    from and displays it wrongly as 'continued'.
    
    To fix that fill the "alias" field with "old_mmap" for trace's mmap record
    to get the correct translation.
    
    Before:
         0.042 ( 0.011 ms): vest/43052 fstat(statbuf: 0x3ffff89fd90                ) = 0
         0.042 ( 0.028 ms): vest/43052  ... [continued]: mmap()) = 0x3fffd6e2000
         0.072 ( 0.025 ms): vest/43052 read(buf: 0x3fffd6e2000, count: 4096        ) = 6
    
    After:
         0.045 ( 0.011 ms): fstat(statbuf: 0x3ffff8a0930                           ) = 0
         0.057 ( 0.018 ms): mmap(arg: 0x3ffff8a0858                                ) = 0x3fffd14a000
         0.076 ( 0.025 ms): read(buf: 0x3fffd14a000, count: 4096                   ) = 6
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20170531113557.19175-1-jolsa@kernel.org
    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 a57608696560d40cfbc5d3aa486a4405e891b044
Author: Anilkumar Kolli <akolli@qti.qualcomm.com>
Date:   Wed May 31 14:21:27 2017 +0300

    ath10k: add BMI parameters to fix calibration from DT/pre-cal
    
    
    [ Upstream commit a9f5f287fa1d47d61dfa8b60f94831174b2ea4d0 ]
    
    QCA99X0, QCA9888, QCA9984 supports calibration data in
    either OTP or DT/pre-cal file. Current ath10k supports
    Calibration data from OTP only.
    
    If caldata is loaded from DT/pre-cal file, fetching board id
    and applying calibration parameters like tx power gets failed.
    
    error log:
    [   15.733663] ath10k_pci 0000:01:00.0: failed to fetch board file: -2
    [   15.741474] ath10k_pci 0000:01:00.0: could not probe fw (-2)
    
    This patch adds calibration data support from DT/pre-cal
    file.  Below parameters are used to get board id and
    applying calibration parameters from cal data.
    
                    EEPROM[OTP]     FLASH[DT/pre-cal file]
    Cal param       0x700           0x10000
    Board id        0x10            0x8000
    
    Tested on QCA9888 with pre-cal file.
    
    Signed-off-by: Anilkumar Kolli <akolli@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 00ceff917d1b5b945756579ba34482179f56ecf2
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jun 14 13:58:53 2017 +0300

    drm/amdkfd: NULL dereference involving create_process()
    
    
    [ Upstream commit b312b2b25b6ac9e2eb03f4ca651b33108752de3a ]
    
    We accidentally return ERR_PTR(0) which is NULL.  The caller is not
    expecting that and it leads to an Oops.
    
    Fixes: dd59239a9862 ("amdkfd: init aperture once per process")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc12167cc73ab05e97a9fda355e79d216b630661
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Mon May 29 20:26:07 2017 +1000

    powerpc/spufs: Fix coredump of SPU contexts
    
    
    [ Upstream commit 99acc9bede06bbb2662aafff51f5b9e529fa845e ]
    
    If a process dumps core while it has SPU contexts active then we have
    code to also dump information about the SPU contexts.
    
    Unfortunately it's been broken for 3 1/2 years, and we didn't notice. In
    commit 7b1f4020d0d1 ("spufs: get rid of dump_emit() wrappers") the nread
    variable was removed and rc used instead. That means when the loop exits
    successfully, rc has the number of bytes read, but it's then used as the
    return value for the function, which should return 0 on success.
    
    So fix it by setting rc = 0 before returning in the success case.
    
    Fixes: 7b1f4020d0d1 ("spufs: get rid of dump_emit() wrappers")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Acked-by: Jeremy Kerr <jk@ozlabs.org>
    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 df170185b8d393a047f95f1d2871192c3b414bf1
Author: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Date:   Mon May 15 11:58:59 2017 +0100

    clk: Fix __set_clk_rates error print-string
    
    
    [ Upstream commit ee177c5d6369f8e5d3e4793dce501cf4431313a1 ]
    
    When failing to set a clock the printout emitted is incorrect.
    "u32 rate" is formatted as %d and should be %u whereas "unsigned long
    clk_set_rate()" is formatted as %ld and should be %lu as per
    Documentation/printk-formats.txt.
    
    Fixes: 2885c3b2a3da ("clk: Show correct information when fail to set clock rate")
    Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
    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 82a19094f113b8177e920a48a4bb4cd1054c3142
Author: Sudeep Holla <sudeep.holla@arm.com>
Date:   Thu May 18 17:19:28 2017 +0100

    clk: scpi: fix return type of __scpi_dvfs_round_rate
    
    
    [ Upstream commit 7374aec95636ca39409545eba4ef5ff3125c2346 ]
    
    The frequencies above the maximum value of signed integer(i.e. 2^31 -1)
    will overflow with the current code.
    
    This patch fixes the return type of __scpi_dvfs_round_rate from 'int'
    to 'unsigned long'.
    
    Fixes: cd52c2a4b5c4 ("clk: add support for clocks provided by SCP(System Control Processor)")
    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.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 0a4546e716b200e47767f39ec44765884a6c6d63
Author: Roman Pen <roman.penyaev@profitbricks.com>
Date:   Thu Jun 1 10:55:03 2017 +0200

    KVM: SVM: do not zero out segment attributes if segment is unusable or not present
    
    
    [ Upstream commit d9c1b5431d5f0e07575db785a022bce91051ac1d ]
    
    This is a fix for the problem [1], where VMCB.CPL was set to 0 and interrupt
    was taken on userspace stack.  The root cause lies in the specific AMD CPU
    behaviour which manifests itself as unusable segment attributes on SYSRET.
    The corresponding work around for the kernel is the following:
    
    61f01dd941ba ("x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue")
    
    In other turn virtualization side treated unusable segment incorrectly and
    restored CPL from SS attributes, which were zeroed out few lines above.
    
    In current patch it is assured only that P bit is cleared in VMCB.save state
    and segment attributes are not zeroed out if segment is not presented or is
    unusable, therefore CPL can be safely restored from DPL field.
    
    This is only one part of the fix, since QEMU side should be fixed accordingly
    not to zero out attributes on its side.  Corresponding patch will follow.
    
    [1] Message id: CAJrWOzD6Xq==b-zYCDdFLgSRMPM-NkNuTSDFEtX=7MreT45i7Q@mail.gmail.com
    
    Signed-off-by: Roman Pen <roman.penyaev@profitbricks.com>
    Signed-off-by: Mikhail Sennikovskii <mikhail.sennikovskii@profitbricks.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim KrÄmář <rkrcmar@redhat.com>
    Cc: kvm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d0eb3f188e1de0fadaca05b413ea44c217fa7dd
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Thu May 25 13:50:20 2017 +0900

    mtd: nand: check ecc->total sanity in nand_scan_tail
    
    
    [ Upstream commit 79e0348c4e24fd1affdcf055e0269755580e0fcc ]
    
    Drivers are supposed to set correct ecc->{size,strength,bytes} before
    calling nand_scan_tail(), but it does not complain about ecc->total
    bigger than oobsize.
    
    In this case, chip->scan_bbt() crashes due to memory corruption, but
    it is hard to debug.  It would be kind to fail it earlier with a clear
    message.
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bf4782062a0a0f6b9ca68f3f6625e1a5fe455fc
Author: Boris Brezillon <boris.brezillon@free-electrons.com>
Date:   Mon Apr 10 10:35:17 2017 +0200

    mtd: nand: gpmi: Fix gpmi_nand_init() error path
    
    
    [ Upstream commit 4d02423e9afe6c46142ce98bbcaf5167316dbfbf ]
    
    The GPMI driver is wrongly assuming that nand_release() can safely be
    called on an uninitialized/unregistered NAND device.
    
    Add a new err_nand_cleanup label in the error path and only execute if
    nand_scan_tail() succeeded.
    
    Note that we now call nand_cleanup() instead of nand_release()
    (nand_release() is actually grouping the mtd_device_unregister() and
    nand_cleanup() in one call) because there's no point in trying to
    unregister a device that has never been registered.
    
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
    Acked-by: Han Xu <han.xu@nxp.com>
    Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed82ab87e13899458dda17d52a11e5b63fc15582
Author: Maxime Ripard <maxime.ripard@free-electrons.com>
Date:   Sat May 27 18:09:34 2017 +0200

    dt-bindings: display: sun4i: Add allwinner,tcon-channel property
    
    
    [ Upstream commit 22662f12768f971809b478386d9cc4947d00497a ]
    
    The Allwinner Timings Controller has two, mutually exclusive, channels.
    When the binding has been introduced, it was assumed that there would be
    only a single user per channel in the system.
    
    While this is likely for the channel 0 which only connects to LCD displays,
    it turns out that the channel 1 can be connected to multiple controllers in
    the SoC (HDMI and TV encoders for example). And while the simultaneous use
    of HDMI and TV outputs cannot be achieved, switching from one to the other
    at runtime definitely sounds plausible.
    
    Add an extra property, allwinner,tcon-channel, to specify for a given
    endpoint which TCON channel it is connected to, while falling back to the
    previous mechanism if that property is missing.
    
    Acked-by: Chen-Yu Tsai <wens@csie.org>
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d0c9ead6fd8d9a74c8743ab14b1ddc7c8072a49
Author: Maxime Ripard <maxime.ripard@free-electrons.com>
Date:   Sat May 27 18:09:32 2017 +0200

    drm/sun4i: Ignore the generic connectors for components
    
    
    [ Upstream commit 49baeb074783f5bdf770dc9fac5fbb2837190583 ]
    
    The generic connectors such as hdmi-connector doesn't have any driver in,
    so if they are added to the component list, we will be waiting forever for
    a non-existing driver to probe.
    
    Add a list of the connectors we want to ignore when building our component
    list.
    
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 903ad1a90d3bda38028b2dc05af0e0e4814543f4
Author: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Date:   Fri May 12 16:25:30 2017 +0200

    clk: at91: fix clk-generated parenting
    
    
    [ Upstream commit 8e56133e5c7b7a7a97f6a92d92f664d5ecd30745 ]
    
    clk_generated_startup is called after clk_hw_register. So the first call to
    get_parent will not have the correct value (i.e. 0) and because this is
    cached, it may never be updated.
    
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Fixes: df70aeef6083 ("clk: at91: add generated clock driver")
    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 2630e187b92af7e59bbb2b9702bbc2ac42b59fec
Author: Gustavo A. R. Silva <garsilva@embeddedor.com>
Date:   Tue May 30 17:38:43 2017 -0500

    net: freescale: fix potential null pointer dereference
    
    
    [ Upstream commit 06d2d6431bc8d41ef5ffd8bd4b52cea9f72aed22 ]
    
    Add NULL check before dereferencing pointer _id_ in order to avoid
    a potential NULL pointer dereference.
    
    Addresses-Coverity-ID: 1397995
    Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.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 67eed62b4dd22d388dbc55ec9b5e0077f67305de
Author: NeilBrown <neilb@suse.com>
Date:   Thu May 25 17:00:32 2017 +1000

    SUNRPC: ensure correct error is reported by xs_tcp_setup_socket()
    
    
    [ Upstream commit 6ea44adce91526700535b3150f77f8639ae8c82d ]
    
    If you attempt a TCP mount from an host that is unreachable in a way
    that triggers an immediate error from kernel_connect(), that error
    does not propagate up, instead EAGAIN is reported.
    
    This results in call_connect_status receiving the wrong error.
    
    A case that it easy to demonstrate is to attempt to mount from an
    address that results in ENETUNREACH, but first deleting any default
    route.
    Without this patch, the mount.nfs process is persistently runnable
    and is hard to kill.  With this patch it exits as it should.
    
    The problem is caused by the fact that xs_tcp_force_close() eventually
    calls
          xprt_wake_pending_tasks(xprt, -EAGAIN);
    which causes an error return of -EAGAIN.  so when xs_tcp_setup_sock()
    calls
          xprt_wake_pending_tasks(xprt, status);
    the status is ignored.
    
    Fixes: 4efdd92c9211 ("SUNRPC: Remove TCP client connection reset hack")
    Signed-off-by: NeilBrown <neilb@suse.com>
    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 d5cbc16656aee364a80af20a476d23bd11301225
Author: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Date:   Fri May 19 22:18:55 2017 +0530

    rtc: interface: Validate alarm-time before handling rollover
    
    
    [ Upstream commit da96aea0ed177105cb13ee83b328f6c61e061d3f ]
    
    In function __rtc_read_alarm() its possible for an alarm time-stamp to
    be invalid even after replacing missing components with current
    time-stamp. The condition 'alarm->time.tm_year < 70' will trigger this
    case and will cause the call to 'rtc_tm_to_time64(&alarm->time)'
    return a negative value for variable t_alm.
    
    While handling alarm rollover this negative t_alm (assumed to seconds
    offset from '1970-01-01 00:00:00') is converted back to rtc_time via
    rtc_time64_to_tm() which results in this error log with seemingly
    garbage values:
    
    "rtc rtc0: invalid alarm value: -2-1--1041528741
    2005511117:71582844:32"
    
    This error was generated when the rtc driver (rtc-opal in this case)
    returned an alarm time-stamp of '00-00-00 00:00:00' to indicate that
    the alarm is disabled. Though I have submitted a separate fix for the
    rtc-opal driver, this issue may potentially impact other
    existing/future rtc drivers.
    
    To fix this issue the patch validates the alarm time-stamp just after
    filling up the missing datetime components and if rtc_valid_tm() still
    reports it to be invalid then bails out of the function without
    handling the rollover.
    
    Reported-by: Steve Best <sbest@redhat.com>
    Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.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 e1dcd000c8f4f8f1e294049d1bde596799cae83f
Author: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Date:   Fri May 19 15:35:09 2017 +0530

    rtc: opal: Handle disabled TPO in opal_get_tpo_time()
    
    
    [ Upstream commit 6dc1cf6f932bb0ea4d8f5e913a0a401ecacd2f03 ]
    
    On PowerNV platform when Timed-Power-On(TPO) is disabled, read of
    stored TPO yields value with all date components set to '0' inside
    opal_get_tpo_time(). The function opal_to_tm() then converts it to an
    offset from year 1900 yielding alarm-time == "1900-00-01
    00:00:00". This causes problems with __rtc_read_alarm() that
    expecting an offset from "1970-00-01 00:00:00" and returned alarm-time
    results in a -ve value for time64_t. Which ultimately results in this
    error reported in kernel logs with a seemingly garbage value:
    
    "rtc rtc0: invalid alarm value: -2-1--1041528741
    2005511117:71582844:32"
    
    We fix this by explicitly handling the case of all alarm date-time
    components being '0' inside opal_get_tpo_time() and returning -ENOENT
    in such a case. This signals generic rtc that no alarm is set and it
    bails out from the alarm initialization flow without reporting the
    above error.
    
    Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
    Reported-by: Steve Best <sbest@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 3ac7598acbb6affbfe24dfca86a29626f268baaf
Author: Jesse Brandeburg <jesse.brandeburg@intel.com>
Date:   Fri Apr 28 16:53:16 2017 -0700

    i40evf: fix merge error in older patch
    
    
    [ Upstream commit 155b0f690051345deefc653774b739c786067d61 ]
    
    This patch fixes a missing line that was missed while merging,
    which results in a driver feature in the VF not working to
    enable RSS as a negotiated feature.
    
    Fixes: 43a3d9ba34c9c ("i40evf: Allow PF driver to configure RSS")
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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 2c90ca5c196b68b2b453d1b37cebda35d068ae89
Author: Gary Bisson <gary.bisson@boundarydevices.com>
Date:   Tue Apr 25 16:45:15 2017 +0200

    rtc: m41t80: fix SQW dividers override when setting a date
    
    
    [ Upstream commit 0f546b058b86ea2f661cc7a6e931cee5a29959ef ]
    
    This patch is only relevant for RTC with the SQ_ALT feature which
    means the clock output frequency divider is stored in the weekday
    register.
    
    Current implementation discards the previous dividers value and clear
    them as soon as the time is set.
    
    Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.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 489b11ae30afc7b1315559613b7d0abf7249dd4f
Author: Arjun Vynipadath <arjun@chelsio.com>
Date:   Tue May 30 13:30:24 2017 +0530

    cxgb4: Fix netdev_features flag
    
    
    [ Upstream commit 90592b9a35836bacd34d92a3aba7958756b6a7c0 ]
    
    GRO is not supported by Chelsio HW when rx_csum is disabled.
    Update the netdev features flag when rx_csum is modified.
    
    Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
    Signed-off-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.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 6cd7b51283df0615a223f527e0721be1058ae36e
Author: Arjun Vynipadath <arjun@chelsio.com>
Date:   Tue May 30 18:06:06 2017 +0530

    cxgb4: FW upgrade fixes
    
    
    [ Upstream commit 26747211486c5bc7dd014c3caab206576e00c0d0 ]
    
    Disable FW_OK flag while flashing Firmware. This will help to fix any
    potential mailbox timeouts during Firmware flash.
    
    Grab new devlog parameters after Firmware restart. When we FLASH new
    Firmware onto an adapter, the new Firmware may have the Firmware Device Log
    located at a different memory address or have a different size for it.
    
    Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
    Signed-off-by: Casey Leedom <leedom@chelsio.com>
    Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.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 ecbd702dec3d9d096217b0125cbac66054bd1214
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon May 29 15:00:17 2017 +0200

    net/mlx5: avoid build warning for uniprocessor
    
    
    [ Upstream commit f0d7ae95fff4ab444b8433f07afc4b077ef1a285 ]
    
    Building the driver with CONFIG_SMP disabled results in a harmless
    warning:
    
    ethernet/mellanox/mlx5/core/main.c: In function 'mlx5_irq_set_affinity_hint':
    ethernet/mellanox/mlx5/core/main.c:615:6: error: unused variable 'irq' [-Werror=unused-variable]
    
    It's better to express the conditional compilation using IS_ENABLED()
    here, as that lets the compiler see what the intented use for the variable
    is, and that it can be silently discarded.
    
    Fixes: b665d98edc9a ("net/mlx5: Tolerate irq_set_affinity_hint() failures")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Saeed Mahameed <saeedm@mellanox.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 d7c5f8c815466fc00785bbff20f25b39643abe01
Author: Will Deacon <will.deacon@arm.com>
Date:   Wed Apr 5 11:14:05 2017 +0100

    arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage
    
    
    [ Upstream commit 5f16a046f8e144c294ef98cd29d9458b5f8273e5 ]
    
    FUTEX_OP_OPARG_SHIFT instructs the futex code to treat the 12-bit oparg
    field as a shift value, potentially leading to a left shift value that
    is negative or with an absolute value that is significantly larger then
    the size of the type. UBSAN chokes with:
    
    ================================================================================
    UBSAN: Undefined behaviour in ./arch/arm64/include/asm/futex.h:60:13
    shift exponent -1 is negative
    CPU: 1 PID: 1449 Comm: syz-executor0 Not tainted 4.11.0-rc4-00005-g977eb52-dirty #11
    Hardware name: linux,dummy-virt (DT)
    Call trace:
    [<ffff200008094778>] dump_backtrace+0x0/0x538 arch/arm64/kernel/traps.c:73
    [<ffff200008094cd0>] show_stack+0x20/0x30 arch/arm64/kernel/traps.c:228
    [<ffff200008c194a8>] __dump_stack lib/dump_stack.c:16 [inline]
    [<ffff200008c194a8>] dump_stack+0x120/0x188 lib/dump_stack.c:52
    [<ffff200008cc24b8>] ubsan_epilogue+0x18/0x98 lib/ubsan.c:164
    [<ffff200008cc3098>] __ubsan_handle_shift_out_of_bounds+0x250/0x294 lib/ubsan.c:421
    [<ffff20000832002c>] futex_atomic_op_inuser arch/arm64/include/asm/futex.h:60 [inline]
    [<ffff20000832002c>] futex_wake_op kernel/futex.c:1489 [inline]
    [<ffff20000832002c>] do_futex+0x137c/0x1740 kernel/futex.c:3231
    [<ffff200008320504>] SYSC_futex kernel/futex.c:3281 [inline]
    [<ffff200008320504>] SyS_futex+0x114/0x268 kernel/futex.c:3249
    [<ffff200008084770>] el0_svc_naked+0x24/0x28
    ================================================================================
    syz-executor1 uses obsolete (PF_INET,SOCK_PACKET)
    sock: process `syz-executor0' is using obsolete setsockopt SO_BSDCOMPAT
    
    This patch attempts to fix some of this by:
    
      * Making encoded_op an unsigned type, so we can shift it left even if
        the top bit is set.
    
      * Casting to signed prior to shifting right when extracting oparg
        and cmparg
    
      * Consider only the bottom 5 bits of oparg when using it as a left-shift
        value.
    
    Whilst I think this catches all of the issues, I'd much prefer to remove
    this stuff, as I think it's unused and the bugs are copy-pasted between
    a bunch of architectures.
    
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6625fd2adc4b40418f072ac0e9a11c8f1f9ea141
Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date:   Wed May 17 21:55:07 2017 +0100

    backlight: Report error on failure
    
    
    [ Upstream commit 7e715c2d9c27c23f3187454157c58cf292ed103e ]
    
    It is possible to update the backlight power and the brightness using
    the sysfs and on writing it either returns the count or if the callback
    function does not exist then returns the error code 'ENXIO'.
    
    We have a situation where the userspace client is writing to the sysfs
    to update the power and since the callback function exists the client
    receives the return value as count and considers the operation to be
    successful. That is correct as the write to the sysfs was successful.
    But there is no way to know if the actual operation was done or not.
    
    backlight_update_status() returns the error code if it fails. Pass that
    to the userspace client who is trying to update the power so that the
    client knows that the operation failed.
    
    Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Acked-by: Daniel Thompson <daniel.thompson@linaro.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 922841084a82f1356c0499a165319b780965f039
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
Date:   Wed May 24 12:09:53 2017 +0530

    dmaengine: imx-sdma: Handle return value of clk_prepare_enable
    
    
    [ Upstream commit fb9caf370f4d0457789d13a1a1b110a8db846e5e ]
    
    clk_prepare_enable() can fail here and we must check its return value.
    
    Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.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 7ba7c8222b87993f549910b06e230564197b6e03
Author: Ivan Mikhaylov <ivan@de.ibm.com>
Date:   Fri May 19 18:47:05 2017 +0300

    powerpc/[booke|4xx]: Don't clobber TCR[WP] when setting TCR[DIE]
    
    
    [ Upstream commit 6e2f03e292ef46eed2b31b0a344a91d514f9cd81 ]
    
    Prevent a kernel panic caused by unintentionally clearing TCR watchdog
    bits. At this point in the kernel boot, the watchdog may have already
    been enabled by u-boot. The original code's attempt to write to the TCR
    register results in an inadvertent clearing of the watchdog
    configuration bits, causing the 476 to reset.
    
    Signed-off-by: Ivan Mikhaylov <ivan@de.ibm.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 b2a40eaef694b35ae39f1924b3bee95595676e25
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Mon May 29 15:15:27 2017 +0200

    ovl: filter trusted xattr for non-admin
    
    
    [ Upstream commit a082c6f680da298cf075886ff032f32ccb7c5e1a ]
    
    Filesystems filter out extended attributes in the "trusted." domain for
    unprivlieged callers.
    
    Overlay calls underlying filesystem's method with elevated privs, so need
    to do the filtering in overlayfs too.
    
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3291bb532df5181352acfb492fc18b7110172670
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue May 9 10:04:36 2017 +0200

    HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices
    
    
    [ Upstream commit f3d3eab667de62572376abb1aa26316191c39929 ]
    
    For ACPI devices which do not have a _PSC method, the ACPI subsys cannot
    query their initial state at boot, so these devices are assumed to have
    been put in D0 by the BIOS, but for touchscreens that is not always true.
    
    This commit adds a call to acpi_device_fix_up_power to explicitly put
    devices without a _PSC method into D0 state (for devices with a _PSC
    method it is a nop). Note we only need to do this on probe, after a
    resume the ACPI subsys knows the device is in D3 and will properly
    put it in D0.
    
    This fixes the SIS0817 i2c-hid touchscreen on a Peaq C1010 2-in-1
    device failing to probe with a "hid_descr_cmd failed" error.
    
    Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f51c45447a5fb3d1a4fb304931444e6f9940ddab
Author: Florian Westphal <fw@strlen.de>
Date:   Sun May 21 12:52:56 2017 +0200

    netfilter: conntrack: don't call iter for non-confirmed conntracks
    
    
    [ Upstream commit b0feacaad13a0aa9657c37ed80991575981e2e3b ]
    
    nf_ct_iterate_cleanup_net currently calls iter() callback also for
    conntracks on the unconfirmed list, but this is unsafe.
    
    Acesses to nf_conn are fine, but some users access the extension area
    in the iter() callback, but that does only work reliably for confirmed
    conntracks (ct->ext can be reallocated at any time for unconfirmed
    conntrack).
    
    The seond issue is that there is a short window where a conntrack entry
    is neither on the list nor in the table: To confirm an entry, it is first
    removed from the unconfirmed list, then insert into the table.
    
    Fix this by iterating the unconfirmed list first and marking all entries
    as dying, then wait for rcu grace period.
    
    This makes sure all entries that were about to be confirmed either are
    in the main table, or will be dropped soon.
    
    Signed-off-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 ed9f34736a6b91ca7f0c0eaaa62343b2eb3bf306
Author: Sai Praneeth <sai.praneeth.prakhya@intel.com>
Date:   Fri May 26 12:36:49 2017 +0100

    x86/efi: Disable runtime services on kexec kernel if booted with efi=old_map
    
    
    [ Upstream commit 4e52797d2efefac3271abdc54439a3435abd77b9 ]
    
    Booting kexec kernel with "efi=old_map" in kernel command line hits
    kernel panic as shown below.
    
     BUG: unable to handle kernel paging request at ffff88007fe78070
     IP: virt_efi_set_variable.part.7+0x63/0x1b0
     PGD 7ea28067
     PUD 7ea2b067
     PMD 7ea2d067
     PTE 0
     [...]
     Call Trace:
      virt_efi_set_variable()
      efi_delete_dummy_variable()
      efi_enter_virtual_mode()
      start_kernel()
      x86_64_start_reservations()
      x86_64_start_kernel()
      start_cpu()
    
    [ efi=old_map was never intended to work with kexec. The problem with
      using efi=old_map is that the virtual addresses are assigned from the
      memory region used by other kernel mappings; vmalloc() space.
      Potentially there could be collisions when booting kexec if something
      else is mapped at the virtual address we allocated for runtime service
      regions in the initial boot - Matt Fleming ]
    
    Since kexec was never intended to work with efi=old_map, disable
    runtime services in kexec if booted with efi=old_map, so that we don't
    panic.
    
    Tested-by: Lee Chun-Yi <jlee@suse.com>
    Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>
    Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
    Acked-by: Dave Young <dyoung@redhat.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Shankar <ravi.v.shankar@intel.com>
    Cc: Ricardo Neri <ricardo.neri@intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170526113652.21339-4-matt@codeblueprint.co.uk
    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 9f47b01992e19560fcbc536d0010581dd9f17a9b
Author: Firo Yang <firogm@gmail.com>
Date:   Fri May 26 22:37:38 2017 +0800

    hdlcdrv: Fix divide by zero in hdlcdrv_ioctl
    
    
    [ Upstream commit fb3ce90b7d7761b6f7f28f0ff5c456ef6b5229a1 ]
    
    syszkaller fuzzer triggered a divide by zero, when set calibration
    through ioctl().
    
    To fix it, test 'bitrate' if it is negative or 0, just return -EINVAL.
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Firo Yang <firogm@gmail.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 0d9870ca5012400374c9789d91dcccb86508b63e
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Dec 26 17:33:18 2017 +0000

    wl1251: check return from call to wl1251_acx_arp_ip_filter
    
    
    [ Upstream commit ac1181c60822292176ab96912208ec9f9819faf8 ]
    
    Currently the less than zero error check on ret is incorrect
    as it is checking a far earlier ret assignment rather than the
    return from the call to wl1251_acx_arp_ip_filter. Fix this by
    adding in the missing assginment.
    
    Detected by CoverityScan, CID#1164835 ("Logically dead code")
    
    Fixes: 204cc5c44fb6 ("wl1251: implement hardware ARP filtering")
    Signed-off-by: Colin Ian King <colin.king@canonical.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 c8fed0d73cad36fd01cbd4fc8c18c4307b7bf95c
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Tue Dec 19 12:33:56 2017 +0100

    rt2x00: do not pause queue unconditionally on error path
    
    
    [ Upstream commit 6dd80efd75ce7c2dbd9f117cf585ee2b33a42ee1 ]
    
    Pausing queue without checking threshold is racy with txdone path.
    Moreover we do not need pause queue on any error, but only if queue
    is full - in case when we send RTS frame ( other cases of almost full
    queue are already handled in rt2x00queue_write_tx_frame() ).
    
    Patch fixes of theoretically possible problem of pausing empty
    queue.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Tested-by: Enrico Mioso <mrkiko.rs@gmail.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 29a63b0372f0fd6d8edc68829e02fe63ffd2735b
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat Jan 6 21:18:24 2018 +0100

    ASoC: Intel: sst: Fix the return value of 'sst_send_byte_stream_mrfld()'
    
    
    [ Upstream commit eaadb1caa966a91128297b754e90b7c92b350a00 ]
    
    In some error handling paths, an error code is assiegned to 'ret'.
    However, the function always return 0.
    
    Fix it and return the error code if such an error paths is taken.
    
    Fixes: 3d9ff34622ba ("ASoC: Intel: sst: add stream operations")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    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 2bc30f850f9f20ce3cfce4c9db524519b8bdcc21
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Jan 1 13:23:57 2018 +0100

    pinctrl: baytrail: Enable glitch filter for GPIOs used as interrupts
    
    
    [ Upstream commit 9291c65b01d1c67ebd56644cb19317ad665c44b3 ]
    
    On some systems, some PCB traces attached to GpioInts are routed in such
    a way that they pick up enough interference to constantly (many times per
    second) trigger.
    
    Enabling glitch-filtering fixes this.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Mika Westerberg <mika.westerberg@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 8612220ec404743178d0d02eb29357d4739e802f
Author: Robert Jarzmik <robert.jarzmik@free.fr>
Date:   Thu Dec 28 09:27:41 2017 +0100

    backlight: tdo24m: Fix the SPI CS between transfers
    
    
    [ Upstream commit 2023b0524a6310e9ea80daf085f51c71bff9289f ]
    
    Currently the LCD display (TD035S) on the cm-x300 platform is broken and
    remains blank.
    
    The TD0245S specification requires that the chipselect is toggled
    between commands sent to the panel. This was also the purpose of the
    former patch of commit f64dcac0b124 ("backlight: tdo24m: ensure chip
    select changes between transfers").
    
    Unfortunately, the "cs_change" field of a SPI transfer is
    misleading. Its true meaning is that for a SPI message holding multiple
    transfers, the chip select is toggled between each transfer, but for the
    last transfer it remains asserted.
    
    In this driver, all the SPI messages contain exactly one transfer, which
    means that each transfer is the last of its message, and as a
    consequence the chip select is never toggled.
    
    Actually, there was a second bug hidding the first one, hence the
    problem was not seen until v4.6. This problem was fixed by commit
    a52db659c79c ("spi: pxa2xx: Fix cs_change management") for PXA based
    boards.
    
    This fix makes the TD035S work again on a cm-x300 board. The same
    applies to other PXA boards, ie. corgi and tosa.
    
    Fixes: a52db659c79c ("spi: pxa2xx: Fix cs_change management")
    Reported-by: Andrea Adami <andrea.adami@gmail.com>
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Acked-by: Daniel Thompson <daniel.thompson@linaro.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 3bab65f29e6bf4615519b1e6dba5684cc8b53a72
Author: Ming Lei <ming.lei@redhat.com>
Date:   Sat Jan 6 16:27:40 2018 +0800

    blk-mq: fix race between updating nr_hw_queues and switching io sched
    
    
    [ Upstream commit fb350e0ad99359768e1e80b4784692031ec340e4 ]
    
    In both elevator_switch_mq() and blk_mq_update_nr_hw_queues(), sched tags
    can be allocated, and q->nr_hw_queue is used, and race is inevitable, for
    example: blk_mq_init_sched() may trigger use-after-free on hctx, which is
    freed in blk_mq_realloc_hw_ctxs() when nr_hw_queues is decreased.
    
    This patch fixes the race be holding q->sysfs_lock.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reported-by: Yi Zhang <yi.zhang@redhat.com>
    Tested-by: Yi Zhang <yi.zhang@redhat.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5736369b54e3a4dc00592df922fbd8d739fb5be2
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Mon Dec 18 19:57:06 2017 -0800

    IB/rdmavt: Allocate CQ memory on the correct node
    
    
    [ Upstream commit db9a2c6f9b6196b889b98e961cb9a37617b11ccf ]
    
    CQ allocation does not ensure that completion queue entries
    and the completion queue structure are allocated on the correct
    numa node.
    
    Fix by allocating the rvt_cq and kernel CQ entries on the device node,
    leaving the user CQ entries on the default local node.  Also ensure
    CQ resizes use the correct allocator when extending a CQ.
    
    Reviewed-by: Sebastian Sanchez <sebastian.sanchez@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@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 c5aa51c82e6ed7c203b2b8415645dfea249cc369
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Thu Jan 4 22:31:11 2018 +0100

    gpio: label descriptors using the device name
    
    
    [ Upstream commit 24e78079bf2250874e33da2e7cfbb6db72d3caf4 ]
    
    Some GPIO lines appear named "?" in the lsgpio dump due to their
    requesting drivers not passing a reasonable label.
    
    Most typically this happens if a device tree node just defines
    gpios = <...> and not foo-gpios = <...>, the former gets named
    "foo" and the latter gets named "?".
    
    However the struct device passed in is always valid so let's
    just label the GPIO with dev_name() on the device if no proper
    label was passed.
    
    Cc: Reported-by: Jason Kridner <jkridner@beagleboard.org>
    Reported-by: Jason Kridner <jkridner@beagleboard.org>
    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 2707d9b2f90136cfaea307198d83959ca8da815e
Author: Pieter \"PoroCYon\" Sluys <pcy@national.shitposting.agency>
Date:   Thu Jan 4 16:53:50 2018 +0100

    vfb: fix video mode and line_length being set when loaded
    
    
    [ Upstream commit 7b9faf5df0ac495a1a3d7cdb64921c179f9008ac ]
    
    Currently, when loading the vfb module, the newly created fbdev
    has a line_length of 0, and its video mode would be PSEUDOCOLOR
    regardless of color depth. (The former could be worked around by
    calling the FBIOPUT_VSCREENINFO ioctl with having the FBACTIVIATE_FORCE
    flag set.) This patch automatically sets the line_length correctly,
    and the video mode is derived from the bit depth now as well.
    
    Thanks to Geert Uytterhoeven for confirming the bug and helping me with
    the patch.
    
    Output of `fbset -i' before the patch:
    mode "1366x768-60"
        # D: 72.432 MHz, H: 47.403 kHz, V: 60.004 Hz
        geometry 1366 768 1366 768 32
        timings 13806 120 10 14 3 32 5
        rgba 8/0,8/8,8/16,8/24
    endmode
    
    Frame buffer device information:
        Name        : Virtual FB
        Address     : 0xffffaa1405d85000
        Size        : 4196352
        Type        : PACKED PIXELS
        Visual      : PSEUDOCOLOR
        XPanStep    : 1
        YPanStep    : 1
        YWrapStep   : 1
        LineLength  : 0                    <-- note this
        Accelerator : No
    
    After:
    mode "1366x768-60"
        # D: 72.432 MHz, H: 47.403 kHz, V: 60.004 Hz
        geometry 1366 768 1366 768 32
        timings 13806 120 10 14 3 32 5
        rgba 8/0,8/8,8/16,8/24
    endmode
    
    Frame buffer device information:
        Name        : Virtual FB
        Address     : 0xffffaa1405d85000
        Size        : 4196352
        Type        : PACKED PIXELS
        Visual      : TRUECOLOR
        XPanStep    : 1
        YPanStep    : 1
        YWrapStep   : 1
        LineLength  : 5464
        Accelerator : No
    
    Signed-off-by: "Pieter \"PoroCYon\" Sluys" <pcy@national.shitposting.agency>
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    [b.zolnierkie: minor fixups]
    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 c6f782877d36d7d2b2f07f22b6e81049f692dfc5
Author: Peter Große <pegro@friiks.de>
Date:   Wed Dec 13 18:29:46 2017 +0100

    mac80211: Fix setting TX power on monitor interfaces
    
    
    [ Upstream commit 3a3713ec360138f806c6fc368d1de570f692b347 ]
    
    Instead of calling ieee80211_recalc_txpower on monitor interfaces
    directly, call it using the virtual monitor interface, if one exists.
    
    In case of a single monitor interface given, reject setting TX power,
    if no virtual monitor interface exists.
    
    That being checked, don't warn in ieee80211_bss_info_change_notify,
    after setting TX power on a monitor interface.
    
    Fixes warning:
    ------------[ cut here ]------------
     WARNING: CPU: 0 PID: 2193 at net/mac80211/driver-ops.h:167
     ieee80211_bss_info_change_notify+0x111/0x190 Modules linked in: uvcvideo
     videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core
    rndis_host cdc_ether usbnet mii tp_smapi(O) thinkpad_ec(O) ohci_hcd vboxpci(O)
     vboxnetadp(O) vboxnetflt(O) v boxdrv(O) x86_pkg_temp_thermal kvm_intel kvm
     irqbypass iwldvm iwlwifi ehci_pci ehci_hcd tpm_tis tpm_tis_core tpm CPU: 0
     PID: 2193 Comm: iw Tainted: G           O    4.12.12-gentoo #2 task:
     ffff880186fd5cc0 task.stack: ffffc90001b54000 RIP:
     0010:ieee80211_bss_info_change_notify+0x111/0x190 RSP: 0018:ffffc90001b57a10
     EFLAGS: 00010246 RAX: 0000000000000006 RBX: ffff8801052ce840 RCX:
     0000000000000064 RDX: 00000000fffffffc RSI: 0000000000040000 RDI:
     ffff8801052ce840 RBP: ffffc90001b57a38 R08: 0000000000000062 R09:
     0000000000000000 R10: ffff8802144b5000 R11: ffff880049dc4614 R12:
     0000000000040000 R13: 0000000000000064 R14: ffff8802105f0760 R15:
     ffffc90001b57b48 FS:  00007f92644b4580(0000) GS:ffff88021e200000(0000)
     knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 00007f9263c109f0 CR3: 00000001df850000 CR4: 00000000000406f0
     Call Trace:
      ieee80211_recalc_txpower+0x33/0x40
      ieee80211_set_tx_power+0x40/0x180
      nl80211_set_wiphy+0x32e/0x950
    
    Reported-by: Peter Große <pegro@friiks.de>
    Signed-off-by: Peter Große <pegro@friiks.de>
    
    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 b7fe48228d816c1ad7e1e90e2bff7d09d17e6642
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Jan 2 16:26:31 2018 +0100

    ACPI: EC: Fix debugfs_create_*() usage
    
    
    [ Upstream commit 3522f867c13b63cf62acdf1b8ca5664c549a716a ]
    
    acpi_ec.gpe is "unsigned long", hence treating it as "u32" would expose
    the wrong half on big-endian 64-bit systems.  Fix this by changing its
    type to "u32" and removing the cast, as all other code already uses u32
    or sometimes even only u8.
    
    Fixes: 1195a098168fcacf (ACPI: Provide /sys/kernel/debug/ec/...)
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    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 c979024a1bb359988dc6b50a26dd3bb0789fd54f
Author: Shanker Donthineni <shankerd@codeaurora.org>
Date:   Tue Dec 5 13:16:21 2017 -0600

    irqchip/gic-v3: Fix the driver probe() fail due to disabled GICC entry
    
    
    [ Upstream commit ebe2f8718007d5a1238bb3cb8141b5bb2b4d5773 ]
    
    The ACPI specification says OS shouldn't attempt to use GICC configuration
    parameters if the flag ACPI_MADT_ENABLED is cleared. The ARM64-SMP code
    skips the disabled GICC entries but not causing any issue. However the
    current GICv3 driver probe bails out causing kernel panic() instead of
    skipping the disabled GICC interfaces. This issue happens on systems
    where redistributor regions are not in the always-on power domain and
    one of GICC interface marked with ACPI_MADT_ENABLED=0.
    
    This patch does the two things to fix the panic.
      - Don't return an error in gic_acpi_match_gicc() for disabled GICC entry.
      - No need to keep GICR region information for disabled GICC entry.
    
    Observed kernel crash on QDF2400 platform GICC entry is disabled.
    Kernel crash traces:
      Kernel panic - not syncing: No interrupt controller found.
      CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.5 #26
      [<ffff000008087770>] dump_backtrace+0x0/0x218
      [<ffff0000080879dc>] show_stack+0x14/0x20
      [<ffff00000883b078>] dump_stack+0x98/0xb8
      [<ffff0000080c5c14>] panic+0x118/0x26c
      [<ffff000008b62348>] init_IRQ+0x24/0x2c
      [<ffff000008b609fc>] start_kernel+0x230/0x394
      [<ffff000008b601e4>] __primary_switched+0x64/0x6c
      ---[ end Kernel panic - not syncing: No interrupt controller found.
    
    Disabled GICC subtable example:
                       Subtable Type : 0B [Generic Interrupt Controller]
                              Length : 50
                            Reserved : 0000
                CPU Interface Number : 0000003D
                       Processor UID : 0000003D
               Flags (decoded below) : 00000000
                   Processor Enabled : 0
     Performance Interrupt Trig Mode : 0
     Virtual GIC Interrupt Trig Mode : 0
            Parking Protocol Version : 00000000
               Performance Interrupt : 00000017
                      Parked Address : 0000000000000000
                        Base Address : 0000000000000000
            Virtual GIC Base Address : 0000000000000000
         Hypervisor GIC Base Address : 0000000000000000
               Virtual GIC Interrupt : 00000019
          Redistributor Base Address : 0000FFFF88F40000
                           ARM MPIDR : 000000000000000D
                    Efficiency Class : 00
                            Reserved : 000000
    Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 388f0c8cfca271b4505fadde31d2eaecd2516cfa
Author: Chaitra P B <chaitra.basappa@broadcom.com>
Date:   Wed Dec 27 23:09:11 2017 -0800

    scsi: mpt3sas: Proper handling of set/clear of "ATA command pending" flag.
    
    
    [ Upstream commit f49d4aed1315a7b766d855f1367142e682b0cc87 ]
    
    1. In IO path, setting of "ATA command pending" flag early before device
       removal, invalid device handle etc., checks causes any new commands
       to be always returned with SAM_STAT_BUSY and when the driver removes
       the drive the SML issues SYNC Cache command and that command is
       always returned with SAM_STAT_BUSY and thus making SYNC Cache command
       to requeued.
    
    2. If the driver gets an ATA PT command for a SATA drive then the driver
       set "ATA command pending" flag in device specific data structure not
       to allow any further commands until the ATA PT command is completed.
       However, after setting the flag if the driver decides to return the
       command back to upper layers without actually issuing to the firmware
       (i.e., returns from qcmd failure return paths) then the corresponding
       flag is not cleared and this prevents the driver from sending any new
       commands to the drive.
    
    This patch fixes above two issues by setting of "ATA command pending"
    flag after checking for whether device deleted, invalid device handle,
    device busy with task management. And by setting "ATA command pending"
    flag to false in all of the qcmd failure return paths after setting the
    flag.
    
    Signed-off-by: Chaitra P B <chaitra.basappa@broadcom.com>
    Signed-off-by: Suganath Prabu S <suganath-prabu.subramani@broadcom.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 a8cfc6d0e7ace50a81a3f4ce1b7874dacbd3e4e4
Author: Rafael David Tinoco <rafael.tinoco@canonical.com>
Date:   Thu Dec 7 19:59:13 2017 -0200

    scsi: libiscsi: Allow sd_shutdown on bad transport
    
    
    [ Upstream commit d754941225a7dbc61f6dd2173fa9498049f9a7ee ]
    
    If, for any reason, userland shuts down iscsi transport interfaces
    before proper logouts - like when logging in to LUNs manually, without
    logging out on server shutdown, or when automated scripts can't
    umount/logout from logged LUNs - kernel will hang forever on its
    sd_sync_cache() logic, after issuing the SYNCHRONIZE_CACHE cmd to all
    still existent paths.
    
    PID: 1 TASK: ffff8801a69b8000 CPU: 1 COMMAND: "systemd-shutdow"
     #0 [ffff8801a69c3a30] __schedule at ffffffff8183e9ee
     #1 [ffff8801a69c3a80] schedule at ffffffff8183f0d5
     #2 [ffff8801a69c3a98] schedule_timeout at ffffffff81842199
     #3 [ffff8801a69c3b40] io_schedule_timeout at ffffffff8183e604
     #4 [ffff8801a69c3b70] wait_for_completion_io_timeout at ffffffff8183fc6c
     #5 [ffff8801a69c3bd0] blk_execute_rq at ffffffff813cfe10
     #6 [ffff8801a69c3c88] scsi_execute at ffffffff815c3fc7
     #7 [ffff8801a69c3cc8] scsi_execute_req_flags at ffffffff815c60fe
     #8 [ffff8801a69c3d30] sd_sync_cache at ffffffff815d37d7
     #9 [ffff8801a69c3da8] sd_shutdown at ffffffff815d3c3c
    
    This happens because iscsi_eh_cmd_timed_out(), the transport layer
    timeout helper, would tell the queue timeout function (scsi_times_out)
    to reset the request timer over and over, until the session state is
    back to logged in state. Unfortunately, during server shutdown, this
    might never happen again.
    
    Other option would be "not to handle" the issue in the transport
    layer. That would trigger the error handler logic, which would also need
    the session state to be logged in again.
    
    Best option, for such case, is to tell upper layers that the command was
    handled during the transport layer error handler helper, marking it as
    DID_NO_CONNECT, which will allow completion and inform about the
    problem.
    
    After the session was marked as ISCSI_STATE_FAILED, due to the first
    timeout during the server shutdown phase, all subsequent cmds will fail
    to be queued, allowing upper logic to fail faster.
    
    Signed-off-by: Rafael David Tinoco <rafael.tinoco@canonical.com>
    Reviewed-by: Lee Duncan <lduncan@suse.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 c5ae3c610dd0447f60c2b03fc00a14d39e2dfb0f
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Jan 2 19:53:14 2018 +0100

    ASoC: Intel: cht_bsw_rt5645: Analog Mic support
    
    
    [ Upstream commit b70b309950418437bbd2a30afd169c4f09dee3e5 ]
    
    Various Cherry Trail boards with a rt5645 codec have an analog mic
    connected to IN2P + IN2N. The mic on this boards also needs micbias to
    be enabled, on some boards micbias1 is used and on others micbias2, so
    we enable both.
    
    This commit adds a new "Int Analog Mic" DAPM widget for this, so that we
    do not end up enabling micbias on boards with a digital mic which uses
    the already present "Int Mic" widget. Some existing UCM files already
    refer to "Int Mic" for their "Internal Analog Microphones" SectionDevice,
    but these don't work anyways since they enable the RECMIX BST1 Switch
    instead of the BST2 switch.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.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 423535006ae6e1bce58922597b250fd89de98835
Author: Pardha Saradhi K <pardha.saradhi.kesapragada@intel.com>
Date:   Tue Jan 2 14:59:57 2018 +0530

    ASoC: Intel: Skylake: Disable clock gating during firmware and library download
    
    
    [ Upstream commit d5cc0a1fcbb5ddbef9fdd4c4a978da3254ddbf37 ]
    
    During firmware and library download, sometimes it is observed that
    firmware and library download is timed-out resulting into probe failure.
    
    This patch disables dynamic clock gating while firmware and library
    download.
    
    Signed-off-by: Pardha Saradhi K <pardha.saradhi.kesapragada@intel.com>
    Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com>
    Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
    Acked-By: Vinod Koul <vinod.koul@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 1be3eb15225dc01451a4989ac13faf50116fabaf
Author: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Date:   Thu Dec 28 09:16:47 2017 -0500

    media: videobuf2-core: don't go out of the buffer range
    
    
    [ Upstream commit df93dc61b0d8b19a5c9db545cf3fcc24f88dfde4 ]
    
    Currently, there's no check if an invalid buffer range
    is passed. However, while testing DVB memory mapped apps,
    I got this:
    
       videobuf2_core: VB: num_buffers -2143943680, buffer 33, index -2143943647
       unable to handle kernel paging request at ffff888b773c0890
       IP: __vb2_queue_alloc+0x134/0x4e0 [videobuf2_core]
       PGD 4142c7067 P4D 4142c7067 PUD 0
       Oops: 0002 [#1] SMP
       Modules linked in: xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack tun bridge stp llc ebtable_filter ebtables ip6table_filter ip6_tables bluetooth rfkill ecdh_generic binfmt_misc rc_dvbsky sp2 ts2020 intel_rapl x86_pkg_temp_thermal dvb_usb_dvbsky intel_powerclamp dvb_usb_v2 coretemp m88ds3103 kvm_intel i2c_mux dvb_core snd_hda_codec_hdmi crct10dif_pclmul crc32_pclmul videobuf2_vmalloc videobuf2_memops snd_hda_intel ghash_clmulni_intel videobuf2_core snd_hda_codec rc_core mei_me intel_cstate snd_hwdep snd_hda_core videodev intel_uncore snd_pcm mei media tpm_tis tpm_tis_core intel_rapl_perf tpm snd_timer lpc_ich snd soundcore kvm irqbypass libcrc32c i915 i2c_algo_bit drm_kms_helper
       e1000e ptp drm crc32c_intel video pps_core
       CPU: 3 PID: 1776 Comm: dvbv5-zap Not tainted 4.14.0+ #78
       Hardware name:                  /NUC5i7RYB, BIOS RYBDWi35.86A.0364.2017.0511.0949 05/11/2017
       task: ffff88877c73bc80 task.stack: ffffb7c402418000
       RIP: 0010:__vb2_queue_alloc+0x134/0x4e0 [videobuf2_core]
       RSP: 0018:ffffb7c40241bc60 EFLAGS: 00010246
       RAX: 0000000080360421 RBX: 0000000000000021 RCX: 000000000000000a
       RDX: ffffb7c40241bcf4 RSI: ffff888780362c60 RDI: ffff888796d8e130
       RBP: ffffb7c40241bcc8 R08: 0000000000000316 R09: 0000000000000004
       R10: ffff888780362c00 R11: 0000000000000001 R12: 000000000002f000
       R13: ffff8887758be700 R14: 0000000000021000 R15: 0000000000000001
       FS:  00007f2849024740(0000) GS:ffff888796d80000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: ffff888b773c0890 CR3: 000000043beb2005 CR4: 00000000003606e0
       Call Trace:
        vb2_core_reqbufs+0x226/0x420 [videobuf2_core]
        dvb_vb2_reqbufs+0x2d/0xc0 [dvb_core]
        dvb_dvr_do_ioctl+0x98/0x1d0 [dvb_core]
        dvb_usercopy+0x53/0x1b0 [dvb_core]
        ? dvb_demux_ioctl+0x20/0x20 [dvb_core]
        ? tty_ldisc_deref+0x16/0x20
        ? tty_write+0x1f9/0x310
        ? process_echoes+0x70/0x70
        dvb_dvr_ioctl+0x15/0x20 [dvb_core]
        do_vfs_ioctl+0xa5/0x600
        SyS_ioctl+0x79/0x90
        entry_SYSCALL_64_fastpath+0x1a/0xa5
       RIP: 0033:0x7f28486f7ea7
       RSP: 002b:00007ffc13b2db18 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
       RAX: ffffffffffffffda RBX: 000055b10fc06130 RCX: 00007f28486f7ea7
       RDX: 00007ffc13b2db48 RSI: 00000000c0086f3c RDI: 0000000000000007
       RBP: 0000000000000203 R08: 000055b10df1e02c R09: 000000000000002e
       R10: 0036b42415108357 R11: 0000000000000246 R12: 0000000000000000
       R13: 00007f2849062f60 R14: 00000000000001f1 R15: 00007ffc13b2da54
       Code: 74 0a 60 8b 0a 48 83 c0 30 48 83 c2 04 89 48 d0 89 48 d4 48 39 f0 75 eb 41 8b 42 08 83 7d d4 01 41 c7 82 ec 01 00 00 ff ff ff ff <4d> 89 94 c5 88 00 00 00 74 14 83 c3 01 41 39 dc 0f 85 f1 fe ff
       RIP: __vb2_queue_alloc+0x134/0x4e0 [videobuf2_core] RSP: ffffb7c40241bc60
       CR2: ffff888b773c0890
    
    So, add a sanity check in order to prevent going past array.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Acked-by: Sakari Ailus <sakari.ailus@linux.intel.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 8d008c0ce55c89c47d70646ae244c006abecd288
Author: Maciej Purski <m.purski@samsung.com>
Date:   Wed Nov 22 16:32:15 2017 +0100

    hwmon: (ina2xx) Make calibration register value fixed
    
    
    [ Upstream commit 5d389b125186cf254ad5b8015763ac07c151aea4 ]
    
    Calibration register is used for calculating current register in
    hardware according to datasheet:
    current = shunt_volt * calib_register / 2048 (ina 226)
    current = shunt_volt * calib_register / 4096 (ina 219)
    
    Fix calib_register value to 2048 for ina226 and 4096 for ina 219 in
    order to avoid truncation error and provide best precision allowed
    by shunt_voltage measurement. Make current scale value follow changes
    of shunt_resistor from sysfs as calib_register value is now fixed.
    
    Power_lsb value should also follow shunt_resistor changes as stated in
    datasheet:
    power_lsb = 25 * current_lsb (ina 226)
    power_lsb = 20 * current_lsb (ina 219)
    
    Signed-off-by: Maciej Purski <m.purski@samsung.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 715f7e3efef0227865162b00d13321431be7962f
Author: Gustavo A. R. Silva <garsilva@embeddedor.com>
Date:   Wed Dec 6 14:20:15 2017 -0600

    PM / devfreq: Fix potential NULL pointer dereference in governor_store
    
    
    [ Upstream commit 63f1e05f7fe9ca509c60154d6a833abf96eecdc9 ]
    
    df->governor is being dereferenced before it is null checked,
    hence there is a potential null pointer dereference.
    
    Notice that df->governor is being null checked at line 1004:
    if (df->governor) {, which implies it might be null.
    
    Fix this by null checking df->governor before dereferencing it.
    
    Addresses-Coverity-ID: 1401988 ("Dereference before null check")
    Fixes: bcf23c79c4e4 ("PM / devfreq: Fix available_governor sysfs")
    Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3aa66ba53e65ba53529fd07e1cdde5063b6a2c5a
Author: NeilBrown <neilb@suse.com>
Date:   Fri Nov 10 15:45:41 2017 +1100

    VFS: close race between getcwd() and d_move()
    
    
    [ Upstream commit 61647823aa920e395afcce4b57c32afb51456cab ]
    
    d_move() will call __d_drop() and then __d_rehash()
    on the dentry being moved.  This creates a small window
    when the dentry appears to be unhashed.  Many tests
    of d_unhashed() are made under ->d_lock and so are safe
    from racing with this window, but some aren't.
    In particular, getcwd() calls d_unlinked() (which calls
    d_unhashed()) without d_lock protection, so it can race.
    
    This races has been seen in practice with lustre, which uses d_move() as
    part of name lookup.  See:
       https://jira.hpdd.intel.com/browse/LU-9735
    It could race with a regular rename(), and result in ENOENT instead
    of either the 'before' or 'after' name.
    
    The race can be demonstrated with a simple program which
    has two threads, one renaming a directory back and forth
    while another calls getcwd() within that directory: it should never
    fail, but does.  See:
      https://patchwork.kernel.org/patch/9455345/
    
    We could fix this race by taking d_lock and rechecking when
    d_unhashed() reports true.  Alternately when can remove the window,
    which is the approach this patch takes.
    
    ___d_drop() is introduce which does *not* clear d_hash.pprev
    so the dentry still appears to be hashed.  __d_drop() calls
    ___d_drop(), then clears d_hash.pprev.
    __d_move() now uses ___d_drop() and only clears d_hash.pprev
    when not rehashing.
    
    Signed-off-by: NeilBrown <neilb@suse.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e156f310a88848b7692c41c3cfcdbfeb1c05e7a
Author: Moni Shoua <monis@mellanox.com>
Date:   Thu Dec 28 16:26:11 2017 +0200

    net/mlx4_en: Change default QoS settings
    
    
    [ Upstream commit a42b63c1ac1986f17f71bc91a6b0aaa14d4dae71 ]
    
    Change the default mapping between TC and TCG as follows:
    
    Prio     |             TC/TCG
             |      from             to
             |    (set by FW)      (set by SW)
    ---------+-----------------------------------
    0        |      0/0              0/7
    1        |      1/0              0/6
    2        |      2/0              0/5
    3        |      3/0              0/4
    4        |      4/0              0/3
    5        |      5/0              0/2
    6        |      6/0              0/1
    7        |      7/0              0/0
    
    These new settings cause that a pause frame for any prio stops
    traffic for all prios.
    
    Fixes: 564c274c3df0 ("net/mlx4_en: DCB QoS support")
    Signed-off-by: Moni Shoua <monis@mellanox.com>
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.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 2fb63a4c948be910a0f2696d6fecdb481ae1887c
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Dec 23 19:41:47 2017 +0100

    ACPI / video: Default lcd_only to true on Win8-ready and newer machines
    
    
    [ Upstream commit 5928c281524fe451114e04f1dfa11246a37e859f ]
    
    We're seeing a lot of bogus backlight interfaces on newer machines without
    a LCD such as desktops, servers and HDMI sticks. This causes userspace to
    show a non-functional brightness slider in e.g. the GNOME3 system menu,
    which is undesirable. And, in general, we should simply just not register
    a non functional backlight interface.
    
    Checking the LCD flag causes the bogus acpi_video backlight interfaces to
    go away (on the machines this was tested on).
    
    This change sets the lcd_only option by default on any machines which
    are Win8-ready, to fix this.
    
    This is not entirely without a risk of regressions, but video_detect.c
    already prefers native-backlight interfaces over the acpi_video one
    on Win8-ready machines, calling acpi_video_unregister_backlight() as soon
    as a native interface shows up. This is done because the ACPI backlight
    interface often is broken on Win8-ready machines, because win8 does not
    seem to actually use it.
    
    So in practice we already end up not registering the ACPI backlight
    interface on (most) Win8-ready machines with a LCD panel, thus this
    change does not change anything for (most) machines with a LCD panel
    and on machines without a LCD panel we actually don't want to register
    any backlight interfaces.
    
    This has been tested on the following machines and fixes a bogus backlight
    interface showing up there:
     - Desktop with an Asrock B150M Pro4S/D3 m.b. using i5-6500 builtin gfx
     - Intel Compute Stick STK1AW32SC
     - Meegopad T08 HDMI stick
    
    Bogus backlight interfaces have also been reported on:
     - Desktop with Asus H87I-Plus m.b.
     - Desktop with ASRock B75M-ITX m.b.
     - Desktop with Gigabyte Z87-D3HP m.b.
     - Dell PowerEdge T20 desktop
    
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1097436
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1133327
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1133329
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1133646
    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 59bf03657ac6cd5595951440514ef59639d56648
Author: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Date:   Fri Dec 22 09:38:59 2017 -0800

    rds; Reset rs->rs_bound_addr in rds_add_bound() failure path
    
    
    [ Upstream commit 7ae0c649c47f1c5d2db8cee6dd75855970af1669 ]
    
    If the rds_sock is not added to the bind_hash_table, we must
    reset rs_bound_addr so that rds_remove_bound will not trip on
    this rds_sock.
    
    rds_add_bound() does a rds_sock_put() in this failure path, so
    failing to reset rs_bound_addr will result in a socket refcount
    bug, and will trigger a WARN_ON with the stack shown below when
    the application subsequently tries to close the PF_RDS socket.
    
         WARNING: CPU: 20 PID: 19499 at net/rds/af_rds.c:496 \
                    rds_sock_destruct+0x15/0x30 [rds]
           :
         __sk_destruct+0x21/0x190
         rds_remove_bound.part.13+0xb6/0x140 [rds]
         rds_release+0x71/0x120 [rds]
         sock_release+0x1a/0x70
         sock_close+0xe/0x20
         __fput+0xd5/0x210
         task_work_run+0x82/0xa0
         do_exit+0x2ce/0xb30
         ? syscall_trace_enter+0x1cc/0x2b0
         do_group_exit+0x39/0xa0
         SyS_exit_group+0x10/0x10
         do_syscall_64+0x61/0x1a0
    
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@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 ca1853c03eae86fe8504f72fb80bb0b63b9834e4
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Fri Dec 22 15:10:17 2017 +0100

    l2tp: fix missing print session offset info
    
    
    [ Upstream commit 820da5357572715c6235ba3b3daa2d5b43a1198f ]
    
    Report offset parameter in L2TP_CMD_SESSION_GET command if
    it has been configured by userspace
    
    Fixes: 309795f4bec ("l2tp: Add netlink control API for L2TP")
    Reported-by: Jianlin Shi <jishi@redhat.com>
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@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 24cce930dc4985fcf7ed27043b311d67e1b15208
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Sat Dec 9 01:26:46 2017 +0900

    perf probe: Add warning message if there is unexpected event name
    
    
    [ Upstream commit 9f5c6d8777a2d962b0eeacb2a16f37da6bea545b ]
    
    This improve the error message so that user can know event-name error
    before writing new events to kprobe-events interface.
    
    E.g.
       ======
       #./perf probe -x /lib64/libc-2.25.so malloc_get_state*
       Internal error: "malloc_get_state@GLIBC_2" is an invalid event name.
         Error: Failed to add events.
       ======
    
    Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Acked-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Reviewed-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Paul Clarke <pc@us.ibm.com>
    Cc: bhargavb <bhargavaramudu@gmail.com>
    Cc: linux-rt-users@vger.kernel.org
    Link: http://lkml.kernel.org/r/151275040665.24652.5188568529237584489.stgit@devbox
    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 8e50e9d66e872c7bb5a31d71afe44a089e81143c
Author: Yi Zeng <yizeng@asrmicro.com>
Date:   Tue Dec 26 19:22:26 2017 +0800

    thermal: power_allocator: fix one race condition issue for thermal_instances list
    
    
    [ Upstream commit a5de11d67dcd268b8d0beb73dc374de5e97f0caf ]
    
    When invoking allow_maximum_power and traverse tz->thermal_instances,
    we should grab thermal_zone_device->lock to avoid race condition. For
    example, during the system reboot, if the mali GPU device implements
    device shutdown callback and unregister GPU devfreq cooling device,
    the deleted list head may be accessed to cause panic, as the following
    log shows:
    
    [   33.551070] c3 25 (kworker/3:0) Unable to handle kernel paging request at virtual address dead000000000070
    [   33.566708] c3 25 (kworker/3:0) pgd = ffffffc0ed290000
    [   33.572071] c3 25 (kworker/3:0) [dead000000000070] *pgd=00000001ed292003, *pud=00000001ed292003, *pmd=0000000000000000
    [   33.581515] c3 25 (kworker/3:0) Internal error: Oops: 96000004 [#1] PREEMPT SMP
    [   33.599761] c3 25 (kworker/3:0) CPU: 3 PID: 25 Comm: kworker/3:0 Not tainted 4.4.35+ #912
    [   33.614137] c3 25 (kworker/3:0) Workqueue: events_freezable thermal_zone_device_check
    [   33.620245] c3 25 (kworker/3:0) task: ffffffc0f32e4200 ti: ffffffc0f32f0000 task.ti: ffffffc0f32f0000
    [   33.629466] c3 25 (kworker/3:0) PC is at power_allocator_throttle+0x7c8/0x8a4
    [   33.636609] c3 25 (kworker/3:0) LR is at power_allocator_throttle+0x808/0x8a4
    [   33.643742] c3 25 (kworker/3:0) pc : [<ffffff8008683dd0>] lr : [<ffffff8008683e10>] pstate: 20000145
    [   33.652874] c3 25 (kworker/3:0) sp : ffffffc0f32f3bb0
    [   34.468519] c3 25 (kworker/3:0) Process kworker/3:0 (pid: 25, stack limit = 0xffffffc0f32f0020)
    [   34.477220] c3 25 (kworker/3:0) Stack: (0xffffffc0f32f3bb0 to 0xffffffc0f32f4000)
    [   34.819822] c3 25 (kworker/3:0) Call trace:
    [   34.824021] c3 25 (kworker/3:0) Exception stack(0xffffffc0f32f39c0 to 0xffffffc0f32f3af0)
    [   34.924993] c3 25 (kworker/3:0) [<ffffff8008683dd0>] power_allocator_throttle+0x7c8/0x8a4
    [   34.933184] c3 25 (kworker/3:0) [<ffffff80086807f4>] handle_thermal_trip.part.25+0x70/0x224
    [   34.941545] c3 25 (kworker/3:0) [<ffffff8008680a68>] thermal_zone_device_update+0xc0/0x20c
    [   34.949818] c3 25 (kworker/3:0) [<ffffff8008680bd4>] thermal_zone_device_check+0x20/0x2c
    [   34.957924] c3 25 (kworker/3:0) [<ffffff80080b93a4>] process_one_work+0x168/0x458
    [   34.965414] c3 25 (kworker/3:0) [<ffffff80080ba068>] worker_thread+0x13c/0x4b4
    [   34.972650] c3 25 (kworker/3:0) [<ffffff80080c0a4c>] kthread+0xe8/0xfc
    [   34.979187] c3 25 (kworker/3:0) [<ffffff8008084e90>] ret_from_fork+0x10/0x40
    [   34.986244] c3 25 (kworker/3:0) Code: f9405e73 eb1302bf d102e273 54ffc460 (b9402a61)
    [   34.994339] c3 25 (kworker/3:0) ---[ end trace 32057901e3b7e1db ]---
    
    Signed-off-by: Yi Zeng <yizeng@asrmicro.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9487ce395616df454a394e64191a7d8f11c6612e
Author: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Date:   Thu Nov 16 13:15:26 2017 +0100

    ARM: dts: ls1021a: add "fsl,ls1021a-esdhc" compatible string to esdhc node
    
    
    [ Upstream commit d5c7b4d5ac2237a6da7ced3adfe6b8bf769f8cc6 ]
    
    Commit a22950c888e3 (mmc: sdhci-of-esdhc: add quirk
    SDHCI_QUIRK_BROKEN_TIMEOUT_VAL for ls1021a) added logic to the driver to
    enable the broken timeout val quirk for ls1021a, but did not add the
    corresponding compatible string to the device tree, so it didn't really
    have any effect. Fix that.
    
    Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11c7a4b5ac947bd2dc01b9874948e1359fc1e065
Author: Shiraz Saleem <shiraz.saleem@intel.com>
Date:   Fri Dec 22 09:46:56 2017 -0600

    i40iw: Correct Q1/XF object count equation
    
    
    [ Upstream commit fe99afd1febd74e0ef1fed7e3283f09effe1f4f0 ]
    
    Lower Inbound RDMA Read Queue (Q1) object count by a factor of 2
    as it is incorrectly doubled. Also, round up Q1 and Transmit FIFO (XF)
    object count to power of 2 to satisfy hardware requirement.
    
    Fixes: 86dbcd0f12e9 ("i40iw: add file to handle cqp calls")
    Signed-off-by: Shiraz Saleem <shiraz.saleem@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 ff2620e356e393ba475b0550c85477b2658b4515
Author: Shiraz Saleem <shiraz.saleem@intel.com>
Date:   Fri Dec 22 09:46:59 2017 -0600

    i40iw: Fix sequence number for the first partial FPDU
    
    
    [ Upstream commit df8b13a1b23356d01dfc4647a5629cdb0f4ce566 ]
    
    Partial FPDU processing is broken as the sequence number
    for the first partial FPDU is wrong due to incorrect
    Q2 buffer offset. The offset should be 64 rather than 16.
    
    Fixes: 786c6adb3a94 ("i40iw: add puda code")
    Signed-off-by: Shiraz Saleem <shiraz.saleem@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 a435a0ceadae59f839e0d4a47b771d68418e682b
Author: Jordan Crouse <jcrouse@codeaurora.org>
Date:   Mon May 8 14:34:57 2017 -0600

    drm/msm: Take the mutex before calling msm_gem_new_impl
    
    
    [ Upstream commit 90dd57de4a043f642179b1323a31ca3ced826611 ]
    
    Amongst its other duties, msm_gem_new_impl adds the newly created
    GEM object to the shared inactive list which may also be actively
    modifiying the list during submission.  All the paths to modify
    the list are protected by the mutex except for the one through
    msm_gem_import which can end up causing list corruption.
    
    Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
    [add extra WARN_ON(!mutex_is_locked(&dev->struct_mutex))]
    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 04a87dfaf6ae215ee1b9eb3c796556dd914a65a2
Author: linzhang <xiaolou4617@gmail.com>
Date:   Thu May 25 14:07:18 2017 +0800

    net: llc: add lock_sock in llc_ui_bind to avoid a race condition
    
    
    [ Upstream commit 0908cf4dfef35fc6ac12329007052ebe93ff1081 ]
    
    There is a race condition in llc_ui_bind if two or more processes/threads
    try to bind a same socket.
    
    If more processes/threads bind a same socket success that will lead to
    two problems, one is this action is not what we expected, another is
    will lead to kernel in unstable status or oops(in my simple test case,
    cause llc2.ko can't unload).
    
    The current code is test SOCK_ZAPPED bit to avoid a process to
    bind a same socket twice but that is can't avoid more processes/threads
    try to bind a same socket at the same time.
    
    So, add lock_sock in llc_ui_bind like others, such as llc_ui_connect.
    
    Signed-off-by: Lin Zhang <xiaolou4617@gmail.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 a74bec409e337ea020306908aed16febab3fd356
Author: Jan H. Schönherr <jschoenh@amazon.de>
Date:   Sat May 20 13:22:56 2017 +0200

    KVM: nVMX: Fix handling of lmsw instruction
    
    
    [ Upstream commit e1d39b17e044e8ae819827810d87d809ba5f58c0 ]
    
    The decision whether or not to exit from L2 to L1 on an lmsw instruction is
    based on bogus values: instead of using the information encoded within the
    exit qualification, it uses the data also used for the mov-to-cr
    instruction, which boils down to using whatever is in %eax at that point.
    
    Use the correct values instead.
    
    Without this fix, an L1 may not get notified when a 32-bit Linux L2
    switches its secondary CPUs to protected mode; the L1 is only notified on
    the next modification of CR0. This short time window poses a problem, when
    there is some other reason to exit to L1 in between. Then, L2 will be
    resumed in real mode and chaos ensues.
    
    Signed-off-by: Jan H. Schönherr <jschoenh@amazon.de>
    Reviewed-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ea0519a77de6d34204012b7223ba72d0ef607dd
Author: Wanpeng Li <wanpeng.li@hotmail.com>
Date:   Sat May 20 20:32:32 2017 -0700

    KVM: X86: Fix preempt the preemption timer cancel
    
    
    [ Upstream commit 5acc1ca4fb15f00bfa3d4046e35ca381bc25d580 ]
    
    Preemption can occur during cancel preemption timer, and there will be
    inconsistent status in lapic, vmx and vmcs field.
    
              CPU0                    CPU1
    
      preemption timer vmexit
      handle_preemption_timer(vCPU0)
        kvm_lapic_expired_hv_timer
          vmx_cancel_hv_timer
            vmx->hv_deadline_tsc = -1
            vmcs_clear_bits
            /* hv_timer_in_use still true */
      sched_out
                               sched_in
                               kvm_arch_vcpu_load
                                 vmx_set_hv_timer
                                   write vmx->hv_deadline_tsc
                                   vmcs_set_bits
                               /* back in kvm_lapic_expired_hv_timer */
                               hv_timer_in_use = false
                               ...
                               vmx_vcpu_run
                                 vmx_arm_hv_run
                                   write preemption timer deadline
                                 spurious preemption timer vmexit
                                   handle_preemption_timer(vCPU0)
                                     kvm_lapic_expired_hv_timer
                                       WARN_ON(!apic->lapic_timer.hv_timer_in_use);
    
    This can be reproduced sporadically during boot of L2 on a
    preemptible L1, causing a splat on L1.
    
     WARNING: CPU: 3 PID: 1952 at arch/x86/kvm/lapic.c:1529 kvm_lapic_expired_hv_timer+0xb5/0xd0 [kvm]
     CPU: 3 PID: 1952 Comm: qemu-system-x86 Not tainted 4.12.0-rc1+ #24 RIP: 0010:kvm_lapic_expired_hv_timer+0xb5/0xd0 [kvm]
      Call Trace:
      handle_preemption_timer+0xe/0x20 [kvm_intel]
      vmx_handle_exit+0xc9/0x15f0 [kvm_intel]
      ? lock_acquire+0xdb/0x250
      ? lock_acquire+0xdb/0x250
      ? kvm_arch_vcpu_ioctl_run+0xdf3/0x1ce0 [kvm]
      kvm_arch_vcpu_ioctl_run+0xe55/0x1ce0 [kvm]
      kvm_vcpu_ioctl+0x384/0x7b0 [kvm]
      ? kvm_vcpu_ioctl+0x384/0x7b0 [kvm]
      ? __fget+0xf3/0x210
      do_vfs_ioctl+0xa4/0x700
      ? __fget+0x114/0x210
      SyS_ioctl+0x79/0x90
      do_syscall_64+0x8f/0x750
      ? trace_hardirqs_on_thunk+0x1a/0x1c
      entry_SYSCALL64_slow_path+0x25/0x25
    
    This patch fixes it by disabling preemption while cancelling
    preemption timer.  This way cancel_hv_timer is atomic with
    respect to kvm_arch_vcpu_load.
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6391346223496fdf4ac510ad4fae161daba23f80
Author: Christoph Hellwig <hch@lst.de>
Date:   Sat May 20 18:59:54 2017 +0200

    PCI/msi: fix the pci_alloc_irq_vectors_affinity stub
    
    
    [ Upstream commit 83b4605b0c16cde5b00c8cf192408d51eab75402 ]
    
    We need to return an error for any call that asks for MSI / MSI-X
    vectors only, so that non-trivial fallback logic can work properly.
    
    Also valid dev->irq and use the "correct" errno value based on feedback
    from Linus.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reported-by: Steven Rostedt <rostedt@goodmis.org>
    Fixes: aff17164 ("PCI: Provide sensible IRQ vector alloc/free routines")
    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 c198e227316337301f682c97c5880014b3aeb3aa
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed May 24 10:15:43 2017 +0200

    cpuhotplug: Link lock stacks for hotplug callbacks
    
    
    [ Upstream commit 49dfe2a6779717d9c18395684ee31bdc98b22e53 ]
    
    The CPU hotplug callbacks are not covered by lockdep versus the cpu hotplug
    rwsem.
    
    CPU0                                            CPU1
    cpuhp_setup_state(STATE, startup, teardown);
     cpus_read_lock();
      invoke_callback_on_ap();
        kick_hotplug_thread(ap);
        wait_for_completion();                      hotplug_thread_fn()
                                                      lock(m);
                                                      do_stuff();
                                                      unlock(m);
    
    Lockdep does not know about this dependency and will not trigger on the
    following code sequence:
    
              lock(m);
              cpus_read_lock();
    
    Add a lockdep map and connect the initiators lock chain with the hotplug
    thread lock chain, so potential deadlocks can be detected.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sebastian Siewior <bigeasy@linutronix.de>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/20170524081549.709375845@linutronix.de
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a6906e7f50d84272849549a26e985c4d6e581bd
Author: Nithin Sujir <nsujir@tintri.com>
Date:   Wed May 24 19:45:17 2017 -0700

    bonding: Don't update slave->link until ready to commit
    
    
    [ Upstream commit 797a93647a48d6cb8a20641a86a71713a947f786 ]
    
    In the loadbalance arp monitoring scheme, when a slave link change is
    detected, the slave->link is immediately updated and slave_state_changed
    is set. Later down the function, the rtnl_lock is acquired and the
    changes are committed, updating the bond link state.
    
    However, the acquisition of the rtnl_lock can fail. The next time the
    monitor runs, since slave->link is already updated, it determines that
    link is unchanged. This results in the bond link state permanently out
    of sync with the slave link.
    
    This patch modifies bond_loadbalance_arp_mon() to handle link changes
    identical to bond_ab_arp_{inspect/commit}(). The new link state is
    maintained in slave->new_link until we're ready to commit at which point
    it's copied into slave->link.
    
    NOTE: miimon_{inspect/commit}() has a more complex state machine
    requiring the use of the bond_{propose,commit}_link_state() functions
    which maintains the intermediate state in slave->link_new_state. The arp
    monitors don't require that.
    
    Testing: This bug is very easy to reproduce with the following steps.
    1. In a loop, toggle a slave link of a bond slave interface.
    2. In a separate loop, do ifconfig up/down of an unrelated interface to
    create contention for rtnl_lock.
    Within a few iterations, the bond link goes out of sync with the slave
    link.
    
    Signed-off-by: Nithin Nayak Sujir <nsujir@tintri.com>
    Cc: Mahesh Bandewar <maheshb@google.com>
    Cc: Jay Vosburgh <jay.vosburgh@canonical.com>
    Acked-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 969eeef39863b6435ed80da16a2325ceb4137ae6
Author: KT Liao <kt.liao@emc.com.tw>
Date:   Thu May 25 10:06:21 2017 -0700

    Input: elan_i2c - clear INT before resetting controller
    
    
    [ Upstream commit 4b3c7dbbfff0673e8a89575414b864d8b001d3bb ]
    
    Some old touchpad FWs need to have interrupt cleared before issuing reset
    command after updating firmware. We clear interrupt by attempting to read
    full report from the controller, and discarding any data read.
    
    Signed-off-by: KT Liao <kt.liao@emc.com.tw>
    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 419490af01a63e6d57d8009a813b5030457b29d0
Author: Roman Kapl <roman.kapl@sysgo.com>
Date:   Wed May 24 10:22:22 2017 +0200

    net: move somaxconn init from sysctl code
    
    
    [ Upstream commit 7c3f1875c66fbc19762760097cabc91849ea0bbb ]
    
    The default value for somaxconn is set in sysctl_core_net_init(), but this
    function is not called when kernel is configured without CONFIG_SYSCTL.
    
    This results in the kernel not being able to accept TCP connections,
    because the backlog has zero size. Usually, the user ends up with:
    "TCP: request_sock_TCP: Possible SYN flooding on port 7. Dropping request.  Check SNMP counters."
    If SYN cookies are not enabled the connection is rejected.
    
    Before ef547f2ac16 (tcp: remove max_qlen_log), the effects were less
    severe, because the backlog was always at least eight slots long.
    
    Signed-off-by: Roman Kapl <roman.kapl@sysgo.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 71c0b3344e72959b3718c637f978185918be4688
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue May 23 15:24:46 2017 -0700

    tcp: better validation of received ack sequences
    
    
    [ Upstream commit d0e1a1b5a833b625c93d3d49847609350ebd79db ]
    
    Paul Fiterau Brostean reported :
    
    <quote>
    Linux TCP stack we analyze exhibits behavior that seems odd to me.
    The scenario is as follows (all packets have empty payloads, no window
    scaling, rcv/snd window size should not be a factor):
    
           TEST HARNESS (CLIENT)                        LINUX SERVER
    
       1.  -                                          LISTEN (server listen,
    then accepts)
    
       2.  - --> <SEQ=100><CTL=SYN>               --> SYN-RECEIVED
    
       3.  - <-- <SEQ=300><ACK=101><CTL=SYN,ACK>  <-- SYN-RECEIVED
    
       4.  - --> <SEQ=101><ACK=301><CTL=ACK>      --> ESTABLISHED
    
       5.  - <-- <SEQ=301><ACK=101><CTL=FIN,ACK>  <-- FIN WAIT-1 (server
    opts to close the data connection calling "close" on the connection
    socket)
    
       6.  - --> <SEQ=101><ACK=99999><CTL=FIN,ACK> --> CLOSING (client sends
    FIN,ACK with not yet sent acknowledgement number)
    
       7.  - <-- <SEQ=302><ACK=102><CTL=ACK>      <-- CLOSING (ACK is 102
    instead of 101, why?)
    
    ... (silence from CLIENT)
    
       8.  - <-- <SEQ=301><ACK=102><CTL=FIN,ACK>  <-- CLOSING
    (retransmission, again ACK is 102)
    
    Now, note that packet 6 while having the expected sequence number,
    acknowledges something that wasn't sent by the server. So I would
    expect
    the packet to maybe prompt an ACK response from the server, and then be
    ignored. Yet it is not ignored and actually leads to an increase of the
    acknowledgement number in the server's retransmission of the FIN,ACK
    packet. The explanation I found is that the FIN  in packet 6 was
    processed, despite the acknowledgement number being unacceptable.
    Further experiments indeed show that the server processes this FIN,
    transitioning to CLOSING, then on receiving an ACK for the FIN it had
    send in packet 5, the server (or better said connection) transitions
    from CLOSING to TIME_WAIT (as signaled by netstat).
    
    </quote>
    
    Indeed, tcp_rcv_state_process() calls tcp_ack() but
    does not exploit the @acceptable status but for TCP_SYN_RECV
    state.
    
    What we want here is to send a challenge ACK, if not in TCP_SYN_RECV
    state. TCP_FIN_WAIT1 state is not the only state we should fix.
    
    Add a FLAG_NO_CHALLENGE_ACK so that tcp_rcv_state_process()
    can choose to send a challenge ACK and discard the packet instead
    of wrongly change socket state.
    
    With help from Neal Cardwell.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Paul Fiterau Brostean <p.fiterau-brostean@science.ru.nl>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Soheil Hassas Yeganeh <soheil@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 bca3e27b9262c4966cbffac94f3063aa75f4b2e7
Author: Timmy Li <lixiaoping3@huawei.com>
Date:   Mon May 22 16:48:28 2017 +0100

    ARM64: PCI: Fix struct acpi_pci_root_ops allocation failure path
    
    
    [ Upstream commit 717902cc93118119a6fce7765da6cf2786987418 ]
    
    Commit 093d24a20442 ("arm64: PCI: Manage controller-specific data on
    per-controller basis") added code to allocate ACPI PCI root_ops
    dynamically on a per host bridge basis but failed to update the
    corresponding memory allocation failure path in pci_acpi_scan_root()
    leading to a potential memory leakage.
    
    Fix it by adding the required kfree call.
    
    Fixes: 093d24a20442 ("arm64: PCI: Manage controller-specific data on per-controller basis")
    Reviewed-by: Tomasz Nowicki <tn@semihalf.com>
    Signed-off-by: Timmy Li <lixiaoping3@huawei.com>
    [lorenzo.pieralisi@arm.com: refactored code, rewrote commit log]
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    CC: Will Deacon <will.deacon@arm.com>
    CC: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78b336afffe6dcafb242179dd6a68d8fbe355944
Author: Eryu Guan <eguan@redhat.com>
Date:   Wed May 24 18:02:20 2017 -0400

    ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff()
    
    
    [ Upstream commit 624327f8794704c5066b11a52f9da6a09dce7f9a ]
    
    ext4_find_unwritten_pgoff() is used to search for offset of hole or
    data in page range [index, end] (both inclusive), and the max number
    of pages to search should be at least one, if end == index.
    Otherwise the only page is missed and no hole or data is found,
    which is not correct.
    
    When block size is smaller than page size, this can be demonstrated
    by preallocating a file with size smaller than page size and writing
    data to the last block. E.g. run this xfs_io command on a 1k block
    size ext4 on x86_64 host.
    
      # xfs_io -fc "falloc 0 3k" -c "pwrite 2k 1k" \
                -c "seek -d 0" /mnt/ext4/testfile
      wrote 1024/1024 bytes at offset 2048
      1 KiB, 1 ops; 0.0000 sec (42.459 MiB/sec and 43478.2609 ops/sec)
      Whence  Result
      DATA    EOF
    
    Data at offset 2k was missed, and lseek(2) returned ENXIO.
    
    This is unconvered by generic/285 subtest 07 and 08 on ppc64 host,
    where pagesize is 64k. Because a recent change to generic/285
    reduced the preallocated file size to smaller than 64k.
    
    Signed-off-by: Eryu Guan <eguan@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1df375ca4962c8b1bbcc0dc38de53a0da782cdd
Author: Michael Schmitz <schmitzmic@gmail.com>
Date:   Sun Apr 30 19:49:21 2017 +1200

    fix race in drivers/char/random.c:get_reg()
    
    
    [ Upstream commit 9dfa7bba35ac08a63565d58c454dccb7e1bb0a08 ]
    
    get_reg() can be reentered on architectures with prioritized interrupts
    (m68k in this case), causing f->reg_index to be incremented after the
    range check. Out of bounds memory access past the pt_regs struct results.
    This will go mostly undetected unless access is beyond end of memory.
    
    Prevent the race by disabling interrupts in get_reg().
    
    Tested on m68k (Atari Falcon, and ARAnyM emulator).
    
    Kudos to Geert Uytterhoeven for helping to trace this race.
    
    Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
    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 5cddd2f34166ecf24710728458539c024c905fdd
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Wed May 24 14:09:44 2017 +0200

    scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats()
    
    
    [ Upstream commit c2dd893a3b0772d1c680e109b9d5715d7f73022b ]
    
    If multiple tasks attempt to read the stats, it may happen that the
    start_req_done completion is re-initialized while still being used by
    another task, causing a list corruption.
    
    This patch fixes the bug by adding a mutex to serialize the calls to
    bnx2fc_get_host_stats().
    
    WARNING: at lib/list_debug.c:48 list_del+0x6e/0xa0() (Not tainted)
    Hardware name: PowerEdge R820
    list_del corruption. prev->next should be ffff882035627d90, but was ffff884069541588
    
    Pid: 40267, comm: perl Not tainted 2.6.32-642.3.1.el6.x86_64 #1
    Call Trace:
     [<ffffffff8107c691>] ? warn_slowpath_common+0x91/0xe0
     [<ffffffff8107c796>] ? warn_slowpath_fmt+0x46/0x60
     [<ffffffff812ad16e>] ? list_del+0x6e/0xa0
     [<ffffffff81547eed>] ? wait_for_common+0x14d/0x180
     [<ffffffff8106c4a0>] ? default_wake_function+0x0/0x20
     [<ffffffff81547fd3>] ? wait_for_completion_timeout+0x13/0x20
     [<ffffffffa05410b1>] ? bnx2fc_get_host_stats+0xa1/0x280 [bnx2fc]
     [<ffffffffa04cf630>] ? fc_stat_show+0x90/0xc0 [scsi_transport_fc]
     [<ffffffffa04cf8b6>] ? show_fcstat_tx_frames+0x16/0x20 [scsi_transport_fc]
     [<ffffffff8137c647>] ? dev_attr_show+0x27/0x50
     [<ffffffff8113b9be>] ? __get_free_pages+0xe/0x50
     [<ffffffff812170e1>] ? sysfs_read_file+0x111/0x200
     [<ffffffff8119a305>] ? vfs_read+0xb5/0x1a0
     [<ffffffff8119b0b6>] ? fget_light_pos+0x16/0x50
     [<ffffffff8119a651>] ? sys_read+0x51/0xb0
     [<ffffffff810ee1fe>] ? __audit_syscall_exit+0x25e/0x290
     [<ffffffff8100b0d2>] ? system_call_fastpath+0x16/0x1b
    
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Acked-by: Chad Dupuis <chad.dupuis@cavium.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 b3311f62ea227886f95f2f5176b25624f2c1e733
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Wed May 24 01:17:10 2017 +0000

    ASoC: rsnd: SSI PIO adjust to 24bit mode
    
    
    [ Upstream commit 7819a942de7b993771bd9377babc80485fe7606b ]
    
    commit 90431eb49bff ("ASoC: rsnd: don't use PDTA bit for 24bit on SSI")
    fixups 24bit mode data alignment, but PIO was not cared.
    This patch fixes PIO mode 24bit data alignment
    
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.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 07b2a3287210618676773e5f0945a46739e7d4ae
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Sat May 20 00:31:12 2017 +0300

    pNFS/flexfiles: missing error code in ff_layout_alloc_lseg()
    
    
    [ Upstream commit 662f9a105b4322b8559d448f86110e6ec24b8738 ]
    
    If xdr_inline_decode() fails then we end up returning ERR_PTR(0).  The
    caller treats NULL returns as -ENOMEM so it doesn't really hurt runtime,
    but obviously we intended to set an error code here.
    
    Fixes: d67ae825a59d ("pnfs/flexfiles: Add the FlexFile Layout Driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    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 2171500ab056060df54cc015f35560784447ab35
Author: Liping Zhang <zlpnobody@gmail.com>
Date:   Sun May 21 07:22:49 2017 +0800

    netfilter: ctnetlink: fix incorrect nf_ct_put during hash resize
    
    
    [ Upstream commit fefa92679dbe0c613e62b6c27235dcfbe9640ad1 ]
    
    If nf_conntrack_htable_size was adjusted by the user during the ct
    dump operation, we may invoke nf_ct_put twice for the same ct, i.e.
    the "last" ct. This will cause the ct will be freed but still linked
    in hash buckets.
    
    It's very easy to reproduce the problem by the following commands:
      # while : ; do
      echo $RANDOM > /proc/sys/net/netfilter/nf_conntrack_buckets
      done
      # while : ; do
      conntrack -L
      done
      # iperf -s 127.0.0.1 &
      # iperf -c 127.0.0.1 -P 60 -t 36000
    
    After a while, the system will hang like this:
      NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [bash:20184]
      NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [iperf:20382]
      ...
    
    So at last if we find cb->args[1] is equal to "last", this means hash
    resize happened, then we can set cb->args[1] to 0 to fix the above
    issue.
    
    Fixes: d205dc40798d ("[NETFILTER]: ctnetlink: fix deadlock in table dumping")
    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 695d3a35e49cedfc1aec195acabb165fdccac0fe
Author: Milian Wolff <milian.wolff@kdab.com>
Date:   Wed May 24 15:21:25 2017 +0900

    perf report: Fix off-by-one for non-activation frames
    
    
    [ Upstream commit 1982ad48fc82c284a5cc55697a012d3357e84d01 ]
    
    As the documentation for dwfl_frame_pc says, frames that
    are no activation frames need to have their program counter
    decremented by one to properly find the function of the caller.
    
    This fixes many cases where perf report currently attributes
    the cost to the next line. I.e. I have code like this:
    
    ~~~~~~~~~~~~~~~
      #include <thread>
      #include <chrono>
    
      using namespace std;
    
      int main()
      {
        this_thread::sleep_for(chrono::milliseconds(1000));
        this_thread::sleep_for(chrono::milliseconds(100));
        this_thread::sleep_for(chrono::milliseconds(10));
    
        return 0;
      }
    ~~~~~~~~~~~~~~~
    
    Now compile and record it:
    
    ~~~~~~~~~~~~~~~
      g++ -std=c++11 -g -O2 test.cpp
      echo 1 | sudo tee /proc/sys/kernel/sched_schedstats
      perf record \
        --event sched:sched_stat_sleep \
        --event sched:sched_process_exit \
        --event sched:sched_switch --call-graph=dwarf \
        --output perf.data.raw \
        ./a.out
      echo 0 | sudo tee /proc/sys/kernel/sched_schedstats
      perf inject --sched-stat --input perf.data.raw --output perf.data
    ~~~~~~~~~~~~~~~
    
    Before this patch, the report clearly shows the off-by-one issue.
    Most notably, the last sleep invocation is incorrectly attributed
    to the "return 0;" line:
    
    ~~~~~~~~~~~~~~~
      Overhead  Source:Line
      ........  ...........
    
       100.00%  core.c:0
                |
                ---__schedule core.c:0
                   schedule
                   do_nanosleep hrtimer.c:0
                   hrtimer_nanosleep
                   sys_nanosleep
                   entry_SYSCALL_64_fastpath .tmp_entry_64.o:0
                   __nanosleep_nocancel .:0
                   std::this_thread::sleep_for<long, std::ratio<1l, 1000l> > thread:323
                   |
                   |--90.08%--main test.cpp:9
                   |          __libc_start_main
                   |          _start
                   |
                   |--9.01%--main test.cpp:10
                   |          __libc_start_main
                   |          _start
                   |
                    --0.91%--main test.cpp:13
                              __libc_start_main
                              _start
    ~~~~~~~~~~~~~~~
    
    With this patch here applied, the issue is fixed. The report becomes
    much more usable:
    
    ~~~~~~~~~~~~~~~
      Overhead  Source:Line
      ........  ...........
    
       100.00%  core.c:0
                |
                ---__schedule core.c:0
                   schedule
                   do_nanosleep hrtimer.c:0
                   hrtimer_nanosleep
                   sys_nanosleep
                   entry_SYSCALL_64_fastpath .tmp_entry_64.o:0
                   __nanosleep_nocancel .:0
                   std::this_thread::sleep_for<long, std::ratio<1l, 1000l> > thread:323
                   |
                   |--90.08%--main test.cpp:8
                   |          __libc_start_main
                   |          _start
                   |
                   |--9.01%--main test.cpp:9
                   |          __libc_start_main
                   |          _start
                   |
                    --0.91%--main test.cpp:10
                              __libc_start_main
                              _start
    ~~~~~~~~~~~~~~~
    
    Similarly it works for signal frames:
    
    ~~~~~~~~~~~~~~~
      __noinline void bar(void)
      {
        volatile long cnt = 0;
    
        for (cnt = 0; cnt < 100000000; cnt++);
      }
    
      __noinline void foo(void)
      {
        bar();
      }
    
      void sig_handler(int sig)
      {
        foo();
      }
    
      int main(void)
      {
        signal(SIGUSR1, sig_handler);
        raise(SIGUSR1);
    
        foo();
        return 0;
      }
    ~~~~~~~~~~~~~~~~
    
    Before, the report wrongly points to `signal.c:29` after raise():
    
    ~~~~~~~~~~~~~~~~
      $ perf report --stdio --no-children -g srcline -s srcline
      ...
       100.00%  signal.c:11
                |
                ---bar signal.c:11
                   |
                   |--50.49%--main signal.c:29
                   |          __libc_start_main
                   |          _start
                   |
                    --49.51%--0x33a8f
                              raise .:0
                              main signal.c:29
                              __libc_start_main
                              _start
    ~~~~~~~~~~~~~~~~
    
    With this patch in, the issue is fixed and we instead get:
    
    ~~~~~~~~~~~~~~~~
       100.00%  signal   signal            [.] bar
                |
                ---bar signal.c:11
                   |
                   |--50.49%--main signal.c:29
                   |          __libc_start_main
                   |          _start
                   |
                    --49.51%--0x33a8f
                              raise .:0
                              main signal.c:27
                              __libc_start_main
                              _start
    ~~~~~~~~~~~~~~~~
    
    Note how this patch fixes this issue for both unwinding methods, i.e.
    both dwfl and libunwind. The former case is straight-forward thanks
    to dwfl_frame_pc(). For libunwind, we replace the functionality via
    unw_is_signal_frame() for any but the very first frame.
    
    Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yao Jin <yao.jin@linux.intel.com>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170524062129.32529-4-namhyung@kernel.org
    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 0bd1a03e003716cd0b12600c3eeafbc2e202c320
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue May 23 17:25:10 2017 +0300

    libceph: NULL deref on crush_decode() error path
    
    
    [ Upstream commit 293dffaad8d500e1a5336eeb90d544cf40d4fbd8 ]
    
    If there is not enough space then ceph_decode_32_safe() does a goto bad.
    We need to return an error code in that situation.  The current code
    returns ERR_PTR(0) which is NULL.  The callers are not expecting that
    and it results in a NULL dereference.
    
    Fixes: f24e9980eb86 ("ceph: OSD client")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9fc2a46aded05d2ed0e9e05f5156fc7c91b49a4b
Author: Lin Zhang <xiaolou4617@gmail.com>
Date:   Tue May 23 13:29:39 2017 +0800

    net: ieee802154: fix net_device reference release too early
    
    
    [ Upstream commit a611c58b3d42a92e6b23423e166dd17c0c7fffce ]
    
    This patch fixes the kernel oops when release net_device reference in
    advance. In function raw_sendmsg(i think the dgram_sendmsg has the same
    problem), there is a race condition between dev_put and dev_queue_xmit
    when the device is gong that maybe lead to dev_queue_ximt to see
    an illegal net_device pointer.
    
    My test kernel is 3.13.0-32 and because i am not have a real 802154
    device, so i change lowpan_newlink function to this:
    
            /* find and hold real wpan device */
            real_dev = dev_get_by_index(src_net, nla_get_u32(tb[IFLA_LINK]));
            if (!real_dev)
                    return -ENODEV;
    //      if (real_dev->type != ARPHRD_IEEE802154) {
    //              dev_put(real_dev);
    //              return -EINVAL;
    //      }
            lowpan_dev_info(dev)->real_dev = real_dev;
            lowpan_dev_info(dev)->fragment_tag = 0;
            mutex_init(&lowpan_dev_info(dev)->dev_list_mtx);
    
    Also, in order to simulate preempt, i change the raw_sendmsg function
    to this:
    
            skb->dev = dev;
            skb->sk  = sk;
            skb->protocol = htons(ETH_P_IEEE802154);
            dev_put(dev);
            //simulate preempt
            schedule_timeout_uninterruptible(30 * HZ);
            err = dev_queue_xmit(skb);
            if (err > 0)
                    err = net_xmit_errno(err);
    
    and this is my userspace test code named test_send_data:
    
    int main(int argc, char **argv)
    {
            char buf[127];
            int sockfd;
            sockfd = socket(AF_IEEE802154, SOCK_RAW, 0);
            if (sockfd < 0) {
                    printf("create sockfd error: %s\n", strerror(errno));
                    return -1;
            }
            send(sockfd, buf, sizeof(buf), 0);
            return 0;
    }
    
    This is my test case:
    
    root@zhanglin-x-computer:~/develop/802154# uname -a
    Linux zhanglin-x-computer 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15
    03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    root@zhanglin-x-computer:~/develop/802154# ip link add link eth0 name
    lowpan0 type lowpan
    root@zhanglin-x-computer:~/develop/802154#
    //keep the lowpan0 device down
    root@zhanglin-x-computer:~/develop/802154# ./test_send_data &
    //wait a while
    root@zhanglin-x-computer:~/develop/802154# ip link del link dev lowpan0
    //the device is gone
    //oops
    [381.303307] general protection fault: 0000 [#1]SMP
    [381.303407] Modules linked in: af_802154 6lowpan bnep rfcomm
    bluetooth nls_iso8859_1 snd_hda_codec_hdmi snd_hda_codec_realtek
    rts5139(C) snd_hda_intel
    snd_had_codec snd_hwdep snd_pcm snd_page_alloc snd_seq_midi
    snd_seq_midi_event snd_rawmidi snd_req intel_rapl snd_seq_device
    coretemp i915 kvm_intel
    kvm snd_timer snd crct10dif_pclmul crc32_pclmul ghash_clmulni_intel
    cypted drm_kms_helper drm i2c_algo_bit soundcore video mac_hid
    parport_pc ppdev ip parport hid_generic
    usbhid hid ahci r8169 mii libahdi
    [381.304286] CPU:1 PID: 2524 Commm: 1 Tainted: G C 0 3.13.0-32-generic
    [381.304409] Hardware name: Haier Haier DT Computer/Haier DT Codputer,
    BIOS FIBT19H02_X64 06/09/2014
    [381.304546] tasks: ffff000096965fc0 ti: ffffB0013779c000 task.ti:
    ffffB8013779c000
    [381.304659] RIP: 0010:[<ffffffff01621fe1>] [<ffffffff81621fe1>]
    __dev_queue_ximt+0x61/0x500
    [381.304798] RSP: 0018:ffffB8013779dca0 EFLAGS: 00010202
    [381.304880] RAX: 272b031d57565351 RBX: 0000000000000000 RCX: ffff8800968f1a00
    [381.304987] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8800968f1a00
    [381.305095] RBP: ffff8e013773dce0 R08: 0000000000000266 R09: 0000000000000004
    [381.305202] R10: 0000000000000004 R11: 0000000000000005 R12: ffff88013902e000
    [381.305310] R13: 000000000000007f R14: 000000000000007f R15: ffff8800968f1a00
    [381.305418] FS:  00007fc57f50f740(0000) GS: ffff88013fc80000(0000)
    knlGS: 0000000000000000
    [381.305540] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [381.305627] CR2: 00007fad0841c000 CR3: 00000001368dd000 CR4: 00000000001007e0
    [361.905734] Stack:
    [381.305768]  00000000002052d0 000000003facb30a ffff88013779dcc0
    ffff880137764000
    [381.305898]  ffff88013779de70 000000000000007f 000000000000007f
    ffff88013902e000
    [381.306026]  ffff88013779dcf0 ffffffff81622490 ffff88013779dd39
    ffffffffa03af9f1
    [381.306155] Call Trace:
    [381.306202]  [<ffffffff81622490>] dev_queue_xmit+0x10/0x20
    [381.306294]  [<ffffffffa03af9f1>] raw_sendmsg+0x1b1/0x270 [af_802154]
    [381.306396]  [<ffffffffa03af054>] ieee802154_sock_sendmsg+0x14/0x20 [af_802154]
    [381.306512]  [<ffffffff816079eb>] sock_sendmsg+0x8b/0xc0
    [381.306600]  [<ffffffff811d52a5>] ? __d_alloc+0x25/0x180
    [381.306687]  [<ffffffff811a1f56>] ? kmem_cache_alloc_trace+0x1c6/0x1f0
    [381.306791]  [<ffffffff81607b91>] SYSC_sendto+0x121/0x1c0
    [381.306878]  [<ffffffff8109ddf4>] ? vtime_account_user+x54/0x60
    [381.306975]  [<ffffffff81020d45>] ? syscall_trace_enter+0x145/0x250
    [381.307073]  [<ffffffff816086ae>] SyS_sendto+0xe/0x10
    [381.307156]  [<ffffffff8172c87f>] tracesys+0xe1/0xe6
    [381.307233] Code: c6 a1 a4 ff 41 8b 57 78 49 8b 47 20 85 d2 48 8b 80
    78 07 00 00 75 21 49 8b 57 18 48 85 d2 74 18 48 85 c0 74 13 8b 92 ac
    01 00 00 <3b> 50 10 73 08 8b 44 90 14 41 89 47 78 41 f6 84 24 d5 00 00
    00
    [381.307801] RIP [<ffffffff81621fe1>] _dev_queue_xmit+0x61/0x500
    [381.307901]  RSP <ffff88013779dca0>
    [381.347512] Kernel panic - not syncing: Fatal exception in interrupt
    [381.347747] drm_kms_helper: panic occurred, switching back to text console
    
    In my opinion, there is always exist a chance that the device is gong
    before call dev_queue_xmit.
    
    I think the latest kernel is have the same problem and that
    dev_put should be behind of the dev_queue_xmit.
    
    Signed-off-by: Lin Zhang <xiaolou4617@gmail.com>
    Acked-by: Stefan Schmidt <stefan@osg.samsung.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 8adab3b9ea235e156130789bbc1c97c796ab9598
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Mon May 22 20:13:07 2017 +0200

    mlx5: fix bug reading rss_hash_type from CQE
    
    
    [ Upstream commit 12e8b570e732eaa5eae3a2895ba3fbcf91bde2b4 ]
    
    Masks for extracting part of the Completion Queue Entry (CQE)
    field rss_hash_type was swapped, namely CQE_RSS_HTYPE_IP and
    CQE_RSS_HTYPE_L4.
    
    The bug resulted in setting skb->l4_hash, even-though the
    rss_hash_type indicated that hash was NOT computed over the
    L4 (UDP or TCP) part of the packet.
    
    Added comments from the datasheet, to make it more clear what
    these masks are selecting.
    
    Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Acked-by: Saeed Mahameed <saeedm@mellanox.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 e66876452456a209daa7e1bc63539d9be50d9ad6
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue May 23 17:28:36 2017 +0300

    block: fix an error code in add_partition()
    
    
    [ Upstream commit 7bd897cfce1eb373892d35d7f73201b0f9b221c4 ]
    
    We don't set an error code on this path.  It means that we return NULL
    instead of an error pointer and the caller does a NULL dereference.
    
    Fixes: 6d1d8050b4bc ("block, partition: add partition_meta_info to hd_struct")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.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 b983b2a5969c9ee4e2ec73ff3444ec6814441cb8
Author: Stephen Smalley <sds@tycho.nsa.gov>
Date:   Fri May 12 12:41:24 2017 -0400

    selinux: do not check open permission on sockets
    
    
    [ Upstream commit ccb544781d34afdb73a9a73ae53035d824d193bf ]
    
    open permission is currently only defined for files in the kernel
    (COMMON_FILE_PERMS rather than COMMON_FILE_SOCK_PERMS). Construction of
    an artificial test case that tries to open a socket via /proc/pid/fd will
    generate a recvfrom avc denial because recvfrom and open happen to map to
    the same permission bit in socket vs file classes.
    
    open of a socket via /proc/pid/fd is not supported by the kernel regardless
    and will ultimately return ENXIO. But we hit the permission check first and
    can thus produce these odd/misleading denials.  Omit the open check when
    operating on a socket.
    
    Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c582b6bac13e495d6c14fdd1f866b93ff90cddc
Author: Tariq Toukan <tariqt@mellanox.com>
Date:   Thu May 18 13:34:43 2017 +0300

    net/mlx5: Tolerate irq_set_affinity_hint() failures
    
    
    [ Upstream commit b665d98edc9ab295169be2fc5bb4e89a46de0a1a ]
    
    Add tolerance to failures of irq_set_affinity_hint().
    Its role is to give hints that optimizes performance,
    and should not block the driver load.
    
    In non-SMP systems, functionality is not available as
    there is a single core, and all these calls definitely
    fail.  Hence, do not call the function and avoid the
    warning prints.
    
    Fixes: db058a186f98 ("net/mlx5_core: Set irq affinity hints")
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Cc: kernel-team@fb.com
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72185b9770fc588bc277e4e5336e9cdf7c42ad45
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat May 13 14:39:53 2017 +0200

    gpio: crystalcove: Do not write regular gpio registers for virtual GPIOs
    
    
    [ Upstream commit 9a752b4c9ab924033bfdb8784c680d50b2bd5684 ]
    
    The Crystal Cove PMIC has 16 real GPIOs but the ACPI code for devices
    with this PMIC may address up to 95 GPIOs, these extra GPIOs are
    called virtual GPIOs and are used by the ACPI code as a method of
    accessing various non GPIO bits of PMIC.
    
    Commit dcdc3018d635 ("gpio: crystalcove: support virtual GPIO") added
    dummy support for these to avoid a bunch of ACPI errors, but instead of
    ignoring writes / reads to them by doing:
    
    if (gpio >= CRYSTALCOVE_GPIO_NUM)
            return 0;
    
    It accidentally introduced the following wrong check:
    
    if (gpio > CRYSTALCOVE_VGPIO_NUM)
            return 0;
    
    Which means that attempts by the ACPI code to access these gpios
    causes some arbitrary gpio to get touched through for example
    GPIO1P0CTLO + gpionr % 8.
    
    Since we do support input/output (but not interrupts) on the 0x5e
    virtual GPIO, this commit makes to_reg return -ENOTSUPP for unsupported
    virtual GPIOs so as to not have to check for (gpio >= CRYSTALCOVE_GPIO_NUM
    && gpio != 0x5e) everywhere and to make it easier to add support for more
    virtual GPIOs in the future.
    
    It then adds a check for to_reg returning an error to all callers where
    this may happen fixing the ACPI code accessing virtual GPIOs accidentally
    causing changes to real GPIOs.
    
    Fixes: dcdc3018d635 ("gpio: crystalcove: support virtual GPIO")
    Cc: Aaron Lu <aaron.lu@intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@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 a1e7a9e2e3c992574a19493566aff6580a2d5ad5
Author: Vlastimil Babka <vbabka@suse.cz>
Date:   Mon May 15 15:13:16 2017 +0200

    sched/numa: Use down_read_trylock() for the mmap_sem
    
    
    [ Upstream commit 8655d5497735b288f8a9b458bd22e7d1bf95bb61 ]
    
    A customer has reported a soft-lockup when running an intensive
    memory stress test, where the trace on multiple CPU's looks like this:
    
     RIP: 0010:[<ffffffff810c53fe>]
      [<ffffffff810c53fe>] native_queued_spin_lock_slowpath+0x10e/0x190
    ...
     Call Trace:
      [<ffffffff81182d07>] queued_spin_lock_slowpath+0x7/0xa
      [<ffffffff811bc331>] change_protection_range+0x3b1/0x930
      [<ffffffff811d4be8>] change_prot_numa+0x18/0x30
      [<ffffffff810adefe>] task_numa_work+0x1fe/0x310
      [<ffffffff81098322>] task_work_run+0x72/0x90
    
    Further investigation showed that the lock contention here is pmd_lock().
    
    The task_numa_work() function makes sure that only one thread is let to perform
    the work in a single scan period (via cmpxchg), but if there's a thread with
    mmap_sem locked for writing for several periods, multiple threads in
    task_numa_work() can build up a convoy waiting for mmap_sem for read and then
    all get unblocked at once.
    
    This patch changes the down_read() to the trylock version, which prevents the
    build up. For a workload experiencing mmap_sem contention, it's probably better
    to postpone the NUMA balancing work anyway. This seems to have fixed the soft
    lockups involving pmd_lock(), which is in line with the convoy theory.
    
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Rik van Riel <riel@redhat.com>
    Acked-by: Mel Gorman <mgorman@techsingularity.net>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20170515131316.21909-1-vbabka@suse.cz
    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 f02bfec06f148d1aa2c08b8ecdc3afbc31ec0b6f
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon May 22 12:04:18 2017 +0300

    perf/core: Fix error handling in perf_event_alloc()
    
    
    [ Upstream commit 36cc2b9222b5106de34085c4dd8635ac67ef5cba ]
    
    We don't set an error code here which means that perf_event_alloc()
    returns ERR_PTR(0) (in other words NULL).  The callers are not expecting
    that and would Oops.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Fixes: 375637bc5249 ("perf/core: Introduce address range filtering")
    Link: http://lkml.kernel.org/r/20170522090418.hvs6icgpdo53wkn5@mwanda
    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 1a53869c4c3406d841093c8e5e0649e5f6de80ac
Author: Tin Huynh <tnhuynh@apm.com>
Date:   Mon May 22 16:19:20 2017 +0700

    leds: pca955x: Correct I2C Functionality
    
    
    [ Upstream commit aace34c0bb8ea3c8bdcec865b6a4be4db0a68e33 ]
    
    The driver checks an incorrect flag of functionality of adapter.
    When a driver requires i2c_smbus_read_byte_data and
    i2c_smbus_write_byte_data, it should check I2C_FUNC_SMBUS_BYTE_DATA
    instead I2C_FUNC_I2C.
    This patch fixes the problem.
    
    Signed-off-by: Tin Huynh <tnhuynh@apm.com>
    Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69f4dd14771cad36c38640ff3f5c537bc6b97762
Author: Holger Brunck <holger.brunck@keymile.com>
Date:   Mon May 22 09:31:15 2017 +0200

    net/wan/fsl_ucc_hdlc: fix muram allocation error
    
    
    [ Upstream commit 85deed56032b6c98b541895bfda9bdd74f6ed987 ]
    
    sizeof(priv->ucc_pram) is 4 as it is the size of a pointer, but we want
    to reserve space for the struct ucc_hdlc_param.
    
    Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
    Cc: Zhao Qiang <qiang.zhao@nxp.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 87aa297871ee0d05d45648ba647cb0ea0485884c
Author: Kees Cook <keescook@chromium.org>
Date:   Fri May 5 15:38:41 2017 -0700

    ray_cs: Avoid reading past end of buffer
    
    
    [ Upstream commit e48d661eb13f2f83861428f001c567fdb3f317e8 ]
    
    Using memcpy() from a buffer that is shorter than the length copied means
    the destination buffer is being filled with arbitrary data from the kernel
    rodata segment. In this case, the source was made longer, since it did not
    match the destination structure size. Additionally removes a needless cast.
    
    This was found with the future CONFIG_FORTIFY_SOURCE feature.
    
    Cc: Daniel Micay <danielmicay@gmail.com>
    Signed-off-by: Kees Cook <keescook@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 caead37e3aebbe1b3b9c11664fc9f102e35f42f7
Author: Suman Anna <s-anna@ti.com>
Date:   Tue May 16 17:13:45 2017 -0500

    ARM: davinci: da8xx: Create DSP device only when assigned memory
    
    
    [ Upstream commit f97f03578b997a8ec2b9bc4928f958a865137268 ]
    
    The DSP device on Davinci platforms does not have an MMU and requires
    specific DDR memory to boot. This memory is reserved using the rproc_mem
    kernel boot parameter and is assigned to the device on non-DT boots.
    The remoteproc core uses the DMA API and so will fall back to assigning
    random memory if this memory is not assigned to the device, but the DSP
    remote processor boot will not be successful in such cases. So, check
    that memory has been reserved and assigned to the device specifically
    before even creating the DSP device.
    
    Signed-off-by: Suman Anna <s-anna@ti.com>
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03858f5f7ad86a1b8332e4a3329b7757c34da30c
Author: Guoqing Jiang <gqjiang@suse.com>
Date:   Tue May 16 14:01:25 2017 +0800

    md-cluster: fix potential lock issue in add_new_disk
    
    
    [ Upstream commit 2dffdc0724004f38f5e39907747b53e4b0d80e59 ]
    
    The add_new_disk returns with communication locked if
    __sendmsg returns failure, fix it with call unlock_comm
    before return.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    CC: Goldwyn Rodrigues <rgoldwyn@suse.com>
    Signed-off-by: Guoqing Jiang <gqjiang@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 a90e0450d203c8f13f966e62638f146b46b977f8
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Sun May 21 22:35:23 2017 -0400

    ext4: handle the rest of ext4_mb_load_buddy() ENOMEM errors
    
    
    [ Upstream commit 9651e6b2e20648d04d5e1fe6479a3056047e8781 ]
    
    I've got another report about breaking ext4 by ENOMEM error returned from
    ext4_mb_load_buddy() caused by memory shortage in memory cgroup.
    This time inside ext4_discard_preallocations().
    
    This patch replaces ext4_error() with ext4_warning() where errors returned
    from ext4_mb_load_buddy() are not fatal and handled by caller:
    * ext4_mb_discard_group_preallocations() - called before generating ENOSPC,
      we'll try to discard other group or return ENOSPC into user-space.
    * ext4_trim_all_free() - just stop trimming and return ENOMEM from ioctl.
    
    Some callers cannot handle errors, thus __GFP_NOFAIL is used for them:
    * ext4_discard_preallocations()
    * ext4_mb_discard_lg_preallocations()
    
    Fixes: adb7ef600cc9 ("ext4: use __GFP_NOFAIL in ext4_free_blocks()")
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    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 691b03605d23f49888e1743467362b6bb730942a
Author: Mikko Koivunen <mikko.koivunen@fi.rohmeurope.com>
Date:   Thu May 18 15:12:50 2017 +0300

    iio: light: rpr0521 poweroff for probe fails
    
    
    [ Upstream commit 12d74949133e2450533894ea01ce0c56646ce006 ]
    
    Set sensor measurement off after probe fail in pm_runtime_set_active() or
    iio_device_register(). Without this change sensor measurement stays on
    even though probe fails on these calls.
    
    This is maybe rare case, but causes constant power drain without any
    benefits when it happens. Power drain is 20-500uA, typically 180uA.
    
    Signed-off-by: Mikko Koivunen <mikko.koivunen@fi.rohmeurope.com>
    Acked-by: Daniel Baluta <daniel.baluta@nxp.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 e187c0c9104db9271afa0c2b63c403ace286b93d
Author: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Date:   Fri May 19 17:48:02 2017 +0300

    iio: hi8435: cleanup reset gpio
    
    
    [ Upstream commit 61305664a542f874283f74bf0b27ddb31f5045d7 ]
    
    Reset GPIO is active low.
    
    Currently driver uses gpiod_set_value(1) to clean reset, which depends
    on device tree to contain GPIO_ACTIVE_HIGH - that does not match reality.
    
    This fixes driver to use _raw version of gpiod_set_value() to enforce
    active-low semantics despite of what's written in device tree. Allowing
    device tree to override that only opens possibility for errors and does
    not add any value.
    
    Additionally, use _cansleep version to make things work with i2c-gpio
    and other sleeping gpio drivers.
    
    Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.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 a1aeeacc646dc2e576512988b7f721751c0373ef
Author: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Date:   Fri May 19 17:48:00 2017 +0300

    iio: hi8435: avoid garbage event at first enable
    
    
    [ Upstream commit ee19ac340c5fdfd89c6348be4563453c61ab54a9 ]
    
    Currently, driver generates events for channels if new reading differs
    from previous one. This "previous value" is initialized to zero, which
    results into event if value is constant-one.
    
    Fix that by initializing "previous value" by reading at event enable
    time.
    
    This provides reliable sequence for userspace:
    - enable event,
    - AFTER THAT read current value,
    - AFTER THAT each event will correspond to change.
    
    Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.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 581ec36f26ad69b70ec3ed4ee552bd38b961d917
Author: Stefan Agner <stefan@agner.ch>
Date:   Mon May 15 14:00:31 2017 -0700

    ASoC: simple-card: fix mic jack initialization
    
    
    [ Upstream commit f746aa5e8636c83e53bbb2d988bb614f732b2b80 ]
    
    Initialize asoc_simple_card_init_mic with the correct struct
    asoc_simple_jack.
    
    Fixes: 9eac361877b3 ("ASoC: simple-card: add new asoc_simple_jack and use it")
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.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 c4c3203761117c041bb457d05201935131e351f1
Author: Antony Antony <antony@phenome.org>
Date:   Fri May 19 12:47:00 2017 +0200

    xfrm: fix state migration copy replay sequence numbers
    
    
    [ Upstream commit a486cd23661c9387fb076c3f6ae8b2aa9d20d54a ]
    
    During xfrm migration copy replay and preplay sequence numbers
    from the previous state.
    
    Here is a tcpdump output showing the problem.
    10.0.10.46 is running vanilla kernel, is the IKE/IPsec responder.
    After the migration it sent wrong sequence number, reset to 1.
    The migration is from 10.0.0.52 to 10.0.0.53.
    
    IP 10.0.0.52.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7cf), length 136
    IP 10.0.10.46.4500 > 10.0.0.52.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x7cf), length 136
    IP 10.0.0.52.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7d0), length 136
    IP 10.0.10.46.4500 > 10.0.0.52.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x7d0), length 136
    
    IP 10.0.0.53.4500 > 10.0.10.46.4500: NONESP-encap: isakmp: child_sa  inf2[I]
    IP 10.0.10.46.4500 > 10.0.0.53.4500: NONESP-encap: isakmp: child_sa  inf2[R]
    IP 10.0.0.53.4500 > 10.0.10.46.4500: NONESP-encap: isakmp: child_sa  inf2[I]
    IP 10.0.10.46.4500 > 10.0.0.53.4500: NONESP-encap: isakmp: child_sa  inf2[R]
    
    IP 10.0.0.53.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7d1), length 136
    
    NOTE: next sequence is wrong 0x1
    
    IP 10.0.10.46.4500 > 10.0.0.53.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x1), length 136
    IP 10.0.0.53.4500 > 10.0.10.46.4500: UDP-encap: ESP(spi=0x43ef462d,seq=0x7d2), length 136
    IP 10.0.10.46.4500 > 10.0.0.53.4500: UDP-encap: ESP(spi=0xca1c282d,seq=0x2), length 136
    
    Signed-off-by: Antony Antony <antony@phenome.org>
    Reviewed-by: Richard Guy Briggs <rgb@tricolour.ca>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35253ff9e9134f4c65718573d274d97941a9ba70
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Fri May 19 11:29:04 2017 +1000

    selftests/powerpc: Fix TM resched DSCR test with some compilers
    
    
    [ Upstream commit fe06fe860250a4f01d0eaf70a2563b1997174a74 ]
    
    The tm-resched-dscr test has started failing sometimes, depending on
    what compiler it's built with, eg:
    
      test: tm_resched_dscr
      Check DSCR TM context switch: tm-resched-dscr: tm-resched-dscr.c:76: test_body: Assertion `rv' failed.
      !! child died by signal 6
    
    When it fails we see that the compiler doesn't initialise rv to 1 before
    entering the inline asm block. Although that's counter intuitive, it
    is allowed because we tell the compiler that the inline asm will write
    to rv (using "=r"), meaning the original value is irrelevant.
    
    Marking it as a read/write parameter would presumably work, but it seems
    simpler to fix it by setting the initial value of rv in the inline asm.
    
    Fixes: 96d016108640 ("powerpc: Correct DSCR during TM context switch")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Acked-by: Michael Neuling <mikey@neuling.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit acf6bfef15fac288f68e1b9a1e63f8b5fee5771b
Author: Colin Ian King <colin.king@canonical.com>
Date:   Wed May 3 15:26:00 2017 +0100

    ath5k: fix memory leak on buf on failed eeprom read
    
    
    [ Upstream commit 8fed6823e06e43ee9cf7c0ffecec2f9111ce6201 ]
    
    The AR5K_EEPROM_READ macro returns with -EIO if a read error
    occurs causing a memory leak on the allocated buffer buf. Fix
    this by explicitly calling ath5k_hw_nvram_read and exiting on
    the via the freebuf label that performs the necessary free'ing
    of buf when a read error occurs.
    
    Detected by CoverityScan, CID#1248782 ("Resource Leak")
    
    Signed-off-by: Colin Ian King <colin.king@canonical.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 e88f1e3a8b3aedfd2dacc6cec1c051295a65e045
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Thu May 18 20:37:31 2017 +1000

    powerpc/mm: Fix virt_addr_valid() etc. on 64-bit hash
    
    
    [ Upstream commit e41e53cd4fe331d0d1f06f8e4ed7e2cc63ee2c34 ]
    
    virt_addr_valid() is supposed to tell you if it's OK to call virt_to_page() on
    an address. What this means in practice is that it should only return true for
    addresses in the linear mapping which are backed by a valid PFN.
    
    We are failing to properly check that the address is in the linear mapping,
    because virt_to_pfn() will return a valid looking PFN for more or less any
    address. That bug is actually caused by __pa(), used in virt_to_pfn().
    
    eg: __pa(0xc000000000010000) = 0x10000  # Good
        __pa(0xd000000000010000) = 0x10000  # Bad!
        __pa(0x0000000000010000) = 0x10000  # Bad!
    
    This started happening after commit bdbc29c19b26 ("powerpc: Work around gcc
    miscompilation of __pa() on 64-bit") (Aug 2013), where we changed the definition
    of __pa() to work around a GCC bug. Prior to that we subtracted PAGE_OFFSET from
    the value passed to __pa(), meaning __pa() of a 0xd or 0x0 address would give
    you something bogus back.
    
    Until we can verify if that GCC bug is no longer an issue, or come up with
    another solution, this commit does the minimal fix to make virt_addr_valid()
    work, by explicitly checking that the address is in the linear mapping region.
    
    Fixes: bdbc29c19b26 ("powerpc: Work around gcc miscompilation of __pa() on 64-bit")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: Paul Mackerras <paulus@ozlabs.org>
    Reviewed-by: Balbir Singh <bsingharora@gmail.com>
    Tested-by: Breno Leitao <breno.leitao@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2fb42f008bb8540ef0f12250e7c44508fd795824
Author: Varun Prakash <varun@chelsio.com>
Date:   Wed May 17 20:30:43 2017 +0530

    scsi: csiostor: fix use after free in csio_hw_use_fwconfig()
    
    
    [ Upstream commit a351e40b6de550049423a26f7ded7b639e363d89 ]
    
    mbp pointer is passed to csio_hw_validate_caps() so call mempool_free()
    after calling csio_hw_validate_caps().
    
    Signed-off-by: Varun Prakash <varun@chelsio.com>
    Fixes: 541c571fa2fd ("csiostor:Use firmware version from cxgb4/t4fw_version.h")
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    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 c8799579ff4b1970c519ab664dffca1e9d1198de
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Thu May 18 13:03:52 2017 +0200

    mlxsw: spectrum: Avoid possible NULL pointer dereference
    
    
    [ Upstream commit c0e01eac7ada785fdeaea1ae5476ec1cf3b00374 ]
    
    In case we got an FDB notification for a port that doesn't exist we
    execute an FDB entry delete to prevent it from re-appearing the next
    time we poll for notifications.
    
    If the operation failed we would trigger a NULL pointer dereference as
    'mlxsw_sp_port' is NULL.
    
    Fix it by reporting the error using the underlying bus device instead.
    
    Fixes: 12f1501e7511 ("mlxsw: spectrum: remove FDB entry in case we get unknown object notification")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: Jiri Pirko <jiri@mellanox.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 eed386e2e286f1d187b293b84ab53d0740b549c3
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu May 18 15:01:34 2017 +0200

    sh_eth: Use platform device for printing before register_netdev()
    
    
    [ Upstream commit 5f5c5449acad0cd3322e53e1ac68c044483b0aa5 ]
    
    The MDIO initialization failure message is printed using the network
    device, before it has been registered, leading to:
    
         (null): failed to initialise MDIO
    
    Use the platform device instead to fix this:
    
        sh-eth ee700000.ethernet: failed to initialise MDIO
    
    Fixes: daacf03f0bbfefee ("sh_eth: Register MDIO bus before registering the network device")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.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 247e2136c3f98dc287116492cfa78ab2f060dc3b
Author: Holger Brunck <holger.brunck@keymile.com>
Date:   Wed May 17 17:24:37 2017 +0200

    fsl/qe: add bit description for SYNL register for GUMR
    
    
    [ Upstream commit c7f235a7c2d09b1b83671ba2d93ebee981554467 ]
    
    Add the bitmask for the two bit SYNL register according to the QUICK
    Engine Reference Manual.
    
    Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
    Cc: Zhao Qiang <qiang.zhao@nxp.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 6b3a9354cd0b2dae4d2d3e19e63173e30eec74d7
Author: Holger Brunck <holger.brunck@keymile.com>
Date:   Wed May 17 17:24:35 2017 +0200

    net/wan/fsl_ucc_hdlc: fix incorrect memory allocation
    
    
    [ Upstream commit 5b8aad93c52bdda6a731cab8497998cfa0f2df07 ]
    
    We need space for the struct qe_bd and not for a pointer to this struct.
    
    Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
    Cc: Zhao Qiang <qiang.zhao@nxp.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 f74050ed6ba48d032e130e462e24c87fb627bd38
Author: Holger Brunck <holger.brunck@keymile.com>
Date:   Wed May 17 17:24:33 2017 +0200

    net/wan/fsl_ucc_hdlc: fix unitialized variable warnings
    
    
    [ Upstream commit 66bb144bd9096dd5268ef736ba769b8b6f4ef100 ]
    
    This fixes the following compiler warnings:
    drivers/net/wan/fsl_ucc_hdlc.c: In function 'ucc_hdlc_poll':
    warning: 'skb' may be used uninitialized in this function
    [-Wmaybe-uninitialized]
      skb->mac_header = skb->data - skb->head;
    
    and
    
    drivers/net/wan/fsl_ucc_hdlc.c: In function 'ucc_hdlc_probe':
    drivers/net/wan/fsl_ucc_hdlc.c:1127:3: warning: 'utdm' may be used
    uninitialized in this function [-Wmaybe-uninitialized]
       kfree(utdm);
    
    Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
    Cc: Zhao Qiang <qiang.zhao@nxp.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 13b9c31db4f2627920328f7010ed6a3bcb958e60
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Apr 25 20:15:35 2017 +0200

    serial: sh-sci: Fix race condition causing garbage during shutdown
    
    
    [ Upstream commit 1cf4a7efdc71cab84c42cfea7200608711ea954f ]
    
    If DMA is enabled and used, a burst of old data may be seen on the
    serial console during "poweroff" or "reboot".  uart_flush_buffer()
    clears the circular buffer, but sci_port.tx_dma_len is not reset.
    This leads to a circular buffer overflow, dumping (UART_XMIT_SIZE -
    sci_port.tx_dma_len) bytes.
    
    To fix this, add a .flush_buffer() callback that resets
    sci_port.tx_dma_len.
    
    Inspired by commit 31ca2c63fdc0aee7 ("tty/serial: atmel: fix race
    condition (TX+DMA)").
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    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 65db56497574362f0f57f18f1f7ac8ff03926d17
Author: Vignesh R <vigneshr@ti.com>
Date:   Sat Apr 22 18:37:19 2017 +0530

    serial: 8250: omap: Disable DMA for console UART
    
    
    [ Upstream commit 84b40e3b57eef1417479c00490dd4c9f6e5ffdbc ]
    
    Kernel always writes log messages to console via
    serial8250_console_write()->serial8250_console_putchar() which directly
    accesses UART_TX register _without_ using DMA.
    
    But, if other processes like systemd using same UART port, then these
    writes are handled by a different code flow using 8250_omap driver where
    there is provision to use DMA.
    
    It seems that it is possible that both DMA and CPU might simultaneously
    put data to UART FIFO and lead to potential loss of data due to FIFO
    overflow and weird data corruption. This happens when both kernel
    console and userspace tries to write simultaneously to the same UART
    port. Therefore, disable DMA on kernel console port to avoid potential
    race between CPU and DMA.
    
    Signed-off-by: Vignesh R <vigneshr@ti.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 c85669ef1e34371658bf17021ad139a44fea43b1
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue May 16 11:47:52 2017 -0400

    USB: ene_usb6250: fix SCSI residue overwriting
    
    
    [ Upstream commit aa18c4b6e0e39bfb00af48734ec24bc189ac9909 ]
    
    In the ene_usb6250 sub-driver for usb-storage, the SCSI residue is not
    reported correctly.  The residue is initialized to 0, but this value
    is overwritten whenever the driver sends firmware to the card reader
    before performing the current command.  As a result, a valid READ or
    WRITE operation appears to have failed, causing the SCSI core to retry
    the command multiple times and eventually fail.
    
    This patch fixes the problem by resetting the SCSI residue to 0 after
    sending firmware to the device.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: Andreas Hartmann <andihartmann@01019freenet.de>
    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 53678836e3bc3d06ca1be22a185d839de557ef45
Author: linzhang <xiaolou4617@gmail.com>
Date:   Wed May 17 12:05:07 2017 +0800

    net: x25: fix one potential use-after-free issue
    
    
    [ Upstream commit 64df6d525fcff1630098db9238bfd2b3e092d5c1 ]
    
    The function x25_init is not properly unregister related resources
    on error handler.It is will result in kernel oops if x25_init init
    failed, so add properly unregister call on error handler.
    
    Also, i adjust the coding style and make x25_register_sysctl properly
    return failure.
    
    Signed-off-by: linzhang <xiaolou4617@gmail.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 651688ba685a9079c3ec9dfa5fa72936594e7f2d
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue May 16 11:47:42 2017 -0400

    USB: ene_usb6250: fix first command execution
    
    
    [ Upstream commit 4b309f1c4972c8f09e03ac64fc63510dbf5591a4 ]
    
    In the ene_usb6250 sub-driver for usb-storage, the ene_transport()
    routine is supposed to initialize the driver before executing the
    current command, if the initialization has not already been performed.
    However, a bug in the routine causes it to skip the command after
    doing the initialization.  Also, the routine does not return an
    appropriate error code if either the initialization or the command
    fails.
    
    As a result of the first bug, the first command (a SCSI INQUIRY) is
    not carried out.  The results can be seen in the system log, in the
    form of a warning message and empty or garbage INQUIRY data:
    
    Apr 18 22:40:08 notebook2 kernel: scsi host6: scsi scan: INQUIRY result too short (5), using 36
    Apr 18 22:40:08 notebook2 kernel: scsi 6:0:0:0: Direct-Access                                    PQ: 0 ANSI: 0
    
    This patch fixes both errors.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: Andreas Hartmann <andihartmann@01019freenet.de>
    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 c3231c038ae7dc4e3c3647ec7c1903744303549c
Author: Petr Cvek <petr.cvek@tul.cz>
Date:   Mon Apr 24 22:51:58 2017 -0300

    pxa_camera: fix module remove codepath for v4l2 clock
    
    
    [ Upstream commit e3b4d10cc057522353c4a02f2f90dca6a52e006f ]
    
    The conversion from soc_camera omitted a correct handling of the clock
    gating for a sensor. When the pxa_camera driver module was removed it
    tried to unregister clk, but this caused a similar warning:
    
      WARNING: CPU: 0 PID: 6740 at drivers/media/v4l2-core/v4l2-clk.c:278
      v4l2_clk_unregister(): Refusing to unregister ref-counted 0-0030 clock!
    
    The clock was at time still refcounted by the sensor driver. Before
    the removing of the pxa_camera the clock must be dropped by the sensor
    driver. This should be triggered by v4l2_async_notifier_unregister() call
    which removes sensor driver module too, calls unbind() function and then
    tries to probe sensor driver again. Inside unbind() we can safely
    unregister the v4l2 clock as the sensor driver got removed. The original
    v4l2_clk_unregister() should be put inside test as the clock can be
    already unregistered from unbind(). If there was not any bound sensor
    the clock is still present.
    
    The codepath is practically a copy from the old soc_camera. The bug was
    tested with a pxa_camera+ov9640 combination during the conversion
    of the ov9640 from the soc_camera.
    
    Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
    Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.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 d84a1c8e3228cf43d2dea63e480a0dd230a663dd
Author: Jisheng Zhang <jszhang@marvell.com>
Date:   Wed Apr 26 16:59:34 2017 +0800

    usb: chipidea: properly handle host or gadget initialization failure
    
    
    [ Upstream commit c4a0bbbdb7f6e3c37fa6deb3ef28c5ed99da6175 ]
    
    If ci_hdrc_host_init() or ci_hdrc_gadget_init() returns error and the
    error != -ENXIO, as Peter pointed out, "it stands for initialization
    for host or gadget has failed", so we'd better return failure rather
    continue.
    
    And before destroying the otg, i.e ci_hdrc_otg_destroy(ci), we should
    also check ci->roles[CI_ROLE_GADGET].
    
    Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8207552a7be8e24ceb5ad26e4f7069891b1ddc3f
Author: Sugar Zhang <sugar.zhang@rock-chips.com>
Date:   Wed May 17 17:52:24 2017 +0800

    ARM: dts: rockchip: fix rk322x i2s1 pinctrl error
    
    
    [ Upstream commit 9d420e9b4140f8938ad6aa0d29e2428a2af6122b ]
    
    Refer to Chapter 5.3.2 of rk3229 TRM, we can see that GPIO1A[2,4,5]
    using RK_FUNC_2 not RK_FUNC_1. This patch fixes it.
    
    Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
    Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a20049d8fb7ed17638ada8c76fb11555b1d43367
Author: Ihar Hrachyshka <ihrachys@redhat.com>
Date:   Tue May 16 07:53:43 2017 -0700

    arp: honour gratuitous ARP _replies_
    
    
    [ Upstream commit 23d268eb240954e6e78f7cfab04f2b1e79f84489 ]
    
    When arp_accept is 1, gratuitous ARPs are supposed to override matching
    entries irrespective of whether they arrive during locktime. This was
    implemented in commit 56022a8fdd87 ("ipv4: arp: update neighbour address
    when a gratuitous arp is received and arp_accept is set")
    
    There is a glitch in the patch though. RFC 2002, section 4.6, "ARP,
    Proxy ARP, and Gratuitous ARP", defines gratuitous ARPs so that they can
    be either of Request or Reply type. Those Reply gratuitous ARPs can be
    triggered with standard tooling, for example, arping -A option does just
    that.
    
    This patch fixes the glitch, making both Request and Reply flavours of
    gratuitous ARPs to behave identically.
    
    As per RFC, if gratuitous ARPs are of Reply type, their Target Hardware
    Address field should also be set to the link-layer address to which this
    cache entry should be updated. The field is present in ARP over Ethernet
    but not in IEEE 1394. In this patch, I don't consider any broadcasted
    ARP replies as gratuitous if the field is not present, to conform the
    standard. It's not clear whether there is such a thing for IEEE 1394 as
    a gratuitous ARP reply; until it's cleared up, we will ignore such
    broadcasts. Note that they will still update existing ARP cache entries,
    assuming they arrive out of locktime time interval.
    
    Signed-off-by: Ihar Hrachyshka <ihrachys@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 2c2605209a11ea43edcbfa1f02b7814c3213dda3
Author: Ihar Hrachyshka <ihrachys@redhat.com>
Date:   Tue May 16 08:44:24 2017 -0700

    neighbour: update neigh timestamps iff update is effective
    
    
    [ Upstream commit 77d7123342dcf6442341b67816321d71da8b2b16 ]
    
    It's a common practice to send gratuitous ARPs after moving an
    IP address to another device to speed up healing of a service. To
    fulfill service availability constraints, the timing of network peers
    updating their caches to point to a new location of an IP address can be
    particularly important.
    
    Sometimes neigh_update calls won't touch neither lladdr nor state, for
    example if an update arrives in locktime interval. The neigh->updated
    value is tested by the protocol specific neigh code, which in turn
    will influence whether NEIGH_UPDATE_F_OVERRIDE gets set in the
    call to neigh_update() or not. As a result, we may effectively ignore
    the update request, bailing out of touching the neigh entry, except that
    we still bump its timestamps inside neigh_update.
    
    This may be a problem for updates arriving in quick succession. For
    example, consider the following scenario:
    
    A service is moved to another device with its IP address. The new device
    sends three gratuitous ARP requests into the network with ~1 seconds
    interval between them. Just before the first request arrives to one of
    network peer nodes, its neigh entry for the IP address transitions from
    STALE to DELAY.  This transition, among other things, updates
    neigh->updated. Once the kernel receives the first gratuitous ARP, it
    ignores it because its arrival time is inside the locktime interval. The
    kernel still bumps neigh->updated. Then the second gratuitous ARP
    request arrives, and it's also ignored because it's still in the (new)
    locktime interval. Same happens for the third request. The node
    eventually heals itself (after delay_first_probe_time seconds since the
    initial transition to DELAY state), but it just wasted some time and
    require a new ARP request/reply round trip. This unfortunate behaviour
    both puts more load on the network, as well as reduces service
    availability.
    
    This patch changes neigh_update so that it bumps neigh->updated (as well
    as neigh->confirmed) only once we are sure that either lladdr or entry
    state will change). In the scenario described above, it means that the
    second gratuitous ARP request will actually update the entry lladdr.
    
    Ideally, we would update the neigh entry on the very first gratuitous
    ARP request. The locktime mechanism is designed to ignore ARP updates in
    a short timeframe after a previous ARP update was honoured by the kernel
    layer. This would require tracking timestamps for state transitions
    separately from timestamps when actual updates are received. This would
    probably involve changes in neighbour struct. Therefore, the patch
    doesn't tackle the issue of the first gratuitous APR ignored, leaving
    it for a follow-up.
    
    Signed-off-by: Ihar Hrachyshka <ihrachys@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 4cc339e66447d8bee92a7f8ecbc23d8aa517fba1
Author: Suman Anna <s-anna@ti.com>
Date:   Tue May 9 18:58:24 2017 -0500

    uio: fix incorrect memory leak cleanup
    
    
    [ Upstream commit 0d83539092ddb1ab79b4d65bccb866bf07ea2ccd ]
    
    Commit 75f0aef6220d ("uio: fix memory leak") has fixed up some
    memory leaks during the failure paths of the addition of uio
    attributes, but still is not correct entirely. A kobject_uevent()
    failure still needs a kobject_put() and the kobject container
    structure allocation failure before the kobject_init() doesn't
    need a kobject_put(). Fix this properly.
    
    Fixes: 75f0aef6220d ("uio: fix memory leak")
    Signed-off-by: Suman Anna <s-anna@ti.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 c4eca7ee0ed886529c6446bad7fb5ead5e8129d6
Author: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
Date:   Tue May 16 10:14:44 2017 +1200

    ipmr: vrf: Find VIFs using the actual device
    
    
    [ Upstream commit bcfc7d33110b0f33069d74138eeb7ca9acbb3c85 ]
    
    The skb->dev that is passed into ip_mr_input is
    the loX device for VRFs. When we lookup a vif
    for this dev, none is found as we do not create
    vifs for loopbacks. Instead lookup a vif for the
    actual device that the packet was received on,
    eg the vlan.
    
    Signed-off-by: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
    cc: David Ahern <dsa@cumulusnetworks.com>
    cc: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    cc: roopa <roopa@cumulusnetworks.com>
    Acked-by: David Ahern <dsahern@gmail.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 088c77a8005bf839bbf3ae2882a48dd87cf2a4c4
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Tue May 16 14:06:12 2017 +0200

    ata: libahci: properly propagate return value of platform_get_irq()
    
    
    [ Upstream commit c034640a32f8456018d9c8c83799ead683046b95 ]
    
    When platform_get_irq() fails, it returns an error code, which
    libahci_platform and replaces it by -EINVAL. This commit fixes that by
    propagating the error code. It fixes the situation where
    platform_get_irq() returns -EPROBE_DEFER because the interrupt
    controller is not available yet, and generally looks like the right
    thing to do.
    
    We pay attention to not show the "no irq" message when we are in an
    EPROBE_DEFER situation, because the driver probing will be retried
    later on, once the interrupt controller becomes available to provide
    the interrupt.
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e09fd7c6449b758738ca46c8f6390f00ad61c1ee
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue May 9 18:14:01 2017 +0100

    btrfs: fix incorrect error return ret being passed to mapping_set_error
    
    
    [ Upstream commit bff5baf8aa37a97293725a16c03f49872249c07e ]
    
    The setting of return code ret should be based on the error code
    passed into function end_extent_writepage and not on ret. Thanks
    to Liu Bo for spotting this mistake in the original fix I submitted.
    
    Detected by CoverityScan, CID#1414312 ("Logically dead code")
    
    Fixes: 5dca6eea91653e ("Btrfs: mark mapping with error flag to report errors to userspace")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    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 04030f5931b40e9c627b5fea9ac515d5e3d827c3
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 13:55:13 2017 +0800

    usb: dwc3: keystone: check return value
    
    
    [ Upstream commit 018047a1dba7636e1f7fdae2cc290a528991d648 ]
    
    Function devm_clk_get() returns an ERR_PTR when it fails. However, in
    function kdwc3_probe(), its return value is not checked, which may
    result in a bad memory access bug. This patch fixes the bug.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit afeabec4eb81100ab194cd515dbe0456e84a00f1
Author: James Morse <james.morse@arm.com>
Date:   Tue Apr 25 18:02:45 2017 +0100

    KVM: arm64: Restore host physical timer access on hyp_panic()
    
    
    [ Upstream commit e8ec032b182cd4841605de4fc297a8edffe55972 ]
    
    When KVM panics, it hurridly restores the host context and parachutes
    into the host's panic() code. At some point panic() touches the physical
    timer/counter. Unless we are an arm64 system with VHE, this traps back
    to EL2. If we're lucky, we panic again.
    
    Add a __timer_save_state() call to KVMs hyp_panic() path, this saves the
    guest registers and disables the traps for the host.
    
    Fixes: 53fd5b6487e4 ("arm64: KVM: Add panic handling")
    Signed-off-by: James Morse <james.morse@arm.com>
    Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
    Reviewed-by: Christoffer Dall <cdall@linaro.org>
    Signed-off-by: Christoffer Dall <cdall@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 318cc6982af730bb0b91fc1c385e5c8e65a974f8
Author: James Morse <james.morse@arm.com>
Date:   Tue Apr 25 18:02:44 2017 +0100

    KVM: arm: Restore banked registers and physical timer access on hyp_panic()
    
    
    [ Upstream commit d2e19368848ce6065daa785efca26faed54732b6 ]
    
    When KVM panics, it hurridly restores the host context and parachutes
    into the host's panic() code. This looks like it was copied from arm64,
    the 32bit KVM panic code needs to restore the host's banked registers
    too.
    
    At some point panic() touches the physical timer/counter, this will
    trap back to HYP. If we're lucky, we panic again.
    
    Add a __timer_save_state() call to KVMs hyp_panic() path, this saves the
    guest registers and disables the traps for the host.
    
    Fixes: c36b6db5f3e4 ("ARM: KVM: Add panic handling code")
    Signed-off-by: James Morse <james.morse@arm.com>
    Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
    Reviewed-by: Christoffer Dall <cdall@linaro.org>
    Signed-off-by: Christoffer Dall <cdall@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e226b4e898c90a16d09e66eaf1fe939df02ccd6e
Author: Anup Patel <anup.patel@broadcom.com>
Date:   Mon May 15 10:34:53 2017 +0530

    async_tx: Fix DMA_PREP_FENCE usage in do_async_gen_syndrome()
    
    
    [ Upstream commit baae03a0e2497f49704628fd0aaf993cf98e1b99 ]
    
    The DMA_PREP_FENCE is to be used when preparing Tx descriptor if output
    of Tx descriptor is to be used by next/dependent Tx descriptor.
    
    The DMA_PREP_FENSE will not be set correctly in do_async_gen_syndrome()
    when calling dma->device_prep_dma_pq() under following conditions:
    1. ASYNC_TX_FENCE not set in submit->flags
    2. DMA_PREP_FENCE not set in dma_flags
    3. src_cnt (= (disks - 2)) is greater than dma_maxpq(dma, dma_flags)
    
    This patch fixes DMA_PREP_FENCE usage in do_async_gen_syndrome() taking
    inspiration from do_async_xor() implementation.
    
    Signed-off-by: Anup Patel <anup.patel@broadcom.com>
    Reviewed-by: Ray Jui <ray.jui@broadcom.com>
    Reviewed-by: Scott Branden <scott.branden@broadcom.com>
    Acked-by: Dan Williams <dan.j.williams@intel.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 eb5562d076c32904e8e7fc65f597815b021dc30b
Author: Mahesh Bandewar <maheshb@google.com>
Date:   Fri May 12 17:03:39 2017 -0700

    ipv6: avoid dad-failures for addresses with NODAD
    
    
    [ Upstream commit 66eb9f86e50547ec2a8ff7a75997066a74ef584b ]
    
    Every address gets added with TENTATIVE flag even for the addresses with
    IFA_F_NODAD flag and dad-work is scheduled for them. During this DAD process
    we realize it's an address with NODAD and complete the process without
    sending any probe. However the TENTATIVE flags stays on the
    address for sometime enough to cause misinterpretation when we receive a NS.
    While processing NS, if the address has TENTATIVE flag, we mark it DADFAILED
    and endup with an address that was originally configured as NODAD with
    DADFAILED.
    
    We can't avoid scheduling dad_work for addresses with NODAD but we can
    avoid adding TENTATIVE flag to avoid this racy situation.
    
    Signed-off-by: Mahesh Bandewar <maheshb@google.com>
    Acked-by: David Ahern <dsahern@gmail.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 6c9b7010fba9585ad21d26a7eeaca666be3008d8
Author: Julia Lawall <julia.lawall@lip6.fr>
Date:   Fri May 12 22:54:23 2017 +0800

    mdio: mux: fix device_node_continue.cocci warnings
    
    
    [ Upstream commit 8c977f5a856a7276450ddf3a7b57b4a8815b63f9 ]
    
    Device node iterators put the previous value of the index variable, so an
    explicit put causes a double put.
    
    In particular, of_mdiobus_register can fail before doing anything
    interesting, so one could view it as a no-op from the reference count
    point of view.
    
    Generated by: scripts/coccinelle/iterators/device_node_continue.cocci
    
    CC: Jon Mason <jon.mason@broadcom.com>
    Signed-off-by: Julia Lawall <julia.lawall@lip6.fr>
    Signed-off-by: Fengguang Wu <fengguang.wu@intel.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 bffb84bf5a63288a65cbdbd0be860b780322f857
Author: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
Date:   Tue May 2 21:59:34 2017 +0530

    arm64: perf: Ignore exclude_hv when kernel is running in HYP
    
    
    [ Upstream commit 78a19cfdf37d19002c83c8790853c1cc10feccdc ]
    
    commit d98ecdaca296 ("arm64: perf: Count EL2 events if the kernel is
    running in HYP") returns -EINVAL when perf system call perf_event_open is
    called with exclude_hv != exclude_kernel. This change breaks applications
    on VHE enabled ARMv8.1 platforms. The issue was observed with HHVM
    application, which calls perf_event_open with exclude_hv = 1 and
    exclude_kernel = 0.
    
    There is no separate hypervisor privilege level when VHE is enabled, the
    host kernel runs at EL2. So when VHE is enabled, we should ignore
    exclude_hv from the application. This behaviour is consistent with PowerPC
    where the exclude_hv is ignored when the hypervisor is not present and with
    x86 where this flag is ignored.
    
    Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
    [will: added comment to justify the behaviour of exclude_hv]
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3743e05f5d4084d0d08a1490118a4996080def87
Author: Peter Rosin <peda@axentia.se>
Date:   Sun May 7 07:16:30 2017 +0200

    i2c: mux: reg: put away the parent i2c adapter on probe failure
    
    
    [ Upstream commit 68118e0e73aa3a6291c8b9eb1ee708e05f110cea ]
    
    It is only prudent to let go of resources that are not used.
    
    Fixes: b3fdd32799d8 ("i2c: mux: Add register-based mux i2c-mux-reg")
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c53c4ad96242e868da492f424535bf4b45f80503
Author: Fabio Estevam <fabio.estevam@nxp.com>
Date:   Sun May 14 11:50:50 2017 -0300

    ARM: dts: imx6qdl-wandboard: Fix audio channel swap
    
    
    [ Upstream commit 79935915300c5eb88a0e94fa9148a7505c14a02a ]
    
    When running a stress playback/stop loop test on a mx6wandboard channel
    swaps can be noticed randomly.
    
    Increasing the SGTL5000 LRCLK pad strength to its maximum value fixes
    the issue, so add the 'lrclk-strength' property to avoid the audio
    channel swaps.
    
    Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bdfab8084fb18e00ee5ea4681e312518d6f5d1a
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Wed May 10 16:57:49 2017 +1000

    powerpc/modules: If mprofile-kernel is enabled add it to vermagic
    
    
    [ Upstream commit 43e24e82f35291d4c1ca78877ce1b20d3aeb78f1 ]
    
    On powerpc we can build the kernel with two different ABIs for mcount(), which
    is used by ftrace. Kernels built with one ABI do not know how to load modules
    built with the other ABI. The new style ABI is called "mprofile-kernel", for
    want of a better name.
    
    Currently if we build a module using the old style ABI, and the kernel with
    mprofile-kernel, when we load the module we'll oops something like:
    
      # insmod autofs4-no-mprofile-kernel.ko
      ftrace-powerpc: Unexpected instruction f8810028 around bl _mcount
      ------------[ cut here ]------------
      WARNING: CPU: 6 PID: 3759 at ../kernel/trace/ftrace.c:2024 ftrace_bug+0x2b8/0x3c0
      CPU: 6 PID: 3759 Comm: insmod Not tainted 4.11.0-rc3-gcc-5.4.1-00017-g5a61ef74f269 #11
      ...
      NIP [c0000000001eaa48] ftrace_bug+0x2b8/0x3c0
      LR [c0000000001eaff8] ftrace_process_locs+0x4a8/0x590
      Call Trace:
        alloc_pages_current+0xc4/0x1d0 (unreliable)
        ftrace_process_locs+0x4a8/0x590
        load_module+0x1c8c/0x28f0
        SyS_finit_module+0x110/0x140
        system_call+0x38/0xfc
      ...
      ftrace failed to modify
      [<d000000002a31024>] 0xd000000002a31024
       actual:   35:65:00:48
    
    We can avoid this by including in the vermagic whether the kernel/module was
    built with mprofile-kernel. Which results in:
    
      # insmod autofs4-pg.ko
      autofs4: version magic
      '4.11.0-rc3-gcc-5.4.1-00017-g5a61ef74f269 SMP mod_unload modversions '
      should be
      '4.11.0-rc3-gcc-5.4.1-00017-g5a61ef74f269-dirty SMP mod_unload modversions mprofile-kernel'
      insmod: ERROR: could not insert module autofs4-pg.ko: Invalid module format
    
    Fixes: 8c50b72a3b4f ("powerpc/ftrace: Add Kconfig & Make glue for mprofile-kernel")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Acked-by: Balbir Singh <bsingharora@gmail.com>
    Acked-by: Jessica Yu <jeyu@redhat.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 c4f8fbce84e2a0c6df3bfafc7bae7be59846c4b8
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Thu Apr 13 14:56:44 2017 +0200

    x86/tsc: Provide 'tsc=unstable' boot parameter
    
    
    [ Upstream commit 8309f86cd41e8714526867177facf7a316d9be53 ]
    
    Since the clocksource watchdog will only detect broken TSC after the
    fact, all TSC based clocks will likely have observed non-continuous
    values before/when switching away from TSC.
    
    Therefore only thing to fully avoid random clock movement when your
    BIOS randomly mucks with TSC values from SMI handlers is reporting the
    TSC as unstable at boot.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-kernel@vger.kernel.org
    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 0babe22bda12dee55de6a3ba306cdb925db12923
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Mar 29 17:22:44 2017 +0200

    clk: renesas: rcar-gen2: Fix PLL0 on R-Car V2H and E2
    
    
    [ Upstream commit b7c563c489e94417efbad68d057ea5d2030ae44c ]
    
    R-Car V2H and E2 do not have the PLL0CR register, but use a fixed
    multiplier (depending on mode pins) and divider.
    
    This corrects the clock rate of "pll0" (PLL0 VCO after post divider) on
    R-Car V2H and E2 from 1.5 GHz to 1 GHz.
    
    Inspired by Sergei Shtylyov's work for the common R-Car Gen2 and RZ/G
    Clock Pulse Generator support core.
    
    Fixes: 7c4163aae3d8e5b9 ("ARM: dts: r8a7792: initial SoC device tree")
    Fixes: 0dce5454d5c25858 ("ARM: shmobile: Initial r8a7794 SoC device tree")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c019b6ef720f2fbc612969e817090be9f1b8865a
Author: Andrea della Porta <sfaragnaus@gmail.com>
Date:   Sat Apr 29 07:30:23 2017 +0100

    staging: wlan-ng: prism2mgmt.c: fixed a double endian conversion before calling hfa384x_drvr_setconfig16, also fixes relative sparse warning
    
    
    [ Upstream commit dea20579a69ab68cdca6adf79bb7c0c162eb9b72 ]
    
    staging: wlan-ng: prism2mgmt.c: This patches fixes a double endian conversion.
    cpu_to_le16() was called twice first in prism2mgmt_scan and again inside
    hfa384x_drvr_setconfig16() for the same variable, hence it was swapped
    twice. Incidentally, it also fixed the following sparse warning:
    
    drivers/staging/wlan-ng/prism2mgmt.c:173:30: warning: incorrect type in assignment (different base types)
    drivers/staging/wlan-ng/prism2mgmt.c:173:30:    expected unsigned short [unsigned] [usertype] word
    drivers/staging/wlan-ng/prism2mgmt.c:173:30:    got restricted __le16 [usertype] <noident>
    
    Unfortunately, only compile tested.
    
    Signed-off-by: Andrea della Porta <sfaragnaus@gmail.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 8587ce2174002aaa0eea09b23fa99b30cd11677e
Author: Fabio Estevam <fabio.estevam@nxp.com>
Date:   Wed Apr 12 18:31:18 2017 -0300

    ARM: dts: imx53-qsrb: Pulldown PMIC IRQ pin
    
    
    [ Upstream commit 2fe4bff3516924a37e083e3211364abe59db1161 ]
    
    Currently the following errors are seen:
    
    [   14.015056] mc13xxx 0-0008: Failed to read IRQ status: -6
    [   27.321093] mc13xxx 0-0008: Failed to read IRQ status: -6
    [   27.411681] mc13xxx 0-0008: Failed to read IRQ status: -6
    [   27.456281] mc13xxx 0-0008: Failed to read IRQ status: -6
    [   30.527106] mc13xxx 0-0008: Failed to read IRQ status: -6
    [   36.596900] mc13xxx 0-0008: Failed to read IRQ status: -6
    
    Also when reading the interrupts via 'cat /proc/interrupts' the
    PMIC GPIO interrupt counter does not stop increasing.
    
    The reason for the storm of interrupts is that the PUS field of
    register IOMUXC_SW_PAD_CTL_PAD_CSI0_DAT5 is currently configured as:
    10 : 100k pullup
    
    and the PMIC interrupt is being registered as IRQ_TYPE_LEVEL_HIGH type,
    which is the correct type as per the MC34708 datasheet.
    
    Use the default power on value for the IOMUX, which sets PUS field as:
    00: 360k pull down
    
    This prevents the spurious PMIC interrupts from happening.
    
    Commit e1ffceb078c6 ("ARM: imx53: qsrb: fix PMIC interrupt level")
    correctly described the irq type as IRQ_TYPE_LEVEL_HIGH, but
    missed to update the IOMUX of the PMIC GPIO as pull down.
    
    Fixes: e1ffceb078c6 ("ARM: imx53: qsrb: fix PMIC interrupt level")
    Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5eb48c6331d8773d707facbb8950f8fd7ef1682
Author: Nicholas Mc Guire <der.herr@hofr.at>
Date:   Sun May 14 10:43:55 2017 +0200

    iio: pressure: zpa2326: report interrupted case as failure
    
    
    [ Upstream commit e7215fe4d51e69c9d2608ad0c409d48e844d0adc ]
    
    If the timeout-case prints a warning message then probably the interrupted
    case should also. Further, wait_for_completion_interruptible_timeout()
    returns long not int.
    
    Fixes: commit 03b262f2bbf4 ("iio:pressure: initial zpa2326 barometer support")
    Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
    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 d6701d258d3c916aca4515c9d32dc7340b0e22b4
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed May 10 22:40:06 2017 +0300

    PowerCap: Fix an error code in powercap_register_zone()
    
    
    [ Upstream commit 216c4e9db4c9d1d2a382b42880442dc632cd47d9 ]
    
    In the current code we accidentally return the successful result from
    idr_alloc() instead of a negative error pointer.  The caller is looking
    for an error pointer and so it treats the returned value as a valid
    pointer.
    
    This one might be a bit serious because if it lets people get around the
    kernel's protection for remapping NULL.  I'm not sure.
    
    Fixes: 75d2364ea0ca (PowerCap: Add class driver)
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@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 69df2501c0902550d45f0b762788df7b9ab89bf6
Author: Doug Berger <opendmb@gmail.com>
Date:   Wed Mar 29 17:29:10 2017 -0700

    bus: brcmstb_gisb: correct support for 64-bit address output
    
    
    [ Upstream commit 0c2aa0e4b308815e877601845c1a89913f9bd2b9 ]
    
    The GISB bus can support addresses beyond 32-bits.  So this commit
    corrects support for reading a captured 64-bit address into a 64-bit
    variable by obtaining the high bits from the ARB_ERR_CAP_HI_ADDR
    register (when present) and then outputting the full 64-bit value.
    
    It also removes unused definitions.
    
    Fixes: 44127b771d9c ("bus: add Broadcom GISB bus arbiter timeout/error handler")
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Acked-by: Gregory Fong <gregory.0xf0@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95fbdbb60501bbc2bf5ae8d0736199714925ccd1
Author: Doug Berger <opendmb@gmail.com>
Date:   Wed Mar 29 17:29:09 2017 -0700

    bus: brcmstb_gisb: Use register offsets with writes too
    
    
    [ Upstream commit 856c7ccb9ce7a061f04bdf586f649cb93654e294 ]
    
    This commit corrects the bug introduced in commit f80835875d3d
    ("bus: brcmstb_gisb: Look up register offsets in a table") such
    that gisb_write() translates the register enumeration into an
    offset from the base address for writes as well as reads.
    
    Fixes: f80835875d3d ("bus: brcmstb_gisb: Look up register offsets in a table")
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Acked-by: Gregory Fong <gregory.0xf0@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfea563e71b021ac4d64b422688e821dd52fbd60
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Fri May 12 17:59:32 2017 +0200

    SMB2: Fix share type handling
    
    
    [ Upstream commit cd1230070ae1c12fd34cf6a557bfa81bf9311009 ]
    
    In fs/cifs/smb2pdu.h, we have:
    #define SMB2_SHARE_TYPE_DISK    0x01
    #define SMB2_SHARE_TYPE_PIPE    0x02
    #define SMB2_SHARE_TYPE_PRINT   0x03
    
    Knowing that, with the current code, the SMB2_SHARE_TYPE_PRINT case can
    never trigger and printer share would be interpreted as disk share.
    
    So, test the ShareType value for equality instead.
    
    Fixes: faaf946a7d5b ("CIFS: Add tree connect/disconnect capability for SMB2")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Acked-by: Aurelien Aptel <aaptel@suse.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 91d64606bb456f801b4d677c9dc20a15f5ce1c63
Author: Reza Arbab <arbab@linux.vnet.ibm.com>
Date:   Fri May 12 15:46:32 2017 -0700

    mm, vmstat: Remove spurious WARN() during zoneinfo print
    
    
    [ Upstream commit 8d35bb310698c69d73073b26fc581f2e3f7f621d ]
    
    After commit e2ecc8a79ed4 ("mm, vmstat: print non-populated zones in
    zoneinfo"), /proc/zoneinfo will show unpopulated zones.
    
    A memoryless node, having no populated zones at all, was previously
    ignored, but will now trigger the WARN() in is_zone_first_populated().
    
    Remove this warning, as its only purpose was to warn of a situation that
    has since been enabled.
    
    Aside: The "per-node stats" are still printed under the first populated
    zone, but that's not necessarily the first stanza any more.  I'm not
    sure which criteria is more important with regard to not breaking
    parsers, but it looks a little weird to the eye.
    
    Fixes:  e2ecc8a79ed4 ("mm, vmstat: print node-based stats in zoneinfo file")
    Link: http://lkml.kernel.org/r/1493854905-10918-1-git-send-email-arbab@linux.vnet.ibm.com
    Signed-off-by: Reza Arbab <arbab@linux.vnet.ibm.com>
    Cc: 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 00b475072e4942036b1992fc0c9ab39cd84d1c9e
Author: Neil Horman <nhorman@tuxdriver.com>
Date:   Fri May 12 12:00:01 2017 -0400

    vmxnet3: ensure that adapter is in proper state during force_close
    
    
    [ Upstream commit 1c4d5f51a812a82de97beee24f48ed05c65ebda5 ]
    
    There are several paths in vmxnet3, where settings changes cause the
    adapter to be brought down and back up (vmxnet3_set_ringparam among
    them).  Should part of the reset operation fail, these paths call
    vmxnet3_force_close, which enables all napi instances prior to calling
    dev_close (with the expectation that vmxnet3_close will then properly
    disable them again).  However, vmxnet3_force_close neglects to clear
    VMXNET3_STATE_BIT_QUIESCED prior to calling dev_close.  As a result
    vmxnet3_quiesce_dev (called from vmxnet3_close), returns early, and
    leaves all the napi instances in a enabled state while the device itself
    is closed.  If a device in this state is activated again, napi_enable
    will be called on already enabled napi_instances, leading to a BUG halt.
    
    The fix is to simply enausre that the QUIESCED bit is cleared in
    vmxnet3_force_close to allow quesence to be completed properly on close.
    
    Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
    CC: Shrikrishna Khare <skhare@vmware.com>
    CC: "VMware, Inc." <pv-drivers@vmware.com>
    CC: "David S. Miller" <davem@davemloft.net>
    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 3a743c429f47a204a7b3bb0972daa4ad960c9088
Author: MaJun <majun258@huawei.com>
Date:   Fri May 12 11:55:28 2017 +0800

    irqchip/mbigen: Fix the clear register offset calculation
    
    
    [ Upstream commit 9459a04b6a5a09967eec94a1b66f0a74312819d9 ]
    
    The register array offset for clearing an interrupt is calculated by:
    
        offset = (hwirq - RESERVED_IRQ_PER_MBIGEN_CHIP) / 32;
    
    This is wrong because the clear register array includes the reserved
    interrupts. So the clear operation ends up in the wrong register.
    
    This went unnoticed so far, because the hardware clears the real bit
    through a timeout mechanism when the hardware is configured in debug
    mode. That debug mode was enabled on early generations of the hardware, so
    the problem was papered over.
    
    On newer hardware with updated firmware the debug mode was disabled, so the
    bits did not get cleared which causes the system to malfunction.
    
    Remove the subtraction of RESERVED_IRQ_PER_MBIGEN_CHIP, so the correct
    register is accessed.
    
    [ tglx: Rewrote changelog ]
    
    Fixes: a6c2f87b8820 ("irqchip/mbigen: Implement the mbigen irq chip operation functions")
    Signed-off-by: MaJun <majun258@huawei.com>
    Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: linuxarm@huawei.com
    Cc: Wei Yongjun <weiyongjun1@huawei.com>
    Link: http://lkml.kernel.org/r/1494561328-39514-4-git-send-email-guohanjun@huawei.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 a41dbfe8fd0282840a56274e71a0b3dc96c5bc17
Author: Paul Mackerras <paulus@ozlabs.org>
Date:   Thu May 11 11:33:30 2017 +1000

    KVM: PPC: Book3S PR: Check copy_to/from_user return values
    
    
    [ Upstream commit 67325e988faea735d663799b6d152b5f4254093c ]
    
    The PR KVM implementation of the PAPR HPT hypercalls (H_ENTER etc.)
    access an image of the HPT in userspace memory using copy_from_user
    and copy_to_user.  Recently, the declarations of those functions were
    annotated to indicate that the return value must be checked.  Since
    this code doesn't currently check the return value, this causes
    compile warnings like the ones shown below, and since on PPC the
    default is to compile arch/powerpc with -Werror, this causes the
    build to fail.
    
    To fix this, we check the return values, and if non-zero, fail the
    hypercall being processed with a H_FUNCTION error return value.
    There is really no good error return value to use since PAPR didn't
    envisage the possibility that the hypervisor may not be able to access
    the guest's HPT, and H_FUNCTION (function not supported) seems as
    good as any.
    
    The typical compile warnings look like this:
    
      CC      arch/powerpc/kvm/book3s_pr_papr.o
    /home/paulus/kernel/kvm/arch/powerpc/kvm/book3s_pr_papr.c: In function ‘kvmppc_h_pr_enter’:
    /home/paulus/kernel/kvm/arch/powerpc/kvm/book3s_pr_papr.c:53:2: error: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result [-Werror=unused-result]
      copy_from_user(pteg, (void __user *)pteg_addr, sizeof(pteg));
      ^
    /home/paulus/kernel/kvm/arch/powerpc/kvm/book3s_pr_papr.c:74:2: error: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result [-Werror=unused-result]
      copy_to_user((void __user *)pteg_addr, hpte, HPTE_SIZE);
      ^
    
    ... etc.
    
    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 e0709814a17f0eeed84fa593f7a3057aa38cba56
Author: KT Liao <kt.liao@emc.com.tw>
Date:   Mon Dec 12 11:03:42 2016 -0800

    Input: elantech - force relative mode on a certain module
    
    
    [ Upstream commit d899520b0431e70279bfb5066ecb6dc91d0b7072 ]
    
    One of Elan modules with sample version is 0x74 and hw_version is 0x03 has
    a bug in absolute mode implementation, so let it run in default PS/2
    relative mode.
    
    Signed-off-by: KT Liao <kt.liao@emc.com.tw>
    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 97e885c7d1c806ec9d602644cb9c6eee094b25a1
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Fri Dec 19 12:57:49 2014 -0800

    Input: elan_i2c - check if device is there before really probing
    
    
    [ Upstream commit c5928551fd41b2eecdad78fa2be2a4a13ed5fde9 ]
    
    Before trying to properly initialize the touchpad and generate bunch of
    errors, let's first see it there is anything at the given address. If we
    get error, fail silently with -ENXIO.
    
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    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 fdf3b78df4d24933df840a27e7bf836b7b6042a3
Author: Jon Mason <jon.mason@broadcom.com>
Date:   Wed May 10 11:20:27 2017 -0400

    mdio: mux: Correct mdio_mux_init error path issues
    
    
    [ Upstream commit b60161668199ac62011c024adc9e66713b9554e7 ]
    
    There is a potential unnecessary refcount decrement on error path of
    put_device(&pb->mii_bus->dev), as it is possible to avoid the
    of_mdio_find_bus() call if mux_bus is specified by the calling function.
    
    The same put_device() is not called in the error path if the
    devm_kzalloc of pb fails.  This caused the variable used in the
    put_device() to be changed, as the pb pointer was obviously not set up.
    
    There is an unnecessary of_node_get() on child_bus_node if the
    of_mdiobus_register() is successful, as the
    for_each_available_child_of_node() automatically increments this.
    Thus the refcount on this node will always be +1 more than it should be.
    
    There is no of_node_put() on child_bus_node if the of_mdiobus_register()
    call fails.
    
    Finally, it is lacking devm_kfree() of pb in the error path.  While this
    might not be technically necessary, it was present in other parts of the
    function.  So, I am adding it where necessary to make it uniform.
    
    Signed-off-by: Jon Mason <jon.mason@broadcom.com>
    Fixes: f20e6657a875 ("mdio: mux: Enhanced MDIO mux framework for integrated multiplexers")
    Fixes: 0ca2997d1452 ("netdev/of/phy: Add MDIO bus multiplexer support.")
    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 014c8ea230972d327bb685d7d53cb7d7ff06b172
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue May 9 17:19:42 2017 +0100

    netxen_nic: set rcode to the return status from the call to netxen_issue_cmd
    
    
    [ Upstream commit 0fe20fafd1791f993806d417048213ec57b81045 ]
    
    Currently rcode is being initialized to NX_RCODE_SUCCESS and later it
    is checked to see if it is not NX_RCODE_SUCCESS which is never true. It
    appears that there is an unintentional missing assignment of rcode from
    the return of the call to netxen_issue_cmd() that was dropped in
    an earlier fix, so add it in.
    
    Detected by CoverityScan, CID#401900 ("Logically dead code")
    
    Fixes: 2dcd5d95ad6b2 ("netxen_nic: fix cdrp race condition")
    Signed-off-by: Colin Ian King <colin.king@canonical.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 485c108e820d217a9ca597841d6e5667fa8c5e05
Author: Stefan Wahren <stefan.wahren@i2se.com>
Date:   Tue May 9 15:40:38 2017 +0200

    net: qca_spi: Fix alignment issues in rx path
    
    
    [ Upstream commit 8d66c30b12ed3cb533696dea8b9a9eadd5da426a ]
    
    The qca_spi driver causes alignment issues on ARM devices.
    So fix this by using netdev_alloc_skb_ip_align().
    
    Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
    Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for QCA7000")
    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 2005c4f3019a8ead93fd14aea1e8684a827b225c
Author: Wen Xiong <wenxiong@linux.vnet.ibm.com>
Date:   Wed May 10 08:54:11 2017 -0500

    blk-mq: NVMe 512B/4K+T10 DIF/DIX format returns I/O error on dd with split op
    
    
    [ Upstream commit f36ea50ca0043e7b1204feaf1d2ba6bd68c08d36 ]
    
    When formatting NVMe to 512B/4K + T10 DIf/DIX, dd with split op returns
    "Input/output error". Looks block layer split the bio after calling
    bio_integrity_prep(bio). This patch fixes the issue.
    
    Below is how we debug this issue:
    (1)format nvme to 4K block # size with type 2 DIF
    (2)dd with block size bigger than 1024k.
    oflag=direct
    dd: error writing '/dev/nvme0n1': Input/output error
    
    We added some debug code in nvme device driver. It showed us the first
    op and the second op have the same bi and pi address. This is not
    correct.
    
    1st op: nvme0n1 Op:Wr slba 0x505 length 0x100, PI ctrl=0x1400,
            dsmgmt=0x0, AT=0x0 & RT=0x505
            Guard 0x00b1, AT 0x0000, RT physical 0x00000505 RT virtual 0x00002828
    
    2nd op: nvme0n1 Op:Wr slba 0x605 length 0x1, PI ctrl=0x1400, dsmgmt=0x0,
            AT=0x0 & RT=0x605  ==> This op fails and subsequent 5 retires..
            Guard 0x00b1, AT 0x0000, RT physical 0x00000605 RT virtual 0x00002828
    
    With the fix, It showed us both of the first op and the second op have
    correct bi and pi address.
    
    1st op: nvme2n1 Op:Wr slba 0x505 length 0x100, PI ctrl=0x1400,
            dsmgmt=0x0, AT=0x0 & RT=0x505
            Guard 0x5ccb, AT 0x0000, RT physical 0x00000505 RT virtual
            0x00002828
    2nd op: nvme2n1 Op:Wr slba 0x605 length 0x1, PI ctrl=0x1400, dsmgmt=0x0,
            AT=0x0 & RT=0x605
            Guard 0xab4c, AT 0x0000, RT physical 0x00000605 RT virtual
            0x00003028
    
    Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.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 5daab7259a6ec50415c1dcfb1a3ef3302f9281f6
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue May 9 18:00:04 2017 +0100

    perf/callchain: Force USER_DS when invoking perf_callchain_user()
    
    
    [ Upstream commit 88b0193d9418c00340e45e0a913a0813bc6c8c96 ]
    
    Perf can generate and record a user callchain in response to a synchronous
    request, such as a tracepoint firing. If this happens under set_fs(KERNEL_DS),
    then we can end up walking the user stack (and dereferencing/saving whatever we
    find there) without the protections usually afforded by checks such as
    access_ok.
    
    Rather than play whack-a-mole with each architecture's stack unwinding
    implementation, fix the root of the problem by ensuring that we force USER_DS
    when invoking perf_callchain_user from the perf core.
    
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Acked-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    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 6ed24ef46757007f3f8f0dd342bbfbb16bf92bf7
Author: Rabin Vincent <rabinv@axis.com>
Date:   Wed May 3 17:17:21 2017 +0200

    CIFS: silence lockdep splat in cifs_relock_file()
    
    
    [ Upstream commit 560d388950ceda5e7c7cdef7f3d9a8ff297bbf9d ]
    
    cifs_relock_file() can perform a down_write() on the inode's lock_sem even
    though it was already performed in cifs_strict_readv().  Lockdep complains
    about this.  AFAICS, there is no problem here, and lockdep just needs to be
    told that this nesting is OK.
    
     =============================================
     [ INFO: possible recursive locking detected ]
     4.11.0+ #20 Not tainted
     ---------------------------------------------
     cat/701 is trying to acquire lock:
      (&cifsi->lock_sem){++++.+}, at: cifs_reopen_file+0x7a7/0xc00
    
     but task is already holding lock:
      (&cifsi->lock_sem){++++.+}, at: cifs_strict_readv+0x177/0x310
    
     other info that might help us debug this:
      Possible unsafe locking scenario:
    
            CPU0
            ----
       lock(&cifsi->lock_sem);
       lock(&cifsi->lock_sem);
    
      *** DEADLOCK ***
    
      May be due to missing lock nesting notation
    
     1 lock held by cat/701:
      #0:  (&cifsi->lock_sem){++++.+}, at: cifs_strict_readv+0x177/0x310
    
     stack backtrace:
     CPU: 0 PID: 701 Comm: cat Not tainted 4.11.0+ #20
     Call Trace:
      dump_stack+0x85/0xc2
      __lock_acquire+0x17dd/0x2260
      ? trace_hardirqs_on_thunk+0x1a/0x1c
      ? preempt_schedule_irq+0x6b/0x80
      lock_acquire+0xcc/0x260
      ? lock_acquire+0xcc/0x260
      ? cifs_reopen_file+0x7a7/0xc00
      down_read+0x2d/0x70
      ? cifs_reopen_file+0x7a7/0xc00
      cifs_reopen_file+0x7a7/0xc00
      ? printk+0x43/0x4b
      cifs_readpage_worker+0x327/0x8a0
      cifs_readpage+0x8c/0x2a0
      generic_file_read_iter+0x692/0xd00
      cifs_strict_readv+0x29f/0x310
      generic_file_splice_read+0x11c/0x1c0
      do_splice_to+0xa5/0xc0
      splice_direct_to_actor+0xfa/0x350
      ? generic_pipe_buf_nosteal+0x10/0x10
      do_splice_direct+0xb5/0xe0
      do_sendfile+0x278/0x3a0
      SyS_sendfile64+0xc4/0xe0
      entry_SYSCALL_64_fastpath+0x1f/0xbe
    
    Signed-off-by: Rabin Vincent <rabinv@axis.com>
    Acked-by: Pavel Shilovsky <pshilov@microsoft.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 fca22d52b70fe72d9b8f55177ccc01ea743aa76a
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Tue May 9 15:47:15 2017 -0400

    NFSv4.1: Work around a Linux server bug...
    
    
    [ Upstream commit f4b23de3dda1536590787c9e5c3d16b8738ab108 ]
    
    It turns out the Linux server has a bug in its implementation of
    supattr_exclcreat; it returns the set of all attributes, whether
    or not they are supported by minor version 1.
    In order to avoid a regression, we therefore apply the supported_attrs
    as a mask on top of whatever the server sent us.
    
    Reported-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    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 408719afbc61e388b1dc311d96a85e5d5e6e8f39
Author: Ram Amrani <Ram.Amrani@cavium.com>
Date:   Tue May 9 15:07:50 2017 +0300

    qed: Correct doorbell configuration for !4Kb pages
    
    
    [ Upstream commit a82dadbce47395747824971db08a128130786fdc ]
    
    When configuring the doorbell DPI address, driver aligns the start
    address to 4KB [HW-pages] instead of host PAGE_SIZE.
    As a result, RoCE applications might receive addresses which are
    unaligned to pages [when PAGE_SIZE > 4KB], which is a security risk.
    
    Fixes: 51ff17251c9c ("qed: Add support for RoCE hw init")
    Signed-off-by: Ram Amrani <Ram.Amrani@cavium.com>
    Signed-off-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 ae1b31453e6e59bc68f11ba6efb2effc3d3b6b1a
Author: Talat Batheesh <talatb@mellanox.com>
Date:   Tue May 9 14:45:23 2017 +0300

    net/mlx4_en: Avoid adding steering rules with invalid ring
    
    
    [ Upstream commit 89c557687a32c294e9d25670a96e9287c09f2d5f ]
    
    Inserting steering rules with illegal ring is an invalid operation,
    block it.
    
    Fixes: 820672812f82 ('net/mlx4_en: Manage flow steering rules with ethtool')
    Signed-off-by: Talat Batheesh <talatb@mellanox.com>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.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 26c18cb8ca7231b51d1c96c02db650738438266d
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Thu May 4 09:42:22 2017 +0200

    s390: move _text symbol to address higher than zero
    
    
    [ Upstream commit d04a4c76f71dd5335f8e499b59617382d84e2b8d ]
    
    The perf tool assumes that kernel symbols are never present at address
    zero. In fact it assumes if functions that map symbols to addresses
    return zero, that the symbol was not found.
    
    Given that s390's _text symbol historically is located at address zero
    this yields at least a couple of false errors and warnings in one of
    perf's test cases about not present symbols ("perf test 1").
    
    To fix this simply move the _text symbol to address 0x200, just behind
    the initial psw and channel program located at the beginning of the
    kernel image. This is now hard coded within the linker script.
    
    I tried a nicer solution which moves the initial psw and channel
    program into an own section. However that would move the symbols
    within the "real" head.text section to different addresses, since the
    ".org" statements within head.S are relative to the head.text
    section. If there is a new section in front, everything else will be
    moved. Alternatively I could have adjusted all ".org" statements. But
    this current solution seems to be the easiest one, since nobody really
    cares where the _text symbol is actually located.
    
    Reported-by: Zvonko Kosic <zkosic@linux.vnet.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2095be2ad9106ad92cfb906088ffc5831f0e74c
Author: Kirill Tkhai <ktkhai@virtuozzo.com>
Date:   Mon May 8 15:56:34 2017 -0700

    pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid()
    
    
    [ Upstream commit 8896c23d2ef803f1883fea73117a435925c2b4c4 ]
    
    alloc_pidmap() advances pid_namespace::last_pid.  When first pid
    allocation fails, then next created process will have pid 2 and
    pid_ns_prepare_proc() won't be called.  So, pid_namespace::proc_mnt will
    never be initialized (not to mention that there won't be a child
    reaper).
    
    I saw crash stack of such case on kernel 3.10:
    
        BUG: unable to handle kernel NULL pointer dereference at (null)
        IP: proc_flush_task+0x8f/0x1b0
        Call Trace:
            release_task+0x3f/0x490
            wait_consider_task.part.10+0x7ff/0xb00
            do_wait+0x11f/0x280
            SyS_wait4+0x7d/0x110
    
    We may fix this by restore of last_pid in 0 or by prohibiting of futher
    allocations.  Since there was a similar issue in Oleg Nesterov's commit
    314a8ad0f18a ("pidns: fix free_pid() to handle the first fork failure").
    and it was fixed via prohibiting allocation, let's follow this way, and
    do the same.
    
    Link: http://lkml.kernel.org/r/149201021004.4863.6762095011554287922.stgit@localhost.localdomain
    Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
    Cc: Andrei Vagin <avagin@virtuozzo.com>
    Cc: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Serge Hallyn <serge@hallyn.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 a90e9ee704b291125d0dda967e14a3340567afab
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon May 8 15:55:14 2017 -0700

    drivers/misc/vmw_vmci/vmci_queue_pair.c: fix a couple integer overflow tests
    
    
    [ Upstream commit 146180c052a00172f4dc08eaade836fd02f61fb5 ]
    
    The "DIV_ROUND_UP(size, PAGE_SIZE)" operation can overflow if "size" is
    more than ULLONG_MAX - PAGE_SIZE.
    
    Link: http://lkml.kernel.org/r/20170322111950.GA11279@mwanda
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Jorgen Hansen <jhansen@vmware.com>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.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 75d34f1c60072a8d4e9cb1905c32272f23f6dcef
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Mar 28 21:25:08 2017 -0400

    lockd: fix lockd shutdown race
    
    
    [ Upstream commit efda760fe95ea15291853c8fa9235c32d319cd98 ]
    
    As reported by David Jeffery: "a signal was sent to lockd while lockd
    was shutting down from a request to stop nfs.  The signal causes lockd
    to call restart_grace() which puts the lockd_net structure on the grace
    list.  If this signal is received at the wrong time, it will occur after
    lockd_down_net() has called locks_end_grace() but before
    lockd_down_net() stops the lockd thread.  This leads to lockd putting
    the lockd_net structure back on the grace list, then exiting without
    anything removing it from the list."
    
    So, perform the final locks_end_grace() from the the lockd thread; this
    ensures it's serialized with respect to restart_grace().
    
    Reported-by: David Jeffery <djeffery@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 988ef9c8c29ccc9949a18b599df463ebd653daef
Author: Grygorii Strashko <grygorii.strashko@ti.com>
Date:   Mon May 8 14:21:21 2017 -0500

    net: ethernet: ti: cpsw: adjust cpsw fifos depth for fullduplex flow control
    
    
    [ Upstream commit 48f5bccc60675f8426a6159935e8636a1fd89f56 ]
    
    When users set flow control using ethtool the bits are set properly in the
    CPGMAC_SL MACCONTROL register, but the FIFO depth in the respective Port n
    Maximum FIFO Blocks (Pn_MAX_BLKS) registers remains set to the minimum size
    reset value. When receive flow control is enabled on a port, the port's
    associated FIFO block allocation must be adjusted. The port RX allocation
    must increase to accommodate the flow control runout. The TRM recommends
    numbers of 5 or 6.
    
    Hence, apply required Port FIFO configuration to
    Pn_MAX_BLKS.Pn_TX_MAX_BLKS=0xF and Pn_MAX_BLKS.Pn_RX_MAX_BLKS=0x5 during
    interface initialization.
    
    Cc: Schuyler Patton <spatton@ti.com>
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.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 2d11840e917e3f014ac4480b1a9e29977220aadf
Author: Jim Baxter <jim_baxter@mentor.com>
Date:   Mon May 8 13:49:57 2017 +0100

    net: cdc_ncm: Fix TX zero padding
    
    
    [ Upstream commit aeca3a77b1e0ed06a095933b89c86aed007383eb ]
    
    The zero padding that is added to NTB's does
    not zero the memory correctly.
    This is because the skb_put modifies the value
    of skb_out->len which results in the memset
    command not setting any memory to zero as
    (ctx->tx_max - skb_out->len) == 0.
    
    I have resolved this by storing the size of
    the memory to be zeroed before the skb_put
    and using this in the memset call.
    
    Signed-off-by: Jim Baxter <jim_baxter@mentor.com>
    Reviewed-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 ad741ccdd88e8ab7d42f44509280abe5f615a1cf
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri May 5 08:33:24 2017 +0300

    ipmi_ssif: unlock on allocation failure
    
    
    [ Upstream commit cf9806f32ef63b745f2486e0dbb2ac21f4ca44f0 ]
    
    We should unlock and re-enable IRQs if this allocation fails.
    
    Fixes: 259307074bfc ("ipmi: Add SMBus interface driver (SSIF) ")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.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 0d84e3b5a64ac3405a103e579d8a903fad916798
Author: Rabin Vincent <rabinv@axis.com>
Date:   Mon Apr 3 13:44:11 2017 +0200

    ubi: fastmap: Fix slab corruption
    
    
    [ Upstream commit 8a1435880f452430b41374d27ac4a33e7bd381ea ]
    
    Booting with UBI fastmap and SLUB debugging enabled results in the
    following splats.  The problem is that ubi_scan_fastmap() moves the
    fastmap blocks from the scan_ai (allocated in scan_fast()) to the ai
    allocated in ubi_attach().  This results in two problems:
    
     - When the scan_ai is freed, aebs which were allocated from its slab
       cache are still in use.
    
     - When the other ai is being destroyed in destroy_ai(), the
       arguments to kmem_cache_free() call are incorrect since aebs on its
       ->fastmap list were allocated with a slab cache from a differnt ai.
    
    Fix this by making a copy of the aebs in ubi_scan_fastmap() instead of
    moving them.
    
     =============================================================================
     BUG ubi_aeb_slab_cache (Not tainted): Objects remaining in ubi_aeb_slab_cache on __kmem_cache_shutdown()
     -----------------------------------------------------------------------------
    
     INFO: Slab 0xbfd2da3c objects=17 used=1 fp=0xb33d7748 flags=0x40000080
     CPU: 1 PID: 118 Comm: ubiattach Tainted: G    B           4.9.15 #3
     [<80111910>] (unwind_backtrace) from [<8010d498>] (show_stack+0x18/0x1c)
     [<8010d498>] (show_stack) from [<804a3274>] (dump_stack+0xb4/0xe0)
     [<804a3274>] (dump_stack) from [<8026c47c>] (slab_err+0x78/0x88)
     [<8026c47c>] (slab_err) from [<802735bc>] (__kmem_cache_shutdown+0x180/0x3e0)
     [<802735bc>] (__kmem_cache_shutdown) from [<8024e13c>] (shutdown_cache+0x1c/0x60)
     [<8024e13c>] (shutdown_cache) from [<8024ed64>] (kmem_cache_destroy+0x19c/0x20c)
     [<8024ed64>] (kmem_cache_destroy) from [<8057cc14>] (destroy_ai+0x1dc/0x1e8)
     [<8057cc14>] (destroy_ai) from [<8057f04c>] (ubi_attach+0x3f4/0x450)
     [<8057f04c>] (ubi_attach) from [<8056fe70>] (ubi_attach_mtd_dev+0x60c/0xff8)
     [<8056fe70>] (ubi_attach_mtd_dev) from [<80571d78>] (ctrl_cdev_ioctl+0x110/0x2b8)
     [<80571d78>] (ctrl_cdev_ioctl) from [<8029c77c>] (do_vfs_ioctl+0xac/0xa00)
     [<8029c77c>] (do_vfs_ioctl) from [<8029d10c>] (SyS_ioctl+0x3c/0x64)
     [<8029d10c>] (SyS_ioctl) from [<80108860>] (ret_fast_syscall+0x0/0x1c)
     INFO: Object 0xb33d7e88 @offset=3720
     INFO: Allocated in scan_peb+0x608/0x81c age=72 cpu=1 pid=118
            kmem_cache_alloc+0x3b0/0x43c
            scan_peb+0x608/0x81c
            ubi_attach+0x124/0x450
            ubi_attach_mtd_dev+0x60c/0xff8
            ctrl_cdev_ioctl+0x110/0x2b8
            do_vfs_ioctl+0xac/0xa00
            SyS_ioctl+0x3c/0x64
            ret_fast_syscall+0x0/0x1c
     kmem_cache_destroy ubi_aeb_slab_cache: Slab cache still has objects
     CPU: 1 PID: 118 Comm: ubiattach Tainted: G    B           4.9.15 #3
     [<80111910>] (unwind_backtrace) from [<8010d498>] (show_stack+0x18/0x1c)
     [<8010d498>] (show_stack) from [<804a3274>] (dump_stack+0xb4/0xe0)
     [<804a3274>] (dump_stack) from [<8024ed80>] (kmem_cache_destroy+0x1b8/0x20c)
     [<8024ed80>] (kmem_cache_destroy) from [<8057cc14>] (destroy_ai+0x1dc/0x1e8)
     [<8057cc14>] (destroy_ai) from [<8057f04c>] (ubi_attach+0x3f4/0x450)
     [<8057f04c>] (ubi_attach) from [<8056fe70>] (ubi_attach_mtd_dev+0x60c/0xff8)
     [<8056fe70>] (ubi_attach_mtd_dev) from [<80571d78>] (ctrl_cdev_ioctl+0x110/0x2b8)
     [<80571d78>] (ctrl_cdev_ioctl) from [<8029c77c>] (do_vfs_ioctl+0xac/0xa00)
     [<8029c77c>] (do_vfs_ioctl) from [<8029d10c>] (SyS_ioctl+0x3c/0x64)
     [<8029d10c>] (SyS_ioctl) from [<80108860>] (ret_fast_syscall+0x0/0x1c)
     cache_from_obj: Wrong slab cache. ubi_aeb_slab_cache but object is from ubi_aeb_slab_cache
     ------------[ cut here ]------------
     WARNING: CPU: 1 PID: 118 at mm/slab.h:354 kmem_cache_free+0x39c/0x450
     Modules linked in:
     CPU: 1 PID: 118 Comm: ubiattach Tainted: G    B           4.9.15 #3
     [<80111910>] (unwind_backtrace) from [<8010d498>] (show_stack+0x18/0x1c)
     [<8010d498>] (show_stack) from [<804a3274>] (dump_stack+0xb4/0xe0)
     [<804a3274>] (dump_stack) from [<80120e40>] (__warn+0xf4/0x10c)
     [<80120e40>] (__warn) from [<80120f20>] (warn_slowpath_null+0x28/0x30)
     [<80120f20>] (warn_slowpath_null) from [<80271fe0>] (kmem_cache_free+0x39c/0x450)
     [<80271fe0>] (kmem_cache_free) from [<8057cb88>] (destroy_ai+0x150/0x1e8)
     [<8057cb88>] (destroy_ai) from [<8057ef1c>] (ubi_attach+0x2c4/0x450)
     [<8057ef1c>] (ubi_attach) from [<8056fe70>] (ubi_attach_mtd_dev+0x60c/0xff8)
     [<8056fe70>] (ubi_attach_mtd_dev) from [<80571d78>] (ctrl_cdev_ioctl+0x110/0x2b8)
     [<80571d78>] (ctrl_cdev_ioctl) from [<8029c77c>] (do_vfs_ioctl+0xac/0xa00)
     [<8029c77c>] (do_vfs_ioctl) from [<8029d10c>] (SyS_ioctl+0x3c/0x64)
     [<8029d10c>] (SyS_ioctl) from [<80108860>] (ret_fast_syscall+0x0/0x1c)
     ---[ end trace 2bd8396277fd0a0b ]---
     =============================================================================
     BUG ubi_aeb_slab_cache (Tainted: G    B   W      ): page slab pointer corrupt.
     -----------------------------------------------------------------------------
    
     INFO: Allocated in scan_peb+0x608/0x81c age=104 cpu=1 pid=118
            kmem_cache_alloc+0x3b0/0x43c
            scan_peb+0x608/0x81c
            ubi_attach+0x124/0x450
            ubi_attach_mtd_dev+0x60c/0xff8
            ctrl_cdev_ioctl+0x110/0x2b8
            do_vfs_ioctl+0xac/0xa00
            SyS_ioctl+0x3c/0x64
            ret_fast_syscall+0x0/0x1c
     INFO: Slab 0xbfd2da3c objects=17 used=1 fp=0xb33d7748 flags=0x40000081
     INFO: Object 0xb33d7e88 @offset=3720 fp=0xb33d7da0
    
     Redzone b33d7e80: cc cc cc cc cc cc cc cc                          ........
     Object b33d7e88: 02 00 00 00 01 00 00 00 00 f0 ff 7f ff ff ff ff  ................
     Object b33d7e98: 00 00 00 00 00 00 00 00 bd 16 00 00 00 00 00 00  ................
     Object b33d7ea8: 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00  ................
     Redzone b33d7eb8: cc cc cc cc                                      ....
     Padding b33d7f60: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
     CPU: 1 PID: 118 Comm: ubiattach Tainted: G    B   W       4.9.15 #3
     [<80111910>] (unwind_backtrace) from [<8010d498>] (show_stack+0x18/0x1c)
     [<8010d498>] (show_stack) from [<804a3274>] (dump_stack+0xb4/0xe0)
     [<804a3274>] (dump_stack) from [<80271770>] (free_debug_processing+0x320/0x3c4)
     [<80271770>] (free_debug_processing) from [<80271ad0>] (__slab_free+0x2bc/0x430)
     [<80271ad0>] (__slab_free) from [<80272024>] (kmem_cache_free+0x3e0/0x450)
     [<80272024>] (kmem_cache_free) from [<8057cb88>] (destroy_ai+0x150/0x1e8)
     [<8057cb88>] (destroy_ai) from [<8057ef1c>] (ubi_attach+0x2c4/0x450)
     [<8057ef1c>] (ubi_attach) from [<8056fe70>] (ubi_attach_mtd_dev+0x60c/0xff8)
     [<8056fe70>] (ubi_attach_mtd_dev) from [<80571d78>] (ctrl_cdev_ioctl+0x110/0x2b8)
     [<80571d78>] (ctrl_cdev_ioctl) from [<8029c77c>] (do_vfs_ioctl+0xac/0xa00)
     [<8029c77c>] (do_vfs_ioctl) from [<8029d10c>] (SyS_ioctl+0x3c/0x64)
     [<8029d10c>] (SyS_ioctl) from [<80108860>] (ret_fast_syscall+0x0/0x1c)
     FIX ubi_aeb_slab_cache: Object at 0xb33d7e88 not freed
    
    Signed-off-by: Rabin Vincent <rabinv@axis.com>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 694fb34bebb6de95eb1293b2ca190edf7a909f18
Author: Kees Cook <keescook@chromium.org>
Date:   Fri May 5 15:34:34 2017 -0700

    qlge: Avoid reading past end of buffer
    
    
    [ Upstream commit df5303a8aa9a0a6934f4cea7427f1edf771f21c2 ]
    
    Using memcpy() from a string that is shorter than the length copied means
    the destination buffer is being filled with arbitrary data from the kernel
    rodata segment. Instead, use strncpy() which will fill the trailing bytes
    with zeros.
    
    This was found with the future CONFIG_FORTIFY_SOURCE feature.
    
    Cc: Daniel Micay <danielmicay@gmail.com>
    Signed-off-by: Kees Cook <keescook@chromium.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 68e356469b2ecdfc4777c3329753183cc40a9227
Author: Kees Cook <keescook@chromium.org>
Date:   Fri May 5 15:25:32 2017 -0700

    bna: Avoid reading past end of buffer
    
    
    [ Upstream commit 9e4eb1ce472fbf7b007f23c88ec11c37265e401c ]
    
    Using memcpy() from a string that is shorter than the length copied means
    the destination buffer is being filled with arbitrary data from the kernel
    rodata segment. Instead, use strncpy() which will fill the trailing bytes
    with zeros.
    
    This was found with the future CONFIG_FORTIFY_SOURCE feature.
    
    Cc: Daniel Micay <danielmicay@gmail.com>
    Signed-off-by: Kees Cook <keescook@chromium.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 a4e074608e2d9cd40802ed10b877ffb202aae95c
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Tue May 2 17:56:21 2017 +0300

    mac80211: bail out from prep_connection() if a reconfig is ongoing
    
    
    [ Upstream commit f8860ce836f2d502b07ef99559707fe55d90f5bc ]
    
    If ieee80211_hw_restart() is called during authentication, the
    authentication process will continue, causing the driver to be called
    in a wrong state.  This ultimately causes an oops in the iwlwifi
    driver (at least).
    
    This fixes bugzilla 195299 partly.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195299
    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 a587acdbb01fa549b9fdc272d079398379b0e25e
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Fri May 5 07:40:42 2017 +0200

    af_key: Fix slab-out-of-bounds in pfkey_compile_policy.
    
    
    [ Upstream commit d90c902449a7561f1b1d58ba5a0d11728ce8b0b2 ]
    
    The sadb_x_sec_len is stored in the unit 'byte divided by eight'.
    So we have to multiply this value by eight before we can do
    size checks. Otherwise we may get a slab-out-of-bounds when
    we memcpy the user sec_ctx.
    
    Fixes: df71837d502 ("[LSM-IPSec]: Security association restriction.")
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84284968156340dce4e942b1cebea66c3d4f8146
Author: Bart Van Assche <bart.vanassche@sandisk.com>
Date:   Thu May 4 15:50:54 2017 -0700

    IB/srpt: Avoid that aborting a command triggers a kernel warning
    
    
    [ Upstream commit bd2c52d733f126ff75f99c537a27655b2db07e28 ]
    
    Avoid that the following warning is triggered:
    
    WARNING: CPU: 10 PID: 166 at ../drivers/infiniband/ulp/srpt/ib_srpt.c:2674 srpt_release_cmd+0x139/0x140 [ib_srpt]
    CPU: 10 PID: 166 Comm: kworker/u24:8 Not tainted 4.9.4-1-default #1
    Workqueue: tmr-fileio target_tmr_work [target_core_mod]
    Call Trace:
     [<ffffffffaa3c4f70>] dump_stack+0x63/0x83
     [<ffffffffaa0844eb>] __warn+0xcb/0xf0
     [<ffffffffaa0845dd>] warn_slowpath_null+0x1d/0x20
     [<ffffffffc06ba429>] srpt_release_cmd+0x139/0x140 [ib_srpt]
     [<ffffffffc06e4377>] target_release_cmd_kref+0xb7/0x120 [target_core_mod]
     [<ffffffffc06e4d7f>] target_put_sess_cmd+0x2f/0x60 [target_core_mod]
     [<ffffffffc06e15e0>] core_tmr_lun_reset+0x340/0x790 [target_core_mod]
     [<ffffffffc06e4816>] target_tmr_work+0xe6/0x140 [target_core_mod]
     [<ffffffffaa09e4d3>] process_one_work+0x1f3/0x4d0
     [<ffffffffaa09e7f8>] worker_thread+0x48/0x4e0
     [<ffffffffaa09e7b0>] ? process_one_work+0x4d0/0x4d0
     [<ffffffffaa0a46da>] kthread+0xca/0xe0
     [<ffffffffaa0a4610>] ? kthread_park+0x60/0x60
     [<ffffffffaa71b775>] ret_from_fork+0x25/0x30
    
    Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Cc: Doug Ledford <dledford@redhat.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: David Disseldorp <ddiss@suse.de>
    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 f9800a1f5797c48ab9de6488077a869a59061470
Author: Bart Van Assche <bart.vanassche@sandisk.com>
Date:   Thu May 4 15:50:53 2017 -0700

    IB/srpt: Fix abort handling
    
    
    [ Upstream commit 55d694275f41a1c0eef4ef49044ff29bc3999490 ]
    
    Let the target core check the CMD_T_ABORTED flag instead of the SRP
    target driver. Hence remove the transport_check_aborted_status()
    call. Since state == SRPT_STATE_CMD_RSP_SENT is something that really
    should not happen, do not try to recover if srpt_queue_response() is
    called for an I/O context that is in that state. This patch is a bug
    fix because the srpt_abort_cmd() call is misplaced - if that function
    is called from srpt_queue_response() it should either be called
    before the command state is changed or after the response has been
    sent.
    
    Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Cc: Doug Ledford <dledford@redhat.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Andy Grover <agrover@redhat.com>
    Cc: David Disseldorp <ddiss@suse.de>
    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 b1b547afdbeb241ca7a253c10d6e7b767cad75f2
Author: Kees Cook <keescook@chromium.org>
Date:   Fri May 5 21:51:16 2017 -0700

    x86/boot: Declare error() as noreturn
    
    
    [ Upstream commit 60854a12d281e2fa25662fa32ac8022bbff17432 ]
    
    The compressed boot function error() is used to halt execution, but it
    wasn't marked with "noreturn". This fixes that in preparation for
    supporting kernel FORTIFY_SOURCE, which uses the noreturn annotation
    on panic, and calls error(). GCC would warn about a noreturn function
    calling a non-noreturn function:
    
      arch/x86/boot/compressed/misc.c: In function ‘fortify_panic’:
      arch/x86/boot/compressed/misc.c:416:1: warning: ‘noreturn’ function does return
       }
     ^
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Daniel Micay <danielmicay@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Link: http://lkml.kernel.org/r/20170506045116.GA2879@beast
    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 3032bccf250d792ab64eee2af9df47e94e58b7d3
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Thu May 4 13:44:04 2017 -0400

    NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION
    
    
    [ Upstream commit 0048fdd06614a4ea088f9fcad11511956b795698 ]
    
    If the server returns NFS4ERR_CONN_NOT_BOUND_TO_SESSION because we
    are trunking, then RECLAIM_COMPLETE must handle that by calling
    nfs4_schedule_session_recovery() and then retrying.
    
    Reported-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Tested-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6371afaf56f87c31299cea40b63f02b69a994e0f
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Mon Apr 24 19:54:13 2017 +0300

    ovl: persistent inode numbers for upper hardlinks
    
    
    [ Upstream commit 5b6c9053fb38a66fd5c6177fcf5022b24767811a ]
    
    An upper type non directory dentry that is a copy up target
    should have a reference to its lower copy up origin.
    
    There are three ways for an upper type dentry to be instantiated:
    1. A lower type dentry that is being copied up
    2. An entry that is found in upper dir by ovl_lookup()
    3. A negative dentry is hardlinked to an upper type dentry
    
    In the first case, the lower reference is set before copy up.
    In the second case, the lower reference is found by ovl_lookup().
    In the last case of hardlinked upper dentry, it is not easy to
    update the lower reference of the negative dentry.  Instead,
    drop the newly hardlinked negative dentry from dcache and let
    the next access call ovl_lookup() to find its lower reference.
    
    This makes sure that the inode number reported by stat(2) after
    the hardlink is created is the same inode number that will be
    reported by stat(2) after mount cycle, which is the inode number
    of the lower copy up origin of the hardlink source.
    
    NOTE that this does not fix breaking of lower hardlinks on copy
    up, but only fixes the case of lower nlink == 1, whose upper copy
    up inode is hardlinked in upper dir.
    
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c49892015f528ccf4d53d9e388a9ce0cdd1cba37
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Mon May 1 15:47:41 2017 -0700

    x86/mm/kaslr: Use the _ASM_MUL macro for multiplication to work around Clang incompatibility
    
    
    [ Upstream commit 121843eb02a6e2fa30aefab64bfe183c97230c75 ]
    
    The constraint "rm" allows the compiler to put mix_const into memory.
    When the input operand is a memory location then MUL needs an operand
    size suffix, since Clang can't infer the multiplication width from the
    operand.
    
    Add and use the _ASM_MUL macro which determines the operand size and
    resolves to the NUL instruction with the corresponding suffix.
    
    This fixes the following error when building with clang:
    
      CC      arch/x86/lib/kaslr.o
      /tmp/kaslr-dfe1ad.s: Assembler messages:
      /tmp/kaslr-dfe1ad.s:182: Error: no instruction mnemonic suffix given and no register operands; can't size instruction
    
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Cc: Grant Grundler <grundler@chromium.org>
    Cc: Greg Hackmann <ghackmann@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Michael Davidson <md@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20170501224741.133938-1-mka@chromium.org
    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 82652acdd73a0c2b0e1cddeccfc8ab9dc90e2432
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Thu May 4 09:51:40 2017 -0500

    x86/asm: Don't use RBP as a temporary register in csum_partial_copy_generic()
    
    
    [ Upstream commit 42fc6c6cb1662ba2fa727dd01c9473c63be4e3b6 ]
    
    Andrey Konovalov reported the following warning while fuzzing the kernel
    with syzkaller:
    
      WARNING: kernel stack regs at ffff8800686869f8 in a.out:4933 has bad 'bp' value c3fc855a10167ec0
    
    The unwinder dump revealed that RBP had a bad value when an interrupt
    occurred in csum_partial_copy_generic().
    
    That function saves RBP on the stack and then overwrites it, using it as
    a scratch register.  That's problematic because it breaks stack traces
    if an interrupt occurs in the middle of the function.
    
    Replace the usage of RBP with another callee-saved register (R15) so
    stack traces are no longer affected.
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Cong Wang <xiyou.wangcong@gmail.com>
    Cc: David S . Miller <davem@davemloft.net>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Kostya Serebryany <kcc@google.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Cc: linux-sctp@vger.kernel.org
    Cc: netdev <netdev@vger.kernel.org>
    Cc: syzkaller <syzkaller@googlegroups.com>
    Link: http://lkml.kernel.org/r/4b03a961efda5ec9bfe46b7b9c9ad72d1efad343.1493909486.git.jpoimboe@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 d36d6e43078a6ccc1e984534f292e19ab2733935
Author: Pan Bian <bianpan2016@163.com>
Date:   Sun Apr 23 13:43:24 2017 +0800

    rtc: snvs: fix an incorrect check of return value
    
    
    [ Upstream commit 758929005f06f954b7e1c87a1c9fdb44157b228f ]
    
    Function devm_regmap_init_mmio() returns an ERR_PTR on error. However,
    in function snvs_rtc_probe() its return value is checked against NULL.
    This patch fixes it by checking the return value with IS_ERR().
    
    Signed-off-by: Pan Bian <bianpan2016@163.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 beaf445bdd0677d45032aa082faa8dc106526bd5
Author: Julia Cartwright <julia@ni.com>
Date:   Fri Apr 28 12:41:02 2017 -0500

    md/raid5: make use of spin_lock_irq over local_irq_disable + spin_lock
    
    
    [ Upstream commit 3d05f3aed5d721c2c77d20288c29ab26c6193ed5 ]
    
    On mainline, there is no functional difference, just less code, and
    symmetric lock/unlock paths.
    
    On PREEMPT_RT builds, this fixes the following warning, seen by
    Alexander GQ Gerasiov, due to the sleeping nature of spinlocks.
    
       BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:993
       in_atomic(): 0, irqs_disabled(): 1, pid: 58, name: kworker/u12:1
       CPU: 5 PID: 58 Comm: kworker/u12:1 Tainted: G        W       4.9.20-rt16-stand6-686 #1
       Hardware name: Supermicro SYS-5027R-WRF/X9SRW-F, BIOS 3.2a 10/28/2015
       Workqueue: writeback wb_workfn (flush-253:0)
       Call Trace:
        dump_stack+0x47/0x68
        ? migrate_enable+0x4a/0xf0
        ___might_sleep+0x101/0x180
        rt_spin_lock+0x17/0x40
        add_stripe_bio+0x4e3/0x6c0 [raid456]
        ? preempt_count_add+0x42/0xb0
        raid5_make_request+0x737/0xdd0 [raid456]
    
    Reported-by: Alexander GQ Gerasiov <gq@redlab-i.ru>
    Tested-by: Alexander GQ Gerasiov <gq@redlab-i.ru>
    Signed-off-by: Julia Cartwright <julia@ni.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 9abd45b5e52c7221ded50fd1512d5f85d64f8261
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu May 4 08:42:30 2017 +0200

    cfg80211: make RATE_INFO_BW_20 the default
    
    
    [ Upstream commit 842be75c77cb72ee546a2b19da9c285fb3ded660 ]
    
    Due to the way I did the RX bitrate conversions in mac80211 with
    spatch, going setting flags to setting the value, many drivers now
    don't set the bandwidth value for 20 MHz, since with the flags it
    wasn't necessary to (there was no 20 MHz flag, only the others.)
    
    Rather than go through and try to fix up all the drivers, instead
    renumber the enum so that 20 MHz, which is the typical bandwidth,
    actually has the value 0, making those drivers all work again.
    
    If VHT was hit used with a driver not reporting it, e.g. iwlmvm,
    this manifested in hitting the bandwidth warning in
    cfg80211_calculate_bitrate_vht().
    
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Tested-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Johannes Berg <johannes.berg@intel.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 ddeedda6e71c5919adae5419297fb27a622128b4
Author: sudarsana.kalluru@cavium.com <sudarsana.kalluru@cavium.com>
Date:   Thu May 4 08:15:04 2017 -0700

    qed: Fix overriding of supported autoneg value.
    
    
    [ Upstream commit 34f9199ce7b7e5c641b96e928bd60e086bf7f278 ]
    
    Driver currently uses advertised-autoneg value to populate the
    supported-autoneg field. When advertised field is updated, user gets
    the same value for supported field. Supported-autoneg value need to be
    populated from the link capabilities value returned by the MFW.
    
    Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
    Signed-off-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>