commit c14d30dc9987047b439b03d6e6db7d54d9f7f180
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Aug 11 15:32:36 2020 +0200

    Linux 4.19.139
    
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67b4be302ca89d49cacc37373049b421b8bcec4e
Author: Eric Biggers <ebiggers@google.com>
Date:   Wed Jul 8 13:15:20 2020 -0700

    Smack: fix use-after-free in smk_write_relabel_self()
    
    commit beb4ee6770a89646659e6a2178538d2b13e2654e upstream.
    
    smk_write_relabel_self() frees memory from the task's credentials with
    no locking, which can easily cause a use-after-free because multiple
    tasks can share the same credentials structure.
    
    Fix this by using prepare_creds() and commit_creds() to correctly modify
    the task's credentials.
    
    Reproducer for "BUG: KASAN: use-after-free in smk_write_relabel_self":
    
            #include <fcntl.h>
            #include <pthread.h>
            #include <unistd.h>
    
            static void *thrproc(void *arg)
            {
                    int fd = open("/sys/fs/smackfs/relabel-self", O_WRONLY);
                    for (;;) write(fd, "foo", 3);
            }
    
            int main()
            {
                    pthread_t t;
                    pthread_create(&t, NULL, thrproc, NULL);
                    thrproc(NULL);
            }
    
    Reported-by: syzbot+e6416dabb497a650da40@syzkaller.appspotmail.com
    Fixes: 38416e53936e ("Smack: limited capability for changing process label")
    Cc: <stable@vger.kernel.org> # v4.4+
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 330aa3b43ccf514ad2e99421fc8d3b38882b45cf
Author: Martyna Szapar <martyna.szapar@intel.com>
Date:   Fri Aug 7 13:55:17 2020 -0700

    i40e: Memory leak in i40e_config_iwarp_qvlist
    
    [ Upstream commit 0b63644602cfcbac849f7ea49272a39e90fa95eb ]
    
    Added freeing the old allocation of vf->qvlist_info in function
    i40e_config_iwarp_qvlist before overwriting it with
    the new allocation.
    
    Fixes: e3219ce6a7754 ("i40e: Add support for client interface for IWARP driver")
    Signed-off-by: Martyna Szapar <martyna.szapar@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71d781619fc57ef1000cec352343bfea1a559e0e
Author: Martyna Szapar <martyna.szapar@intel.com>
Date:   Fri Aug 7 13:55:16 2020 -0700

    i40e: Fix of memory leak and integer truncation in i40e_virtchnl.c
    
    [ Upstream commit 24474f2709af6729b9b1da1c5e160ab62e25e3a4 ]
    
    Fixed possible memory leak in i40e_vc_add_cloud_filter function:
    cfilter is being allocated and in some error conditions
    the function returns without freeing the memory.
    
    Fix of integer truncation from u16 (type of queue_id value) to u8
    when calling i40e_vc_isvalid_queue_id function.
    
    Fixes: e284fc280473b ("i40e: Add and delete cloud filter")
    Signed-off-by: Martyna Szapar <martyna.szapar@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48a9be93ff2c5a09e308ef93560ea1f4ecbd22f6
Author: Grzegorz Siwik <grzegorz.siwik@intel.com>
Date:   Fri Aug 7 13:55:15 2020 -0700

    i40e: Wrong truncation from u16 to u8
    
    [ Upstream commit c004804dceee9ca384d97d9857ea2e2795c2651d ]
    
    In this patch fixed wrong truncation method from u16 to u8 during
    validation.
    
    It was changed by changing u8 to u32 parameter in method declaration
    and arguments were changed to u32.
    
    Fixes: 5c3c48ac6bf56 ("i40e: implement virtual device interface")
    Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43a7e1cf606e96ee43f8897129972f0b79390367
Author: Sergey Nemov <sergey.nemov@intel.com>
Date:   Fri Aug 7 13:55:14 2020 -0700

    i40e: add num_vectors checker in iwarp handler
    
    [ Upstream commit 7015ca3df965378bcef072cca9cd63ed098665b5 ]
    
    Field num_vectors from struct virtchnl_iwarp_qvlist_info should not be
    larger than num_msix_vectors_vf in the hw struct.  The iwarp uses the
    same set of vectors as the LAN VF driver.
    
    Fixes: e3219ce6a7754 ("i40e: Add support for client interface for IWARP driver")
    Signed-off-by: Sergey Nemov <sergey.nemov@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46a41ed2e6f3cb7bb193126bae357c2c6bf2ee4f
