commit 67da9e2c2b730b9b788ace749d22d769cf11ee2b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Jul 31 18:47:17 2020 +0200

    Linux 5.7.12
    
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af5b25c4dbbcc33fed592d6640c54bd675d1a3b4
Author: Peng Fan <peng.fan@nxp.com>
Date:   Fri Mar 13 09:58:07 2020 +0800

    regmap: debugfs: check count when read regmap file
    
    commit 74edd08a4fbf51d65fd8f4c7d8289cd0f392bd91 upstream.
    
    When executing the following command, we met kernel dump.
    dmesg -c > /dev/null; cd /sys;
    for i in `ls /sys/kernel/debug/regmap/* -d`; do
            echo "Checking regmap in $i";
            cat $i/registers;
    done && grep -ri "0x02d0" *;
    
    It is because the count value is too big, and kmalloc fails. So add an
    upper bound check to allow max size `PAGE_SIZE << (MAX_ORDER - 1)`.
    
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/1584064687-12964-1-git-send-email-peng.fan@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit addf0dfbe249e5f2062eefdc953c656ddd406b99
Author: Jens Axboe <axboe@kernel.dk>
Date:   Fri Jul 17 17:09:27 2020 -0600

    io_uring: ensure double poll additions work with both request types
    
    commit 807abcb0883439af5ead73f3308310453b97b624 upstream.
    
    The double poll additions were centered around doing POLL_ADD on file
    descriptors that use more than one waitqueue (typically one for read,
    one for write) when being polled. However, it can also end up being
    triggered for when we use poll triggered retry. For that case, we cannot
    safely use req->io, as that could be used by the request type itself.
    
    Add a second io_poll_iocb pointer in the structure we allocate for poll
    based retry, and ensure we use the right one from the two paths.
    
    Fixes: 18bceab101ad ("io_uring: allow POLL_ADD with double poll_wait() users")
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aac87e7ce02c19250c55e2d6d3559f3d01634e80
Author: Tung Nguyen <tung.q.nguyen@dektech.com.au>
Date:   Tue Jul 21 08:57:05 2020 +0700

    tipc: allow to build NACK message in link timeout function
    
    [ Upstream commit 6ef9dcb78046b346b5508ca1659848b136a343c2 ]
    
    Commit 02288248b051 ("tipc: eliminate gap indicator from ACK messages")
    eliminated sending of the 'gap' indicator in regular ACK messages and
    only allowed to build NACK message with enabled probe/probe_reply.
    However, necessary correction for building NACK message was missed
    in tipc_link_timeout() function. This leads to significant delay and
    link reset (due to retransmission failure) in lossy environment.
    
    This commit fixes it by setting the 'probe' flag to 'true' when
    the receive deferred queue is not empty. As a result, NACK message
    will be built to send back to another peer.
    
    Fixes: 02288248b051 ("tipc: eliminate gap indicator from ACK messages")
    Acked-by: Jon Maloy <jmaloy@redhat.com>
    Signed-off-by: Tung Nguyen <tung.q.nguyen@dektech.com.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 393de7e6d4227653948f0e81e27f02b95faa4cd0
Author: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Date:   Tue Jul 21 15:15:31 2020 +0900

    udp: Improve load balancing for SO_REUSEPORT.
    
    [ Upstream commit efc6b6f6c3113e8b203b9debfb72d81e0f3dcace ]
    
    Currently, SO_REUSEPORT does not work well if connected sockets are in a
    UDP reuseport group.
    
    Then reuseport_has_conns() returns true and the result of
    reuseport_select_sock() is discarded. Also, unconnected sockets have the
    same score, hence only does the first unconnected socket in udp_hslot
    always receive all packets sent to unconnected sockets.
    
    So, the result of reuseport_select_sock() should be used for load
    balancing.
    
    The noteworthy point is that the unconnected sockets placed after
    connected sockets in sock_reuseport.socks will receive more packets than
    others because of the algorithm in reuseport_select_sock().
    
        index | connected | reciprocal_scale | result
        ---------------------------------------------
        0     | no        | 20%              | 40%
        1     | no        | 20%              | 20%
        2     | yes       | 20%              | 0%
        3     | no        | 20%              | 40%
        4     | yes       | 20%              | 0%
    
    If most of the sockets are connected, this can be a problem, but it still
    works better than now.
    
    Fixes: acdcecc61285 ("udp: correct reuseport selection with connected sockets")
    CC: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Benjamin Herrenschmidt <benh@amazon.com>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 512ea14363b1eb3ff1b5fc58c61612b66ff1d321
