commit cf256fbcbe347b7d0ff58fe2dfa382a156bd3694
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Apr 16 11:57:53 2021 +0200

    Linux 4.14.231
    
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20210415144414.464797272@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bea39f1eed7225ea332eb4dae7620e40b1985636
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Apr 12 08:28:45 2021 +0200

    xen/events: fix setting irq affinity
    
    The backport of upstream patch 25da4618af240fbec61 ("xen/events: don't
    unmask an event channel when an eoi is pending") introduced a
    regression for stable kernels 5.10 and older: setting IRQ affinity for
    IRQs related to interdomain events would no longer work, as moving the
    IRQ to its new cpu was not included in the irq_ack callback for those
    events.
    
    Fix that by adding the needed call.
    
    Note that kernels 5.11 and later don't need the explicit moving of the
    IRQ to the target cpu in the irq_ack callback, due to a rework of the
    affinity setting in kernel 5.11.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 125571123c8f864bdc472e64888bc71e5a737bdf
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Fri Mar 5 10:02:09 2021 -0300

    perf map: Tighten snprintf() string precision to pass gcc check on some 32-bit arches
    
    commit 77d02bd00cea9f1a87afe58113fa75b983d6c23a upstream.
    
    Noticed on a debian:experimental mips and mipsel cross build build
    environment:
    
      perfbuilder@ec265a086e9b:~$ mips-linux-gnu-gcc --version | head -1
      mips-linux-gnu-gcc (Debian 10.2.1-3) 10.2.1 20201224
      perfbuilder@ec265a086e9b:~$
    
        CC       /tmp/build/perf/util/map.o
      util/map.c: In function 'map__new':
      util/map.c:109:5: error: '%s' directive output may be truncated writing between 1 and 2147483645 bytes into a region of size 4096 [-Werror=format-truncation=]
        109 |    "%s/platforms/%s/arch-%s/usr/lib/%s",
            |     ^~
      In file included from /usr/mips-linux-gnu/include/stdio.h:867,
                       from util/symbol.h:11,
                       from util/map.c:2:
      /usr/mips-linux-gnu/include/bits/stdio2.h:67:10: note: '__builtin___snprintf_chk' output 32 or more bytes (assuming 4294967321) into a destination of size 4096
         67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
            |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         68 |        __bos (__s), __fmt, __va_arg_pack ());
            |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
    
    Since we have the lenghts for what lands in that place, use it to give
    the compiler more info and make it happy.
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Anders Roxell <anders.roxell@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 522a0191944e3db9c30ade5fa6b6ec0d7c42f40d
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Apr 7 21:38:57 2021 +0200

    netfilter: x_tables: fix compat match/target pad out-of-bound write
    
    commit b29c457a6511435960115c0f548c4360d5f4801d upstream.
    
    xt_compat_match/target_from_user doesn't check that zeroing the area
    to start of next rule won't write past end of allocated ruleset blob.
    
    Remove this code and zero the entire blob beforehand.
    
    Reported-by: syzbot+cfc0247ac173f597aaaa@syzkaller.appspotmail.com
    Reported-by: Andy Nguyen <theflow@google.com>
    Fixes: 9fa492cdc160c ("[NETFILTER]: x_tables: simplify compat API")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42427209317d1beac758d5de1dbc89d76615b5e1
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Mon Apr 12 16:31:01 2021 -0700

    net: phy: broadcom: Only advertise EEE for supported modes
    
    commit c056d480b40a68f2520ccc156c7fae672d69d57d upstream
    
    We should not be advertising EEE for modes that we do not support,
    correct that oversight by looking at the PHY device supported linkmodes.
    
    Fixes: 99cec8a4dda2 ("net: phy: broadcom: Allow enabling or disabling of EEE")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06367c35f36d70b7e9abf75890046d06573ad0a1