Author: David Howells <dhowells@redhat.com>
Date:   Wed Jul 29 00:03:56 2020 +0100

    rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
    
    [ Upstream commit 65550098c1c4db528400c73acf3e46bfa78d9264 ]
    
    There's a race between rxrpc_sendmsg setting up a call, but then failing to
    send anything on it due to an error, and recvmsg() seeing the call
    completion occur and trying to return the state to the user.
    
    An assertion fails in rxrpc_recvmsg() because the call has already been
    released from the socket and is about to be released again as recvmsg deals
    with it.  (The recvmsg_q queue on the socket holds a ref, so there's no
    problem with use-after-free.)
    
    We also have to be careful not to end up reporting an error twice, in such
    a way that both returns indicate to userspace that the user ID supplied
    with the call is no longer in use - which could cause the client to
    malfunction if it recycles the user ID fast enough.
    
    Fix this by the following means:
    
     (1) When sendmsg() creates a call after the point that the call has been
         successfully added to the socket, don't return any errors through
         sendmsg(), but rather complete the call and let recvmsg() retrieve
         them.  Make sendmsg() return 0 at this point.  Further calls to
         sendmsg() for that call will fail with ESHUTDOWN.
    
         Note that at this point, we haven't send any packets yet, so the
         server doesn't yet know about the call.
    
     (2) If sendmsg() returns an error when it was expected to create a new
         call, it means that the user ID wasn't used.
    
     (3) Mark the call disconnected before marking it completed to prevent an
         oops in rxrpc_release_call().
    
     (4) recvmsg() will then retrieve the error and set MSG_EOR to indicate
         that the user ID is no longer known by the kernel.
    
    An oops like the following is produced:
    
            kernel BUG at net/rxrpc/recvmsg.c:605!
            ...
            RIP: 0010:rxrpc_recvmsg+0x256/0x5ae
            ...
            Call Trace:
             ? __init_waitqueue_head+0x2f/0x2f
             ____sys_recvmsg+0x8a/0x148
             ? import_iovec+0x69/0x9c
             ? copy_msghdr_from_user+0x5c/0x86
             ___sys_recvmsg+0x72/0xaa
             ? __fget_files+0x22/0x57
             ? __fget_light+0x46/0x51
             ? fdget+0x9/0x1b
             do_recvmmsg+0x15e/0x232
             ? _raw_spin_unlock+0xa/0xb
             ? vtime_delta+0xf/0x25
             __x64_sys_recvmmsg+0x2c/0x2f
             do_syscall_64+0x4c/0x78
             entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 357f5ef64628 ("rxrpc: Call rxrpc_release_call() on error in rxrpc_new_client_call()")
    Reported-by: syzbot+b54969381df354936d96@syzkaller.appspotmail.com
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 615214ab782aac760771dedf870366f38b27e902
Author: Willem de Bruijn <willemb@google.com>
Date:   Wed Aug 5 04:40:45 2020 -0400

    selftests/net: relax cpu affinity requirement in msg_zerocopy test
    
    [ Upstream commit 16f6458f2478b55e2b628797bc81a4455045c74e ]
    
    The msg_zerocopy test pins the sender and receiver threads to separate
    cores to reduce variance between runs.
    
    But it hardcodes the cores and skips core 0, so it fails on machines
    with the selected cores offline, or simply fewer cores.
    
    The test mainly gives code coverage in automated runs. The throughput
    of zerocopy ('-z') and non-zerocopy runs is logged for manual
    inspection.
    
    Continue even when sched_setaffinity fails. Just log to warn anyone
    interpreting the data.
    
    Fixes: 07b65c5b31ce ("test: add msg_zerocopy test")
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Acked-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 719a92fae0434d11ee86d0f679663c14a2a13fc1
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Wed Aug 5 10:41:31 2020 +0800

    Revert "vxlan: fix tos value before xmit"
    
    [ Upstream commit a0dced17ad9dc08b1b25e0065b54c97a318e6e8b ]
    
    This reverts commit 71130f29979c7c7956b040673e6b9d5643003176.
    
    In commit 71130f29979c ("vxlan: fix tos value before xmit") we want to
    make sure the tos value are filtered by RT_TOS() based on RFC1349.
    
           0     1     2     3     4     5     6     7
        +-----+-----+-----+-----+-----+-----+-----+-----+
        |   PRECEDENCE    |          TOS          | MBZ |
        +-----+-----+-----+-----+-----+-----+-----+-----+
    
    But RFC1349 has been obsoleted by RFC2474. The new DSCP field defined like
    
           0     1     2     3     4     5     6     7
        +-----+-----+-----+-----+-----+-----+-----+-----+
        |          DS FIELD, DSCP           | ECN FIELD |
        +-----+-----+-----+-----+-----+-----+-----+-----+
    
    So with
    
    IPTOS_TOS_MASK          0x1E
    RT_TOS(tos)             ((tos)&IPTOS_TOS_MASK)
    
    the first 3 bits DSCP info will get lost.
    
    To take all the DSCP info in xmit, we should revert the patch and just push
    all tos bits to ip_tunnel_ecn_encap(), which will handling ECN field later.
    
    Fixes: 71130f29979c ("vxlan: fix tos value before xmit")
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Acked-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fc4eec2a8dc2f3ea7ab860b6d6a5d0391452ca5
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Fri Jul 31 00:48:38 2020 -0400

    openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
    
    [ Upstream commit 9aba6c5b49254d5bee927d81593ed4429e91d4ae ]
    
    ovs_ct_put_key() is potentially copying uninitialized kernel stack memory
    into socket buffers, since the compiler may leave a 3-byte hole at the end
    of `struct ovs_key_ct_tuple_ipv4` and `struct ovs_key_ct_tuple_ipv6`. Fix
    it by initializing `orig` with memset().
    
    Fixes: 9dd7f8907c37 ("openvswitch: Add original direction conntrack tuple to sw_flow_key.")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55589dfa48e88485dc04e91eec36eacbc27ae915
Author: Xin Long <lucien.xin@gmail.com>
Date:   Tue Aug 4 15:02:30 2020 +0800

    net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
    
    [ Upstream commit bab9693a9a8c6dd19f670408ec1e78e12a320682 ]
    
    A dead lock was triggered on thunderx driver:
    
            CPU0                    CPU1
            ----                    ----
       [01] lock(&(&nic->rx_mode_wq_lock)->rlock);
                               [11] lock(&(&mc->mca_lock)->rlock);
                               [12] lock(&(&nic->rx_mode_wq_lock)->rlock);
       [02] <Interrupt> lock(&(&mc->mca_lock)->rlock);
    
    The path for each is:
    
      [01] worker_thread() -> process_one_work() -> nicvf_set_rx_mode_task()
      [02] mld_ifc_timer_expire()
      [11] ipv6_add_dev() -> ipv6_dev_mc_inc() -> igmp6_group_added() ->
      [12] dev_mc_add() -> __dev_set_rx_mode() -> nicvf_set_rx_mode()
    
    To fix it, it needs to disable bh on [1], so that the timer on [2]
    wouldn't be triggered until rx_mode_wq_lock is released. So change
    to use spin_lock_bh() instead of spin_lock().
    
    Thanks to Paolo for helping with this.
    
    v1->v2:
      - post to netdev.
    
    Reported-by: Rafael P. <rparrazo@redhat.com>
    Tested-by: Dean Nelson <dnelson@redhat.com>
    Fixes: 469998c861fa ("net: thunderx: prevent concurrent data re-writing by nicvf_set_rx_mode")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ffa0b33f48dfd226b039d272b7ea7db57383fc0