Author: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Date:   Tue Jul 21 15:15:30 2020 +0900

    udp: Copy has_conns in reuseport_grow().
    
    [ Upstream commit f2b2c55e512879a05456eaf5de4d1ed2f7757509 ]
    
    If an unconnected socket in a UDP reuseport group connect()s, has_conns is
    set to 1. Then, when a packet is received, udp[46]_lib_lookup2() scans all
    sockets in udp_hslot looking for the connected socket with the highest
    score.
    
    However, when the number of sockets bound to the port exceeds max_socks,
    reuseport_grow() resets has_conns to 0. It can cause udp[46]_lib_lookup2()
    to return without scanning all sockets, resulting in that packets sent to
    connected sockets may be distributed to unconnected sockets.
    
    Therefore, reuseport_grow() should copy has_conns.
    
    Fixes: acdcecc61285 ("udp: correct reuseport selection with connected sockets")
    CC: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Benjamin Herrenschmidt <benh@amazon.com>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71726c1df2db536ed73dabc0c073605c20c8164c
Author: Xin Long <lucien.xin@gmail.com>
Date:   Wed Jul 22 23:52:12 2020 +0800

    sctp: shrink stream outq when fails to do addstream reconf
    
    [ Upstream commit 3ecdda3e9ad837cf9cb41b6faa11b1af3a5abc0c ]
    
    When adding a stream with stream reconf, the new stream firstly is in
    CLOSED state but new out chunks can still be enqueued. Then once gets
    the confirmation from the peer, the state will change to OPEN.
    
    However, if the peer denies, it needs to roll back the stream. But when
    doing that, it only sets the stream outcnt back, and the chunks already
    in the new stream don't get purged. It caused these chunks can still be
    dequeued in sctp_outq_dequeue_data().
    
    As its stream is still in CLOSE, the chunk will be enqueued to the head
    again by sctp_outq_head_data(). This chunk will never be sent out, and
    the chunks after it can never be dequeued. The assoc will be 'hung' in
    a dead loop of sending this chunk.
    
    To fix it, this patch is to purge these chunks already in the new
    stream by calling sctp_stream_shrink_out() when failing to do the
    addstream reconf.
    
    Fixes: 11ae76e67a17 ("sctp: implement receiver-side procedures for the Reconf Response Parameter")
    Reported-by: Ying Xu <yinxu@redhat.com>
    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 be714769d3aecc0e4b4fc0f7a3657955242dbc93
Author: Xin Long <lucien.xin@gmail.com>
Date:   Wed Jul 22 23:52:11 2020 +0800

    sctp: shrink stream outq only when new outcnt < old outcnt
    
    [ Upstream commit 8f13399db22f909a35735bf8ae2f932e0c8f0e30 ]
    
    It's not necessary to go list_for_each for outq->out_chunk_list
    when new outcnt >= old outcnt, as no chunk with higher sid than
    new (outcnt - 1) exists in the outqueue.
    
    While at it, also move the list_for_each code in a new function
    sctp_stream_shrink_out(), which will be used in the next patch.
    
    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 2dadee3de93fa8ff5011d6fdbf9138784a51af23
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jul 23 17:49:57 2020 +0300

    AX.25: Prevent integer overflows in connect and sendmsg
    
    [ Upstream commit 17ad73e941b71f3bec7523ea4e9cbc3752461c2d ]
    
    We recently added some bounds checking in ax25_connect() and
    ax25_sendmsg() and we so we removed the AX25_MAX_DIGIS checks because
    they were no longer required.
    
    Unfortunately, I believe they are required to prevent integer overflows
    so I have added them back.
    
    Fixes: 8885bb0621f0 ("AX.25: Prevent out-of-bounds read in ax25_sendmsg()")
    Fixes: 2f2a7ffad5c6 ("AX.25: Fix out-of-bounds read in ax25_connect()")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64ad87bfab4aab750b66c31c482488f825aeaff5