Author: Yufen Yu <yuyufen@huawei.com>
Date:   Wed Mar 31 07:53:59 2021 -0400

    block: only update parent bi_status when bio fail
    
    [ Upstream commit 3edf5346e4f2ce2fa0c94651a90a8dda169565ee ]
    
    For multiple split bios, if one of the bio is fail, the whole
    should return error to application. But we found there is a race
    between bio_integrity_verify_fn and bio complete, which return
    io success to application after one of the bio fail. The race as
    following:
    
    split bio(READ)          kworker
    
    nvme_complete_rq
    blk_update_request //split error=0
      bio_endio
        bio_integrity_endio
          queue_work(kintegrityd_wq, &bip->bip_work);
    
                             bio_integrity_verify_fn
                             bio_endio //split bio
                              __bio_chain_endio
                                 if (!parent->bi_status)
    
                                   <interrupt entry>
                                   nvme_irq
                                     blk_update_request //parent error=7
                                     req_bio_endio
                                        bio->bi_status = 7 //parent bio
                                   <interrupt exit>
    
                                   parent->bi_status = 0
                            parent->bi_end_io() // return bi_status=0
    
    The bio has been split as two: split and parent. When split
    bio completed, it depends on kworker to do endio, while
    bio_integrity_verify_fn have been interrupted by parent bio
    complete irq handler. Then, parent bio->bi_status which have
    been set in irq handler will overwrite by kworker.
    
    In fact, even without the above race, we also need to conside
    the concurrency beteen mulitple split bio complete and update
    the same parent bi_status. Normally, multiple split bios will
    be issued to the same hctx and complete from the same irq
    vector. But if we have updated queue map between multiple split
    bios, these bios may complete on different hw queue and different
    irq vector. Then the concurrency update parent bi_status may
    cause the final status error.
    
    Suggested-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Yufen Yu <yuyufen@huawei.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/20210331115359.1125679-1-yuyufen@huawei.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbae0543ef9c60ca66066f5373bde920b8dc48f9
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Thu Mar 25 08:51:13 2021 -0400

    gfs2: report "already frozen/thawed" errors
    
    [ Upstream commit ff132c5f93c06bd4432bbab5c369e468653bdec4 ]
    
    Before this patch, gfs2's freeze function failed to report an error
    when the target file system was already frozen as it should (and as
    generic vfs function freeze_super does. Similarly, gfs2's thaw function
    failed to report an error when trying to thaw a file system that is not
    frozen, as vfs function thaw_super does. The errors were checked, but
    it always returned a 0 return code.
    
    This patch adds the missing error return codes to gfs2 freeze and thaw.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 97329e011ffe392c83000563eb70447b16cf145d
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Mar 24 17:47:41 2021 +0100

    drm/imx: imx-ldb: fix out of bounds array access warning
    
    [ Upstream commit 33ce7f2f95cabb5834cf0906308a5cb6103976da ]
    
    When CONFIG_OF is disabled, building with 'make W=1' produces warnings
    about out of bounds array access:
    
    drivers/gpu/drm/imx/imx-ldb.c: In function 'imx_ldb_set_clock.constprop':
    drivers/gpu/drm/imx/imx-ldb.c:186:8: error: array subscript -22 is below array bounds of 'struct clk *[4]' [-Werror=array-bounds]
    
    Add an error check before the index is used, which helps with the
    warning, as well as any possible other error condition that may be
    triggered at runtime.
    
    The warning could be fixed by adding a Kconfig depedency on CONFIG_OF,
    but Liu Ying points out that the driver may hit the out-of-bounds
    problem at runtime anyway.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Liu Ying <victor.liu@nxp.com>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67c9beda84973f5962efd27007a56e42b0d1d750
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Tue Mar 23 12:06:30 2021 +0000

    KVM: arm64: Disable guest access to trace filter controls
    
    [ Upstream commit a354a64d91eec3e0f8ef0eed575b480fd75b999c ]
    
    Disable guest access to the Trace Filter control registers.
    We do not advertise the Trace filter feature to the guest
    (ID_AA64DFR0_EL1: TRACE_FILT is cleared) already, but the guest
    can still access the TRFCR_EL1 unless we trap it.
    
    This will also make sure that the guest cannot fiddle with
    the filtering controls set by a nvhe host.
    
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20210323120647.454211-3-suzuki.poulose@arm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d21a8852e738ac5661c6015580cc0196161fcf37
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Tue Mar 23 12:06:29 2021 +0000

    KVM: arm64: Hide system instruction access to Trace registers
    
    [ Upstream commit 1d676673d665fd2162e7e466dcfbe5373bfdb73e ]
    
    Currently we advertise the ID_AA6DFR0_EL1.TRACEVER for the guest,
    when the trace register accesses are trapped (CPTR_EL2.TTA == 1).
    So, the guest will get an undefined instruction, if trusts the
    ID registers and access one of the trace registers.
    Lets be nice to the guest and hide the feature to avoid
    unexpected behavior.
    
    Even though this can be done at KVM sysreg emulation layer,
    we do this by removing the TRACEVER from the sanitised feature
    register field. This is fine as long as the ETM drivers
    can handle the individual trace units separately, even
    when there are differences among the CPUs.
    
    Cc: Will Deacon <will@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20210323120647.454211-2-suzuki.poulose@arm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90bc77b7083a1c1b75eabfe7749e1f17b584ad3d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Apr 12 09:56:57 2021 +0200

    Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath."
    
    This reverts commit ad48c641e7c344ae7aba243d3056a22eaba71bfd which is
    commit a738c93fb1c17e386a09304b517b1c6b2a6a5a8b upstream.
    
    It is reported to cause problems in older kernels, so revert it for now
    until we can figure it out...
    
    Reported-by: Salvatore Bonaccorso <carnil@debian.org>
    Link: https://lore.kernel.org/r/YG7r0UaivWZL762N@eldamar.lan
    Cc: Shyam Prasad N <sprasad@microsoft.com>
    Cc: Aurelien Aptel <aaptel@suse.com>
    Cc: Steve French <stfrench@microsoft.com>
    Cc: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df9aa96b613d8f46b65fad2c9b2e01782c01ceaa
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Apr 4 20:30:54 2021 -0400

    net: ieee802154: stop dump llsec params for monitors
    
    commit 1534efc7bbc1121e92c86c2dabebaf2c9dcece19 upstream.
    
    This patch stops dumping llsec params for monitors which we don't support
    yet. Otherwise we will access llsec mib which isn't initialized for
    monitors.
    
    Reported-by: syzbot+cde43a581a8e5f317bc2@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210405003054.256017-16-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33845d04d42b72c03a2138478586fceb1b4c4f6f
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Apr 4 20:30:53 2021 -0400

    net: ieee802154: forbid monitor for del llsec seclevel
    
    commit 9dde130937e95b72adfae64ab21d6e7e707e2dac upstream.
    
    This patch forbids to del llsec seclevel for monitor interfaces which we
    don't support yet. Otherwise we will access llsec mib which isn't
    initialized for monitors.
    
    Reported-by: syzbot+fbf4fc11a819824e027b@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210405003054.256017-15-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b54e71dbe3edd53a74e7a43fb213ab419b0d570d
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Apr 4 20:30:41 2021 -0400

    net: ieee802154: forbid monitor for set llsec params
    
    commit 88c17855ac4291fb462e13a86b7516773b6c932e upstream.
    
    This patch forbids to set llsec params for monitor interfaces which we
    don't support yet.
    
    Reported-by: syzbot+8b6719da8a04beeafcc3@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210405003054.256017-3-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 266e3f2ef0d10efe2d74bac5b0d4e4dd20320e60
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Feb 21 12:43:21 2021 -0500

    net: ieee802154: fix nl802154 del llsec devkey
    
    commit 27c746869e1a135dffc2f2a80715bb7aa00445b4 upstream.
    
    This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_DEVKEY is
    not set by the user. If this is the case nl802154 will return -EINVAL.
    
    Reported-by: syzbot+368672e0da240db53b5f@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210221174321.14210-4-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a94a5b2e0baffc421052771413e9ce37fb6ac51
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Feb 21 12:43:20 2021 -0500

    net: ieee802154: fix nl802154 add llsec key
    
    commit 20d5fe2d7103f5c43ad11a3d6d259e9d61165c35 upstream.
    
    This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_KEY is
    not set by the user. If this is the case nl802154 will return -EINVAL.
    
    Reported-by: syzbot+ce4e062c2d51977ddc50@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210221174321.14210-3-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ee9f1bafd068c480ee9c458c9f74a83e9dfbb12
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Feb 21 12:43:19 2021 -0500

    net: ieee802154: fix nl802154 del llsec dev
    
    commit 3d1eac2f45585690d942cf47fd7fbd04093ebd1b upstream.
    
    This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_DEVICE is
    not set by the user. If this is the case nl802154 will return -EINVAL.
    
    Reported-by: syzbot+d946223c2e751d136c94@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210221174321.14210-2-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1804bf103e735f49f650e27c3ec1ec30654b72a1
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Feb 21 12:43:18 2021 -0500

    net: ieee802154: fix nl802154 del llsec key
    
    commit 37feaaf5ceb2245e474369312bb7b922ce7bce69 upstream.
    
    This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_KEY is
    not set by the user. If this is the case nl802154 will return -EINVAL.
    
    Reported-by: syzbot+ac5c11d2959a8b3c4806@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210221174321.14210-1-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37580e6837c0b43291b2dde2efd5bc45e29c7e37
Author: Alexander Aring <aahringo@redhat.com>
Date:   Sun Feb 28 10:18:03 2021 -0500

    net: ieee802154: nl-mac: fix check on panid
    
    commit 6f7f657f24405f426212c09260bf7fe8a52cef33 upstream.
    
    This patch fixes a null pointer derefence for panid handle by move the
    check for the netlink variable directly before accessing them.
    
    Reported-by: syzbot+d4c07de0144f6f63be3a@syzkaller.appspotmail.com
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210228151817.95700-4-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d103fd20f0539e2bd615ed6f6159537cb7e2c5ba
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Thu Mar 4 18:21:25 2021 +0300

    net: mac802154: Fix general protection fault
    
    commit 1165affd484889d4986cf3b724318935a0b120d8 upstream.
    
    syzbot found general protection fault in crypto_destroy_tfm()[1].
    It was caused by wrong clean up loop in llsec_key_alloc().
    If one of the tfm array members is in IS_ERR() range it will
    cause general protection fault in clean up function [1].
    
    Call Trace:
     crypto_free_aead include/crypto/aead.h:191 [inline] [1]
     llsec_key_alloc net/mac802154/llsec.c:156 [inline]
     mac802154_llsec_key_add+0x9e0/0xcc0 net/mac802154/llsec.c:249
     ieee802154_add_llsec_key+0x56/0x80 net/mac802154/cfg.c:338
     rdev_add_llsec_key net/ieee802154/rdev-ops.h:260 [inline]
     nl802154_add_llsec_key+0x3d3/0x560 net/ieee802154/nl802154.c:1584
     genl_family_rcv_msg_doit+0x228/0x320 net/netlink/genetlink.c:739
     genl_family_rcv_msg net/netlink/genetlink.c:783 [inline]
     genl_rcv_msg+0x328/0x580 net/netlink/genetlink.c:800
     netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2502
     genl_rcv+0x24/0x40 net/netlink/genetlink.c:811
     netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline]
     netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338
     netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927
     sock_sendmsg_nosec net/socket.c:654 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:674
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2404
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Reported-by: syzbot+9ec037722d2603a9f52e@syzkaller.appspotmail.com
    Acked-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20210304152125.1052825-1-paskripkin@gmail.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87f225abe010d78965f95411f3a206a287994c40
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Thu Apr 1 16:27:52 2021 +0300

    drivers: net: fix memory leak in peak_usb_create_dev
    
    commit a0b96b4a62745397aee662670cfc2157bac03f55 upstream.
    
    syzbot reported memory leak in peak_usb.
    The problem was in case of failure after calling
    ->dev_init()[2] in peak_usb_create_dev()[1]. The data
    allocated int dev_init() wasn't freed, so simple
    ->dev_free() call fix this problem.
    
    backtrace:
        [<0000000079d6542a>] kmalloc include/linux/slab.h:552 [inline]
        [<0000000079d6542a>] kzalloc include/linux/slab.h:682 [inline]
        [<0000000079d6542a>] pcan_usb_fd_init+0x156/0x210 drivers/net/can/usb/peak_usb/pcan_usb_fd.c:868   [2]
        [<00000000c09f9057>] peak_usb_create_dev drivers/net/can/usb/peak_usb/pcan_usb_core.c:851 [inline] [1]
        [<00000000c09f9057>] peak_usb_probe+0x389/0x490 drivers/net/can/usb/peak_usb/pcan_usb_core.c:949
    
    Reported-by: syzbot+91adee8d9ebb9193d22d@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64aabb1aecae16bc3e6f476a34f745d51b28f521
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Thu Apr 1 07:46:24 2021 +0300

    drivers: net: fix memory leak in atusb_probe
    
    commit 6b9fbe16955152626557ec6f439f3407b7769941 upstream.
    
    syzbot reported memory leak in atusb_probe()[1].
    The problem was in atusb_alloc_urbs().
    Since urb is anchored, we need to release the reference
    to correctly free the urb
    
    backtrace:
        [<ffffffff82ba0466>] kmalloc include/linux/slab.h:559 [inline]
        [<ffffffff82ba0466>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
        [<ffffffff82ad3888>] atusb_alloc_urbs drivers/net/ieee802154/atusb.c:362 [inline][2]
        [<ffffffff82ad3888>] atusb_probe+0x158/0x820 drivers/net/ieee802154/atusb.c:1038 [1]
    
    Reported-by: syzbot+28a246747e0a465127f3@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6420532cfd7f73ad05045d89efc9c3a9377b85e
Author: Phillip Potter <phil@philpotter.co.uk>
Date:   Tue Apr 6 18:45:54 2021 +0100

    net: tun: set tun->dev->addr_len during TUNSETLINK processing
    
    commit cca8ea3b05c972ffb5295367e6c544369b45fbdd upstream.
    
    When changing type with TUNSETLINK ioctl command, set tun->dev->addr_len
    to match the appropriate type, using new tun_get_addr_len utility function
    which returns appropriate address length for given type. Fixes a
    KMSAN-found uninit-value bug reported by syzbot at:
    https://syzkaller.appspot.com/bug?id=0766d38c656abeace60621896d705743aeefed51
    
    Reported-by: syzbot+001516d86dbe88862cec@syzkaller.appspotmail.com
    Diagnosed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
    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 bd7b29fb365e7880dad175908bb05428b4c000ea
Author: Du Cheng <ducheng2@gmail.com>
Date:   Thu Apr 8 00:27:56 2021 +0800

    cfg80211: remove WARN_ON() in cfg80211_sme_connect
    
    commit 1b5ab825d9acc0f27d2f25c6252f3526832a9626 upstream.
    
    A WARN_ON(wdev->conn) would trigger in cfg80211_sme_connect(), if multiple
    send_msg(NL80211_CMD_CONNECT) system calls are made from the userland, which
    should be anticipated and handled by the wireless driver. Remove this WARN_ON()
    to prevent kernel panic if kernel is configured to "panic_on_warn".
    
    Bug reported by syzbot.
    
    Reported-by: syzbot+5f9392825de654244975@syzkaller.appspotmail.com
    Signed-off-by: Du Cheng <ducheng2@gmail.com>
    Link: https://lore.kernel.org/r/20210407162756.6101-1-ducheng2@gmail.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e9c1341b4c948c20f030b6b146fa82575e2fc37b
Author: Shuah Khan <skhan@linuxfoundation.org>
Date:   Sun Mar 7 20:53:31 2021 -0700

    usbip: fix vudc usbip_sockfd_store races leading to gpf
    
    commit 46613c9dfa964c0c60b5385dbdf5aaa18be52a9c upstream.
    
    usbip_sockfd_store() is invoked when user requests attach (import)
    detach (unimport) usb gadget device from usbip host. vhci_hcd sends
    import request and usbip_sockfd_store() exports the device if it is
    free for export.
    
    Export and unexport are governed by local state and shared state
    - Shared state (usbip device status, sockfd) - sockfd and Device
      status are used to determine if stub should be brought up or shut
      down. Device status is shared between host and client.
    - Local state (tcp_socket, rx and tx thread task_struct ptrs)
      A valid tcp_socket controls rx and tx thread operations while the
      device is in exported state.
    - While the device is exported, device status is marked used and socket,
      sockfd, and thread pointers are valid.
    
    Export sequence (stub-up) includes validating the socket and creating
    receive (rx) and transmit (tx) threads to talk to the client to provide
    access to the exported device. rx and tx threads depends on local and
    shared state to be correct and in sync.
    
    Unexport (stub-down) sequence shuts the socket down and stops the rx and
    tx threads. Stub-down sequence relies on local and shared states to be
    in sync.
    
    There are races in updating the local and shared status in the current
    stub-up sequence resulting in crashes. These stem from starting rx and
    tx threads before local and global state is updated correctly to be in
    sync.
    
    1. Doesn't handle kthread_create() error and saves invalid ptr in local
       state that drives rx and tx threads.
    2. Updates tcp_socket and sockfd,  starts stub_rx and stub_tx threads
       before updating usbip_device status to SDEV_ST_USED. This opens up a
       race condition between the threads and usbip_sockfd_store() stub up
       and down handling.
    
    Fix the above problems:
    - Stop using kthread_get_run() macro to create/start threads.
    - Create threads and get task struct reference.
    - Add kthread_create() failure handling and bail out.
    - Hold usbip_device lock to update local and shared states after
      creating rx and tx threads.
    - Update usbip_device status to SDEV_ST_USED.
    - Update usbip_device tcp_socket, sockfd, tcp_rx, and tcp_tx
    - Start threads after usbip_device (tcp_socket, sockfd, tcp_rx, tcp_tx,
      and status) is complete.
    
    Credit goes to syzbot and Tetsuo Handa for finding and root-causing the
    kthread_get_run() improper error handling problem and others. This is a
    hard problem to find and debug since the races aren't seen in a normal
    case. Fuzzing forces the race window to be small enough for the
    kthread_get_run() error path bug and starting threads before updating the
    local and shared state bug in the stub-up sequence.
    
    Fixes: 9720b4bc76a83807 ("staging/usbip: convert to kthread")
    Cc: stable@vger.kernel.org
    Reported-by: syzbot <syzbot+a93fba6d384346a761e3@syzkaller.appspotmail.com>
    Reported-by: syzbot <syzbot+bf1a360e305ee719e364@syzkaller.appspotmail.com>
    Reported-by: syzbot <syzbot+95ce4b142579611ef0a9@syzkaller.appspotmail.com>
    Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/b1c08b983ffa185449c9f0f7d1021dc8c8454b60.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Tom Seewald <tseewald@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4a8169615a0ed1c8c7085871ccd58f51333b74d
Author: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Date:   Thu May 31 17:02:54 2018 +1000

    net/ncsi: Avoid GFP_KERNEL in response handler
    
    commit b0949618826cbb64e9ba764bdd52aa14eaf5073d upstream.
    
    ncsi_rsp_handler_gc() allocates the filter arrays using GFP_KERNEL in
    softirq context, causing the below backtrace. This allocation is only a
    few dozen bytes during probing so allocate with GFP_ATOMIC instead.
    
    [   42.813372] BUG: sleeping function called from invalid context at mm/slab.h:416
    [   42.820900] in_atomic(): 1, irqs_disabled(): 0, pid: 213, name: kworker/0:1
    [   42.827893] INFO: lockdep is turned off.
    [   42.832023] CPU: 0 PID: 213 Comm: kworker/0:1 Tainted: G        W       4.13.16-01441-gad99b38 #65
    [   42.841007] Hardware name: Generic DT based system
    [   42.845966] Workqueue: events ncsi_dev_work
    [   42.850251] [<8010a494>] (unwind_backtrace) from [<80107510>] (show_stack+0x20/0x24)
    [   42.858046] [<80107510>] (show_stack) from [<80612770>] (dump_stack+0x20/0x28)
    [   42.865309] [<80612770>] (dump_stack) from [<80148248>] (___might_sleep+0x230/0x2b0)
    [   42.873241] [<80148248>] (___might_sleep) from [<80148334>] (__might_sleep+0x6c/0xac)
    [   42.881129] [<80148334>] (__might_sleep) from [<80240d6c>] (__kmalloc+0x210/0x2fc)
    [   42.888737] [<80240d6c>] (__kmalloc) from [<8060ad54>] (ncsi_rsp_handler_gc+0xd0/0x170)
    [   42.896770] [<8060ad54>] (ncsi_rsp_handler_gc) from [<8060b454>] (ncsi_rcv_rsp+0x16c/0x1d4)
    [   42.905314] [<8060b454>] (ncsi_rcv_rsp) from [<804d86c8>] (__netif_receive_skb_core+0x3c8/0xb50)
    [   42.914158] [<804d86c8>] (__netif_receive_skb_core) from [<804d96cc>] (__netif_receive_skb+0x20/0x7c)
    [   42.923420] [<804d96cc>] (__netif_receive_skb) from [<804de4b0>] (netif_receive_skb_internal+0x78/0x6a4)
    [   42.932931] [<804de4b0>] (netif_receive_skb_internal) from [<804df980>] (netif_receive_skb+0x78/0x158)
    [   42.942292] [<804df980>] (netif_receive_skb) from [<8042f204>] (ftgmac100_poll+0x43c/0x4e8)
    [   42.950855] [<8042f204>] (ftgmac100_poll) from [<804e094c>] (net_rx_action+0x278/0x4c4)
    [   42.958918] [<804e094c>] (net_rx_action) from [<801016a8>] (__do_softirq+0xe0/0x4c4)
    [   42.966716] [<801016a8>] (__do_softirq) from [<8011cd9c>] (do_softirq.part.4+0x50/0x78)
    [   42.974756] [<8011cd9c>] (do_softirq.part.4) from [<8011cebc>] (__local_bh_enable_ip+0xf8/0x11c)
    [   42.983579] [<8011cebc>] (__local_bh_enable_ip) from [<804dde08>] (__dev_queue_xmit+0x260/0x890)
    [   42.992392] [<804dde08>] (__dev_queue_xmit) from [<804df1f0>] (dev_queue_xmit+0x1c/0x20)
    [   43.000689] [<804df1f0>] (dev_queue_xmit) from [<806099c0>] (ncsi_xmit_cmd+0x1c0/0x244)
    [   43.008763] [<806099c0>] (ncsi_xmit_cmd) from [<8060dc14>] (ncsi_dev_work+0x2e0/0x4c8)
    [   43.016725] [<8060dc14>] (ncsi_dev_work) from [<80133dfc>] (process_one_work+0x214/0x6f8)
    [   43.024940] [<80133dfc>] (process_one_work) from [<80134328>] (worker_thread+0x48/0x558)
    [   43.033070] [<80134328>] (worker_thread) from [<8013ba80>] (kthread+0x130/0x174)
    [   43.040506] [<8013ba80>] (kthread) from [<80102950>] (ret_from_fork+0x14/0x24)
    
    Fixes: 062b3e1b6d4f ("net/ncsi: Refactor MAC, VLAN filters")
    Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 601e0eb6374351334f276e66cbec11dbbdd5fbba
Author: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Date:   Tue Apr 17 14:23:23 2018 +1000

    net/ncsi: Refactor MAC, VLAN filters
    
    commit 062b3e1b6d4f2a33c1d0fd7ae9b4550da5cf7e4b upstream.
    
    The NCSI driver defines a generic ncsi_channel_filter struct that can be
    used to store arbitrarily formatted filters, and several generic methods
    of accessing data stored in such a filter.
    However in both the driver and as defined in the NCSI specification
    there are only two actual filters: VLAN ID filters and MAC address
    filters. The splitting of the MAC filter into unicast, multicast, and
    mixed is also technically not necessary as these are stored in the same
    location in hardware.
    
    To save complexity, particularly in the set up and accessing of these
    generic filters, remove them in favour of two specific structs. These
    can be acted on directly and do not need several generic helper
    functions to use.
    
    This also fixes a memory error found by KASAN on ARM32 (which is not
    upstream yet), where response handlers accessing a filter's data field
    could write past allocated memory.
    
    [  114.926512] ==================================================================
    [  114.933861] BUG: KASAN: slab-out-of-bounds in ncsi_configure_channel+0x4b8/0xc58
    [  114.941304] Read of size 2 at addr 94888558 by task kworker/0:2/546
    [  114.947593]
    [  114.949146] CPU: 0 PID: 546 Comm: kworker/0:2 Not tainted 4.16.0-rc6-00119-ge156398bfcad #13
    ...
    [  115.170233] The buggy address belongs to the object at 94888540
    [  115.170233]  which belongs to the cache kmalloc-32 of size 32
    [  115.181917] The buggy address is located 24 bytes inside of
    [  115.181917]  32-byte region [94888540, 94888560)
    [  115.192115] The buggy address belongs to the page:
    [  115.196943] page:9eeac100 count:1 mapcount:0 mapping:94888000 index:0x94888fc1
    [  115.204200] flags: 0x100(slab)
    [  115.207330] raw: 00000100 94888000 94888fc1 0000003f 00000001 9eea2014 9eecaa74 96c003e0
    [  115.215444] page dumped because: kasan: bad access detected
    [  115.221036]
    [  115.222544] Memory state around the buggy address:
    [  115.227384]  94888400: fb fb fb fb fc fc fc fc 04 fc fc fc fc fc fc fc
    [  115.233959]  94888480: 00 00 00 fc fc fc fc fc 00 04 fc fc fc fc fc fc
    [  115.240529] >94888500: 00 00 04 fc fc fc fc fc 00 00 04 fc fc fc fc fc
    [  115.247077]                                             ^
    [  115.252523]  94888580: 00 04 fc fc fc fc fc fc 06 fc fc fc fc fc fc fc
    [  115.259093]  94888600: 00 00 06 fc fc fc fc fc 00 00 04 fc fc fc fc fc
    [  115.265639] ==================================================================
    
    Reported-by: Joel Stanley <joel@jms.id.au>
    Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4e7325060fe9d7f6b223fee7d2a28bf91ba8cb9
Author: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Date:   Mon Mar 5 11:39:05 2018 +1100

    net/ncsi: Add generic netlink family
    
    commit 955dc68cb9b23b42999cafe6df3684309bc686c6 upstream.
    
    Add a generic netlink family for NCSI. This supports three commands;
    NCSI_CMD_PKG_INFO which returns information on packages and their
    associated channels, NCSI_CMD_SET_INTERFACE which allows a specific
    package or package/channel combination to be set as the preferred
    choice, and NCSI_CMD_CLEAR_INTERFACE which clears any preferred setting.
    
    Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32e0a805c060b38ca4665bd91ff32ce34433f66f
Author: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Date:   Wed Nov 8 16:30:45 2017 +1100

    net/ncsi: Don't return error on normal response
    
    commit 04bad8bda9e25afe676a6f4452f3b304c1fdea16 upstream.
    
    Several response handlers return EBUSY if the data corresponding to the
    command/response pair is already set. There is no reason to return an
    error here; the channel is advertising something as enabled because we
    told it to enable it, and it's possible that the feature has been
    enabled previously.
    
    Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f013e2b4c8c66e38e2417e8e2b03a54fdf26437b
Author: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Date:   Wed Nov 8 16:30:44 2017 +1100

    net/ncsi: Improve general state logging
    
    commit 9ef8690be13d8ae3130749fbcc0cc21e4e3f738c upstream.
    
    The NCSI driver is mostly silent which becomes a headache when trying to
    determine what has occurred on the NCSI connection. This adds additional
    logging in a few key areas such as state transitions and calling out
    certain errors more visibly.
    
    Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e49c41505ae866321388e21d540663d01ae9333e
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Thu Nov 2 11:15:28 2017 +0000

    net/ncsi: Make local function ncsi_get_filter() static
    
    commit 5a6d80034471d4407052c4bf3758071df5cadf33 upstream.
    
    Fixes the following sparse warnings:
    
    net/ncsi/ncsi-manage.c:41:5: warning:
     symbol 'ncsi_get_filter' was not declared. Should it be static?
    
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e789904a093b0bd7f63601c3483785418591c2c1
Author: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Date:   Sun Mar 14 12:07:09 2021 +0100

    clk: socfpga: fix iomem pointer cast on 64-bit
    
    commit 2867b9746cef78745c594894aece6f8ef826e0b4 upstream.
    
    Pointers should be cast with uintptr_t instead of integer.  This fixes
    warning when compile testing on ARM64:
    
      drivers/clk/socfpga/clk-gate.c: In function ‘socfpga_clk_recalc_rate’:
      drivers/clk/socfpga/clk-gate.c:102:7: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    
    Fixes: b7cec13f082f ("clk: socfpga: Look for the GPIO_DB_CLK by its offset")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Acked-by: Dinh Nguyen <dinguyen@kernel.org>
    Link: https://lore.kernel.org/r/20210314110709.32599-1-krzysztof.kozlowski@canonical.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a94d89d1573a266d28261738fe0a1dc521767d15
Author: Potnuri Bharat Teja <bharat@chelsio.com>
Date:   Wed Mar 31 19:27:15 2021 +0530

    RDMA/cxgb4: check for ipv6 address properly while destroying listener
    
    [ Upstream commit 603c4690b01aaffe3a6c3605a429f6dac39852ae ]
    
    ipv6 bit is wrongly set by the below which causes fatal adapter lookup
    engine errors for ipv4 connections while destroying a listener.  Fix it to
    properly check the local address for ipv6.
    
    Fixes: 3408be145a5d ("RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server")
    Link: https://lore.kernel.org/r/20210331135715.30072-1-bharat@chelsio.com
    Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9def0f437728cead6411e3c692b4d5a0d486e2ce
Author: Raed Salem <raeds@nvidia.com>
Date:   Thu Jan 21 16:01:37 2021 +0200

    net/mlx5: Fix placement of log_max_flow_counter
    
    [ Upstream commit a14587dfc5ad2312dabdd42a610d80ecd0dc8bea ]
    
    The cited commit wrongly placed log_max_flow_counter field of
    mlx5_ifc_flow_table_prop_layout_bits, align it to the HW spec intended
    placement.
    
    Fixes: 16f1c5bb3ed7 ("net/mlx5: Check device capability for maximum flow counters")
    Signed-off-by: Raed Salem <raeds@nvidia.com>
    Reviewed-by: Roi Dayan <roid@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4dea7a1bd412311b96bce42614bb4dddce20ddcb
Author: Alexander Gordeev <agordeev@linux.ibm.com>
Date:   Mon Mar 29 18:35:07 2021 +0200

    s390/cpcmd: fix inline assembly register clobbering
    
    [ Upstream commit 7a2f91441b2c1d81b77c1cd816a4659f4abc9cbe ]
    
    Register variables initialized using arithmetic. That leads to
    kasan instrumentaton code corrupting the registers contents.
    Follow GCC guidlines and use temporary variables for assigning
    init values to register variables.
    
    Fixes: 94c12cc7d196 ("[S390] Inline assembly cleanup.")
    Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Link: https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Local-Register-Variables.html
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9948ff55ed9c792c5ede2b05092ba3e447f91d0f
Author: Zqiang <qiang.zhang@windriver.com>
Date:   Thu Feb 18 11:16:49 2021 +0800

    workqueue: Move the position of debug_work_activate() in __queue_work()
    
    [ Upstream commit 0687c66b5f666b5ad433f4e94251590d9bc9d10e ]
    
    The debug_work_activate() is called on the premise that
    the work can be inserted, because if wq be in WQ_DRAINING
    status, insert work may be failed.
    
    Fixes: e41e704bc4f4 ("workqueue: improve destroy_workqueue() debuggability")
    Signed-off-by: Zqiang <qiang.zhang@windriver.com>
    Reviewed-by: Lai Jiangshan <jiangshanlai@gmail.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0834c021f5d14efe9c2e18a1195a4834ac8ae381
Author: Lukasz Bartosik <lb@semihalf.com>
Date:   Fri Apr 2 00:51:49 2021 +0200

    clk: fix invalid usage of list cursor in unregister
    
    [ Upstream commit 7045465500e465b09f09d6e5bdc260a9f1aab97b ]
    
    Fix invalid usage of a list_for_each_entry cursor in
    clk_notifier_unregister(). When list is empty or if the list
    is completely traversed (without breaking from the loop on one
    of the entries) then the list cursor does not point to a valid
    entry and therefore should not be used. The patch fixes a logical
    bug that hasn't been seen in pratice however it is analogus
    to the bug fixed in clk_notifier_register().
    
    The issue was dicovered when running 5.12-rc1 kernel on x86_64
    with KASAN enabled:
    BUG: KASAN: global-out-of-bounds in clk_notifier_register+0xab/0x230
    Read of size 8 at addr ffffffffa0d10588 by task swapper/0/1
    
    CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-rc1 #1
    Hardware name: Google Caroline/Caroline,
    BIOS Google_Caroline.7820.430.0 07/20/2018
    Call Trace:
     dump_stack+0xee/0x15c
     print_address_description+0x1e/0x2dc
     kasan_report+0x188/0x1ce
     ? clk_notifier_register+0xab/0x230
     ? clk_prepare_lock+0x15/0x7b
     ? clk_notifier_register+0xab/0x230
     clk_notifier_register+0xab/0x230
     dw8250_probe+0xc01/0x10d4
     ...
     Memory state around the buggy address:
      ffffffffa0d10480: 00 00 00 00 00 03 f9 f9 f9 f9 f9 f9 00 00 00 00
      ffffffffa0d10500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9
     >ffffffffa0d10580: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
                              ^
      ffffffffa0d10600: 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 00 00 00 00
      ffffffffa0d10680: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00
      ==================================================================
    
    Fixes: b2476490ef11 ("clk: introduce the common clock framework")
    Reported-by: Lukasz Majczak <lma@semihalf.com>
    Signed-off-by: Lukasz Bartosik <lb@semihalf.com>
    Link: https://lore.kernel.org/r/20210401225149.18826-2-lb@semihalf.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 318c973db612fd595a6388b0a1b3b4bbeaa3c623
Author: Lukasz Bartosik <lb@semihalf.com>
Date:   Fri Apr 2 00:51:48 2021 +0200

    clk: fix invalid usage of list cursor in register
    
    [ Upstream commit 8d3c0c01cb2e36b2bf3c06a82b18b228d0c8f5d0 ]
    
    Fix invalid usage of a list_for_each_entry cursor in
    clk_notifier_register(). When list is empty or if the list
    is completely traversed (without breaking from the loop on one
    of the entries) then the list cursor does not point to a valid
    entry and therefore should not be used.
    
    The issue was dicovered when running 5.12-rc1 kernel on x86_64
    with KASAN enabled:
    BUG: KASAN: global-out-of-bounds in clk_notifier_register+0xab/0x230
    Read of size 8 at addr ffffffffa0d10588 by task swapper/0/1
    
    CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-rc1 #1
    Hardware name: Google Caroline/Caroline,
    BIOS Google_Caroline.7820.430.0 07/20/2018
    Call Trace:
     dump_stack+0xee/0x15c
     print_address_description+0x1e/0x2dc
     kasan_report+0x188/0x1ce
     ? clk_notifier_register+0xab/0x230
     ? clk_prepare_lock+0x15/0x7b
     ? clk_notifier_register+0xab/0x230
     clk_notifier_register+0xab/0x230
     dw8250_probe+0xc01/0x10d4
    ...
    Memory state around the buggy address:
     ffffffffa0d10480: 00 00 00 00 00 03 f9 f9 f9 f9 f9 f9 00 00 00 00
     ffffffffa0d10500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9
    >ffffffffa0d10580: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
                          ^
     ffffffffa0d10600: 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 00 00 00 00
     ffffffffa0d10680: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00
     ==================================================================
    
    Fixes: b2476490ef11 ("clk: introduce the common clock framework")
    Reported-by: Lukasz Majczak <lma@semihalf.com>
    Signed-off-by: Lukasz Bartosik <lb@semihalf.com>
    Link: https://lore.kernel.org/r/20210401225149.18826-1-lb@semihalf.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf59100b96090b3fd6cf243e018177645547df61
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Mar 23 14:15:23 2021 +0100

    soc/fsl: qbman: fix conflicting alignment attributes
    
    [ Upstream commit 040f31196e8b2609613f399793b9225271b79471 ]
    
    When building with W=1, gcc points out that the __packed attribute
    on struct qm_eqcr_entry conflicts with the 8-byte alignment
    attribute on struct qm_fd inside it:
    
    drivers/soc/fsl/qbman/qman.c:189:1: error: alignment 1 of 'struct qm_eqcr_entry' is less than 8 [-Werror=packed-not-aligned]
    
    I assume that the alignment attribute is the correct one, and
    that qm_eqcr_entry cannot actually be unaligned in memory,
    so add the same alignment on the outer struct.
    
    Fixes: c535e923bb97 ("soc/fsl: Introduce DPAA 1.x QMan device driver")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20210323131530.2619900-1-arnd@kernel.org'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3539ecc41472bced43b0c8915b255033cf8f800
Author: Bastian Germann <bage@linutronix.de>
Date:   Wed Mar 31 17:18:43 2021 +0200

    ASoC: sunxi: sun4i-codec: fill ASoC card owner
    
    [ Upstream commit 7c0d6e482062eb5c06ecccfab340abc523bdca00 ]
    
    card->owner is a required property and since commit 81033c6b584b ("ALSA:
    core: Warn on empty module") a warning is issued if it is empty. Add it.
    This fixes following warning observed on Lamobo R1:
    
    WARNING: CPU: 1 PID: 190 at sound/core/init.c:207 snd_card_new+0x430/0x480 [snd]
    Modules linked in: sun4i_codec(E+) sun4i_backend(E+) snd_soc_core(E) ...
    CPU: 1 PID: 190 Comm: systemd-udevd Tainted: G         C  E     5.10.0-1-armmp #1 Debian 5.10.4-1
    Hardware name: Allwinner sun7i (A20) Family
    Call trace:
     (snd_card_new [snd])
     (snd_soc_bind_card [snd_soc_core])
     (snd_soc_register_card [snd_soc_core])
     (sun4i_codec_probe [sun4i_codec])
    
    Fixes: 45fb6b6f2aa3 ("ASoC: sunxi: add support for the on-chip codec on early Allwinner SoCs")
    Related: commit 3c27ea23ffb4 ("ASoC: qcom: Set card->owner to avoid warnings")
    Related: commit ec653df2a0cb ("drm/vc4/vc4_hdmi: fill ASoC card owner")
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: alsa-devel@alsa-project.org
    Signed-off-by: Bastian Germann <bage@linutronix.de>
    Link: https://lore.kernel.org/r/20210331151843.30583-1-bage@linutronix.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c1791e0ebee2281784e5fb108cf6d56891be734
Author: Milton Miller <miltonm@us.ibm.com>
Date:   Mon Mar 29 10:20:39 2021 -0500

    net/ncsi: Avoid channel_monitor hrtimer deadlock
    
    [ Upstream commit 03cb4d05b4ea9a3491674ca40952adb708d549fa ]
    
    Calling ncsi_stop_channel_monitor from channel_monitor is a guaranteed
    deadlock on SMP because stop calls del_timer_sync on the timer that
    invoked channel_monitor as its timer function.
    
    Recognise the inherent race of marking the monitor disabled before
    deleting the timer by just returning if enable was cleared.  After
    a timeout (the default case -- reset to START when response received)
    just mark the monitor.enabled false.
    
    If the channel has an entry on the channel_queue list, or if the
    state is not ACTIVE or INACTIVE, then warn and mark the timer stopped
    and don't restart, as the locking is broken somehow.
    
    Fixes: 0795fb2021f0 ("net/ncsi: Stop monitor if channel times out or is inactive")
    Signed-off-by: Milton Miller <miltonm@us.ibm.com>
    Signed-off-by: Eddie James <eajames@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb271612b3c79612ed7592bb25ce1431c6f88c6c
Author: Stefan Riedmueller <s.riedmueller@phytec.de>
Date:   Mon Mar 29 15:01:03 2021 +0200

    ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces
    
    [ Upstream commit f57011e72f5fe0421ec7a812beb1b57bdf4bb47f ]
    
    Setting the vmmc supplies is crucial since otherwise the supplying
    regulators get disabled and the SD interfaces are no longer powered
    which leads to system failures if the system is booted from that SD
    interface.
    
    Fixes: 1e44d3f880d5 ("ARM i.MX6Q: dts: Enable I2C1 with EEPROM and PMIC on Phytec phyFLEX-i.MX6 Ouad module")
    Signed-off-by: Stefan Riedmueller <s.riedmueller@phytec.de>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 439340105136c98a3cc247e806ed816ddcf0715d
Author: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
Date:   Sun Mar 28 00:30:29 2021 -0700

    net:tipc: Fix a double free in tipc_sk_mcast_rcv
    
    [ Upstream commit 6bf24dc0cc0cc43b29ba344b66d78590e687e046 ]
    
    In the if(skb_peek(arrvq) == skb) branch, it calls __skb_dequeue(arrvq) to get
    the skb by skb = skb_peek(arrvq). Then __skb_dequeue() unlinks the skb from arrvq
    and returns the skb which equals to skb_peek(arrvq). After __skb_dequeue(arrvq)
    finished, the skb is freed by kfree_skb(__skb_dequeue(arrvq)) in the first time.
    
    Unfortunately, the same skb is freed in the second time by kfree_skb(skb) after
    the branch completed.
    
    My patch removes kfree_skb() in the if(skb_peek(arrvq) == skb) branch, because
    this skb will be freed by kfree_skb(skb) finally.
    
    Fixes: cb1b728096f54 ("tipc: eliminate race condition at multicast reception")
    Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22d33117e5305c9fb6e5f78aecdf3c4e21399901
Author: Claudiu Manoil <claudiu.manoil@nxp.com>
Date:   Mon Mar 29 17:08:47 2021 +0300

    gianfar: Handle error code at MAC address change
    
    [ Upstream commit bff5b62585123823842833ab20b1c0a7fa437f8c ]
    
    Handle return error code of eth_mac_addr();
    
    Fixes: 3d23a05c75c7 ("gianfar: Enable changing mac addr when if up")
    Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4173e6b7ba3b6cc712ed422bb16a1bd8773d8c4
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Mar 25 11:14:53 2021 -0700

    sch_red: fix off-by-one checks in red_check_params()
    
    [ Upstream commit 3a87571f0ffc51ba3bf3ecdb6032861d0154b164 ]
    
    This fixes following syzbot report:
    
    UBSAN: shift-out-of-bounds in ./include/net/red.h:237:23
    shift exponent 32 is too large for 32-bit type 'unsigned int'
    CPU: 1 PID: 8418 Comm: syz-executor170 Not tainted 5.12.0-rc4-next-20210324-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:79 [inline]
     dump_stack+0x141/0x1d7 lib/dump_stack.c:120
     ubsan_epilogue+0xb/0x5a lib/ubsan.c:148
     __ubsan_handle_shift_out_of_bounds.cold+0xb1/0x181 lib/ubsan.c:327
     red_set_parms include/net/red.h:237 [inline]
     choke_change.cold+0x3c/0xc8 net/sched/sch_choke.c:414
     qdisc_create+0x475/0x12f0 net/sched/sch_api.c:1247
     tc_modify_qdisc+0x4c8/0x1a50 net/sched/sch_api.c:1663
     rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5553
     netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2502
     netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline]
     netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338
     netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927
     sock_sendmsg_nosec net/socket.c:654 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:674
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2404
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    RIP: 0033:0x43f039
    Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007ffdfa725168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 0000000000400488 RCX: 000000000043f039
    RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000004
    RBP: 0000000000403020 R08: 0000000000400488 R09: 0000000000400488
    R10: 0000000000400488 R11: 0000000000000246 R12: 00000000004030b0
    R13: 0000000000000000 R14: 00000000004ac018 R15: 0000000000400488
    
    Fixes: 8afa10cbe281 ("net_sched: red: Avoid illegal values")
    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: Sasha Levin <sashal@kernel.org>

commit 59a571e2f63031a4cc634c8a92990b99c155c3ae
Author: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Date:   Thu Mar 25 08:39:12 2021 +0530

    amd-xgbe: Update DMA coherency values
    
    [ Upstream commit d75135082698140a26a56defe1bbc1b06f26a41f ]
    
    Based on the IOMMU configuration, the current cache control settings can
    result in possible coherency issues. The hardware team has recommended
    new settings for the PCI device path to eliminate the issue.
    
    Fixes: 6f595959c095 ("amd-xgbe: Adjust register settings to improve performance")
    Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
    Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit be3a848d85f69658f418b55c96ed2899654ce9e3
Author: Shengjiu Wang <shengjiu.wang@nxp.com>
Date:   Fri Mar 19 18:48:46 2021 +0800

    ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips
    
    [ Upstream commit 16b82e75c15a7dbd564ea3654f3feb61df9e1e6f ]
    
    The input MCLK is 12.288MHz, the desired output sysclk is 11.2896MHz
    and sample rate is 44100Hz, with the configuration pllprescale=2,
    postscale=sysclkdiv=1, some chip may have wrong bclk
    and lrclk output with pll enabled in master mode, but with the
    configuration pllprescale=1, postscale=2, the output clock is correct.
    
    >From Datasheet, the PLL performs best when f2 is between
    90MHz and 100MHz when the desired sysclk output is 11.2896MHz
    or 12.288MHz, so sysclkdiv = 2 (f2/8) is the best choice.
    
    So search available sysclk_divs from 2 to 1 other than from 1 to 2.
    
    Fixes: 84fdc00d519f ("ASoC: codec: wm9860: Refactor PLL out freq search")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/1616150926-22892-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3b12e7336b770f4099f7e334e32ef54a5d5e4ee
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri Mar 12 14:02:40 2021 +0100

    regulator: bd9571mwv: Fix AVS and DVFS voltage range
    
    [ Upstream commit 3b6e7088afc919f5b52e4d2de8501ad34d35b09b ]
    
    According to Table 30 ("DVFS_MoniVDAC [6:0] Setting Table") in the
    BD9571MWV-M Datasheet Rev. 002, the valid voltage range is 600..1100 mV
    (settings 0x3c..0x6e).  While the lower limit is taken into account (by
    setting regulator_desc.linear_min_sel to 0x3c), the upper limit is not.
    
    Fix this by reducing regulator_desc.n_voltages from 0x80 to 0x6f.
    
    Fixes: e85c5a153fe237f2 ("regulator: Add ROHM BD9571MWV-M PMIC regulator driver")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20210312130242.3390038-2-geert+renesas@glider.be
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1e0d46fb15891278d77823232fcf3e3fb8448cf
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Mon Mar 15 12:50:08 2021 +0100

    i2c: turn recovery error on init to debug
    
    commit e409a6a3e0690efdef9b8a96197bc61ff117cfaf upstream.
    
    In some configurations, recovery is optional. So, don't throw an error
    when it is not used because e.g. pinctrl settings for recovery are not
    provided. Reword the message and make it debug output.
    
    Reported-by: Klaus Kudielka <klaus.kudielka@gmail.com>
    Tested-by: Klaus Kudielka <klaus.kudielka@gmail.com>
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 534d2cf487b972b2c039bfc55898a7edc2b0ea45
Author: Shuah Khan <skhan@linuxfoundation.org>
Date:   Mon Mar 29 19:36:51 2021 -0600

    usbip: synchronize event handler with sysfs code paths
    
    commit 363eaa3a450abb4e63bd6e3ad79d1f7a0f717814 upstream.
    
    Fuzzing uncovered race condition between sysfs code paths in usbip
    drivers. Device connect/disconnect code paths initiated through
    sysfs interface are prone to races if disconnect happens during
    connect and vice versa.
    
    Use sysfs_lock to synchronize event handler with sysfs paths
    in usbip drivers.
    
    Cc: stable@vger.kernel.org
    Reported-and-tested-by: syzbot+a93fba6d384346a761e3@syzkaller.appspotmail.com
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/c5c8723d3f29dfe3d759cfaafa7dd16b0dfe2918.1616807117.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbf3417833b0fb3a2a00377e50622551aaedc0e5
Author: Shuah Khan <skhan@linuxfoundation.org>
Date:   Mon Mar 29 19:36:49 2021 -0600

    usbip: stub-dev synchronize sysfs code paths
    
    commit 9dbf34a834563dada91366c2ac266f32ff34641a upstream.
    
    Fuzzing uncovered race condition between sysfs code paths in usbip
    drivers. Device connect/disconnect code paths initiated through
    sysfs interface are prone to races if disconnect happens during
    connect and vice versa.
    
    Use sysfs_lock to protect sysfs paths in stub-dev.
    
    Cc: stable@vger.kernel.org
    Reported-and-tested-by: syzbot+a93fba6d384346a761e3@syzkaller.appspotmail.com
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/2b182f3561b4a065bf3bf6dce3b0e9944ba17b3f.1616807117.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f2a149564ee2b41ab09e90add21153bd5be64d3
Author: Shuah Khan <skhan@linuxfoundation.org>
Date:   Mon Mar 29 19:36:48 2021 -0600

    usbip: add sysfs_lock to synchronize sysfs code paths
    
    commit 4e9c93af7279b059faf5bb1897ee90512b258a12 upstream.
    
    Fuzzing uncovered race condition between sysfs code paths in usbip
    drivers. Device connect/disconnect code paths initiated through
    sysfs interface are prone to races if disconnect happens during
    connect and vice versa.
    
    This problem is common to all drivers while it can be reproduced easily
    in vhci_hcd. Add a sysfs_lock to usbip_device struct to protect the paths.
    
    Use this in vhci_hcd to protect sysfs paths. For a complete fix, usip_host
    and usip-vudc drivers and the event handler will have to use this lock to
    protect the paths. These changes will be done in subsequent patches.
    
    Cc: stable@vger.kernel.org
    Reported-and-tested-by: syzbot+a93fba6d384346a761e3@syzkaller.appspotmail.com
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/b6568f7beae702bbc236a545d3c020106ca75eac.1616807117.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e9861a7925e01042fe1f19c9951c30d57d4f21b
Author: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Date:   Thu Apr 8 18:14:31 2021 +0300

    net: sched: sch_teql: fix null-pointer dereference
    
    commit 1ffbc7ea91606e4abd10eb60de5367f1c86daf5e upstream.
    
    Reproduce:
    
      modprobe sch_teql
      tc qdisc add dev teql0 root teql0
    
    This leads to (for instance in Centos 7 VM) OOPS:
    
    [  532.366633] BUG: unable to handle kernel NULL pointer dereference at 00000000000000a8
    [  532.366733] IP: [<ffffffffc06124a8>] teql_destroy+0x18/0x100 [sch_teql]
    [  532.366825] PGD 80000001376d5067 PUD 137e37067 PMD 0
    [  532.366906] Oops: 0000 [#1] SMP
    [  532.366987] Modules linked in: sch_teql ...
    [  532.367945] CPU: 1 PID: 3026 Comm: tc Kdump: loaded Tainted: G               ------------ T 3.10.0-1062.7.1.el7.x86_64 #1
    [  532.368041] Hardware name: Virtuozzo KVM, BIOS 1.11.0-2.vz7.2 04/01/2014
    [  532.368125] task: ffff8b7d37d31070 ti: ffff8b7c9fdbc000 task.ti: ffff8b7c9fdbc000
    [  532.368224] RIP: 0010:[<ffffffffc06124a8>]  [<ffffffffc06124a8>] teql_destroy+0x18/0x100 [sch_teql]
    [  532.368320] RSP: 0018:ffff8b7c9fdbf8e0  EFLAGS: 00010286
    [  532.368394] RAX: ffffffffc0612490 RBX: ffff8b7cb1565e00 RCX: ffff8b7d35ba2000
    [  532.368476] RDX: ffff8b7d35ba2000 RSI: 0000000000000000 RDI: ffff8b7cb1565e00
    [  532.368557] RBP: ffff8b7c9fdbf8f8 R08: ffff8b7d3fd1f140 R09: ffff8b7d3b001600
    [  532.368638] R10: ffff8b7d3b001600 R11: ffffffff84c7d65b R12: 00000000ffffffd8
    [  532.368719] R13: 0000000000008000 R14: ffff8b7d35ba2000 R15: ffff8b7c9fdbf9a8
    [  532.368800] FS:  00007f6a4e872740(0000) GS:ffff8b7d3fd00000(0000) knlGS:0000000000000000
    [  532.368885] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  532.368961] CR2: 00000000000000a8 CR3: 00000001396ee000 CR4: 00000000000206e0
    [  532.369046] Call Trace:
    [  532.369159]  [<ffffffff84c8192e>] qdisc_create+0x36e/0x450
    [  532.369268]  [<ffffffff846a9b49>] ? ns_capable+0x29/0x50
    [  532.369366]  [<ffffffff849afde2>] ? nla_parse+0x32/0x120
    [  532.369442]  [<ffffffff84c81b4c>] tc_modify_qdisc+0x13c/0x610
    [  532.371508]  [<ffffffff84c693e7>] rtnetlink_rcv_msg+0xa7/0x260
    [  532.372668]  [<ffffffff84907b65>] ? sock_has_perm+0x75/0x90
    [  532.373790]  [<ffffffff84c69340>] ? rtnl_newlink+0x890/0x890
    [  532.374914]  [<ffffffff84c8da7b>] netlink_rcv_skb+0xab/0xc0
    [  532.376055]  [<ffffffff84c63708>] rtnetlink_rcv+0x28/0x30
    [  532.377204]  [<ffffffff84c8d400>] netlink_unicast+0x170/0x210
    [  532.378333]  [<ffffffff84c8d7a8>] netlink_sendmsg+0x308/0x420
    [  532.379465]  [<ffffffff84c2f3a6>] sock_sendmsg+0xb6/0xf0
    [  532.380710]  [<ffffffffc034a56e>] ? __xfs_filemap_fault+0x8e/0x1d0 [xfs]
    [  532.381868]  [<ffffffffc034a75c>] ? xfs_filemap_fault+0x2c/0x30 [xfs]
    [  532.383037]  [<ffffffff847ec23a>] ? __do_fault.isra.61+0x8a/0x100
    [  532.384144]  [<ffffffff84c30269>] ___sys_sendmsg+0x3e9/0x400
    [  532.385268]  [<ffffffff847f3fad>] ? handle_mm_fault+0x39d/0x9b0
    [  532.386387]  [<ffffffff84d88678>] ? __do_page_fault+0x238/0x500
    [  532.387472]  [<ffffffff84c31921>] __sys_sendmsg+0x51/0x90
    [  532.388560]  [<ffffffff84c31972>] SyS_sendmsg+0x12/0x20
    [  532.389636]  [<ffffffff84d8dede>] system_call_fastpath+0x25/0x2a
    [  532.390704]  [<ffffffff84d8de21>] ? system_call_after_swapgs+0xae/0x146
    [  532.391753] Code: 00 00 00 00 00 00 5b 5d c3 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 41 55 41 54 53 48 8b b7 48 01 00 00 48 89 fb <48> 8b 8e a8 00 00 00 48 85 c9 74 43 48 89 ca eb 0f 0f 1f 80 00
    [  532.394036] RIP  [<ffffffffc06124a8>] teql_destroy+0x18/0x100 [sch_teql]
    [  532.395127]  RSP <ffff8b7c9fdbf8e0>
    [  532.396179] CR2: 00000000000000a8
    
    Null pointer dereference happens on master->slaves dereference in
    teql_destroy() as master is null-pointer.
    
    When qdisc_create() calls teql_qdisc_init() it imediately fails after
    check "if (m->dev == dev)" because both devices are teql0, and it does
    not set qdisc_priv(sch)->m leaving it zero on error path, then
    qdisc_create() imediately calls teql_destroy() which does not expect
    zero master pointer and we get OOPS.
    
    Fixes: 87b60cfacf9f ("net_sched: fix error recovery at qdisc creation")
    Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.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 12ba6288b027b816459782fcd8d7b37ed8a16828
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Mar 30 16:43:43 2021 -0700

    net: ensure mac header is set in virtio_net_hdr_to_skb()
    
    commit 61431a5907fc36d0738e9a547c7e1556349a03e9 upstream.
    
    Commit 924a9bc362a5 ("net: check if protocol extracted by virtio_net_hdr_set_proto is correct")
    added a call to dev_parse_header_protocol() but mac_header is not yet set.
    
    This means that eth_hdr() reads complete garbage, and syzbot complained about it [1]
    
    This patch resets mac_header earlier, to get more coverage about this change.
    
    Audit of virtio_net_hdr_to_skb() callers shows that this change should be safe.
    
    [1]
    
    BUG: KASAN: use-after-free in eth_header_parse_protocol+0xdc/0xe0 net/ethernet/eth.c:282
    Read of size 2 at addr ffff888017a6200b by task syz-executor313/8409
    
    CPU: 1 PID: 8409 Comm: syz-executor313 Not tainted 5.12.0-rc2-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:79 [inline]
     dump_stack+0x141/0x1d7 lib/dump_stack.c:120
     print_address_description.constprop.0.cold+0x5b/0x2f8 mm/kasan/report.c:232
     __kasan_report mm/kasan/report.c:399 [inline]
     kasan_report.cold+0x7c/0xd8 mm/kasan/report.c:416
     eth_header_parse_protocol+0xdc/0xe0 net/ethernet/eth.c:282
     dev_parse_header_protocol include/linux/netdevice.h:3177 [inline]
     virtio_net_hdr_to_skb.constprop.0+0x99d/0xcd0 include/linux/virtio_net.h:83
     packet_snd net/packet/af_packet.c:2994 [inline]
     packet_sendmsg+0x2325/0x52b0 net/packet/af_packet.c:3031
     sock_sendmsg_nosec net/socket.c:654 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:674
     sock_no_sendpage+0xf3/0x130 net/core/sock.c:2860
     kernel_sendpage.part.0+0x1ab/0x350 net/socket.c:3631
     kernel_sendpage net/socket.c:3628 [inline]
     sock_sendpage+0xe5/0x140 net/socket.c:947
     pipe_to_sendpage+0x2ad/0x380 fs/splice.c:364
     splice_from_pipe_feed fs/splice.c:418 [inline]
     __splice_from_pipe+0x43e/0x8a0 fs/splice.c:562
     splice_from_pipe fs/splice.c:597 [inline]
     generic_splice_sendpage+0xd4/0x140 fs/splice.c:746
     do_splice_from fs/splice.c:767 [inline]
     do_splice+0xb7e/0x1940 fs/splice.c:1079
     __do_splice+0x134/0x250 fs/splice.c:1144
     __do_sys_splice fs/splice.c:1350 [inline]
     __se_sys_splice fs/splice.c:1332 [inline]
     __x64_sys_splice+0x198/0x250 fs/splice.c:1332
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
    
    Fixes: 924a9bc362a5 ("net: check if protocol extracted by virtio_net_hdr_set_proto is correct")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Balazs Nemeth <bnemeth@redhat.com>
    Cc: Willem de Bruijn <willemb@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 3d40b47bcc42ff2a73b05fe09025945b9210e4e0
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Apr 5 19:16:50 2021 +0900

    batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
    
    commit 08c27f3322fec11950b8f1384aa0f3b11d028528 upstream.
    
    KMSAN found uninitialized value at batadv_tt_prepare_tvlv_local_data()
    [1], for commit ced72933a5e8ab52 ("batman-adv: use CRC32C instead of CRC16
    in TT code") inserted 'reserved' field into "struct batadv_tvlv_tt_data"
    and commit 7ea7b4a142758dea ("batman-adv: make the TT CRC logic VLAN
    specific") moved that field to "struct batadv_tvlv_tt_vlan_data" but left
    that field uninitialized.
    
    [1] https://syzkaller.appspot.com/bug?id=07f3e6dba96f0eb3cabab986adcd8a58b9bdbe9d
    
    Reported-by: syzbot <syzbot+50ee810676e6a089487b@syzkaller.appspotmail.com>
    Tested-by: syzbot <syzbot+50ee810676e6a089487b@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Fixes: ced72933a5e8ab52 ("batman-adv: use CRC32C instead of CRC16 in TT code")
    Fixes: 7ea7b4a142758dea ("batman-adv: make the TT CRC logic VLAN specific")
    Acked-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc2a577122d828a41baa08e53d1a185b9df780b9
Author: Marek Behún <kabel@kernel.org>
Date:   Sun Feb 21 00:11:44 2021 +0100

    ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
    
    commit a26c56ae67fa9fbb45a8a232dcd7ebaa7af16086 upstream.
    
    Use the `marvell,reg-init` DT property to configure the LED[2]/INTn pin
    of the Marvell 88E1514 ethernet PHY on Turris Omnia into interrupt mode.
    
    Without this the pin is by default in LED[2] mode, and the Marvell PHY
    driver configures LED[2] into "On - Link, Blink - Activity" mode.
    
    This fixes the issue where the pca9538 GPIO/interrupt controller (which
    can't mask interrupts in HW) received too many interrupts and after a
    time started ignoring the interrupt with error message:
      IRQ 71: nobody cared
    
    There is a work in progress to have the Marvell PHY driver support
    parsing PHY LED nodes from OF and registering the LEDs as Linux LED
    class devices. Once this is done the PHY driver can also automatically
    set the pin into INTn mode if it does not find LED[2] in OF.
    
    Until then, though, we fix this via `marvell,reg-init` DT property.
    
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
    Fixes: 26ca8b52d6e1 ("ARM: dts: add support for Turris Omnia")
    Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Gregory CLEMENT <gregory.clement@bootlin.com>
    Cc: <stable@vger.kernel.org>
    Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68ce97f7feb2e0c7d66989f1ff4509d7eafb4b3b
Author: Gao Xiang <hsiangkao@redhat.com>
Date:   Tue Apr 6 12:59:29 2021 +0800

    parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers
    
    commit 4d752e5af63753ab5140fc282929b98eaa4bd12e upstream.
    
    commit b344d6a83d01 ("parisc: add support for cmpxchg on u8 pointers")
    can generate a sparse warning ("cast truncates bits from constant
    value"), which has been reported several times [1] [2] [3].
    
    The original code worked as expected, but anyway, let silence such
    sparse warning as what others did [4].
    
    [1] https://lore.kernel.org/r/202104061220.nRMBwCXw-lkp@intel.com
    [2] https://lore.kernel.org/r/202012291914.T5Agcn99-lkp@intel.com
    [3] https://lore.kernel.org/r/202008210829.KVwn7Xeh%25lkp@intel.com
    [4] https://lore.kernel.org/r/20210315131512.133720-2-jacopo+renesas@jmondi.org
    Cc: Liam Beguin <liambeguin@gmail.com>
    Cc: Helge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org # v5.8+
    Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9264bb1315cfb31a19f3693b8366f11c5b4e0082
Author: Helge Deller <deller@gmx.de>
Date:   Tue Apr 6 11:32:52 2021 +0200

    parisc: parisc-agp requires SBA IOMMU driver
    
    commit 9054284e8846b0105aad43a4e7174ca29fffbc44 upstream.
    
    Add a dependency to the SBA IOMMU driver to avoid:
    ERROR: modpost: "sba_list" [drivers/char/agp/parisc-agp.ko] undefined!
    
    Reported-by: kernel test robot <lkp@intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit badefcb13da54bc249dd6e848db4ab4779df82ba
Author: Jack Qiu <jack.qiu@huawei.com>
Date:   Fri Apr 9 13:27:35 2021 -0700

    fs: direct-io: fix missing sdio->boundary
    
    commit df41872b68601059dd4a84858952dcae58acd331 upstream.
    
    I encountered a hung task issue, but not a performance one.  I run DIO
    on a device (need lba continuous, for example open channel ssd), maybe
    hungtask in below case:
    
      DIO:                                          Checkpoint:
      get addr A(at boundary), merge into BIO,
      no submit because boundary missing
                                                    flush dirty data(get addr A+1), wait IO(A+1)
                                                    writeback timeout, because DIO(A) didn't submit
      get addr A+2 fail, because checkpoint is doing
    
    dio_send_cur_page() may clear sdio->boundary, so prevent it from missing
    a boundary.
    
    Link: https://lkml.kernel.org/r/20210322042253.38312-1-jack.qiu@huawei.com
    Fixes: b1058b981272 ("direct-io: submit bio after boundary buffer is added to it")
    Signed-off-by: Jack Qiu <jack.qiu@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f77ee7a287f578f0e726649117e06afff322b019
Author: Wengang Wang <wen.gang.wang@oracle.com>
Date:   Fri Apr 9 13:27:29 2021 -0700

    ocfs2: fix deadlock between setattr and dio_end_io_write
    
    commit 90bd070aae6c4fb5d302f9c4b9c88be60c8197ec upstream.
    
    The following deadlock is detected:
    
      truncate -> setattr path is waiting for pending direct IO to be done (inode->i_dio_count become zero) with inode->i_rwsem held (down_write).
    
      PID: 14827  TASK: ffff881686a9af80  CPU: 20  COMMAND: "ora_p005_hrltd9"
       #0  __schedule at ffffffff818667cc
       #1  schedule at ffffffff81866de6
       #2  inode_dio_wait at ffffffff812a2d04
       #3  ocfs2_setattr at ffffffffc05f322e [ocfs2]
       #4  notify_change at ffffffff812a5a09
       #5  do_truncate at ffffffff812808f5
       #6  do_sys_ftruncate.constprop.18 at ffffffff81280cf2
       #7  sys_ftruncate at ffffffff81280d8e
       #8  do_syscall_64 at ffffffff81003949
       #9  entry_SYSCALL_64_after_hwframe at ffffffff81a001ad
    
    dio completion path is going to complete one direct IO (decrement
    inode->i_dio_count), but before that it hung at locking inode->i_rwsem:
    
       #0  __schedule+700 at ffffffff818667cc
       #1  schedule+54 at ffffffff81866de6
       #2  rwsem_down_write_failed+536 at ffffffff8186aa28
       #3  call_rwsem_down_write_failed+23 at ffffffff8185a1b7
       #4  down_write+45 at ffffffff81869c9d
       #5  ocfs2_dio_end_io_write+180 at ffffffffc05d5444 [ocfs2]
       #6  ocfs2_dio_end_io+85 at ffffffffc05d5a85 [ocfs2]
       #7  dio_complete+140 at ffffffff812c873c
       #8  dio_aio_complete_work+25 at ffffffff812c89f9
       #9  process_one_work+361 at ffffffff810b1889
      #10  worker_thread+77 at ffffffff810b233d
      #11  kthread+261 at ffffffff810b7fd5
      #12  ret_from_fork+62 at ffffffff81a0035e
    
    Thus above forms ABBA deadlock.  The same deadlock was mentioned in
    upstream commit 28f5a8a7c033 ("ocfs2: should wait dio before inode lock
    in ocfs2_setattr()").  It seems that that commit only removed the
    cluster lock (the victim of above dead lock) from the ABBA deadlock
    party.
    
    End-user visible effects: Process hang in truncate -> ocfs2_setattr path
    and other processes hang at ocfs2_dio_end_io_write path.
    
    This is to fix the deadlock itself.  It removes inode_lock() call from
    dio completion path to remove the deadlock and add ip_alloc_sem lock in
    setattr path to synchronize the inode modifications.
    
    [wen.gang.wang@oracle.com: remove the "had_alloc_lock" as suggested]
      Link: https://lkml.kernel.org/r/20210402171344.1605-1-wen.gang.wang@oracle.com
    
    Link: https://lkml.kernel.org/r/20210331203654.3911-1-wen.gang.wang@oracle.com
    Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43d2e477bb0fb6a096ec4d9bf20687e915135b6e
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Fri Apr 9 13:27:32 2021 -0700

    ia64: fix user_stack_pointer() for ptrace()
    
    commit 7ad1e366167837daeb93d0bacb57dee820b0b898 upstream.
    
    ia64 has two stacks:
    
     - memory stack (or stack), pointed at by by r12
    
     - register backing store (register stack), pointed at by
       ar.bsp/ar.bspstore with complications around dirty
       register frame on CPU.
    
    In [1] Dmitry noticed that PTRACE_GET_SYSCALL_INFO returns the register
    stack instead memory stack.
    
    The bug comes from the fact that user_stack_pointer() and
    current_user_stack_pointer() don't return the same register:
    
      ulong user_stack_pointer(struct pt_regs *regs) { return regs->ar_bspstore; }
      #define current_user_stack_pointer() (current_pt_regs()->r12)
    
    The change gets both back in sync.
    
    I think ptrace(PTRACE_GET_SYSCALL_INFO) is the only affected user by
    this bug on ia64.
    
    The change fixes 'rt_sigreturn.gen.test' strace test where it was
    observed initially.
    
    Link: https://bugs.gentoo.org/769614 [1]
    Link: https://lkml.kernel.org/r/20210331084447.2561532-1-slyfox@gentoo.org
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
    Reported-by: Dmitry V. Levin <ldv@altlinux.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d230ed064b6a52c5ac144ca9af16ce516d48a2d
Author: Muhammad Usama Anjum <musamaanjum@gmail.com>
Date:   Fri Apr 9 03:01:29 2021 +0500

    net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
    
    commit 864db232dc7036aa2de19749c3d5be0143b24f8f upstream.
    
    nlh is being checked for validtity two times when it is dereferenced in
    this function. Check for validity again when updating the flags through
    nlh pointer to make the dereferencing safe.
    
    CC: <stable@vger.kernel.org>
    Addresses-Coverity: ("NULL pointer dereference")
    Signed-off-by: Muhammad Usama Anjum <musamaanjum@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9697faba3a144454d1f0aac47d27d150c0bc2cc
Author: Luca Fancellu <luca.fancellu@arm.com>
Date:   Tue Apr 6 11:51:04 2021 +0100

    xen/evtchn: Change irq_info lock to raw_spinlock_t
    
    commit d120198bd5ff1d41808b6914e1eb89aff937415c upstream.
    
    Unmask operation must be called with interrupt disabled,
    on preempt_rt spin_lock_irqsave/spin_unlock_irqrestore
    don't disable/enable interrupts, so use raw_* implementation
    and change lock variable in struct irq_info from spinlock_t
    to raw_spinlock_t
    
    Cc: stable@vger.kernel.org
    Fixes: 25da4618af24 ("xen/events: don't unmask an event channel when an eoi is pending")
    Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
    Reviewed-by: Julien Grall <jgrall@amazon.com>
    Reviewed-by: Wei Liu <wei.liu@kernel.org>
    Link: https://lore.kernel.org/r/20210406105105.10141-1-luca.fancellu@arm.com
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 892e1f065c1b3c99a12a1a41683f9ddbc22abb3e
Author: Xiaoming Ni <nixiaoming@huawei.com>
Date:   Thu Mar 25 11:51:13 2021 +0800

    nfc: Avoid endless loops caused by repeated llcp_sock_connect()
    
    commit 4b5db93e7f2afbdfe3b78e37879a85290187e6f1 upstream.
    
    When sock_wait_state() returns -EINPROGRESS, "sk->sk_state" is
     LLCP_CONNECTING. In this case, llcp_sock_connect() is repeatedly invoked,
     nfc_llcp_sock_link() will add sk to local->connecting_sockets twice.
     sk->sk_node->next will point to itself, that will make an endless loop
     and hang-up the system.
    To fix it, check whether sk->sk_state is LLCP_CONNECTING in
     llcp_sock_connect() to avoid repeated invoking.
    
    Fixes: b4011239a08e ("NFC: llcp: Fix non blocking sockets connections")
    Reported-by: "kiyin(尹亮)" <kiyin@tencent.com>
    Link: https://www.openwall.com/lists/oss-security/2020/11/01/1
    Cc: <stable@vger.kernel.org> #v3.11
    Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02b99cae71335f9f38d0a164ffe3a7a1328f44fc
Author: Xiaoming Ni <nixiaoming@huawei.com>
Date:   Thu Mar 25 11:51:12 2021 +0800

    nfc: fix memory leak in llcp_sock_connect()
    
    commit 7574fcdbdcb335763b6b322f6928dc0fd5730451 upstream.
    
    In llcp_sock_connect(), use kmemdup to allocate memory for
     "llcp_sock->service_name". The memory is not released in the sock_unlink
    label of the subsequent failure branch.
    As a result, memory leakage occurs.
    
    fix CVE-2020-25672
    
    Fixes: d646960f7986 ("NFC: Initial LLCP support")
    Reported-by: "kiyin(尹亮)" <kiyin@tencent.com>
    Link: https://www.openwall.com/lists/oss-security/2020/11/01/1
    Cc: <stable@vger.kernel.org> #v3.3
    Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1d5c07a3b597766bbf5bf61083cd65e72034144
Author: Xiaoming Ni <nixiaoming@huawei.com>
Date:   Thu Mar 25 11:51:11 2021 +0800

    nfc: fix refcount leak in llcp_sock_connect()
    
    commit 8a4cd82d62b5ec7e5482333a72b58a4eea4979f0 upstream.
    
    nfc_llcp_local_get() is invoked in llcp_sock_connect(),
    but nfc_llcp_local_put() is not invoked in subsequent failure branches.
    As a result, refcount leakage occurs.
    To fix it, add calling nfc_llcp_local_put().
    
    fix CVE-2020-25671
    Fixes: c7aa12252f51 ("NFC: Take a reference on the LLCP local pointer when creating a socket")
    Reported-by: "kiyin(尹亮)" <kiyin@tencent.com>
    Link: https://www.openwall.com/lists/oss-security/2020/11/01/1
    Cc: <stable@vger.kernel.org> #v3.6
    Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 538a6ff11516d38a61e237d2d2dc04c30c845fbe
Author: Xiaoming Ni <nixiaoming@huawei.com>
Date:   Thu Mar 25 11:51:10 2021 +0800

    nfc: fix refcount leak in llcp_sock_bind()
    
    commit c33b1cc62ac05c1dbb1cdafe2eb66da01c76ca8d upstream.
    
    nfc_llcp_local_get() is invoked in llcp_sock_bind(),
    but nfc_llcp_local_put() is not invoked in subsequent failure branches.
    As a result, refcount leakage occurs.
    To fix it, add calling nfc_llcp_local_put().
    
    fix CVE-2020-25670
    Fixes: c7aa12252f51 ("NFC: Take a reference on the LLCP local pointer when creating a socket")
    Reported-by: "kiyin(尹亮)" <kiyin@tencent.com>
    Link: https://www.openwall.com/lists/oss-security/2020/11/01/1
    Cc: <stable@vger.kernel.org> #v3.6
    Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42ccf59315f8c25fb51d18f2d71af06e27920af8
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Mar 24 14:27:10 2021 +0100

    ASoC: intel: atom: Stop advertising non working S24LE support
    
    commit aa65bacdb70e549a81de03ec72338e1047842883 upstream.
    
    The SST firmware's media and deep-buffer inputs are hardcoded to
    S16LE, the corresponding DAIs don't have a hw_params callback and
    their prepare callback also does not take the format into account.
    
    So far the advertising of non working S24LE support has not caused
    issues because pulseaudio defaults to S16LE, but changing pulse-audio's
    config to use S24LE will result in broken sound.
    
    Pipewire is replacing pulse now and pipewire prefers S24LE over S16LE
    when available, causing the problem of the broken S24LE support to
    come to the surface now.
    
    Cc: stable@vger.kernel.org
    BugLink: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/866
    Fixes: 098c2cd281409 ("ASoC: Intel: Atom: add 24-bit support for media playback and capture")
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20210324132711.216152-2-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cf440ffbbd7373fd7a2405fb1ab146ea4305073
Author: Jonas Holmberg <jonashg@axis.com>
Date:   Wed Apr 7 09:54:28 2021 +0200

    ALSA: aloop: Fix initialization of controls
    
    commit 168632a495f49f33a18c2d502fc249d7610375e9 upstream.
    
    Add a control to the card before copying the id so that the numid field
    is initialized in the copy. Otherwise the numid field of active_id,
    format_id, rate_id and channels_id will be the same (0) and
    snd_ctl_notify() will not queue the events properly.
    
    Signed-off-by: Jonas Holmberg <jonashg@axis.com>
    Reviewed-by: Jaroslav Kysela <perex@perex.cz>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210407075428.2666787-1-jonashg@axis.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>