Author: Lorenzo Bianconi <lorenzo@kernel.org>
Date:   Fri Jul 31 20:12:05 2020 +0200

    net: gre: recompute gre csum for sctp over gre tunnels
    
    [ Upstream commit 622e32b7d4a6492cf5c1f759ef833f817418f7b3 ]
    
    The GRE tunnel can be used to transport traffic that does not rely on a
    Internet checksum (e.g. SCTP). The issue can be triggered creating a GRE
    or GRETAP tunnel and transmitting SCTP traffic ontop of it where CRC
    offload has been disabled. In order to fix the issue we need to
    recompute the GRE csum in gre_gso_segment() not relying on the inner
    checksum.
    The issue is still present when we have the CRC offload enabled.
    In this case we need to disable the CRC offload if we require GRE
    checksum since otherwise skb_checksum() will report a wrong value.
    
    Fixes: 90017accff61 ("sctp: Add GSO support")
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2a93f69106172be614c79c43c487d09199b4a5b
Author: Stephen Hemminger <stephen@networkplumber.org>
Date:   Tue Aug 4 09:54:15 2020 -0700

    hv_netvsc: do not use VF device if link is down
    
    [ Upstream commit 7c9864bbccc23e1812ac82966555d68c13ea4006 ]
    
    If the accelerated networking SRIOV VF device has lost carrier
    use the synthetic network device which is available as backup
    path. This is a rare case since if VF link goes down, normally
    the VMBus device will also loose external connectivity as well.
    But if the communication is between two VM's on the same host
    the VMBus device will still work.
    
    Reported-by: "Shah, Ashish N" <ashish.n.shah@intel.com>
    Fixes: 0c195567a8f6 ("netvsc: transparent VF management")
    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a70de92dd44ba152c899a439389d96ac2815b02
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jul 28 14:10:31 2020 +0200

    net: lan78xx: replace bogus endpoint lookup
    
    [ Upstream commit ea060b352654a8de1e070140d25fe1b7e4d50310 ]
    
    Drop the bogus endpoint-lookup helper which could end up accepting
    interfaces based on endpoints belonging to unrelated altsettings.
    
    Note that the returned bulk pipes and interrupt endpoint descriptor
    were never actually used. Instead the bulk-endpoint numbers are
    hardcoded to 1 and 2 (matching the specification), while the interrupt-
    endpoint descriptor was assumed to be the third descriptor created by
    USB core.
    
    Try to bring some order to this by dropping the bogus lookup helper and
    adding the missing endpoint sanity checks while keeping the interrupt-
    descriptor assumption for now.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db8e1fb8d751ca51a3932437ff132b2097e4d1af
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Wed Jul 29 11:34:36 2020 +0300

    vxlan: Ensure FDB dump is performed under RCU
    
    [ Upstream commit b5141915b5aec3b29a63db869229e3741ebce258 ]
    
    The commit cited below removed the RCU read-side critical section from
    rtnl_fdb_dump() which means that the ndo_fdb_dump() callback is invoked
    without RCU protection.
    
    This results in the following warning [1] in the VXLAN driver, which
    relied on the callback being invoked from an RCU read-side critical
    section.
    
    Fix this by calling rcu_read_lock() in the VXLAN driver, as already done
    in the bridge driver.
    
    [1]
    WARNING: suspicious RCU usage
    5.8.0-rc4-custom-01521-g481007553ce6 #29 Not tainted
    -----------------------------
    drivers/net/vxlan.c:1379 RCU-list traversed in non-reader section!!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    1 lock held by bridge/166:
     #0: ffffffff85a27850 (rtnl_mutex){+.+.}-{3:3}, at: netlink_dump+0xea/0x1090
    
    stack backtrace:
    CPU: 1 PID: 166 Comm: bridge Not tainted 5.8.0-rc4-custom-01521-g481007553ce6 #29
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-2.fc32 04/01/2014
    Call Trace:
     dump_stack+0x100/0x184
     lockdep_rcu_suspicious+0x153/0x15d
     vxlan_fdb_dump+0x51e/0x6d0
     rtnl_fdb_dump+0x4dc/0xad0
     netlink_dump+0x540/0x1090
     __netlink_dump_start+0x695/0x950
     rtnetlink_rcv_msg+0x802/0xbd0
     netlink_rcv_skb+0x17a/0x480
     rtnetlink_rcv+0x22/0x30
     netlink_unicast+0x5ae/0x890
     netlink_sendmsg+0x98a/0xf40
     __sys_sendto+0x279/0x3b0
     __x64_sys_sendto+0xe6/0x1a0
     do_syscall_64+0x54/0xa0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x7fe14fa2ade0
    Code: Bad RIP value.
    RSP: 002b:00007fff75bb5b88 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    RAX: ffffffffffffffda RBX: 00005614b1ba0020 RCX: 00007fe14fa2ade0
    RDX: 000000000000011c RSI: 00007fff75bb5b90 RDI: 0000000000000003
    RBP: 00007fff75bb5b90 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00005614b1b89160
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    
    Fixes: 5e6d24358799 ("bridge: netlink dump interface at par with brctl")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-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 2ab3d2622836c72cdbc075d60c597e6571658d91