Author: Yuchung Cheng <ycheng@google.com>
Date:   Thu Jul 23 12:00:06 2020 -0700

    tcp: allow at most one TLP probe per flight
    
    [ Upstream commit 76be93fc0702322179bb0ea87295d820ee46ad14 ]
    
    Previously TLP may send multiple probes of new data in one
    flight. This happens when the sender is cwnd limited. After the
    initial TLP containing new data is sent, the sender receives another
    ACK that acks partial inflight.  It may re-arm another TLP timer
    to send more, if no further ACK returns before the next TLP timeout
    (PTO) expires. The sender may send in theory a large amount of TLP
    until send queue is depleted. This only happens if the sender sees
    such irregular uncommon ACK pattern. But it is generally undesirable
    behavior during congestion especially.
    
    The original TLP design restrict only one TLP probe per inflight as
    published in "Reducing Web Latency: the Virtue of Gentle Aggression",
    SIGCOMM 2013. This patch changes TLP to send at most one probe
    per inflight.
    
    Note that if the sender is app-limited, TLP retransmits old data
    and did not have this issue.
    
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    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 840cbbea7774cb0efce3d20af19257b95c60bc7e
Author: David Howells <dhowells@redhat.com>
Date:   Mon Jul 20 12:41:46 2020 +0100

    rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA
    
    [ Upstream commit 639f181f0ee20d3249dbc55f740f0167267180f0 ]
    
    rxrpc_sendmsg() returns EPIPE if there's an outstanding error, such as if
    rxrpc_recvmsg() indicating ENODATA if there's nothing for it to read.
    
    Change rxrpc_recvmsg() to return EAGAIN instead if there's nothing to read
    as this particular error doesn't get stored in ->sk_err by the networking
    core.
    
    Also change rxrpc_sendmsg() so that it doesn't fail with delayed receive
    errors (there's no way for it to report which call, if any, the error was
    caused by).
    
    Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4863a13cf454b759ea01e5025ec27dab3d5f8a70