Author: Landen Chao <landen.chao@mediatek.com>
Date:   Wed Jul 29 10:15:17 2020 +0200

    net: ethernet: mtk_eth_soc: fix MTU warnings
    
    [ Upstream commit 555a893303872e044fb86f0a5834ce78d41ad2e2 ]
    
    in recent kernel versions there are warnings about incorrect MTU size
    like these:
    
    eth0: mtu greater than device maximum
    mtk_soc_eth 1b100000.ethernet eth0: error -22 setting MTU to include DSA overhead
    
    Fixes: bfcb813203e6 ("net: dsa: configure the MTU for switch ports")
    Fixes: 72579e14a1d3 ("net: dsa: don't fail to probe if we couldn't set the MTU")
    Fixes: 7a4c53bee332 ("net: report invalid mtu value via netlink extack")
    Signed-off-by: Landen Chao <landen.chao@mediatek.com>
    Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c8652db5cd45f727071c42c9c675761133a58ae
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Sat Jul 25 15:40:53 2020 -0700

    ipv6: fix memory leaks on IPV6_ADDRFORM path
    
    [ Upstream commit 8c0de6e96c9794cb523a516c465991a70245da1c ]
    
    IPV6_ADDRFORM causes resource leaks when converting an IPv6 socket
    to IPv4, particularly struct ipv6_ac_socklist. Similar to
    struct ipv6_mc_socklist, we should just close it on this path.
    
    This bug can be easily reproduced with the following C program:
    
      #include <stdio.h>
      #include <string.h>
      #include <sys/types.h>
      #include <sys/socket.h>
      #include <arpa/inet.h>
    
      int main()
      {
        int s, value;
        struct sockaddr_in6 addr;
        struct ipv6_mreq m6;
    
        s = socket(AF_INET6, SOCK_DGRAM, 0);
        addr.sin6_family = AF_INET6;
        addr.sin6_port = htons(5000);
        inet_pton(AF_INET6, "::ffff:192.168.122.194", &addr.sin6_addr);
        connect(s, (struct sockaddr *)&addr, sizeof(addr));
    
        inet_pton(AF_INET6, "fe80::AAAA", &m6.ipv6mr_multiaddr);
        m6.ipv6mr_interface = 5;
        setsockopt(s, SOL_IPV6, IPV6_JOIN_ANYCAST, &m6, sizeof(m6));
    
        value = AF_INET;
        setsockopt(s, SOL_IPV6, IPV6_ADDRFORM, &value, sizeof(value));
    
        close(s);
        return 0;
      }
    
    Reported-by: ch3332xr@gmail.com
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eab3600b6fa4a094d4eff1b65ba6cd581d408c81
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Wed Jul 29 11:37:13 2020 +0300

    ipv4: Silence suspicious RCU usage warning
    
    [ Upstream commit 83f3522860f702748143e022f1a546547314c715 ]
    
    fib_trie_unmerge() is called with RTNL held, but not from an RCU
    read-side critical section. This leads to the following warning [1] when
    the FIB alias list in a leaf is traversed with
    hlist_for_each_entry_rcu().
    
    Since the function is always called with RTNL held and since
    modification of the list is protected by RTNL, simply use
    hlist_for_each_entry() and silence the warning.
    
    [1]
    WARNING: suspicious RCU usage
    5.8.0-rc4-custom-01520-gc1f937f3f83b #30 Not tainted
    -----------------------------
    net/ipv4/fib_trie.c:1867 RCU-list traversed in non-reader section!!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    1 lock held by ip/164:
     #0: ffffffff85a27850 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x49a/0xbd0
    
    stack backtrace:
    CPU: 0 PID: 164 Comm: ip Not tainted 5.8.0-rc4-custom-01520-gc1f937f3f83b #30
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-2.fc32 04/01/2014
    Call Trace:
     dump_stack+0x100/0x184
     lockdep_rcu_suspicious+0x153/0x15d
     fib_trie_unmerge+0x608/0xdb0
     fib_unmerge+0x44/0x360
     fib4_rule_configure+0xc8/0xad0
     fib_nl_newrule+0x37a/0x1dd0
     rtnetlink_rcv_msg+0x4f7/0xbd0
     netlink_rcv_skb+0x17a/0x480
     rtnetlink_rcv+0x22/0x30
     netlink_unicast+0x5ae/0x890
     netlink_sendmsg+0x98a/0xf40
     ____sys_sendmsg+0x879/0xa00
     ___sys_sendmsg+0x122/0x190
     __sys_sendmsg+0x103/0x1d0
     __x64_sys_sendmsg+0x7d/0xb0
     do_syscall_64+0x54/0xa0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x7fc80a234e97
    Code: Bad RIP value.
    RSP: 002b:00007ffef8b66798 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc80a234e97
    RDX: 0000000000000000 RSI: 00007ffef8b66800 RDI: 0000000000000003
    RBP: 000000005f141b1c R08: 0000000000000001 R09: 0000000000000000
    R10: 00007fc80a2a8ac0 R11: 0000000000000246 R12: 0000000000000001
    R13: 0000000000000000 R14: 00007ffef8b67008 R15: 0000556fccb10020
    
    Fixes: 0ddcf43d5d4a ("ipv4: FIB Local/MAIN table collapse")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-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 fabe9d6cc1663deafba59499829e0c4c28971345
Author: Frank van der Linden <fllinden@amazon.com>
Date:   Tue Jun 23 22:39:18 2020 +0000

    xattr: break delegations in {set,remove}xattr
    
    commit 08b5d5014a27e717826999ad20e394a8811aae92 upstream.
    
    set/removexattr on an exported filesystem should break NFS delegations.
    This is true in general, but also for the upcoming support for
    RFC 8726 (NFSv4 extended attribute support). Make sure that they do.
    
    Additionally, they need to grow a _locked variant, since callers might
    call this with i_rwsem held (like the NFS server code).
    
    Cc: stable@vger.kernel.org # v4.9+
    Cc: linux-fsdevel@vger.kernel.org
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Frank van der Linden <fllinden@amazon.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a3172f9c571ce8cf79a399c2d602be95fd9229c
Author: Dexuan Cui <decui@microsoft.com>
Date:   Sun Jan 19 15:29:22 2020 -0800

    Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
    
    [ Upstream commit ddc9d357b991838c2d975e8d7e4e9db26f37a7ff ]
    
    When a Linux hv_sock app tries to connect to a Service GUID on which no
    host app is listening, a recent host (RS3+) sends a
    CHANNELMSG_TL_CONNECT_RESULT (23) message to Linux and this triggers such
    a warning:
    
    unknown msgtype=23
    WARNING: CPU: 2 PID: 0 at drivers/hv/vmbus_drv.c:1031 vmbus_on_msg_dpc
    
    Actually Linux can safely ignore the message because the Linux app's
    connect() will time out in 2 seconds: see VSOCK_DEFAULT_CONNECT_TIMEOUT
    and vsock_stream_connect(). We don't bother to make use of the message
    because: 1) it's only supported on recent hosts; 2) a non-trivial effort
    is required to use the message in Linux, but the benefit is small.
    
    So, let's not see the warning by silently ignoring the message.
    
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5650e4f6430f23dcb412a02dc1e9ba572f1b24d
Author: Philippe Duplessis-Guindon <pduplessis@efficios.com>
Date:   Thu Jul 30 11:02:36 2020 -0400

    tools lib traceevent: Fix memory leak in process_dynamic_array_len
    
    [ Upstream commit e24c6447ccb7b1a01f9bf0aec94939e6450c0b4d ]
    
    I compiled with AddressSanitizer and I had these memory leaks while I
    was using the tep_parse_format function:
    
        Direct leak of 28 byte(s) in 4 object(s) allocated from:
            #0 0x7fb07db49ffe in __interceptor_realloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10dffe)
            #1 0x7fb07a724228 in extend_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:985
            #2 0x7fb07a724c21 in __read_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1140
            #3 0x7fb07a724f78 in read_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1206
            #4 0x7fb07a725191 in __read_expect_type /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1291
            #5 0x7fb07a7251df in read_expect_type /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1299
            #6 0x7fb07a72e6c8 in process_dynamic_array_len /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:2849
            #7 0x7fb07a7304b8 in process_function /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3161
            #8 0x7fb07a730900 in process_arg_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3207
            #9 0x7fb07a727c0b in process_arg /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1786
            #10 0x7fb07a731080 in event_read_print_args /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3285
            #11 0x7fb07a731722 in event_read_print /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3369
            #12 0x7fb07a740054 in __tep_parse_format /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:6335
            #13 0x7fb07a74047a in __parse_event /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:6389
            #14 0x7fb07a740536 in tep_parse_format /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:6431
            #15 0x7fb07a785acf in parse_event ../../../src/fs-src/fs.c:251
            #16 0x7fb07a785ccd in parse_systems ../../../src/fs-src/fs.c:284
            #17 0x7fb07a786fb3 in read_metadata ../../../src/fs-src/fs.c:593
            #18 0x7fb07a78760e in ftrace_fs_source_init ../../../src/fs-src/fs.c:727
            #19 0x7fb07d90c19c in add_component_with_init_method_data ../../../../src/lib/graph/graph.c:1048
            #20 0x7fb07d90c87b in add_source_component_with_initialize_method_data ../../../../src/lib/graph/graph.c:1127
            #21 0x7fb07d90c92a in bt_graph_add_source_component ../../../../src/lib/graph/graph.c:1152
            #22 0x55db11aa632e in cmd_run_ctx_create_components_from_config_components ../../../src/cli/babeltrace2.c:2252
            #23 0x55db11aa6fda in cmd_run_ctx_create_components ../../../src/cli/babeltrace2.c:2347
            #24 0x55db11aa780c in cmd_run ../../../src/cli/babeltrace2.c:2461
            #25 0x55db11aa8a7d in main ../../../src/cli/babeltrace2.c:2673
            #26 0x7fb07d5460b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
    
    The token variable in the process_dynamic_array_len function is
    allocated in the read_expect_type function, but is not freed before
    calling the read_token function.
    
    Free the token variable before calling read_token in order to plug the
    leak.
    
    Signed-off-by: Philippe Duplessis-Guindon <pduplessis@efficios.com>
    Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Link: https://lore.kernel.org/linux-trace-devel/20200730150236.5392-1-pduplessis@efficios.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fea1298d57f0ddf05caee0b01c44f4a9b253526a
Author: Xin Xiong <xiongx18@fudan.edu.cn>
Date:   Wed Jul 29 21:06:59 2020 +0800

    atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
    
    [ Upstream commit 51875dad43b44241b46a569493f1e4bfa0386d86 ]
    
    atmtcp_remove_persistent() invokes atm_dev_lookup(), which returns a
    reference of atm_dev with increased refcount or NULL if fails.
    
    The refcount leaks issues occur in two error handling paths. If
    dev_data->persist is zero or PRIV(dev)->vcc isn't NULL, the function
    returns 0 without decreasing the refcount kept by a local variable,
    resulting in refcount leaks.
    
    Fix the issue by adding atm_dev_put() before returning 0 both when
    dev_data->persist is zero or PRIV(dev)->vcc isn't NULL.
    
    Signed-off-by: Xin Xiong <xiongx18@fudan.edu.cn>
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0adedbf7a0c337a7d4a6e5660ca7189fdab82fd2
Author: Francesco Ruggeri <fruggeri@arista.com>
Date:   Thu Jul 2 15:39:06 2020 -0700

    igb: reinit_locked() should be called with rtnl_lock
    
    [ Upstream commit 024a8168b749db7a4aa40a5fbdfa04bf7e77c1c0 ]
    
    We observed two panics involving races with igb_reset_task.
    The first panic is caused by this race condition:
    
            kworker                 reboot -f
    
            igb_reset_task
            igb_reinit_locked
            igb_down
            napi_synchronize
                                    __igb_shutdown
                                    igb_clear_interrupt_scheme
                                    igb_free_q_vectors
                                    igb_free_q_vector
                                    adapter->q_vector[v_idx] = NULL;
            napi_disable
            Panics trying to access
            adapter->q_vector[v_idx].napi_state
    
    The second panic (a divide error) is caused by this race:
    
    kworker         reboot -f       tx packet
    
    igb_reset_task
                    __igb_shutdown
                    rtnl_lock()
                    ...
                    igb_clear_interrupt_scheme
                    igb_free_q_vectors
                    adapter->num_tx_queues = 0
                    ...
                    rtnl_unlock()
    rtnl_lock()
    igb_reinit_locked
    igb_down
    igb_up
    netif_tx_start_all_queues
                                    dev_hard_start_xmit
                                    igb_xmit_frame
                                    igb_tx_queue_mapping
                                    Panics on
                                    r_idx % adapter->num_tx_queues
    
    This commit applies to igb_reset_task the same changes that
    were applied to ixgbe in commit 2f90b8657ec9 ("ixgbe: this patch
    adds support for DCB to the kernel and ixgbe driver"),
    commit 8f4c5c9fb87a ("ixgbe: reinit_locked() should be called with
    rtnl_lock") and commit 88adce4ea8f9 ("ixgbe: fix possible race in
    reset subtask").
    
    Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8881425b926e6aa4164113401069d03fab52dc39
Author: Julian Squires <julian@cipht.net>
Date:   Mon Jul 6 17:13:53 2020 -0400

    cfg80211: check vendor command doit pointer before use
    
    [ Upstream commit 4052d3d2e8f47a15053320bbcbe365d15610437d ]
    
    In the case where a vendor command does not implement doit, and has no
    flags set, doit would not be validated and a NULL pointer dereference
    would occur, for example when invoking the vendor command via iw.
    
    I encountered this while developing new vendor commands.  Perhaps in
    practice it is advisable to always implement doit along with dumpit,
    but it seems reasonable to me to always check doit anyway, not just
    when NEED_WDEV.
    
    Signed-off-by: Julian Squires <julian@cipht.net>
    Link: https://lore.kernel.org/r/20200706211353.2366470-1-julian@cipht.net
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 937dafe8682044e70821c886d9063869744b3057
Author: Qiushi Wu <wu000273@umn.edu>
Date:   Sat Jun 13 14:05:33 2020 -0500

    firmware: Fix a reference count leak.
    
    [ Upstream commit fe3c60684377d5ad9b0569b87ed3e26e12c8173b ]
    
    kobject_init_and_add() takes reference even when it fails.
    If this function returns an error, kobject_put() must be called to
    properly clean up the memory associated with the object.
    Callback function fw_cfg_sysfs_release_entry() in kobject_put()
    can handle the pointer "entry" properly.
    
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Link: https://lore.kernel.org/r/20200613190533.15712-1-wu000273@umn.edu
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a46691bb7cc2686934748c8b33e4b9f5dc936aeb
Author: Rustam Kovhaev <rkovhaev@gmail.com>
Date:   Mon Jul 27 23:42:17 2020 -0700

    usb: hso: check for return value in hso_serial_common_create()
    
    [ Upstream commit e911e99a0770f760377c263bc7bac1b1593c6147 ]
    
    in case of an error tty_register_device_attr() returns ERR_PTR(),
    add IS_ERR() check
    
    Reported-and-tested-by: syzbot+67b2bd0e34f952d0321e@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=67b2bd0e34f952d0321e
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e247fc1b14f7730e4d1314005ec168a7e9a12e7a
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Sat Jul 25 21:50:53 2020 +0200

    i2c: slave: add sanity check when unregistering
    
    [ Upstream commit 8808981baf96e1b3dea1f08461e4d958aa0dbde1 ]
    
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Alain Volmat <alain.volmat@st.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c79c21c791fa073b05f0e6fc14539a6701bcc39f
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Sat Jul 25 21:50:52 2020 +0200

    i2c: slave: improve sanity check when registering
    
    [ Upstream commit 1b1be3bf27b62f5abcf85c6f3214bdb9c7526685 ]
    
    Add check for ERR_PTR and simplify code while here.
    
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Alain Volmat <alain.volmat@st.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e64cb7dabcc7340ab04d0258ea61b72babfe79c
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jul 24 17:02:48 2020 +1000

    drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
    
    [ Upstream commit 15fbc3b938534cc8eaac584a7b0c1183fc968b86 ]
    
    This is tripping up the format modifier patches.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa42be211646b790a061768587ce5af26d828eca
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jul 24 17:01:39 2020 +1000

    drm/nouveau/fbcon: fix module unload when fbcon init has failed for some reason
    
    [ Upstream commit 498595abf5bd51f0ae074cec565d888778ea558f ]
    
    Stale pointer was tripping up the unload path.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af224c2eeda2bd6679355f588766c5a8da8920a2
Author: Christoph Hellwig <hch@lst.de>
Date:   Fri Jul 10 10:57:22 2020 +0200

    net/9p: validate fds in p9_fd_open
    
    [ Upstream commit a39c46067c845a8a2d7144836e9468b7f072343e ]
    
    p9_fd_open just fgets file descriptors passed in from userspace, but
    doesn't verify that they are valid for read or writing.  This gets
    cought down in the VFS when actually attempting a read or write, but
    a new warning added in linux-next upsets syzcaller.
    
    Fix this by just verifying the fds early on.
    
    Link: http://lkml.kernel.org/r/20200710085722.435850-1-hch@lst.de
    Reported-by: syzbot+e6f77e16ff68b2434a2c@syzkaller.appspotmail.com
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    [Dominique: amend goto as per Doug Nazar's review]
    Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6ed56511407fcdba01f05f2228711dca2135b921
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Jun 1 15:39:45 2020 +0200

    leds: 88pm860x: fix use-after-free on unbind
    
    commit eca21c2d8655387823d695b26e6fe78cf3975c05 upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: 375446df95ee ("leds: 88pm860x: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8334dd9adeee9ac322bd29c136afbadcba8ce49c
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Jun 1 15:39:47 2020 +0200

    leds: lm3533: fix use-after-free on unbind
    
    commit d584221e683bbd173738603b83a315f27d27d043 upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: 50154e29e5cc ("leds: lm3533: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f968e6c425dd202f32e093957f643e4e842fdb0
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Jun 1 15:39:46 2020 +0200

    leds: da903x: fix use-after-free on unbind
    
    commit 6f4aa35744f69ed9b0bf5a736c9ca9b44bc1dcea upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: eed16255d66b ("leds: da903x: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bac431d23205e7b9fe4da3bafe4fbd57a562be0
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Jun 1 15:39:49 2020 +0200

    leds: wm831x-status: fix use-after-free on unbind
    
    commit 47a459ecc800a17109d0c496a4e21e478806ee40 upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: 8d3b6a4001ce ("leds: wm831x-status: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab1a602a9cea98aa37b2e6851b168d2a2633a58d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jul 16 13:53:46 2020 +0200

    mtd: properly check all write ioctls for permissions
    
    commit f7e6b19bc76471ba03725fe58e0c218a3d6266c3 upstream.
    
    When doing a "write" ioctl call, properly check that we have permissions
    to do so before copying anything from userspace or anything else so we
    can "fail fast".  This includes also covering the MEMWRITE ioctl which
    previously missed checking for this.
    
    Cc: Miquel Raynal <miquel.raynal@bootlin.com>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Vignesh Raghavendra <vigneshr@ti.com>
    Cc: stable <stable@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [rw: Fixed locking issue]
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61219546f3036d2b4a1898be7a38da22e97a3b62
Author: Yunhai Zhang <zhangyunhai@nsfocus.com>
Date:   Tue Jul 28 09:58:03 2020 +0800

    vgacon: Fix for missing check in scrollback handling
    
    commit ebfdfeeae8c01fcb2b3b74ffaf03876e20835d2d upstream.
    
    vgacon_scrollback_update() always leaves enbough room in the scrollback
    buffer for the next call, but if the console size changed that room
    might not actually be enough, and so we need to re-check.
    
    The check should be in the loop since vgacon_scrollback_cur->tail is
    updated in the loop and count may be more than 1 when triggered by CSI M,
    as Jiri's PoC:
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <sys/ioctl.h>
    #include <fcntl.h>
    
    int main(int argc, char** argv)
    {
            int fd = open("/dev/tty1", O_RDWR);
            unsigned short size[3] = {25, 200, 0};
            ioctl(fd, 0x5609, size); // VT_RESIZE
    
            write(fd, "\e[1;1H", 6);
            for (int i = 0; i < 30; i++)
                    write(fd, "\e[10M", 5);
    }
    
    It leads to various crashes as vgacon_scrollback_update writes out of
    the buffer:
     BUG: unable to handle page fault for address: ffffc900001752a0
     #PF: supervisor write access in kernel mode
     #PF: error_code(0x0002) - not-present page
     RIP: 0010:mutex_unlock+0x13/0x30
    ...
     Call Trace:
      n_tty_write+0x1a0/0x4d0
      tty_write+0x1a0/0x2e0
    
    Or to KASAN reports:
    BUG: KASAN: slab-out-of-bounds in vgacon_scroll+0x57a/0x8ed
    
    This fixes CVE-2020-14331.
    
    Reported-by: 张云海 <zhangyunhai@nsfocus.com>
    Reported-by: Yang Yingliang <yangyingliang@huawei.com>
    Reported-by: Kyungtae Kim <kt0755@gmail.com>
    Fixes: 15bdab959c9b ([PATCH] vgacon: Add support for soft scrollback)
    Cc: stable@vger.kernel.org
    Cc: linux-fbdev@vger.kernel.org
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Solar Designer <solar@openwall.com>
    Cc: "Srivatsa S. Bhat" <srivatsa@csail.mit.edu>
    Cc: Anthony Liguori <aliguori@amazon.com>
    Cc: Yang Yingliang <yangyingliang@huawei.com>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Signed-off-by: Yunhai Zhang <zhangyunhai@nsfocus.com>
    Link: https://lore.kernel.org/r/9fb43895-ca91-9b07-ebfd-808cf854ca95@nsfocus.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74e42c22f2125bb07ffd9b0cccef120815e68725
Author: Jann Horn <jannh@google.com>
Date:   Mon Jul 27 14:04:24 2020 +0200

    binder: Prevent context manager from incrementing ref 0
    
    commit 4b836a1426cb0f1ef2a6e211d7e553221594f8fc upstream.
    
    Binder is designed such that a binder_proc never has references to
    itself. If this rule is violated, memory corruption can occur when a
    process sends a transaction to itself; see e.g.
    <https://syzkaller.appspot.com/bug?extid=09e05aba06723a94d43d>.
    
    There is a remaining edgecase through which such a transaction-to-self
    can still occur from the context of a task with BINDER_SET_CONTEXT_MGR
    access:
    
     - task A opens /dev/binder twice, creating binder_proc instances P1
       and P2
     - P1 becomes context manager
     - P2 calls ACQUIRE on the magic handle 0, allocating index 0 in its
       handle table
     - P1 dies (by closing the /dev/binder fd and waiting a bit)
     - P2 becomes context manager
     - P2 calls ACQUIRE on the magic handle 0, allocating index 1 in its
       handle table
       [this triggers a warning: "binder: 1974:1974 tried to acquire
       reference to desc 0, got 1 instead"]
     - task B opens /dev/binder once, creating binder_proc instance P3
     - P3 calls P2 (via magic handle 0) with (void*)1 as argument (two-way
       transaction)
     - P2 receives the handle and uses it to call P3 (two-way transaction)
     - P3 calls P2 (via magic handle 0) (two-way transaction)
     - P2 calls P2 (via handle 1) (two-way transaction)
    
    And then, if P2 does *NOT* accept the incoming transaction work, but
    instead closes the binder fd, we get a crash.
    
    Solve it by preventing the context manager from using ACQUIRE on ref 0.
    There shouldn't be any legitimate reason for the context manager to do
    that.
    
    Additionally, print a warning if someone manages to find another way to
    trigger a transaction-to-self bug in the future.
    
    Cc: stable@vger.kernel.org
    Fixes: 457b9a6f09f0 ("Staging: android: add binder driver")
    Acked-by: Todd Kjos <tkjos@google.com>
    Signed-off-by: Jann Horn <jannh@google.com>
    Reviewed-by: Martijn Coenen <maco@android.com>
    Link: https://lore.kernel.org/r/20200727120424.1627555-1-jannh@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 546e19dda0645e4ae3d56120e6dc586d4e9acdb0
Author: Adam Ford <aford173@gmail.com>
Date:   Tue Jun 30 13:26:36 2020 -0500

    omapfb: dss: Fix max fclk divider for omap36xx
    
    commit 254503a2b186caa668a188dbbd7ab0d25149c0a5 upstream.
    
    The drm/omap driver was fixed to correct an issue where using a
    divider of 32 breaks the DSS despite the TRM stating 32 is a valid
    number.  Through experimentation, it appears that 31 works, and
    it is consistent with the value used by the drm/omap driver.
    
    This patch fixes the divider for fbdev driver instead of the drm.
    
    Fixes: f76ee892a99e ("omapfb: copy omapdss & displays for omapfb")
    Cc: <stable@vger.kernel.org> #4.5+
    Signed-off-by: Adam Ford <aford173@gmail.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Dave Airlie <airlied@gmail.com>
    Cc: Rob Clark <robdclark@gmail.com>
    [b.zolnierkie: mark patch as applicable to stable 4.5+ (was 4.9+)]
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200630182636.439015-1-aford173@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48f70ecd6a22f5cf2a6d2670fbc3523fe64bcae8
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Fri Jul 10 17:45:26 2020 -0400

    Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
    
    commit 629b49c848ee71244203934347bd7730b0ddee8d upstream.
    
    Check `num_rsp` before using it as for-loop counter. Add `unlock` label.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2d6adb023fc32816d7962c29fd06d8cd71418ee
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Fri Jul 10 17:39:18 2020 -0400

    Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
    
    commit 75bbd2ea50ba1c5d9da878a17e92eac02fe0fd3a upstream.
    
    Check `num_rsp` before using it as for-loop counter.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c4a649c20fec015ebb326f36b47d4e39d9ff5b7
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Fri Jul 10 12:09:15 2020 -0400

    Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
    
    commit 51c19bf3d5cfaa66571e4b88ba2a6f6295311101 upstream.
    
    Check upon `num_rsp` is insufficient. A malformed event packet with a
    large `num_rsp` number makes hci_extended_inquiry_result_evt() go out
    of bounds. Fix it.
    
    This patch fixes the following syzbot bug:
    
        https://syzkaller.appspot.com/bug?id=4bf11aa05c4ca51ce0df86e500fce486552dc8d2
    
    Reported-by: syzbot+d8489a79b781849b9c46@syzkaller.appspotmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbe7e878fea059fb536ac55a8ec7fe72433a95dd
Author: Suren Baghdasaryan <surenb@google.com>
Date:   Thu Jul 30 12:26:32 2020 -0700

    staging: android: ashmem: Fix lockdep warning for write operation
    
    commit 3e338d3c95c735dc3265a86016bb4c022ec7cadc upstream.
    
    syzbot report [1] describes a deadlock when write operation against an
    ashmem fd executed at the time when ashmem is shrinking its cache results
    in the following lock sequence:
    
    Possible unsafe locking scenario:
    
            CPU0                    CPU1
            ----                    ----
       lock(fs_reclaim);
                                    lock(&sb->s_type->i_mutex_key#13);
                                    lock(fs_reclaim);
       lock(&sb->s_type->i_mutex_key#13);
    
    kswapd takes fs_reclaim and then inode_lock while generic_perform_write
    takes inode_lock and then fs_reclaim. However ashmem does not support
    writing into backing shmem with a write syscall. The only way to change
    its content is to mmap it and operate on mapped memory. Therefore the race
    that lockdep is warning about is not valid. Resolve this by introducing a
    separate lockdep class for the backing shmem inodes.
    
    [1]: https://lkml.kernel.org/lkml/0000000000000b5f9d059aa2037f@google.com/
    
    Reported-by: syzbot+7a0d9d0b26efefe61780@syzkaller.appspotmail.com
    Signed-off-by: Suren Baghdasaryan <surenb@google.com>
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Link: https://lore.kernel.org/r/20200730192632.3088194-1-surenb@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34f41d924fc8d5c482a95214581f0b5ede308ce9
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Aug 4 20:58:15 2020 +0200

    ALSA: seq: oss: Serialize ioctls
    
    commit 80982c7e834e5d4e325b6ce33757012ecafdf0bb upstream.
    
    Some ioctls via OSS sequencer API may race and lead to UAF when the
    port create and delete are performed concurrently, as spotted by a
    couple of syzkaller cases.  This patch is an attempt to address it by
    serializing the ioctls with the existing register_mutex.
    
    Basically OSS sequencer API is an obsoleted interface and was designed
    without much consideration of the concurrency.  There are very few
    applications with it, and the concurrent performance isn't asked,
    hence this "big hammer" approach should be good enough.
    
    Reported-by: syzbot+1a54a94bd32716796edd@syzkaller.appspotmail.com
    Reported-by: syzbot+9d2abfef257f3e2d4713@syzkaller.appspotmail.com
    Suggested-by: Hillf Danton <hdanton@sina.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200804185815.2453-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21e7fc3f69daa0fd2974edcaa02590c1df81889f
Author: Hui Wang <hui.wang@canonical.com>
Date:   Mon Aug 3 14:46:38 2020 +0800

    Revert "ALSA: hda: call runtime_allow() for all hda controllers"
    
    commit 07c9983b567d0ef33aefc063299de95a987e12a8 upstream.
    
    This reverts commit 9a6418487b56 ("ALSA: hda: call runtime_allow()
    for all hda controllers").
    
    The reverted patch already introduced some regressions on some
    machines:
     - on gemini-lake machines, the error of "azx_get_response timeout"
       happens in the hda driver.
     - on the machines with alc662 codec, the audio jack detection doesn't
       work anymore.
    
    Fixes: 9a6418487b56 ("ALSA: hda: call runtime_allow() for all hda controllers")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208511
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Link: https://lore.kernel.org/r/20200803064638.6139-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8efb2159c956a28b892fd4c169729b2959c25483
Author: Forest Crossman <cyrozap@gmail.com>
Date:   Mon Jul 27 23:24:08 2020 -0500

    usb: xhci: Fix ASMedia ASM1142 DMA addressing
    
    commit ec37198acca7b4c17b96247697406e47aafe0605 upstream.
    
    I've confirmed that the ASMedia ASM1142 has the same problem as the
    ASM2142/ASM3142, in that it too reports that it supports 64-bit DMA
    addresses when in fact it does not. As with the ASM2142/ASM3142, this
    can cause problems on systems where the upper bits matter, and adding
    the XHCI_NO_64BIT_SUPPORT quirk completely fixes the issue.
    
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Forest Crossman <cyrozap@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200728042408.180529-3-cyrozap@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2ea6fcfec3e05fbc5384737fb3eb623427bb30c
Author: Forest Crossman <cyrozap@gmail.com>
Date:   Mon Jul 27 23:24:07 2020 -0500

    usb: xhci: define IDs for various ASMedia host controllers
    
    commit 1841cb255da41e87bed9573915891d056f80e2e7 upstream.
    
    Not all ASMedia host controllers have a device ID that matches its part
    number. #define some of these IDs to make it clearer at a glance which
    chips require what quirks.
    
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Forest Crossman <cyrozap@gmail.com>
    Link: https://lore.kernel.org/r/20200728042408.180529-2-cyrozap@gmail.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 39dbda7fbd5fb10b0ee07e8fb8f8af7429f0ea47
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Jul 26 11:49:39 2020 +0200

    USB: iowarrior: fix up report size handling for some devices
    
    commit 17a82716587e9d7c3b246a789add490b2b5dcab6 upstream.
    
    In previous patches that added support for new iowarrior devices, the
    handling of the report size was not done correct.
    
    Fix that up and update the copyright date for the driver
    
    Reworked from an original patch written by Christoph Jung.
    
    Fixes: bab5417f5f01 ("USB: misc: iowarrior: add support for the 100 device")
    Fixes: 5f6f8da2d7b5 ("USB: misc: iowarrior: add support for the 28 and 28L devices")
    Fixes: 461d8deb26a7 ("USB: misc: iowarrior: add support for 2 OEMed devices")
    Cc: stable <stable@kernel.org>
    Reported-by: Christoph Jung <jung@codemercs.com>
    Link: https://lore.kernel.org/r/20200726094939.1268978-1-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c4f7a8c8d4d65df054540340806cb7a7bac6e0b
Author: Erik Ekman <erik@kryo.se>
Date:   Fri Jul 17 20:51:18 2020 +0200

    USB: serial: qcserial: add EM7305 QDL product ID
    
    commit d2a4309c1ab6df424b2239fe2920d6f26f808d17 upstream.
    
    When running qmi-firmware-update on the Sierra Wireless EM7305 in a Toshiba
    laptop, it changed product ID to 0x9062 when entering QDL mode:
    
    usb 2-4: new high-speed USB device number 78 using xhci_hcd
    usb 2-4: New USB device found, idVendor=1199, idProduct=9062, bcdDevice= 0.00
    usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    usb 2-4: Product: EM7305
    usb 2-4: Manufacturer: Sierra Wireless, Incorporated
    
    The upgrade could complete after running
     # echo 1199 9062 > /sys/bus/usb-serial/drivers/qcserial/new_id
    
    qcserial 2-4:1.0: Qualcomm USB modem converter detected
    usb 2-4: Qualcomm USB modem converter now attached to ttyUSB0
    
    Signed-off-by: Erik Ekman <erik@kryo.se>
    Link: https://lore.kernel.org/r/20200717185118.3640219-1-erik@kryo.se
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>