Author: Weilong Chen <chenweilong@huawei.com>
Date:   Wed Jul 15 20:58:10 2020 +0800

    rtnetlink: Fix memory(net_device) leak when ->newlink fails
    
    [ Upstream commit cebb69754f37d68e1355a5e726fdac317bcda302 ]
    
    When vlan_newlink call register_vlan_dev fails, it might return error
    with dev->reg_state = NETREG_UNREGISTERED. The rtnl_newlink should
    free the memory. But currently rtnl_newlink only free the memory which
    state is NETREG_UNINITIALIZED.
    
    BUG: memory leak
    unreferenced object 0xffff8881051de000 (size 4096):
      comm "syz-executor139", pid 560, jiffies 4294745346 (age 32.445s)
      hex dump (first 32 bytes):
        76 6c 61 6e 32 00 00 00 00 00 00 00 00 00 00 00  vlan2...........
        00 45 28 03 81 88 ff ff 00 00 00 00 00 00 00 00  .E(.............
      backtrace:
        [<0000000047527e31>] kmalloc_node include/linux/slab.h:578 [inline]
        [<0000000047527e31>] kvmalloc_node+0x33/0xd0 mm/util.c:574
        [<000000002b59e3bc>] kvmalloc include/linux/mm.h:753 [inline]
        [<000000002b59e3bc>] kvzalloc include/linux/mm.h:761 [inline]
        [<000000002b59e3bc>] alloc_netdev_mqs+0x83/0xd90 net/core/dev.c:9929
        [<000000006076752a>] rtnl_create_link+0x2c0/0xa20 net/core/rtnetlink.c:3067
        [<00000000572b3be5>] __rtnl_newlink+0xc9c/0x1330 net/core/rtnetlink.c:3329
        [<00000000e84ea553>] rtnl_newlink+0x66/0x90 net/core/rtnetlink.c:3397
        [<0000000052c7c0a9>] rtnetlink_rcv_msg+0x540/0x990 net/core/rtnetlink.c:5460
        [<000000004b5cb379>] netlink_rcv_skb+0x12b/0x3a0 net/netlink/af_netlink.c:2469
        [<00000000c71c20d3>] netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
        [<00000000c71c20d3>] netlink_unicast+0x4c6/0x690 net/netlink/af_netlink.c:1329
        [<00000000cca72fa9>] netlink_sendmsg+0x735/0xcc0 net/netlink/af_netlink.c:1918
        [<000000009221ebf7>] sock_sendmsg_nosec net/socket.c:652 [inline]
        [<000000009221ebf7>] sock_sendmsg+0x109/0x140 net/socket.c:672
        [<000000001c30ffe4>] ____sys_sendmsg+0x5f5/0x780 net/socket.c:2352
        [<00000000b71ca6f3>] ___sys_sendmsg+0x11d/0x1a0 net/socket.c:2406
        [<0000000007297384>] __sys_sendmsg+0xeb/0x1b0 net/socket.c:2439
        [<000000000eb29b11>] do_syscall_64+0x56/0xa0 arch/x86/entry/common.c:359
        [<000000006839b4d0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: cb626bf566eb ("net-sysfs: Fix reference count leak")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Weilong Chen <chenweilong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e36c0c74826d3c34dd3aef60724c8df86f03c18f
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Fri Jul 24 09:45:51 2020 -0700

    qrtr: orphan socket in qrtr_release()
    
    [ Upstream commit af9f691f0f5bdd1ade65a7b84927639882d7c3e5 ]
    
    We have to detach sock from socket in qrtr_release(),
    otherwise skb->sk may still reference to this socket
    when the skb is released in tun->queue, particularly
    sk->sk_wq still points to &sock->wq, which leads to
    a UAF.
    
    Reported-and-tested-by: syzbot+6720d64f31c081c2f708@syzkaller.appspotmail.com
    Fixes: 28fb4e59a47d ("net: qrtr: Expose tunneling endpoint to user space")
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.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 91fe73ae65b06fe0c607c231283a0cbf7cc35052
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Tue Jul 21 17:11:44 2020 +0800

    net: udp: Fix wrong clean up for IS_UDPLITE macro
    
    [ Upstream commit b0a422772fec29811e293c7c0e6f991c0fd9241d ]
    
    We can't use IS_UDPLITE to replace udp_sk->pcflag when UDPLITE_RECV_CC is
    checked.
    
    Fixes: b2bf1e2659b1 ("[UDP]: Clean up for IS_UDPLITE macro")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c58ae5d1df71dce5ead48874d8bb441022ee5a5
Author: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Date:   Tue Jul 21 15:02:57 2020 +0800

    net-sysfs: add a newline when printing 'tx_timeout' by sysfs
    
    [ Upstream commit 9bb5fbea59f36a589ef886292549ca4052fe676c ]
    
    When I cat 'tx_timeout' by sysfs, it displays as follows. It's better to
    add a newline for easy reading.
    
    root@syzkaller:~# cat /sys/devices/virtual/net/lo/queues/tx-0/tx_timeout
    0root@syzkaller:~#
    
    Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbff97eb6f4a94a3f15f685bed604c9adc29ac3e
Author: wenxu <wenxu@ucloud.cn>
Date:   Sun Jul 19 20:30:37 2020 +0800

    net/sched: act_ct: fix restore the qdisc_skb_cb after defrag
    
    [ Upstream commit ae372cb1750f6c95370f92fe5f5620e0954663ba ]
    
    The fragment packets do defrag in tcf_ct_handle_fragments
    will clear the skb->cb which make the qdisc_skb_cb clear
    too. So the qdsic_skb_cb should be store before defrag and
    restore after that.
    It also update the pkt_len after all the
    fragments finish the defrag to one packet and make the
    following actions counter correct.
    
    Fixes: b57dc7c13ea9 ("net/sched: Introduce action ct")
    Signed-off-by: wenxu <wenxu@ucloud.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8480cda9d1d84c5ce18e2a93f9fedae1e63b7ff2
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Mon Jul 13 23:59:50 2020 +0800

    ip6_gre: fix null-ptr-deref in ip6gre_init_net()
    
    [ Upstream commit 46ef5b89ec0ecf290d74c4aee844f063933c4da4 ]
    
    KASAN report null-ptr-deref error when register_netdev() failed:
    
    KASAN: null-ptr-deref in range [0x00000000000003c0-0x00000000000003c7]
    CPU: 2 PID: 422 Comm: ip Not tainted 5.8.0-rc4+ #12
    Call Trace:
     ip6gre_init_net+0x4ab/0x580
     ? ip6gre_tunnel_uninit+0x3f0/0x3f0
     ops_init+0xa8/0x3c0
     setup_net+0x2de/0x7e0
     ? rcu_read_lock_bh_held+0xb0/0xb0
     ? ops_init+0x3c0/0x3c0
     ? kasan_unpoison_shadow+0x33/0x40
     ? __kasan_kmalloc.constprop.0+0xc2/0xd0
     copy_net_ns+0x27d/0x530
     create_new_namespaces+0x382/0xa30
     unshare_nsproxy_namespaces+0xa1/0x1d0
     ksys_unshare+0x39c/0x780
     ? walk_process_tree+0x2a0/0x2a0
     ? trace_hardirqs_on+0x4a/0x1b0
     ? _raw_spin_unlock_irq+0x1f/0x30
     ? syscall_trace_enter+0x1a7/0x330
     ? do_syscall_64+0x1c/0xa0
     __x64_sys_unshare+0x2d/0x40
     do_syscall_64+0x56/0xa0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    ip6gre_tunnel_uninit() has set 'ign->fb_tunnel_dev' to NULL, later
    access to ign->fb_tunnel_dev cause null-ptr-deref. Fix it by saving
    'ign->fb_tunnel_dev' to local variable ndev.
    
    Fixes: dafabb6590cb ("ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.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 e729ee0b697b4e32ecb9153771aa33e13f0b8a0d
Author: Xie He <xie.he.0141@gmail.com>
Date:   Thu Jul 16 16:44:33 2020 -0700

    drivers/net/wan/x25_asy: Fix to make it work
    
    [ Upstream commit 8fdcabeac39824fe67480fd9508d80161c541854 ]
    
    This driver is not working because of problems of its receiving code.
    This patch fixes it to make it work.
    
    When the driver receives an LAPB frame, it should first pass the frame
    to the LAPB module to process. After processing, the LAPB module passes
    the data (the packet) back to the driver, the driver should then add a
    one-byte pseudo header and pass the data to upper layers.
    
    The changes to the "x25_asy_bump" function and the
    "x25_asy_data_indication" function are to correctly implement this
    procedure.
    
    Also, the "x25_asy_unesc" function ignores any frame that is shorter
    than 3 bytes. However the shortest frames are 2-byte long. So we need
    to change it to allow 2-byte frames to pass.
    
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Reviewed-by: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9af17d113b8bcfed63290a11030f2915edbb3d14
Author: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Date:   Thu Jul 23 11:31:48 2020 -0600

    dev: Defer free of skbs in flush_backlog
    
    [ Upstream commit 7df5cb75cfb8acf96c7f2342530eb41e0c11f4c3 ]
    
    IRQs are disabled when freeing skbs in input queue.
    Use the IRQ safe variant to free skbs here.
    
    Fixes: 145dd5f9c88f ("net: flush the softnet backlog in process context")
    Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7b38459759ea5ee971c8d09328c7e5d82cae69c
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Wed Jul 22 12:05:12 2020 -0400

    AX.25: Prevent out-of-bounds read in ax25_sendmsg()
    
    [ Upstream commit 8885bb0621f01a6c82be60a91e5fc0f6e2f71186 ]
    
    Checks on `addr_len` and `usax->sax25_ndigis` are insufficient.
    ax25_sendmsg() can go out of bounds when `usax->sax25_ndigis` equals to 7
    or 8. Fix it.
    
    It is safe to remove `usax->sax25_ndigis > AX25_MAX_DIGIS`, since
    `addr_len` is guaranteed to be less than or equal to
    `sizeof(struct full_sockaddr_ax25)`
    
    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 350cffdc4131014aed64fdfcb5526e21ccfe9811
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Wed Jul 22 11:19:01 2020 -0400

    AX.25: Fix out-of-bounds read in ax25_connect()
    
    [ Upstream commit 2f2a7ffad5c6cbf3d438e813cfdc88230e185ba6 ]
    
    Checks on `addr_len` and `fsa->fsa_ax25.sax25_ndigis` are insufficient.
    ax25_connect() can go out of bounds when `fsa->fsa_ax25.sax25_ndigis`
    equals to 7 or 8. Fix it.
    
    This issue has been reported as a KMSAN uninit-value bug, because in such
    a case, ax25_connect() reaches into the uninitialized portion of the
    `struct sockaddr_storage` statically allocated in __sys_connect().
    
    It is safe to remove `fsa->fsa_ax25.sax25_ndigis > AX25_MAX_DIGIS` because
    `addr_len` is guaranteed to be less than or equal to
    `sizeof(struct full_sockaddr_ax25)`.
    
    Reported-by: syzbot+c82752228ed975b0a623@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=55ef9d629f3b3d7d70b69558015b63b48d01af66
    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>