commit b46092c7497e5aaede15b10f162e32d6473f1862
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 27 09:59:56 2021 +0200

    Linux 5.14.15
    
    Link: https://lore.kernel.org/r/20211025191017.756020307@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Fox Chen <foxhlchen@gmail.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96e4ea34f6d7c3df2c8138656ccb7311633df04b
Author: Fabien Dessenne <fabien.dessenne@foss.st.com>
Date:   Fri Oct 8 14:25:17 2021 +0200

    pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
    
    commit c370bb474016ab9edfdabd7c08a88dd13a71ddbd upstream.
    
    When resuming from low power, the driver attempts to restore the
    configuration of some pins. This is done by a call to:
      stm32_pinctrl_restore_gpio_regs(struct stm32_pinctrl *pctl, u32 pin)
    where 'pin' must be a valid pin value (i.e. matching some 'groups->pin').
    Fix the current implementation which uses some wrong 'pin' value.
    
    Fixes: e2f3cf18c3e2 ("pinctrl: stm32: add suspend/resume management")
    Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
    Link: https://lore.kernel.org/r/20211008122517.617633-1-fabien.dessenne@foss.st.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4850e9e3c6a34f7e30a6d073629d98c826698033
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Wed Sep 8 19:25:59 2021 +0100

    ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
    
    commit 9d417cbe36eee7afdd85c2e871685f8dab7c2dba upstream.
    
    tglx notes:
      This function [futex_detect_cmpxchg] is only needed when an
      architecture has to runtime discover whether the CPU supports it or
      not.  ARM has unconditional support for this, so the obvious thing to
      do is the below.
    
    Fixes linkage failure from Clang randconfigs:
    kernel/futex.o:(.text.fixup+0x5c): relocation truncated to fit: R_ARM_JUMP24 against `.init.text'
    and boot failures for CONFIG_THUMB2_KERNEL.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/325
    
    Comments from Nick Desaulniers:
    
     See-also: 03b8c7b623c8 ("futex: Allow architectures to skip
     futex_atomic_cmpxchg_inatomic() test")
    
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Reported-by: Nathan Chancellor <nathan@kernel.org>
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: stable@vger.kernel.org # v3.14+
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80344938e468f43dc0f292e6d3f5fc77ca7383f6
Author: Sasha Neftin <sasha.neftin@intel.com>
Date:   Wed Sep 22 09:54:49 2021 +0300

    e1000e: Separate TGP board type from SPT
    
    [ Upstream commit 280db5d420090a24e4e41f9ddcbf37920a598572 ]
    
    We have the same LAN controller on different PCHs. Separate TGP board
    type from SPT which will allow for specific fixes to be applied for
    TGP platforms.
    
    Suggested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
    Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Tested-by: Mark Pearson <markpearson@lenovo.com>
    Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c4e87ba11eb331dca2315d484d08441b8c13193
Author: Yanfei Xu <yanfei.xu@windriver.com>
Date:   Sun Sep 26 12:53:13 2021 +0800

    net: mdiobus: Fix memory leak in __mdiobus_register
    
    commit ab609f25d19858513919369ff3d9a63c02cd9e2e upstream.
    
    Once device_register() failed, we should call put_device() to
    decrement reference count for cleanup. Or it will cause memory
    leak.
    
    BUG: memory leak
    unreferenced object 0xffff888114032e00 (size 256):
      comm "kworker/1:3", pid 2960, jiffies 4294943572 (age 15.920s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 08 2e 03 14 81 88 ff ff  ................
        08 2e 03 14 81 88 ff ff 90 76 65 82 ff ff ff ff  .........ve.....
      backtrace:
        [<ffffffff8265cfab>] kmalloc include/linux/slab.h:591 [inline]
        [<ffffffff8265cfab>] kzalloc include/linux/slab.h:721 [inline]
        [<ffffffff8265cfab>] device_private_init drivers/base/core.c:3203 [inline]
        [<ffffffff8265cfab>] device_add+0x89b/0xdf0 drivers/base/core.c:3253
        [<ffffffff828dd643>] __mdiobus_register+0xc3/0x450 drivers/net/phy/mdio_bus.c:537
        [<ffffffff828cb835>] __devm_mdiobus_register+0x75/0xf0 drivers/net/phy/mdio_devres.c:87
        [<ffffffff82b92a00>] ax88772_init_mdio drivers/net/usb/asix_devices.c:676 [inline]
        [<ffffffff82b92a00>] ax88772_bind+0x330/0x480 drivers/net/usb/asix_devices.c:786
        [<ffffffff82baa33f>] usbnet_probe+0x3ff/0xdf0 drivers/net/usb/usbnet.c:1745
        [<ffffffff82c36e17>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
        [<ffffffff82661d17>] call_driver_probe drivers/base/dd.c:517 [inline]
        [<ffffffff82661d17>] really_probe.part.0+0xe7/0x380 drivers/base/dd.c:596
        [<ffffffff826620bc>] really_probe drivers/base/dd.c:558 [inline]
        [<ffffffff826620bc>] __driver_probe_device+0x10c/0x1e0 drivers/base/dd.c:751
        [<ffffffff826621ba>] driver_probe_device+0x2a/0x120 drivers/base/dd.c:781
        [<ffffffff82662a26>] __device_attach_driver+0xf6/0x140 drivers/base/dd.c:898
        [<ffffffff8265eca7>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:427
        [<ffffffff826625a2>] __device_attach+0x122/0x260 drivers/base/dd.c:969
        [<ffffffff82660916>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:487
        [<ffffffff8265cd0b>] device_add+0x5fb/0xdf0 drivers/base/core.c:3359
        [<ffffffff82c343b9>] usb_set_configuration+0x9d9/0xb90 drivers/usb/core/message.c:2170
        [<ffffffff82c4473c>] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
    
    BUG: memory leak
    unreferenced object 0xffff888116f06900 (size 32):
      comm "kworker/0:2", pid 2670, jiffies 4294944448 (age 7.160s)
      hex dump (first 32 bytes):
        75 73 62 2d 30 30 31 3a 30 30 33 00 00 00 00 00  usb-001:003.....
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<ffffffff81484516>] kstrdup+0x36/0x70 mm/util.c:60
        [<ffffffff814845a3>] kstrdup_const+0x53/0x80 mm/util.c:83
        [<ffffffff82296ba2>] kvasprintf_const+0xc2/0x110 lib/kasprintf.c:48
        [<ffffffff82358d4b>] kobject_set_name_vargs+0x3b/0xe0 lib/kobject.c:289
        [<ffffffff826575f3>] dev_set_name+0x63/0x90 drivers/base/core.c:3147
        [<ffffffff828dd63b>] __mdiobus_register+0xbb/0x450 drivers/net/phy/mdio_bus.c:535
        [<ffffffff828cb835>] __devm_mdiobus_register+0x75/0xf0 drivers/net/phy/mdio_devres.c:87
        [<ffffffff82b92a00>] ax88772_init_mdio drivers/net/usb/asix_devices.c:676 [inline]
        [<ffffffff82b92a00>] ax88772_bind+0x330/0x480 drivers/net/usb/asix_devices.c:786
        [<ffffffff82baa33f>] usbnet_probe+0x3ff/0xdf0 drivers/net/usb/usbnet.c:1745
        [<ffffffff82c36e17>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
        [<ffffffff82661d17>] call_driver_probe drivers/base/dd.c:517 [inline]
        [<ffffffff82661d17>] really_probe.part.0+0xe7/0x380 drivers/base/dd.c:596
        [<ffffffff826620bc>] really_probe drivers/base/dd.c:558 [inline]
        [<ffffffff826620bc>] __driver_probe_device+0x10c/0x1e0 drivers/base/dd.c:751
        [<ffffffff826621ba>] driver_probe_device+0x2a/0x120 drivers/base/dd.c:781
        [<ffffffff82662a26>] __device_attach_driver+0xf6/0x140 drivers/base/dd.c:898
        [<ffffffff8265eca7>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:427
        [<ffffffff826625a2>] __device_attach+0x122/0x260 drivers/base/dd.c:969
    
    Reported-by: syzbot+398e7dc692ddbbb4cfec@syzkaller.appspotmail.com
    Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f4356963624c97bd09c539c5f2bd1b1d35b7ab5
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Mon Sep 27 14:39:21 2021 +0200

    bpf, test, cgroup: Use sk_{alloc,free} for test cases
    
    commit 435b08ec0094ac1e128afe6cfd0d9311a8c617a7 upstream.
    
    BPF test infra has some hacks in place which kzalloc() a socket and perform
    minimum init via sock_net_set() and sock_init_data(). As a result, the sk's
    skcd->cgroup is NULL since it didn't go through proper initialization as it
    would have been the case from sk_alloc(). Rather than re-adding a NULL test
    in sock_cgroup_ptr() just for this, use sk_{alloc,free}() pair for the test
    socket. The latter also allows to get rid of the bpf_sk_storage_free() special
    case.
    
    Fixes: 8520e224f547 ("bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode")
    Fixes: b7a1848e8398 ("bpf: add BPF_PROG_TEST_RUN support for flow dissector")
    Fixes: 2cb494a36c98 ("bpf: add tests for direct packet access from CGROUP_SKB")
    Reported-by: syzbot+664b58e9a40fbb2cec71@syzkaller.appspotmail.com
    Reported-by: syzbot+33f36d0754d4c5c0e102@syzkaller.appspotmail.com
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Tested-by: syzbot+664b58e9a40fbb2cec71@syzkaller.appspotmail.com
    Tested-by: syzbot+33f36d0754d4c5c0e102@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/bpf/20210927123921.21535-2-daniel@iogearbox.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e5d794a2743f5a1e13ee1066ce37711f2696044
Author: Niklas Schnelle <schnelle@linux.ibm.com>
Date:   Wed Sep 22 15:55:12 2021 +0200

    s390/pci: fix zpci_zdev_put() on reserve
    
    commit a46044a92add6a400f4dada7b943b30221f7cc80 upstream.
    
    Since commit 2a671f77ee49 ("s390/pci: fix use after free of zpci_dev")
    the reference count of a zpci_dev is incremented between
    pcibios_add_device() and pcibios_release_device() which was supposed to
    prevent the zpci_dev from being freed while the common PCI code has
    access to it. It was missed however that the handling of zPCI
    availability events assumed that once zpci_zdev_put() was called no
    later availability event would still see the device. With the previously
    mentioned commit however this assumption no longer holds and we must
    make sure that we only drop the initial long-lived reference the zPCI
    subsystem holds exactly once.
    
    Do so by introducing a zpci_device_reserved() function that handles when
    a device is reserved. Here we make sure the zpci_dev will not be
    considered for further events by removing it from the zpci_list.
    
    This also means that the device actually stays in the
    ZPCI_FN_STATE_RESERVED state between the time we know it has been
    reserved and the final reference going away. We thus need to consider it
    a real state instead of just a conceptual state after the removal. The
    final cleanup of PCI resources, removal from zbus, and destruction of
    the IOMMU stays in zpci_release_device() to make sure holders of the
    reference do see valid data until the release.
    
    Fixes: 2a671f77ee49 ("s390/pci: fix use after free of zpci_dev")
    Cc: stable@vger.kernel.org
    Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e27170d5f2fca8a42d610e0c87e52c41cfae7a21
Author: Niklas Schnelle <schnelle@linux.ibm.com>
Date:   Fri Aug 6 10:28:40 2021 +0200

    s390/pci: cleanup resources only if necessary
    
    commit 02368b7cf6c7badefa13741aed7a8b91d9a11b19 upstream.
    
    It's currently safe to call zpci_cleanup_bus_resources() even if the
    resources were never created but it makes no sense so check
    zdev->has_resources before we call zpci_cleanup_bus_resources() in
    zpci_release_device().
    
    Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
    Acked-by: Pierre Morel <pmorel@linux.ibm.com>
    Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2be38f02ec891ce3cdcd93649960a207866a9b8a
Author: Dexuan Cui <decui@microsoft.com>
Date:   Thu Oct 7 21:35:46 2021 -0700

    scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
    
    commit 50b6cb3516365cb69753b006be2b61c966b70588 upstream.
    
    After commit ea2f0f77538c ("scsi: core: Cap scsi_host cmd_per_lun at
    can_queue"), a 416-CPU VM running on Hyper-V hangs during boot because the
    hv_storvsc driver sets scsi_driver.can_queue to an integer value that
    exceeds SHRT_MAX, and hence scsi_add_host_with_dma() sets
    shost->cmd_per_lun to a negative "short" value.
    
    Use min_t(int, ...) to work around the issue.
    
    Link: https://lore.kernel.org/r/20211008043546.6006-1-decui@microsoft.com
    Fixes: ea2f0f77538c ("scsi: core: Cap scsi_host cmd_per_lun at can_queue")
    Cc: stable@vger.kernel.org
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff261f9aa65436bdce99313fcf590fd524ec3637
Author: Ian Kent <raven@themaw.net>
Date:   Thu Sep 23 15:13:39 2021 +0800

    autofs: fix wait name hash calculation in autofs_wait()
    
    commit 25f54d08f12feb593e62cc2193fedefaf7825301 upstream.
    
    There's a mistake in commit 2be7828c9fefc ("get rid of autofs_getpath()")
    that affects kernels from v5.13.0, basically missed because of me not
    fully testing the change for Al.
    
    The problem is that the hash calculation for the wait name qstr hasn't
    been updated to account for the change to use dentry_path_raw(). This
    prevents the correct matching an existing wait resulting in multiple
    notifications being sent to the daemon for the same mount which must
    not occur.
    
    The problem wasn't discovered earlier because it only occurs when
    multiple processes trigger a request for the same mount concurrently
    so it only shows up in more aggressive testing.
    
    Fixes: 2be7828c9fefc ("get rid of autofs_getpath()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ian Kent <raven@themaw.net>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1009f098dfbeebe06b9bf9df04b1852bf8eba87b
Author: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
Date:   Fri Jan 8 14:34:13 2021 -0800

    drm/kmb: Limit supported mode to 1080p
    
    [ Upstream commit a79f40cccd4644c32f6d5ae1ccf091a262e1dc57 ]
    
    KMB only supports single resolution(1080p), this commit checks for
    1920x1080x60 or 1920x1080x59 in crtc_mode_valid.
    Also, modes with vfp < 4 are not supported in KMB display. This change
    prunes display modes with vfp < 4.
    
    v2: added vfp check
    
    Fixes: 7f7b96a8a0a1 ("drm/kmb: Add support for KeemBay Display")
    Co-developed-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Link:https://patchwork.freedesktop.org/patch/msgid/20211013233632.471892-2-anitha.chrisanthus@intel.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 217d42e8b83534789f087871009c16380b247241
Author: Edmund Dea <edmund.j.dea@intel.com>
Date:   Fri Dec 4 14:34:29 2020 -0800

    drm/kmb: Enable alpha blended second plane
    
    [ Upstream commit c026565fe9be813fe826f7e5533ed763283af5f0 ]
    
    Enable one additional plane that is alpha blended on top
    of the primary plane.
    
    This also fixes the below warnings when building with
    -Warray-bounds:
    
    drivers/gpu/drm/kmb/kmb_plane.c:135:20: warning: array subscript 3 is
    above array bounds of 'struct layer_status[1]' [-Warray-bounds]
    drivers/gpu/drm/kmb/kmb_plane.c:132:20: warning: array subscript 2 is
    above array bounds of 'struct layer_status[1]' [-Warray-bounds]
    drivers/gpu/drm/kmb/kmb_plane.c:129:20: warning: array subscript 1 is
    above array bounds of 'struct layer_status[1]' [-Warray-bounds]
    
    v2: corrected previous patch dependecies so it builds
    
    Signed-off-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.kernel.org/project/dri-devel/patch/20210728003126.1425028-13-anitha.chrisanthus@intel.com/
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c1ad040dbea8b6438cdf38abafa195e9285c373c
Author: Maor Dickman <maord@nvidia.com>
Date:   Thu Oct 7 16:05:38 2021 +0300

    net/mlx5: Lag, change multipath and bonding to be mutually exclusive
    
    [ Upstream commit 14fe2471c62816ba82546fb68369d957c3a58b59 ]
    
    Both multipath and bonding events are changing the HW LAG state
    independently.
    Handling one of the features events while the other is already
    enabled can cause unwanted behavior, for example handling
    bonding event while multipath enabled will disable the lag and
    cause multipath to stop working.
    
    Fix it by ignoring bonding event while in multipath and ignoring FIB
    events while in bonding mode.
    
    Fixes: 544fe7c2e654 ("net/mlx5e: Activate HW multipath and handle port affinity based on FIB events")
    Signed-off-by: Maor Dickman <maord@nvidia.com>
    Reviewed-by: Roi Dayan <roid@nvidia.com>
    Reviewed-by: Mark Bloch <mbloch@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d2ec7d208d8e4a9fbcf02d8942a4529f65dabc2d
Author: Mark Bloch <mbloch@nvidia.com>
Date:   Tue Aug 3 16:19:57 2021 -0700

    net/mlx5: Lag, move lag destruction to a workqueue
    
    [ Upstream commit 63d4a9afbcee4167ffb0d126b23b8884b15e5837 ]
    
    If a netdev is removed from the lag the lag should be destroyed.
    With downstream patches this might trigger a reconfiguration of
    representors on a different eswitch and such we don't have the proper
    locking to so from this path. Move the destruction to be done by the
    workqueue.
    
    As the destruction won't affect the netdev side it okay to do so.
    The RDMA side will be reconfigured and it already coded to handle such
    reconfiguration.
    
    Signed-off-by: Mark Bloch <mbloch@nvidia.com>
    Reviewed-by: Mark Zhang <markzhang@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42b6431f1c171cc0728db26f86ad41197f7fc107
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date:   Tue Oct 19 22:16:32 2021 +0800

    net: hns3: fix for miscalculation of rx unused desc
    
    [ Upstream commit 9f9f0f19994b42b3e5e8735d41b9c5136828a76c ]
    
    rx unused desc is the desc that need attatching new buffer
    before refilling to hw to receive new packet, the number of
    desc need attatching new buffer is calculated using next_to_use
    and next_to_clean. when next_to_use == next_to_clean, currently
    hns3 driver assumes that all the desc has the buffer attatched,
    but 'next_to_use == next_to_clean' also means all the desc need
    attatching new buffer if hw has comsumed all the desc and the
    driver has not attatched any buffer to the desc yet.
    
    This patch adds 'refill' in desc_cb to indicate whether a new
    buffer has been refilled to a desc.
    
    Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1972f14f16e4fa12add7c112d34c5348252468c
Author: Woody Lin <woodylin@google.com>
Date:   Tue Oct 12 16:35:21 2021 +0800

    sched/scs: Reset the shadow stack when idle_task_exit
    
    [ Upstream commit 63acd42c0d4942f74710b11c38602fb14dea7320 ]
    
    Commit f1a0a376ca0c ("sched/core: Initialize the idle task with
    preemption disabled") removed the init_idle() call from
    idle_thread_get(). This was the sole call-path on hotplug that resets
    the Shadow Call Stack (scs) Stack Pointer (sp).
    
    Not resetting the scs-sp leads to scs overflow after enough hotplug
    cycles. Therefore add an explicit scs_task_reset() to the hotplug code
    to make sure the scs-sp does get reset on hotplug.
    
    Fixes: f1a0a376ca0c ("sched/core: Initialize the idle task with preemption disabled")
    Signed-off-by: Woody Lin <woodylin@google.com>
    [peterz: Changelog]
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
    Link: https://lore.kernel.org/r/20211012083521.973587-1-woodylin@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4813d3085171dc3b2bfbd0b7e492fcc0a289eab
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Mon Oct 18 15:16:19 2021 -0700

    mm/thp: decrease nr_thps in file's mapping on THP split
    
    [ Upstream commit 1ca7554d05ac038c98271f8968ed821266ecaa9c ]
    
    Decrease nr_thps counter in file's mapping to ensure that the page cache
    won't be dropped excessively on file write access if page has been
    already split.
    
    I've tried a test scenario running a big binary, kernel remaps it with
    THPs, then force a THP split with /sys/kernel/debug/split_huge_pages.
    During any further open of that binary with O_RDWR or O_WRITEONLY kernel
    drops page cache for it, because of non-zero thps counter.
    
    Link: https://lkml.kernel.org/r/20211012120237.2600-1-m.szyprowski@samsung.com
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Fixes: 09d91cda0e82 ("mm,thp: avoid writes to file with THP in pagecache")
    Fixes: 06d3eff62d9d ("mm/thp: fix node page state in split_huge_page_to_list()")
    Acked-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reviewed-by: Yang Shi <shy828301@gmail.com>
    Cc: <sfoon.kim@samsung.com>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Hillf Danton <hdanton@sina.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: William Kucharski <william.kucharski@oracle.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7fbb56e6c941d9f59437b96412a348e66388d3e
Author: Joy Gu <jgu@purestorage.com>
Date:   Tue Oct 12 12:18:33 2021 -0700

    scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
    
    [ Upstream commit 7fb223d0ad801f633c78cbe42b1d1b55f5d163ad ]
    
    Commit 8c0eb596baa5 ("[SCSI] qla2xxx: Fix a memory leak in an error path of
    qla2x00_process_els()"), intended to change:
    
            bsg_job->request->msgcode == FC_BSG_HST_ELS_NOLOGIN
    
    to:
    
            bsg_job->request->msgcode != FC_BSG_RPT_ELS
    
    but changed it to:
    
            bsg_job->request->msgcode == FC_BSG_RPT_ELS
    
    instead.
    
    Change the == to a != to avoid leaking the fcport structure or freeing
    unallocated memory.
    
    Link: https://lore.kernel.org/r/20211012191834.90306-2-jgu@purestorage.com
    Fixes: 8c0eb596baa5 ("[SCSI] qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()")
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Joy Gu <jgu@purestorage.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c8c1b2183fb8daedf6df77424e6f2869bb0632dc
Author: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Date:   Thu Oct 14 11:24:25 2021 +0530

    scsi: mpi3mr: Fix duplicate device entries when scanning through sysfs
    
    [ Upstream commit 97e6ea6d78064e7f1e9e19c45dc690aabbb71297 ]
    
    When scanning devices through the 'scan' attribute in sysfs, the user will
    observe duplicate device entries in lsscsi command output.
    
    Set the shost's max_channel to zero to avoid this.
    
    Link: https://lore.kernel.org/r/20211014055425.30719-1-sreekanth.reddy@broadcom.com
    Fixes: 824a156633df ("scsi: mpi3mr: Base driver code")
    Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce527668277c6da9d9d7bfc2c1ce08b1154e8f0e
Author: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Date:   Thu Oct 7 14:28:28 2021 +0200

    scsi: storvsc: Fix validation for unsolicited incoming packets
    
    [ Upstream commit 6fd13d699d24beaa28310848fe65fd898fbb9043 ]
    
    The validation on the length of incoming packets performed in
    storvsc_on_channel_callback() does not apply to unsolicited packets with ID
    of 0 sent by Hyper-V.  Adjust the validation for such unsolicited packets.
    
    Link: https://lore.kernel.org/r/20211007122828.469289-1-parri.andrea@gmail.com
    Fixes: 91b1b640b834b2 ("scsi: storvsc: Validate length of incoming packet in storvsc_on_channel_callback()")
    Reported-by: Dexuan Cui <decui@microsoft.com>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 08d82a9b65e71257c0d4f65637da0d85be2a6eee
Author: Mike Christie <michael.christie@oracle.com>
Date:   Sun Oct 10 11:19:04 2021 -0500

    scsi: iscsi: Fix set_param() handling
    
    [ Upstream commit 187a580c9e7895978dcd1e627b9c9e7e3d13ca96 ]
    
    In commit 9e67600ed6b8 ("scsi: iscsi: Fix race condition between login and
    sync thread") we meant to add a check where before we call ->set_param() we
    make sure the iscsi_cls_connection is bound. The problem is that between
    versions 4 and 5 of the patch the deletion of the unchecked set_param()
    call was dropped so we ended up with 2 calls. As a result we can still hit
    a crash where we access the unbound connection on the first call.
    
    This patch removes that first call.
    
    Fixes: 9e67600ed6b8 ("scsi: iscsi: Fix race condition between login and sync thread")
    Link: https://lore.kernel.org/r/20211010161904.60471-1-michael.christie@oracle.com
    Reviewed-by: Lee Duncan <lduncan@suse.com>
    Reviewed-by: Li Feng <fengli@smartx.com>
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6408a4c8da2f5b49785626e289e546aadb44c316
Author: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
Date:   Thu Oct 7 19:21:15 2021 +0530

    ASoC: codec: wcd938x: Add irq config support
    
    [ Upstream commit 214174d9f56c7f81f4860a26b6b8b961a6b92654 ]
    
    This patch fixes compilation error in wcd98x codec driver.
    
    Fixes: 045442228868 ("ASoC: codecs: wcd938x: add audio routing and Kconfig")
    
    Signed-off-by: Venkata Prasad Potturu <potturu@codeaurora.org>
    Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
    Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/1633614675-27122-1-git-send-email-srivasam@codeaurora.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9eb2aaede63292b99d63121ede2723e089c7c9f3
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Fri Oct 15 21:19:33 2021 -0700

    Input: snvs_pwrkey - add clk handling
    
    [ Upstream commit d997cc1715df7b6c3df798881fb9941acf0079f8 ]
    
    On i.MX7S and i.MX8M* (but not i.MX6*) the pwrkey device has an
    associated clock. Accessing the registers requires that this clock is
    enabled. Binding the driver on at least i.MX7S and i.MX8MP while not
    having the clock enabled results in a complete hang of the machine.
    (This usually only happens if snvs_pwrkey is built as a module and the
    rtc-snvs driver isn't already bound because at bootup the required clk
    is on and only gets disabled when the clk framework disables unused clks
    late during boot.)
    
    This completes the fix in commit 135be16d3505 ("ARM: dts: imx7s: add
    snvs clock to pwrkey").
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Link: https://lore.kernel.org/r/20211013062848.2667192-1-u.kleine-koenig@pengutronix.de
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9dd0389d77b952fe1bfad3b01c8cba6959f984ac
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Wed Oct 6 13:12:17 2021 -0700

    perf/x86/msr: Add Sapphire Rapids CPU support
    
    [ Upstream commit 71920ea97d6d1d800ee8b51951dc3fda3f5dc698 ]
    
    SMI_COUNT MSR is supported on Sapphire Rapids CPU.
    
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/1633551137-192083-1-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11d6811cbde048ea9590fb1f1bdc7c196c5151f1
Author: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
Date:   Mon Oct 11 17:37:04 2021 +0900

    libperf tests: Fix test_stat_cpu
    
    [ Upstream commit 3ff6d64e68abc231955d216236615918797614ae ]
    
    The `cpu` argument of perf_evsel__read() must specify the cpu index.
    
    perf_cpu_map__for_each_cpu() is for iterating the cpu number (not index)
    and is thus not appropriate for use with perf_evsel__read().
    
    So, if there is an offline CPU, the cpu number specified in the argument
    may point out of range because the cpu number and the cpu index are
    different.
    
    Fix test_stat_cpu().
    
    Testing it:
    
      # make tests -C tools/lib/perf/
      make: Entering directory '/home/nakamura/kernel_src/linux-5.15-rc4_fix/tools/lib/perf'
      running static:
      - running tests/test-cpumap.c...OK
      - running tests/test-threadmap.c...OK
      - running tests/test-evlist.c...OK
      - running tests/test-evsel.c...OK
      running dynamic:
      - running tests/test-cpumap.c...OK
      - running tests/test-threadmap.c...OK
      - running tests/test-evlist.c...OK
      - running tests/test-evsel.c...OK
      make: Leaving directory '/home/nakamura/kernel_src/linux-5.15-rc4_fix/tools/lib/perf'
    
    Signed-off-by: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20211011083704.4108720-1-nakamura.shun@fujitsu.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 65eec1fb58c1b7ff2660a8b530eac10f25a35ba3
Author: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
Date:   Wed Oct 6 18:57:03 2021 +0900

    libperf test evsel: Fix build error on !x86 architectures
    
    [ Upstream commit f304c8d949f9adc2ef51304b63e49d5ea1c2d288 ]
    
    In test_stat_user_read, following build error occurs except i386 and
    x86_64 architectures:
    
    tests/test-evsel.c:129:31: error: variable 'pc' set but not used [-Werror=unused-but-set-variable]
      struct perf_event_mmap_page *pc;
    
    Fix build error.
    
    Signed-off-by: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20211006095703.477826-1-nakamura.shun@fujitsu.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6062308c510375cb2d756fb34b41db012ff325f
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Wed Oct 13 15:37:10 2021 +0200

    spi-mux: Fix false-positive lockdep splats
    
    [ Upstream commit 16a8e2fbb2d49111004efc1c7342e083eafabeb0 ]
    
    io_mutex is taken by spi_setup() and spi-mux's .setup() callback calls
    spi_setup() which results in a nested lock of io_mutex.
    
    add_lock is taken by spi_add_device(). The device_add() call in there
    can result in calling spi-mux's .probe() callback which registers its
    own spi controller which in turn results in spi_add_device() being
    called again.
    
    To fix this initialize the controller's locks already in
    spi_alloc_controller() to give spi_mux_probe() a chance to set the
    lockdep subclass.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Link: https://lore.kernel.org/r/20211013133710.2679703-2-u.kleine-koenig@pengutronix.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 722ef19a161ce3fffb3d1b01ce2301c306639bdd
Author: Mark Brown <broonie@kernel.org>
Date:   Fri Oct 8 14:31:57 2021 +0100

    spi: Fix deadlock when adding SPI controllers on SPI buses
    
    [ Upstream commit 6098475d4cb48d821bdf453c61118c56e26294f0 ]
    
    Currently we have a global spi_add_lock which we take when adding new
    devices so that we can check that we're not trying to reuse a chip
    select that's already controlled.  This means that if the SPI device is
    itself a SPI controller and triggers the instantiation of further SPI
    devices we trigger a deadlock as we try to register and instantiate
    those devices while in the process of doing so for the parent controller
    and hence already holding the global spi_add_lock.  Since we only care
    about concurrency within a single SPI bus move the lock to be per
    controller, avoiding the deadlock.
    
    This can be easily triggered in the case of spi-mux.
    
    Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 785d69099ef437e528d0aa355be653185e898a8f
Author: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Date:   Tue Oct 12 17:29:35 2021 +0300

    ALSA: hda: avoid write to STATESTS if controller is in reset
    
    [ Upstream commit b37a15188eae9d4c49c5bb035e0c8d4058e4d9b3 ]
    
    The snd_hdac_bus_reset_link() contains logic to clear STATESTS register
    before performing controller reset. This code dates back to an old
    bugfix in commit e8a7f136f5ed ("[ALSA] hda-intel - Improve HD-audio
    codec probing robustness"). Originally the code was added to
    azx_reset().
    
    The code was moved around in commit a41d122449be ("ALSA: hda - Embed bus
    into controller object") and ended up to snd_hdac_bus_reset_link() and
    called primarily via snd_hdac_bus_init_chip().
    
    The logic to clear STATESTS is correct when snd_hdac_bus_init_chip() is
    called when controller is not in reset. In this case, STATESTS can be
    cleared. This can be useful e.g. when forcing a controller reset to retry
    codec probe. A normal non-power-on reset will not clear the bits.
    
    However, this old logic is problematic when controller is already in
    reset. The HDA specification states that controller must be taken out of
    reset before writing to registers other than GCTL.CRST (1.0a spec,
    3.3.7). The write to STATESTS in snd_hdac_bus_reset_link() will be lost
    if the controller is already in reset per the HDA specification mentioned.
    
    This has been harmless on older hardware. On newer generation of Intel
    PCIe based HDA controllers, if configured to report issues, this write
    will emit an unsupported request error. If ACPI Platform Error Interface
    (APEI) is enabled in kernel, this will end up to kernel log.
    
    Fix the code in snd_hdac_bus_reset_link() to only clear the STATESTS if
    the function is called when controller is not in reset. Otherwise
    clearing the bits is not possible and should be skipped.
    
    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20211012142935.3731820-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3972b03ed08527c7cecd88e832a30bc514ff77f8
Author: Prashant Malani <pmalani@chromium.org>
Date:   Tue Sep 28 03:19:34 2021 -0700

    platform/x86: intel_scu_ipc: Update timeout value in comment
    
    [ Upstream commit a0c5814b9933f25ecb6de169483c5b88cf632bca ]
    
    The comment decribing the IPC timeout hadn't been updated when the
    actual timeout was changed from 3 to 5 seconds in
    commit a7d53dbbc70a ("platform/x86: intel_scu_ipc: Increase virtual
    timeout from 3 to 5 seconds") .
    
    Since the value is anyway updated to 10s now, take this opportunity to
    update the value in the comment too.
    
    Signed-off-by: Prashant Malani <pmalani@chromium.org>
    Cc: Benson Leung <bleung@chromium.org>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/r/20210928101932.2543937-4-pmalani@chromium.org
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6659008140b496dbc6216538bd147736e139346f
Author: Prashant Malani <pmalani@chromium.org>
Date:   Tue Sep 28 03:19:32 2021 -0700

    platform/x86: intel_scu_ipc: Increase virtual timeout to 10s
    
    [ Upstream commit 5c02b581ce84eea240d25c8318a1f65133a04415 ]
    
    Commit a7d53dbbc70a ("platform/x86: intel_scu_ipc: Increase virtual
    timeout from 3 to 5 seconds") states that the recommended timeout range
    is 5-10 seconds. Adjust the timeout value to the higher of those i.e 10
    seconds, to account for situations where the 5 seconds is insufficient
    for disconnect command success.
    
    Signed-off-by: Prashant Malani <pmalani@chromium.org>
    Cc: Benson Leung <bleung@chromium.org>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/r/20210928101932.2543937-3-pmalani@chromium.org
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f5966ba53013149bcf94e1536644a958dd00a026
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Sat Oct 9 11:33:49 2021 +0000

    isdn: mISDN: Fix sleeping function called from invalid context
    
    [ Upstream commit 6510e80a0b81b5d814e3aea6297ba42f5e76f73c ]
    
    The driver can call card->isac.release() function from an atomic
    context.
    
    Fix this by calling this function after releasing the lock.
    
    The following log reveals it:
    
    [   44.168226 ] BUG: sleeping function called from invalid context at kernel/workqueue.c:3018
    [   44.168941 ] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 5475, name: modprobe
    [   44.169574 ] INFO: lockdep is turned off.
    [   44.169899 ] irq event stamp: 0
    [   44.170160 ] hardirqs last  enabled at (0): [<0000000000000000>] 0x0
    [   44.170627 ] hardirqs last disabled at (0): [<ffffffff814209ed>] copy_process+0x132d/0x3e00
    [   44.171240 ] softirqs last  enabled at (0): [<ffffffff81420a1a>] copy_process+0x135a/0x3e00
    [   44.171852 ] softirqs last disabled at (0): [<0000000000000000>] 0x0
    [   44.172318 ] Preemption disabled at:
    [   44.172320 ] [<ffffffffa009b0a9>] nj_release+0x69/0x500 [netjet]
    [   44.174441 ] Call Trace:
    [   44.174630 ]  dump_stack_lvl+0xa8/0xd1
    [   44.174912 ]  dump_stack+0x15/0x17
    [   44.175166 ]  ___might_sleep+0x3a2/0x510
    [   44.175459 ]  ? nj_release+0x69/0x500 [netjet]
    [   44.175791 ]  __might_sleep+0x82/0xe0
    [   44.176063 ]  ? start_flush_work+0x20/0x7b0
    [   44.176375 ]  start_flush_work+0x33/0x7b0
    [   44.176672 ]  ? trace_irq_enable_rcuidle+0x85/0x170
    [   44.177034 ]  ? kasan_quarantine_put+0xaa/0x1f0
    [   44.177372 ]  ? kasan_quarantine_put+0xaa/0x1f0
    [   44.177711 ]  __flush_work+0x11a/0x1a0
    [   44.177991 ]  ? flush_work+0x20/0x20
    [   44.178257 ]  ? lock_release+0x13c/0x8f0
    [   44.178550 ]  ? __kasan_check_write+0x14/0x20
    [   44.178872 ]  ? do_raw_spin_lock+0x148/0x360
    [   44.179187 ]  ? read_lock_is_recursive+0x20/0x20
    [   44.179530 ]  ? __kasan_check_read+0x11/0x20
    [   44.179846 ]  ? do_raw_spin_unlock+0x55/0x900
    [   44.180168 ]  ? ____kasan_slab_free+0x116/0x140
    [   44.180505 ]  ? _raw_spin_unlock_irqrestore+0x41/0x60
    [   44.180878 ]  ? skb_queue_purge+0x1a3/0x1c0
    [   44.181189 ]  ? kfree+0x13e/0x290
    [   44.181438 ]  flush_work+0x17/0x20
    [   44.181695 ]  mISDN_freedchannel+0xe8/0x100
    [   44.182006 ]  isac_release+0x210/0x260 [mISDNipac]
    [   44.182366 ]  nj_release+0xf6/0x500 [netjet]
    [   44.182685 ]  nj_remove+0x48/0x70 [netjet]
    [   44.182989 ]  pci_device_remove+0xa9/0x250
    
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef24577a52ba031c855b4b6612f9871738e67572
Author: Herve Codina <herve.codina@bootlin.com>
Date:   Fri Oct 8 12:34:40 2021 +0200

    ARM: dts: spear3xx: Fix gmac node
    
    [ Upstream commit 6636fec29cdf6665bd219564609e8651f6ddc142 ]
    
    On SPEAr3xx, ethernet driver is not compatible with the SPEAr600
    one.
    Indeed, SPEAr3xx uses an earlier version of this IP (v3.40) and
    needs some driver tuning compare to SPEAr600.
    
    The v3.40 IP support was added to stmmac driver and this patch
    fixes this issue and use the correct compatible string for
    SPEAr3xx
    
    Signed-off-by: Herve Codina <herve.codina@bootlin.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 834cc3fc2b99877c6dc05676e29d937b2717e029
Author: Herve Codina <herve.codina@bootlin.com>
Date:   Fri Oct 8 12:34:39 2021 +0200

    net: stmmac: add support for dwmac 3.40a
    
    [ Upstream commit 9cb1d19f47fafad7dcf7c8564e633440c946cfd7 ]
    
    dwmac 3.40a is an old ip version that can be found on SPEAr3xx soc.
    
    Signed-off-by: Herve Codina <herve.codina@bootlin.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c878175dd2ff9b058eab1e5b1f20278bd116480
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Oct 1 13:52:30 2021 +0100

    btrfs: deal with errors when checking if a dir entry exists during log replay
    
    [ Upstream commit 77a5b9e3d14cbce49ceed2766b2003c034c066dc ]
    
    Currently inode_in_dir() ignores errors returned from
    btrfs_lookup_dir_index_item() and from btrfs_lookup_dir_item(), treating
    any errors as if the directory entry does not exists in the fs/subvolume
    tree, which is obviously not correct, as we can get errors such as -EIO
    when reading extent buffers while searching the fs/subvolume's tree.
    
    Fix that by making inode_in_dir() return the errors and making its only
    caller, add_inode_ref(), deal with returned errors as well.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 051995bd0f42df4f302b94b0e04fc85f9b49a3e1
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 6 16:19:40 2021 +0200

    ALSA: hda: intel: Allow repeatedly probing on codec configuration errors
    
    [ Upstream commit c0f1886de7e173865f1a0fa7680a1c07954a987f ]
    
    It seems that a few recent AMD systems show the codec configuration
    errors at the early boot, while loading the driver at a later stage
    works magically.  Although the root cause of the error isn't clear,
    it's certainly not bad to allow retrying the codec probe in such a
    case if that helps.
    
    This patch adds the capability for retrying the probe upon codec probe
    errors on the certain AMD platforms.  The probe_work is changed to a
    delayed work, and at the secondary call, it'll jump to the codec
    probing.
    
    Note that, not only adding the re-probing, this includes the behavior
    changes in the codec configuration function.  Namely,
    snd_hda_codec_configure() won't unregister the codec at errors any
    longer.  Instead, its caller, azx_codec_configure() unregisters the
    codecs with the probe failures *if* any codec has been successfully
    configured.  If all codec probe failed, it doesn't unregister but let
    it re-probed -- which is the most case we're seeing and this patch
    tries to improve.
    
    Even if the driver doesn't re-probe or give up, it will go to the
    "free-all" error path, hence the leftover codecs shall be disabled /
    deleted in anyway.
    
    BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1190801
    Link: https://lore.kernel.org/r/20211006141940.2897-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9906da162dc87ca136d3b92361007076f53edd35
Author: Michael Forney <mforney@mforney.org>
Date:   Sat May 8 17:01:03 2021 -0700

    objtool: Update section header before relocations
    
    [ Upstream commit 86e1e054e0d2105cf32b0266cf1a64e6c26424f7 ]
    
    The libelf implementation from elftoolchain has a safety check in
    gelf_update_rel[a] to check that the data corresponds to a section
    that has type SHT_REL[A] [0]. If the relocation is updated before
    the section header is updated with the proper type, this check
    fails.
    
    To fix this, update the section header first, before the relocations.
    Previously, the section size was calculated in elf_rebuild_reloc_section
    by counting the number of entries in the reloc_list. However, we
    now need the size during elf_write so instead keep a running total
    and add to it for every new relocation.
    
    [0] https://sourceforge.net/p/elftoolchain/mailman/elftoolchain-developers/thread/CAGw6cBtkZro-8wZMD2ULkwJ39J+tHtTtAWXufMjnd3cQ7XG54g@mail.gmail.com/
    
    Signed-off-by: Michael Forney <mforney@mforney.org>
    Reviewed-by: Miroslav Benes <mbenes@suse.cz>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Link: https://lore.kernel.org/r/20210509000103.11008-2-mforney@mforney.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e73e72be194ef8634c16deb3e50ff9bc96f7f914
Author: Michael Forney <mforney@mforney.org>
Date:   Sat May 8 17:01:02 2021 -0700

    objtool: Check for gelf_update_rel[a] failures
    
    [ Upstream commit b46179d6bb3182c020f2bf9bb4df6ba5463b0495 ]
    
    Otherwise, if these fail we end up with garbage data in the
    .rela.orc_unwind_ip section, leading to errors like
    
      ld: fs/squashfs/namei.o: bad reloc symbol index (0x7f16 >= 0x12) for offset 0x7f16d5c82cc8 in section `.orc_unwind_ip'
    
    Signed-off-by: Michael Forney <mforney@mforney.org>
    Reviewed-by: Miroslav Benes <mbenes@suse.cz>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Link: https://lore.kernel.org/r/20210509000103.11008-1-mforney@mforney.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 515e0333125564a6c22d5928580957934cc6d6bf
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Sep 29 14:27:13 2021 -0700

    bitfield: build kunit tests without structleak plugin
    
    [ Upstream commit a8cf90332ae3e2b53813a146a99261b6a5e16a73 ]
    
    The structleak plugin causes the stack frame size to grow immensely:
    
    lib/bitfield_kunit.c: In function 'test_bitfields_constants':
    lib/bitfield_kunit.c:93:1: error: the frame size of 7440 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
    
    Turn it off in this file.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f66b6e01c825b5072690f04b69134ba3a461686
Author: Brendan Higgins <brendanhiggins@google.com>
Date:   Wed Sep 29 14:27:12 2021 -0700

    thunderbolt: build kunit tests without structleak plugin
    
    [ Upstream commit 33d4951e021bb67ebd6bdb01f3d437c0f45b3c0c ]
    
    The structleak plugin causes the stack frame size to grow immensely when
    used with KUnit:
    
    drivers/thunderbolt/test.c:1529:1: error: the frame size of 1176 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
    
    Turn it off in this file.
    
    Linus already split up tests in this file, so this change *should* be
    redundant now.
    
    Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9f94a8ec35a0934f171520d91596f691c11098e
Author: Brendan Higgins <brendanhiggins@google.com>
Date:   Wed Sep 29 14:27:11 2021 -0700

    device property: build kunit tests without structleak plugin
    
    [ Upstream commit 6a1e2d93d55b000962b82b9a080006446150b022 ]
    
    The structleak plugin causes the stack frame size to grow immensely when
    used with KUnit:
    
    ../drivers/base/test/property-entry-test.c:492:1: warning: the frame size of 2832 bytes is larger than 2048 bytes [-Wframe-larger-than=]
    ../drivers/base/test/property-entry-test.c:322:1: warning: the frame size of 2080 bytes is larger than 2048 bytes [-Wframe-larger-than=]
    ../drivers/base/test/property-entry-test.c:250:1: warning: the frame size of 4976 bytes is larger than 2048 bytes [-Wframe-larger-than=]
    ../drivers/base/test/property-entry-test.c:115:1: warning: the frame size of 3280 bytes is larger than 2048 bytes [-Wframe-larger-than=]
    
    Turn it off in this file.
    
    Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c793a67d71b9febb8a2fd83b50ccc18aca69b16
Author: Brendan Higgins <brendanhiggins@google.com>
Date:   Wed Sep 29 14:27:10 2021 -0700

    iio/test-format: build kunit tests without structleak plugin
    
    [ Upstream commit 2326f3cdba1d105b68cc1295e78f17ae8faa5a76 ]
    
    The structleak plugin causes the stack frame size to grow immensely when
    used with KUnit:
    
    ../drivers/iio/test/iio-test-format.c: In function ‘iio_test_iio_format_value_fixedpoint’:
    ../drivers/iio/test/iio-test-format.c:98:1: warning: the frame size of 2336 bytes is larger than 2048 bytes [-Wframe-larger-than=]
    
    Turn it off in this file.
    
    Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 930f561aae28ac9fd08a36d3e32107b4fc0138a4
Author: Brendan Higgins <brendanhiggins@google.com>
Date:   Wed Sep 29 14:27:09 2021 -0700

    gcc-plugins/structleak: add makefile var for disabling structleak
    
    [ Upstream commit 554afc3b9797511e3245864e32aebeb6abbab1e3 ]
    
    KUnit and structleak don't play nice, so add a makefile variable for
    enabling structleak when it complains.
    
    Co-developed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
    Reviewed-by: David Gow <davidgow@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d1af4da1c44feabe74df4d15af9b80dfbafe7e0
Author: Rob Clark <robdclark@chromium.org>
Date:   Mon Sep 27 11:00:04 2021 -0700

    drm/msm/a6xx: Serialize GMU communication
    
    [ Upstream commit f6f59072e821901d96c791864a07d57d8ec8d312 ]
    
    I've seen some crashes in our crash reporting that *look* like multiple
    threads stomping on each other while communicating with GMU.  So wrap
    all those paths in a lock.
    
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbdd158b40b66a9403391a517f24ef6613573446
Author: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Date:   Thu Sep 9 15:24:36 2021 +0800

    kunit: fix reference count leak in kfree_at_end
    
    [ Upstream commit f62314b1ced25c58b86e044fc951cd6a1ea234cf ]
    
    The reference counting issue happens in the normal path of
    kfree_at_end(). When kunit_alloc_and_get_resource() is invoked, the
    function forgets to handle the returned resource object, whose refcount
    increased inside, causing a refcount leak.
    
    Fix this issue by calling kunit_alloc_resource() instead of
    kunit_alloc_and_get_resource().
    
    Fixed the following when applying:
    Shuah Khan <skhan@linuxfoundation.org>
    
    CHECK: Alignment should match open parenthesis
    +       kunit_alloc_resource(test, NULL, kfree_res_free, GFP_KERNEL,
                                         (void *)to_free);
    
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Reviewed-by: Daniel Latypov <dlatypov@google.com>
    Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dfcc47a1fe36d5508f502676ae387086c0e490e3
Author: Chenyi Qiang <chenyi.qiang@intel.com>
Date:   Thu Oct 21 15:10:22 2021 +0800

    KVM: MMU: Reset mmu->pkru_mask to avoid stale data
    
    commit a3ca5281bb771d8103ea16f0a6a8a5df9a7fb4f3 upstream.
    
    When updating mmu->pkru_mask, the value can only be added but it isn't
    reset in advance. This will make mmu->pkru_mask keep the stale data.
    Fix this issue.
    
    Fixes: 2d344105f57c ("KVM, pkeys: introduce pkru_mask to cache conditions")
    Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
    Message-Id: <20211021071022.1140-1-chenyi.qiang@intel.com>
    Reviewed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e647d75565ab47d4339c18c45cbde1488936463e
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date:   Tue Oct 19 22:16:31 2021 +0800

    net: hns3: fix the max tx size according to user manual
    
    commit adfb7b4966c0c4c63a791f202b8b3837b07a9ece upstream.
    
    Currently the max tx size supported by the hw is calculated by
    using the max BD num supported by the hw. According to the hw
    user manual, the max tx size is fixed value for both non-TSO and
    TSO skb.
    
    This patch updates the max tx size according to the manual.
    
    Fixes: 8ae10cfb5089("net: hns3: support tx-scatter-gather-fraglist feature")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0e6db0656ddfd8bb57303c2ef61ee1c1cc694a8
Author: Marek Vasut <marex@denx.de>
Date:   Sat Oct 16 23:04:46 2021 +0200

    drm: mxsfb: Fix NULL pointer dereference crash on unload
    
    commit 3cfc183052c3dbf8eae57b6c1685dab00ed3db4a upstream.
    
    The mxsfb->crtc.funcs may already be NULL when unloading the driver,
    in which case calling mxsfb_irq_disable() via drm_irq_uninstall() from
    mxsfb_unload() leads to NULL pointer dereference.
    
    Since all we care about is masking the IRQ and mxsfb->base is still
    valid, just use that to clear and mask the IRQ.
    
    Fixes: ae1ed00932819 ("drm: mxsfb: Stop using DRM simple display pipeline helper")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Daniel Abrecht <public@danielabrecht.ch>
    Cc: Emil Velikov <emil.l.velikov@gmail.com>
    Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211016210446.171616-1-marex@denx.de
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56a3d9637b7795f4ba87ae70f7b91e915a3b7c78
Author: Peter Gonda <pgonda@google.com>
Date:   Fri Oct 15 13:32:22 2021 -0400

    KVM: SEV-ES: Set guest_state_protected after VMSA update
    
    commit baa1e5ca172ce7bf9554070139482dd7ea919528 upstream.
    
    The refactoring in commit bb18a6777465 ("KVM: SEV: Acquire
    vcpu mutex when updating VMSA") left behind the assignment to
    svm->vcpu.arch.guest_state_protected; add it back.
    
    Signed-off-by: Peter Gonda <pgonda@google.com>
    [Delta between v2 and v3 of Peter's patch, which had already been
     committed; the commit message is my own. - Paolo]
    Fixes: bb18a6777465 ("KVM: SEV: Acquire vcpu mutex when updating VMSA")
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d469678d6b503665b806af24316af87b14cd3c6b
Author: Nikolay Aleksandrov <nikolay@nvidia.com>
Date:   Fri Oct 15 12:05:46 2021 +0300

    net: bridge: mcast: use multicast_membership_interval for IGMPv3
    
    commit fac3cb82a54a4b7c49c932f96ef196cf5774344c upstream.
    
    When I added IGMPv3 support I decided to follow the RFC for computing
    the GMI dynamically:
    " 8.4. Group Membership Interval
    
       The Group Membership Interval is the amount of time that must pass
       before a multicast router decides there are no more members of a
       group or a particular source on a network.
    
       This value MUST be ((the Robustness Variable) times (the Query
       Interval)) plus (one Query Response Interval)."
    
    But that actually is inconsistent with how the bridge used to compute it
    for IGMPv2, where it was user-configurable that has a correct default value
    but it is up to user-space to maintain it. This would make it consistent
    with the other timer values which are also maintained correct by the user
    instead of being dynamically computed. It also changes back to the previous
    user-expected GMI behaviour for IGMPv3 queries which were supported before
    IGMPv3 was added. Note that to properly compute it dynamically we would
    need to add support for "Robustness Variable" which is currently missing.
    
    Reported-by: Hangbin Liu <liuhangbin@gmail.com>
    Fixes: 0436862e417e ("net: bridge: mcast: support for IGMPv3/MLDv2 ALLOW_NEW_SOURCES report")
    Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f20259f186edecc5e5846d86359b58b2a1e4f1d
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Oct 12 18:37:09 2021 +0200

    selftests: netfilter: remove stray bash debug line
    
    commit 3e6ed7703dae6838c104d73d3e76e9b79f5c0528 upstream.
    
    This should not be there.
    
    Fixes: 2de03b45236f ("selftests: netfilter: add flowtable test script")
    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 057aef8df9403279f7c7ee731b9ec0b9a472b9e7
Author: Vegard Nossum <vegard.nossum@gmail.com>
Date:   Tue Oct 5 22:54:54 2021 +0200

    netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
    
    commit 77076934afdcd46516caf18ed88b2f88025c9ddb upstream.
    
    This option, NF_CONNTRACK_SECMARK, is a bool, so it can never be 'm'.
    
    Fixes: 33b8e77605620 ("[NETFILTER]: Add CONFIG_NETFILTER_ADVANCED option")
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc20226e218a2375d50dd9ac14fb4121b43375ff
Author: Xiaolong Huang <butterflyhuangxx@gmail.com>
Date:   Fri Oct 8 14:58:30 2021 +0800

    isdn: cpai: check ctr->cnr to avoid array index out of bound
    
    commit 1f3e2e97c003f80c4b087092b225c8787ff91e4d upstream.
    
    The cmtp_add_connection() would add a cmtp session to a controller
    and run a kernel thread to process cmtp.
    
            __module_get(THIS_MODULE);
            session->task = kthread_run(cmtp_session, session, "kcmtpd_ctr_%d",
                                                                    session->num);
    
    During this process, the kernel thread would call detach_capi_ctr()
    to detach a register controller. if the controller
    was not attached yet, detach_capi_ctr() would
    trigger an array-index-out-bounds bug.
    
    [   46.866069][ T6479] UBSAN: array-index-out-of-bounds in
    drivers/isdn/capi/kcapi.c:483:21
    [   46.867196][ T6479] index -1 is out of range for type 'capi_ctr *[32]'
    [   46.867982][ T6479] CPU: 1 PID: 6479 Comm: kcmtpd_ctr_0 Not tainted
    5.15.0-rc2+ #8
    [   46.869002][ T6479] Hardware name: QEMU Standard PC (i440FX + PIIX,
    1996), BIOS 1.14.0-2 04/01/2014
    [   46.870107][ T6479] Call Trace:
    [   46.870473][ T6479]  dump_stack_lvl+0x57/0x7d
    [   46.870974][ T6479]  ubsan_epilogue+0x5/0x40
    [   46.871458][ T6479]  __ubsan_handle_out_of_bounds.cold+0x43/0x48
    [   46.872135][ T6479]  detach_capi_ctr+0x64/0xc0
    [   46.872639][ T6479]  cmtp_session+0x5c8/0x5d0
    [   46.873131][ T6479]  ? __init_waitqueue_head+0x60/0x60
    [   46.873712][ T6479]  ? cmtp_add_msgpart+0x120/0x120
    [   46.874256][ T6479]  kthread+0x147/0x170
    [   46.874709][ T6479]  ? set_kthread_struct+0x40/0x40
    [   46.875248][ T6479]  ret_from_fork+0x1f/0x30
    [   46.875773][ T6479]
    
    Signed-off-by: Xiaolong Huang <butterflyhuangxx@gmail.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20211008065830.305057-1-butterflyhuangxx@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6197eb050cfab2c124cd592594a1d73883d7f9e8
Author: Lin Ma <linma@zju.edu.cn>
Date:   Thu Oct 7 19:44:30 2021 +0200

    nfc: nci: fix the UAF of rf_conn_info object
    
    commit 1b1499a817c90fd1ce9453a2c98d2a01cca0e775 upstream.
    
    The nci_core_conn_close_rsp_packet() function will release the conn_info
    with given conn_id. However, it needs to set the rf_conn_info to NULL to
    prevent other routines like nci_rf_intf_activated_ntf_packet() to trigger
    the UAF.
    
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb82d4dbee95f0605fa34d0903c1f9f7ca650afb
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Oct 12 12:35:20 2021 -0400

    KVM: x86: remove unnecessary arguments from complete_emulator_pio_in
    
    commit 6b5efc930bbc8c97e4a1fe2ccb9a6f286365a56d upstream.
    
    complete_emulator_pio_in can expect that vcpu->arch.pio has been filled in,
    and therefore does not need the size and count arguments.  This makes things
    nicer when the function is called directly from a complete_userspace_io
    callback.
    
    No functional change intended.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66e46fe3f27649c9d76049e6c7513c1357d18339
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Wed Oct 13 12:32:02 2021 -0400

    KVM: x86: split the two parts of emulator_pio_in
    
    commit 3b27de27183911d461afedf50c6fa30c59740c07 upstream.
    
    emulator_pio_in handles both the case where the data is pending in
    vcpu->arch.pio.count, and the case where I/O has to be done via either
    an in-kernel device or a userspace exit.  For SEV-ES we would like
    to split these, to identify clearly the moment at which the
    sev_pio_data is consumed.  To this end, create two different
    functions: __emulator_pio_in fills in vcpu->arch.pio.count, while
    complete_emulator_pio_in clears it and releases vcpu->arch.pio.data.
    
    Because this patch has to be backported, things are left a bit messy.
    kernel_pio() operates on vcpu->arch.pio, which leads to emulator_pio_in()
    having with two calls to complete_emulator_pio_in().  It will be fixed
    in the next release.
    
    While at it, remove the unused void* val argument of emulator_pio_in_out.
    The function currently hardcodes vcpu->arch.pio_data as the
    source/destination buffer, which sucks but will be fixed after the more
    severe SEV-ES buffer overflow.
    
    No functional change intended.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9887c1668ada0afd989e72412c58f6c73dae8ae0
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Wed Oct 20 06:27:36 2021 -0400

    KVM: x86: check for interrupts before deciding whether to exit the fast path
    
    commit de7cd3f6761f49bef044ec49493d88737a70f1a6 upstream.
    
    The kvm_x86_sync_pir_to_irr callback can sometimes set KVM_REQ_EVENT.
    If that happens exactly at the time that an exit is handled as
    EXIT_FASTPATH_REENTER_GUEST, vcpu_enter_guest will go incorrectly
    through the loop that calls kvm_x86_run, instead of processing
    the request promptly.
    
    Fixes: 379a3c8ee444 ("KVM: VMX: Optimize posted-interrupt delivery for timer fastpath")
    Cc: stable@vger.kernel.org
    Reviewed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 169577c8840e4da46eac5823fba76899294ac562
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Wed Oct 13 12:29:42 2021 -0400

    KVM: x86: leave vcpu->arch.pio.count alone in emulator_pio_in_out
    
    commit 0d33b1baeb6ca7165d5ed4fdd1a8f969985e35b9 upstream.
    
    Currently emulator_pio_in clears vcpu->arch.pio.count twice if
    emulator_pio_in_out performs kernel PIO.  Move the clear into
    emulator_pio_out where it is actually necessary.
    
    No functional change intended.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62a1a254ed837ac2517ca98411d3c5cfa099c3bb
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Mon Oct 18 06:49:18 2021 -0400

    KVM: SEV-ES: reduce ghcb_sa_len to 32 bits
    
    commit 9f1ee7b169afbd10c3ad254220d1b37beb5798aa upstream.
    
    The size of the GHCB scratch area is limited to 16 KiB (GHCB_SCRATCH_AREA_LIMIT),
    so there is no need for it to be a u64.  This fixes a build error on 32-bit
    systems:
    
    i686-linux-gnu-ld: arch/x86/kvm/svm/sev.o: in function `sev_es_string_io:
    sev.c:(.text+0x110f): undefined reference to `__udivdi3'
    
    Cc: stable@vger.kernel.org
    Fixes: 019057bd73d1 ("KVM: SEV-ES: fix length of string I/O")
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f54362dc7d7a382483fc4872abd4ad97b734609
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Oct 12 11:33:03 2021 -0400

    KVM: SEV-ES: go over the sev_pio_data buffer in multiple passes if needed
    
    commit 95e16b4792b0429f1933872f743410f00e590c55 upstream.
    
    The PIO scratch buffer is larger than a single page, and therefore
    it is not possible to copy it in a single step to vcpu->arch/pio_data.
    Bound each call to emulator_pio_in/out to a single page; keep
    track of how many I/O operations are left in vcpu->arch.sev_pio_count,
    so that the operation can be restarted in the complete_userspace_io
    callback.
    
    For OUT, this means that the previous kvm_sev_es_outs implementation
    becomes an iterator of the loop, and we can consume the sev_pio_data
    buffer before leaving to userspace.
    
    For IN, instead, consuming the buffer and decreasing sev_pio_count
    is always done in the complete_userspace_io callback, because that
    is when the memcpy is done into sev_pio_data.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Reported-by: Felix Wilhelm <fwilhelm@google.com>
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4988e000b3a8fba70cc31ce826829bb6cf8c7838
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Oct 12 11:07:59 2021 -0400

    KVM: SEV-ES: fix length of string I/O
    
    commit 019057bd73d1751fdfec41e43148baf3303d98f9 upstream.
    
    The size of the data in the scratch buffer is not divided by the size of
    each port I/O operation, so vcpu->arch.pio.count ends up being larger
    than it should be by a factor of size.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 727286b23f93bf0f459c323a7470ac23a96f52a2
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Oct 12 11:25:45 2021 -0400

    KVM: SEV-ES: keep INS functions together
    
    commit 4fa4b38dae6fc6a3695695add8c18fa8b6a05a1a upstream.
    
    Make the diff a little nicer when we actually get to fixing
    the bug.  No functional change intended.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98c55c508df059a45628490802df350b1fb57b2c
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Oct 12 10:51:55 2021 -0400

    KVM: SEV-ES: clean up kvm_sev_es_ins/outs
    
    commit ea724ea420aac58b41bc822d1aed6940b136b78d upstream.
    
    A few very small cleanups to the functions, smushed together because
    the patch is already very small like this:
    
    - inline emulator_pio_in_emulated and emulator_pio_out_emulated,
      since we already have the vCPU
    
    - remove the data argument and pull setting vcpu->arch.sev_pio_data into
      the caller
    
    - remove unnecessary clearing of vcpu->arch.pio.count when
      emulation is done by the kernel (and therefore vcpu->arch.pio.count
      is already clear on exit from emulator_pio_in and emulator_pio_out).
    
    No functional change intended.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abcae3cd62726850d4f6b6e2ad616514fc48d9bc
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Oct 12 10:22:34 2021 -0400

    KVM: SEV-ES: rename guest_ins_data to sev_pio_data
    
    commit b5998402e3de429b5e5f9bdea08ddf77c5fd661e upstream.
    
    We will be using this field for OUTS emulation as well, in case the
    data that is pushed via OUTS spans more than one page.  In that case,
    there will be a need to save the data pointer across exits to userspace.
    
    So, change the name to something that refers to any kind of PIO.
    Also spell out what it is used for, namely SEV-ES.
    
    No functional change intended.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ed9abfe8e9f ("KVM: SVM: Support string IO operations for an SEV-ES guest")
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6697ceb9f6cdab9bd3baddf5493dc4acde9a4508
Author: Masahiro Kozuka <masa.koz@kozuka.jp>
Date:   Tue Sep 14 14:09:51 2021 -0700

    KVM: SEV: Flush cache on non-coherent systems before RECEIVE_UPDATE_DATA
    
    commit c8c340a9b4149fe5caa433f3b62463a1c8e07a46 upstream.
    
    Flush the destination page before invoking RECEIVE_UPDATE_DATA, as the
    PSP encrypts the data with the guest's key when writing to guest memory.
    If the target memory was not previously encrypted, the cache may contain
    dirty, unecrypted data that will persist on non-coherent systems.
    
    Fixes: 15fb7de1a7f5 ("KVM: SVM: Add KVM_SEV_RECEIVE_UPDATE_DATA command")
    Cc: stable@vger.kernel.org
    Cc: Peter Gonda <pgonda@google.com>
    Cc: Marc Orr <marcorr@google.com>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: Brijesh Singh <brijesh.singh@amd.com>
    Signed-off-by: Masahiro Kozuka <masa.koz@kozuka.jp>
    [sean: converted bug report to changelog]
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20210914210951.2994260-3-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 495bd03b6ba5855fae1bdb2db1e3ee9fe7ff8c33
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Wed Oct 20 06:22:59 2021 -0400

    KVM: nVMX: promptly process interrupts delivered while in guest mode
    
    commit 3a25dfa67fe40f3a2690af2c562e0947a78bd6a0 upstream.
    
    Since commit c300ab9f08df ("KVM: x86: Replace late check_nested_events() hack with
    more precise fix") there is no longer the certainty that check_nested_events()
    tries to inject an external interrupt vmexit to L1 on every call to vcpu_enter_guest.
    Therefore, even in that case we need to set KVM_REQ_EVENT.  This ensures
    that inject_pending_event() is called, and from there kvm_check_nested_events().
    
    Fixes: c300ab9f08df ("KVM: x86: Replace late check_nested_events() hack with more precise fix")
    Cc: stable@vger.kernel.org
    Reviewed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc94b8b3f28a838bf04f9fca9345159e75ff9b96
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Mon Oct 18 15:16:06 2021 -0700

    mm, slub: fix incorrect memcg slab count for bulk free
    
    commit 3ddd60268c24bcac9d744404cc277e9dc52fe6b6 upstream.
    
    kmem_cache_free_bulk() will call memcg_slab_free_hook() for all objects
    when doing bulk free.  So we shouldn't call memcg_slab_free_hook() again
    for bulk free to avoid incorrect memcg slab count.
    
    Link: https://lkml.kernel.org/r/20210916123920.48704-6-linmiaohe@huawei.com
    Fixes: d1b2cf6cb84a ("mm: memcg/slab: uncharge during kmem_cache_free_bulk()")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Bharata B Rao <bharata@linux.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Faiyaz Mohammed <faiyazm@codeaurora.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Roman Gushchin <guro@fb.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 159d8cfbd0428d487c53be4722f33cdab0d25d83
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Mon Oct 18 15:16:02 2021 -0700

    mm, slub: fix potential use-after-free in slab_debugfs_fops
    
    commit 67823a544414def2a36c212abadb55b23bcda00c upstream.
    
    When sysfs_slab_add failed, we shouldn't call debugfs_slab_add() for s
    because s will be freed soon.  And slab_debugfs_fops will use s later
    leading to a use-after-free.
    
    Link: https://lkml.kernel.org/r/20210916123920.48704-5-linmiaohe@huawei.com
    Fixes: 64dd68497be7 ("mm: slub: move sysfs slab alloc/free interfaces to debugfs")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Bharata B Rao <bharata@linux.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Faiyaz Mohammed <faiyazm@codeaurora.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Roman Gushchin <guro@fb.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 42b81946e3ac9ea0372ba16e05160dc11e02694f
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Mon Oct 18 15:15:59 2021 -0700

    mm, slub: fix potential memoryleak in kmem_cache_open()
    
    commit 9037c57681d25e4dcc442d940d6dbe24dd31f461 upstream.
    
    In error path, the random_seq of slub cache might be leaked.  Fix this
    by using __kmem_cache_release() to release all the relevant resources.
    
    Link: https://lkml.kernel.org/r/20210916123920.48704-4-linmiaohe@huawei.com
    Fixes: 210e7a43fa90 ("mm: SLUB freelist randomization")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Bharata B Rao <bharata@linux.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Faiyaz Mohammed <faiyazm@codeaurora.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Roman Gushchin <guro@fb.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 ec93d4a439c3a619b6682ba5778dc885d1460d3e
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Mon Oct 18 15:15:55 2021 -0700

    mm, slub: fix mismatch between reconstructed freelist depth and cnt
    
    commit 899447f669da76cc3605665e1a95ee877bc464cc upstream.
    
    If object's reuse is delayed, it will be excluded from the reconstructed
    freelist.  But we forgot to adjust the cnt accordingly.  So there will
    be a mismatch between reconstructed freelist depth and cnt.  This will
    lead to free_debug_processing() complaining about freelist count or a
    incorrect slub inuse count.
    
    Link: https://lkml.kernel.org/r/20210916123920.48704-3-linmiaohe@huawei.com
    Fixes: c3895391df38 ("kasan, slub: fix handling of kasan_slab_free hook")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Bharata B Rao <bharata@linux.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Faiyaz Mohammed <faiyazm@codeaurora.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Roman Gushchin <guro@fb.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 65ede7bd97138435c07de602efc8812c586a1d38
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Wed Oct 20 20:48:26 2021 +1100

    powerpc/idle: Don't corrupt back chain when going idle
    
    commit 496c5fe25c377ddb7815c4ce8ecfb676f051e9b6 upstream.
    
    In isa206_idle_insn_mayloss() we store various registers into the stack
    red zone, which is allowed.
    
    However inside the IDLE_STATE_ENTER_SEQ_NORET macro we save r2 again,
    to 0(r1), which corrupts the stack back chain.
    
    We used to do the same in isa206_idle_insn_mayloss() itself, but we
    fixed that in 73287caa9210 ("powerpc64/idle: Fix SP offsets when saving
    GPRs"), however we missed that the macro also corrupts the back chain.
    
    Corrupting the back chain is bad for debuggability but doesn't
    necessarily cause a bug.
    
    However we recently changed the stack handling in some KVM code, and it
    now relies on the stack back chain being valid when it returns. The
    corruption causes that code to return with r1 pointing somewhere in
    kernel data, at some point LR is restored from the stack and we branch
    to NULL or somewhere else invalid.
    
    Only affects Power8 hosts running KVM guests, with dynamic_mt_modes
    enabled (which it is by default).
    
    The fixes tag below points to the commit that changed the KVM stack
    handling, exposing this bug. The actual corruption of the back chain has
    always existed since 948cf67c4726 ("powerpc: Add NAP mode support on
    Power7 in HV mode").
    
    Fixes: 9b4416c5095c ("KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211020094826.3222052-1-mpe@ellerman.id.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a8c22e7fb66260c9182ee3a3085c2046503c54b
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Fri Oct 15 23:02:08 2021 +1100

    KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest
    
    commit cdeb5d7d890e14f3b70e8087e745c4a6a7d9f337 upstream.
    
    We call idle_kvm_start_guest() from power7_offline() if the thread has
    been requested to enter KVM. We pass it the SRR1 value that was returned
    from power7_idle_insn() which tells us what sort of wakeup we're
    processing.
    
    Depending on the SRR1 value we pass in, the KVM code might enter the
    guest, or it might return to us to do some host action if the wakeup
    requires it.
    
    If idle_kvm_start_guest() is able to handle the wakeup, and enter the
    guest it is supposed to indicate that by returning a zero SRR1 value to
    us.
    
    That was the behaviour prior to commit 10d91611f426 ("powerpc/64s:
    Reimplement book3s idle code in C"), however in that commit the
    handling of SRR1 was reworked, and the zeroing behaviour was lost.
    
    Returning from idle_kvm_start_guest() without zeroing the SRR1 value can
    confuse the host offline code, causing the guest to crash and other
    weirdness.
    
    Fixes: 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in C")
    Cc: stable@vger.kernel.org # v5.2+
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211015133929.832061-2-mpe@ellerman.id.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d077c37c4643394b1bae9682da48164fc147ea8
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Fri Oct 15 23:01:48 2021 +1100

    KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
    
    commit 9b4416c5095c20e110c82ae602c254099b83b72f upstream.
    
    In commit 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in
    C") kvm_start_guest() became idle_kvm_start_guest(). The old code
    allocated a stack frame on the emergency stack, but didn't use the
    frame to store anything, and also didn't store anything in its caller's
    frame.
    
    idle_kvm_start_guest() on the other hand is written more like a normal C
    function, it creates a frame on entry, and also stores CR/LR into its
    callers frame (per the ABI). The problem is that there is no caller
    frame on the emergency stack.
    
    The emergency stack for a given CPU is allocated with:
    
      paca_ptrs[i]->emergency_sp = alloc_stack(limit, i) + THREAD_SIZE;
    
    So emergency_sp actually points to the first address above the emergency
    stack allocation for a given CPU, we must not store above it without
    first decrementing it to create a frame. This is different to the
    regular kernel stack, paca->kstack, which is initialised to point at an
    initial frame that is ready to use.
    
    idle_kvm_start_guest() stores the backchain, CR and LR all of which
    write outside the allocation for the emergency stack. It then creates a
    stack frame and saves the non-volatile registers. Unfortunately the
    frame it creates is not large enough to fit the non-volatiles, and so
    the saving of the non-volatile registers also writes outside the
    emergency stack allocation.
    
    The end result is that we corrupt whatever is at 0-24 bytes, and 112-248
    bytes above the emergency stack allocation.
    
    In practice this has gone unnoticed because the memory immediately above
    the emergency stack happens to be used for other stack allocations,
    either another CPUs mc_emergency_sp or an IRQ stack. See the order of
    calls to irqstack_early_init() and emergency_stack_init().
    
    The low addresses of another stack are the top of that stack, and so are
    only used if that stack is under extreme pressue, which essentially
    never happens in practice - and if it did there's a high likelyhood we'd
    crash due to that stack overflowing.
    
    Still, we shouldn't be corrupting someone else's stack, and it is purely
    luck that we aren't corrupting something else.
    
    To fix it we save CR/LR into the caller's frame using the existing r1 on
    entry, we then create a SWITCH_FRAME_SIZE frame (which has space for
    pt_regs) on the emergency stack with the backchain pointing to the
    existing stack, and then finally we switch to the new frame on the
    emergency stack.
    
    Fixes: 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in C")
    Cc: stable@vger.kernel.org # v5.2+
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211015133929.832061-1-mpe@ellerman.id.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8735e2e306f1c9c8b3a4b9218a349f7d96e3df6
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Oct 16 15:59:49 2021 -0500

    ucounts: Fix signal ucount refcounting
    
    commit 15bc01effefe97757ef02ca09e9d1b927ab22725 upstream.
    
    In commit fda31c50292a ("signal: avoid double atomic counter
    increments for user accounting") Linus made a clever optimization to
    how rlimits and the struct user_struct.  Unfortunately that
    optimization does not work in the obvious way when moved to nested
    rlimits.  The problem is that the last decrement of the per user
    namespace per user sigpending counter might also be the last decrement
    of the sigpending counter in the parent user namespace as well.  Which
    means that simply freeing the leaf ucount in __free_sigqueue is not
    enough.
    
    Maintain the optimization and handle the tricky cases by introducing
    inc_rlimit_get_ucounts and dec_rlimit_put_ucounts.
    
    By moving the entire optimization into functions that perform all of
    the work it becomes possible to ensure that every level is handled
    properly.
    
    The new function inc_rlimit_get_ucounts returns 0 on failure to
    increment the ucount.  This is different than inc_rlimit_ucounts which
    increments the ucounts and returns LONG_MAX if the ucount counter has
    exceeded it's maximum or it wrapped (to indicate the counter needs to
    decremented).
    
    I wish we had a single user to account all pending signals to across
    all of the threads of a process so this complexity was not necessary
    
    Cc: stable@vger.kernel.org
    Fixes: d64696905554 ("Reimplement RLIMIT_SIGPENDING on top of ucounts")
    v1: https://lkml.kernel.org/r/87mtnavszx.fsf_-_@disp2133
    Link: https://lkml.kernel.org/r/87fssytizw.fsf_-_@disp2133
    Reviewed-by: Alexey Gladkov <legion@kernel.org>
    Tested-by: Rune Kleveland <rune.kleveland@infomedia.dk>
    Tested-by: Yu Zhao <yuzhao@google.com>
    Tested-by: Jordan Glover <Golden_Miller83@protonmail.ch>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1eb825343d636bcf7198a9cdbacd07867e313f51
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Oct 16 12:47:51 2021 -0500

    ucounts: Proper error handling in set_cred_ucounts
    
    commit 34dc2fd6e6908499b669c7b45320cddf38b332e1 upstream.
    
    Instead of leaking the ucounts in new if alloc_ucounts fails, store
    the result of alloc_ucounts into a temporary variable, which is later
    assigned to new->ucounts.
    
    Cc: stable@vger.kernel.org
    Fixes: 905ae01c4ae2 ("Add a reference to ucounts for each cred")
    Link: https://lkml.kernel.org/r/87pms2s0v8.fsf_-_@disp2133
    Tested-by: Yu Zhao <yuzhao@google.com>
    Reviewed-by: Alexey Gladkov <legion@kernel.org>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7f7e4dbc41cc99f5293788ec0cc0a9c7558edfd
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Oct 16 12:30:00 2021 -0500

    ucounts: Pair inc_rlimit_ucounts with dec_rlimit_ucoutns in commit_creds
    
    commit 629715adc62b0ad27ab04d0aa73a71927f886910 upstream.
    
    The purpose of inc_rlimit_ucounts and dec_rlimit_ucounts in commit_creds
    is to change which rlimit counter is used to track a process when the
    credentials changes.
    
    Use the same test for both to guarantee the tracking is correct.
    
    Cc: stable@vger.kernel.org
    Fixes: 21d1c5e386bc ("Reimplement RLIMIT_NPROC on top of ucounts")
    Link: https://lkml.kernel.org/r/87v91us0w4.fsf_-_@disp2133
    Tested-by: Yu Zhao <yuzhao@google.com>
    Reviewed-by: Alexey Gladkov <legion@kernel.org>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32880dcecb51d50f969caa8525031bd043b1abc9
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Oct 16 12:17:30 2021 -0500

    ucounts: Move get_ucounts from cred_alloc_blank to key_change_session_keyring
    
    commit 5ebcbe342b1c12fae44b4f83cbeae1520e09857e upstream.
    
    Setting cred->ucounts in cred_alloc_blank does not make sense.  The
    uid and user_ns are deliberately not set in cred_alloc_blank but
    instead the setting is delayed until key_change_session_keyring.
    
    So move dealing with ucounts into key_change_session_keyring as well.
    
    Unfortunately that movement of get_ucounts adds a new failure mode to
    key_change_session_keyring.  I do not see anything stopping the parent
    process from calling setuid and changing the relevant part of it's
    cred while keyctl_session_to_parent is running making it fundamentally
    necessary to call get_ucounts in key_change_session_keyring.  Which
    means that the new failure mode cannot be avoided.
    
    A failure of key_change_session_keyring results in a single threaded
    parent keeping it's existing credentials.  Which results in the parent
    process not being able to access the session keyring and whichever
    keys are in the new keyring.
    
    Further get_ucounts is only expected to fail if the number of bits in
    the refernece count for the structure is too few.
    
    Since the code has no other way to report the failure of get_ucounts
    and because such failures are not expected to be common add a WARN_ONCE
    to report this problem to userspace.
    
    Between the WARN_ONCE and the parent process not having access to
    the keys in the new session keyring I expect any failure of get_ucounts
    will be noticed and reported and we can find another way to handle this
    condition.  (Possibly by just making ucounts->count an atomic_long_t).
    
    Cc: stable@vger.kernel.org
    Fixes: 905ae01c4ae2 ("Add a reference to ucounts for each cred")
    Link: https://lkml.kernel.org/r/7k0ias0uf.fsf_-_@disp2133
    Tested-by: Yu Zhao <yuzhao@google.com>
    Reviewed-by: Alexey Gladkov <legion@kernel.org>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04b938ff2d2ce22c1761ccadb08d9ee8f65db789
Author: DENG Qingfang <dqfext@gmail.com>
Date:   Sat Oct 16 14:24:14 2021 +0800

    net: dsa: mt7530: correct ds->num_ports
    
    commit 342afce10d6f61c443c95e244f812d4766f73f53 upstream.
    
    Setting ds->num_ports to DSA_MAX_PORTS made DSA core allocate unnecessary
    dsa_port's and call mt7530_port_disable for non-existent ports.
    
    Set it to MT7530_NUM_PORTS to fix that, and dsa_is_user_port check in
    port_enable/disable is no longer required.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: DENG Qingfang <dqfext@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e9e46a700201b4c85081fd478c99c692a9aaa0d
Author: Gaosheng Cui <cuigaosheng1@huawei.com>
Date:   Sat Oct 16 15:23:50 2021 +0800

    audit: fix possible null-pointer dereference in audit_filter_rules
    
    commit 6e3ee990c90494561921c756481d0e2125d8b895 upstream.
    
    Fix  possible null-pointer dereference in audit_filter_rules.
    
    audit_filter_rules() error: we previously assumed 'ctx' could be null
    
    Cc: stable@vger.kernel.org
    Fixes: bf361231c295 ("audit: add saddr_fam filter field")
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1a34f86b41fd89441fa0e245b6b23627b0d73d3
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Oct 14 13:20:22 2021 -1000

    blk-cgroup: blk_cgroup_bio_start() should use irq-safe operations on blkg->iostat_cpu
    
    commit 5370b0f49078203acf3c064b634a09707167a864 upstream.
    
    c3df5fb57fe8 ("cgroup: rstat: fix A-A deadlock on 32bit around
    u64_stats_sync") made u64_stats updates irq-safe to avoid A-A deadlocks.
    Unfortunately, the conversion missed one in blk_cgroup_bio_start(). Fix it.
    
    Fixes: 2d146aa3aa84 ("mm: memcontrol: switch to rstat")
    Cc: stable@vger.kernel.org # v5.13+
    Reported-by: syzbot+9738c8815b375ce482a1@syzkaller.appspotmail.com
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Link: https://lore.kernel.org/r/YWi7NrQdVlxD6J9W@slm.duckdns.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 152f35191d12a5a1a8dd383e97340b83494c9c97
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Sep 29 22:15:12 2021 +0200

    ASoC: nau8824: Fix headphone vs headset, button-press detection no longer working
    
    commit 42871e95a3afea8956d8cc567ea725b33a837775 upstream.
    
    Commit 1d25684e2251 ("ASoC: nau8824: Fix open coded prefix handling")
    replaced the nau8824_dapm_enable_pin() helper with direct calls to
    snd_soc_dapm_enable_pin(), but the helper was using
    snd_soc_dapm_force_enable_pin() and not forcing the MICBIAS + SAR
    supplies on breaks headphone vs headset and button-press detection.
    
    Replace the snd_soc_dapm_enable_pin() calls with
    snd_soc_dapm_force_enable_pin() to fix this.
    
    Cc: stable@vger.kernel.org
    Fixes: 1d25684e2251 ("ASoC: nau8824: Fix open coded prefix handling")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20210929201512.460360-1-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a60ce083dcbfe16d8a5b9c0860166ed4216532e7
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 6 16:17:12 2021 +0200

    ASoC: DAPM: Fix missing kctl change notifications
    
    commit 5af82c81b2c49cfb1cad84d9eb6eab0e3d1c4842 upstream.
    
    The put callback of a kcontrol is supposed to return 1 when the value
    is changed, and this will be notified to user-space.  However, some
    DAPM kcontrols always return 0 (except for errors), hence the
    user-space misses the update of a control value.
    
    This patch corrects the behavior by properly returning 1 when the
    value gets updated.
    
    Reported-and-tested-by: Hans de Goede <hdegoede@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/20211006141712.2439-1-tiwai@suse.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9da68a107d0765fd1454a51c2d4785f05501b193
Author: Steven Clarkson <sc@lambdal.com>
Date:   Thu Oct 14 06:35:54 2021 -0700

    ALSA: hda/realtek: Add quirk for Clevo PC50HS
    
    commit aef454b40288158b850aab13e3d2a8c406779401 upstream.
    
    Apply existing PCI quirk to the Clevo PC50HS and related models to fix
    audio output on the built in speakers.
    
    Signed-off-by: Steven Clarkson <sc@lambdal.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20211014133554.1326741-1-sc@lambdal.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 896fc3ab9fc1f602dad33d89786ea68326bcaa2e
Author: Brendan Grieve <brendan@grieve.com.au>
Date:   Fri Oct 15 10:53:35 2021 +0800

    ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
    
    commit 3c414eb65c294719a91a746260085363413f91c1 upstream.
    
    As per discussion at: https://github.com/szszoke/sennheiser-gsp670-pulseaudio-profile/issues/13
    
    The GSP670 has 2 playback and 1 recording device that by default are
    detected in an incompatible order for alsa. This may have been done to make
    it compatible for the console by the manufacturer and only affects the
    latest firmware which uses its own ID.
    
    This quirk will resolve this by reordering the channels.
    
    Signed-off-by: Brendan Grieve <brendan@grieve.com.au>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20211015025335.196592-1-brendan@grieve.com.au
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b77ba1e02345bafd703f0d407bdbd88c3be1f767
Author: Sean Christopherson <seanjc@google.com>
Date:   Mon Oct 18 15:16:16 2021 -0700

    mm/secretmem: fix NULL page->mapping dereference in page_is_secretmem()
    
    commit 79f9bc5843142b649575f887dccdf1c07ad75c20 upstream.
    
    Check for a NULL page->mapping before dereferencing the mapping in
    page_is_secretmem(), as the page's mapping can be nullified while gup()
    is running, e.g.  by reclaim or truncation.
    
      BUG: kernel NULL pointer dereference, address: 0000000000000068
      #PF: supervisor read access in kernel mode
      #PF: error_code(0x0000) - not-present page
      PGD 0 P4D 0
      Oops: 0000 [#1] PREEMPT SMP NOPTI
      CPU: 6 PID: 4173897 Comm: CPU 3/KVM Tainted: G        W
      RIP: 0010:internal_get_user_pages_fast+0x621/0x9d0
      Code: <48> 81 7a 68 80 08 04 bc 0f 85 21 ff ff 8 89 c7 be
      RSP: 0018:ffffaa90087679b0 EFLAGS: 00010046
      RAX: ffffe3f37905b900 RBX: 00007f2dd561e000 RCX: ffffe3f37905b934
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffe3f37905b900
      ...
      CR2: 0000000000000068 CR3: 00000004c5898003 CR4: 00000000001726e0
      Call Trace:
       get_user_pages_fast_only+0x13/0x20
       hva_to_pfn+0xa9/0x3e0
       try_async_pf+0xa1/0x270
       direct_page_fault+0x113/0xad0
       kvm_mmu_page_fault+0x69/0x680
       vmx_handle_exit+0xe1/0x5d0
       kvm_arch_vcpu_ioctl_run+0xd81/0x1c70
       kvm_vcpu_ioctl+0x267/0x670
       __x64_sys_ioctl+0x83/0xa0
       do_syscall_64+0x56/0x80
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Link: https://lkml.kernel.org/r/20211007231502.3552715-1-seanjc@google.com
    Fixes: 1507f51255c9 ("mm: introduce memfd_secret system call to create "secret" memory areas")
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Reported-by: Darrick J. Wong <djwong@kernel.org>
    Reported-by: Stephen <stephenackerman16@gmail.com>
    Tested-by: Darrick J. Wong <djwong@kernel.org>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Mike Rapoport <rppt@linux.ibm.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 abe046ddf31133287fdd5508168078377a2508a5
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Mon Oct 18 15:16:12 2021 -0700

    vfs: check fd has read access in kernel_read_file_from_fd()
    
    commit 032146cda85566abcd1c4884d9d23e4e30a07e9a upstream.
    
    If we open a file without read access and then pass the fd to a syscall
    whose implementation calls kernel_read_file_from_fd(), we get a warning
    from __kernel_read():
    
            if (WARN_ON_ONCE(!(file->f_mode & FMODE_READ)))
    
    This currently affects both finit_module() and kexec_file_load(), but it
    could affect other syscalls in the future.
    
    Link: https://lkml.kernel.org/r/20211007220110.600005-1-willy@infradead.org
    Fixes: b844f0ecbc56 ("vfs: define kernel_copy_file_from_fd()")
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reported-by: Hao Sun <sunhao.th@gmail.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Mimi Zohar <zohar@linux.ibm.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 3681e4772c78b96661249eb81882d7dfabe20c23
Author: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Date:   Mon Oct 18 15:16:09 2021 -0700

    elfcore: correct reference to CONFIG_UML
    
    commit b0e901280d9860a0a35055f220e8e457f300f40a upstream.
    
    Commit 6e7b64b9dd6d ("elfcore: fix building with clang") introduces
    special handling for two architectures, ia64 and User Mode Linux.
    However, the wrong name, i.e., CONFIG_UM, for the intended Kconfig
    symbol for User-Mode Linux was used.
    
    Although the directory for User Mode Linux is ./arch/um; the Kconfig
    symbol for this architecture is called CONFIG_UML.
    
    Luckily, ./scripts/checkkconfigsymbols.py warns on non-existing configs:
    
      UM
      Referencing files: include/linux/elfcore.h
      Similar symbols: UML, NUMA
    
    Correct the name of the config to the intended one.
    
    [akpm@linux-foundation.org: fix um/x86_64, per Catalin]
      Link: https://lkml.kernel.org/r/20211006181119.2851441-1-catalin.marinas@arm.com
      Link: https://lkml.kernel.org/r/YV6pejGzLy5ppEpt@arm.com
    
    Link: https://lkml.kernel.org/r/20211006082209.417-1-lukas.bulwahn@gmail.com
    Fixes: 6e7b64b9dd6d ("elfcore: fix building with clang")
    Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Barret Rhoden <brho@google.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 9ee4e9ae98f1f262d6fae0d266cfdf3ba2c321d9
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Oct 18 15:15:49 2021 -0700

    mm/mempolicy: do not allow illegal MPOL_F_NUMA_BALANCING | MPOL_LOCAL in mbind()
    
    commit 6d2aec9e123bb9c49cb5c7fc654f25f81e688e8c upstream.
    
    syzbot reported access to unitialized memory in mbind() [1]
    
    Issue came with commit bda420b98505 ("numa balancing: migrate on fault
    among multiple bound nodes")
    
    This commit added a new bit in MPOL_MODE_FLAGS, but only checked valid
    combination (MPOL_F_NUMA_BALANCING can only be used with MPOL_BIND) in
    do_set_mempolicy()
    
    This patch moves the check in sanitize_mpol_flags() so that it is also
    used by mbind()
    
      [1]
      BUG: KMSAN: uninit-value in __mpol_equal+0x567/0x590 mm/mempolicy.c:2260
       __mpol_equal+0x567/0x590 mm/mempolicy.c:2260
       mpol_equal include/linux/mempolicy.h:105 [inline]
       vma_merge+0x4a1/0x1e60 mm/mmap.c:1190
       mbind_range+0xcc8/0x1e80 mm/mempolicy.c:811
       do_mbind+0xf42/0x15f0 mm/mempolicy.c:1333
       kernel_mbind mm/mempolicy.c:1483 [inline]
       __do_sys_mbind mm/mempolicy.c:1490 [inline]
       __se_sys_mbind+0x437/0xb80 mm/mempolicy.c:1486
       __x64_sys_mbind+0x19d/0x200 mm/mempolicy.c:1486
       do_syscall_x64 arch/x86/entry/common.c:51 [inline]
       do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
      Uninit was created at:
       slab_alloc_node mm/slub.c:3221 [inline]
       slab_alloc mm/slub.c:3230 [inline]
       kmem_cache_alloc+0x751/0xff0 mm/slub.c:3235
       mpol_new mm/mempolicy.c:293 [inline]
       do_mbind+0x912/0x15f0 mm/mempolicy.c:1289
       kernel_mbind mm/mempolicy.c:1483 [inline]
       __do_sys_mbind mm/mempolicy.c:1490 [inline]
       __se_sys_mbind+0x437/0xb80 mm/mempolicy.c:1486
       __x64_sys_mbind+0x19d/0x200 mm/mempolicy.c:1486
       do_syscall_x64 arch/x86/entry/common.c:51 [inline]
       do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82
       entry_SYSCALL_64_after_hwframe+0x44/0xae
      =====================================================
      Kernel panic - not syncing: panic_on_kmsan set ...
      CPU: 0 PID: 15049 Comm: syz-executor.0 Tainted: G    B             5.15.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:88 [inline]
       dump_stack_lvl+0x1ff/0x28e lib/dump_stack.c:106
       dump_stack+0x25/0x28 lib/dump_stack.c:113
       panic+0x44f/0xdeb kernel/panic.c:232
       kmsan_report+0x2ee/0x300 mm/kmsan/report.c:186
       __msan_warning+0xd7/0x150 mm/kmsan/instrumentation.c:208
       __mpol_equal+0x567/0x590 mm/mempolicy.c:2260
       mpol_equal include/linux/mempolicy.h:105 [inline]
       vma_merge+0x4a1/0x1e60 mm/mmap.c:1190
       mbind_range+0xcc8/0x1e80 mm/mempolicy.c:811
       do_mbind+0xf42/0x15f0 mm/mempolicy.c:1333
       kernel_mbind mm/mempolicy.c:1483 [inline]
       __do_sys_mbind mm/mempolicy.c:1490 [inline]
       __se_sys_mbind+0x437/0xb80 mm/mempolicy.c:1486
       __x64_sys_mbind+0x19d/0x200 mm/mempolicy.c:1486
       do_syscall_x64 arch/x86/entry/common.c:51 [inline]
       do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Link: https://lkml.kernel.org/r/20211001215630.810592-1-eric.dumazet@gmail.com
    Fixes: bda420b98505 ("numa balancing: migrate on fault among multiple bound nodes")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Mel Gorman <mgorman@suse.de>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    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 149958ecd0627a9f1e9c678c25c665400054cd6a
Author: Nadav Amit <namit@vmware.com>
Date:   Mon Oct 18 15:15:25 2021 -0700

    userfaultfd: fix a race between writeprotect and exit_mmap()
    
    commit cb185d5f1ebf900f4ae3bf84cee212e6dd035aca upstream.
    
    A race is possible when a process exits, its VMAs are removed by
    exit_mmap() and at the same time userfaultfd_writeprotect() is called.
    
    The race was detected by KASAN on a development kernel, but it appears
    to be possible on vanilla kernels as well.
    
    Use mmget_not_zero() to prevent the race as done in other userfaultfd
    operations.
    
    Link: https://lkml.kernel.org/r/20210921200247.25749-1-namit@vmware.com
    Fixes: 63b2d4174c4ad ("userfaultfd: wp: add the writeprotect API to userfaultfd ioctl")
    Signed-off-by: Nadav Amit <namit@vmware.com>
    Tested-by: Li  Wang <liwang@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Cc: Andrea Arcangeli <aarcange@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 6de91691768c8ca81b645fc071f7d3c08924254a
Author: Peter Xu <peterx@redhat.com>
Date:   Mon Oct 18 15:15:22 2021 -0700

    mm/userfaultfd: selftests: fix memory corruption with thp enabled
    
    commit 8913970c19915bbe773d97d42989cd85b7fdc098 upstream.
    
    In RHEL's gating selftests we've encountered memory corruption in the
    uffd event test even with upstream kernel:
    
            # ./userfaultfd anon 128 4
            nr_pages: 32768, nr_pages_per_cpu: 32768
            bounces: 3, mode: rnd racing read, userfaults: 6240 missing (6240) 14729 wp (14729)
            bounces: 2, mode: racing read, userfaults: 1444 missing (1444) 28877 wp (28877)
            bounces: 1, mode: rnd read, userfaults: 6055 missing (6055) 14699 wp (14699)
            bounces: 0, mode: read, userfaults: 82 missing (82) 25196 wp (25196)
            testing uffd-wp with pagemap (pgsize=4096): done
            testing uffd-wp with pagemap (pgsize=2097152): done
            testing events (fork, remap, remove): ERROR: nr 32427 memory corruption 0 1 (errno=0, line=963)
            ERROR: faulting process failed (errno=0, line=1117)
    
    It can be easily reproduced when global thp enabled, which is the
    default for RHEL.
    
    It's also known as a side effect of commit 0db282ba2c12 ("selftest: use
    mmap instead of posix_memalign to allocate memory", 2021-07-23), which
    is imho right itself on using mmap() to make sure the addresses will be
    untagged even on arm.
    
    The problem is, for each test we allocate buffers using two
    allocate_area() calls.  We assumed these two buffers won't affect each
    other, however they could, because mmap() could have found that the two
    buffers are near each other and having the same VMA flags, so they got
    merged into one VMA.
    
    It won't be a big problem if thp is not enabled, but when thp is
    agressively enabled it means when initializing the src buffer it could
    accidentally setup part of the dest buffer too when there's a shared THP
    that overlaps the two regions.  Then some of the dest buffer won't be
    able to be trapped by userfaultfd missing mode, then it'll cause memory
    corruption as described.
    
    To fix it, do release_pages() after initializing the src buffer.
    
    Since the previous two release_pages() calls are after
    uffd_test_ctx_clear() which will unmap all the buffers anyway (which is
    stronger than release pages; as unmap() also tear town pgtables), drop
    them as they shouldn't really be anything useful.
    
    We can mark the Fixes tag upon 0db282ba2c12 as it's reported to only
    happen there, however the real "Fixes" IMHO should be 8ba6e8640844, as
    before that commit we'll always do explicit release_pages() before
    registration of uffd, and 8ba6e8640844 changed that logic by adding
    extra unmap/map and we didn't release the pages at the right place.
    Meanwhile I don't have a solid glue anyway on whether posix_memalign()
    could always avoid triggering this bug, hence it's safer to attach this
    fix to commit 8ba6e8640844.
    
    Link: https://lkml.kernel.org/r/20210923232512.210092-1-peterx@redhat.com
    Fixes: 8ba6e8640844 ("userfaultfd/selftests: reinitialize test context in each test")
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1994931
    Signed-off-by: Peter Xu <peterx@redhat.com>
    Reported-by: Li Wang <liwan@redhat.com>
    Tested-by: Li Wang <liwang@redhat.com>
    Reviewed-by: Axel Rasmussen <axelrasmussen@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Nadav Amit <nadav.amit@gmail.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 0e677ea5b7396f715a76b6b0ef441430e4c4b57f
Author: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date:   Mon Oct 18 15:15:42 2021 -0700

    ocfs2: mount fails with buffer overflow in strlen
    
    commit b15fa9224e6e1239414525d8d556d824701849fc upstream.
    
    Starting with kernel 5.11 built with CONFIG_FORTIFY_SOURCE mouting an
    ocfs2 filesystem with either o2cb or pcmk cluster stack fails with the
    trace below.  Problem seems to be that strings for cluster stack and
    cluster name are not guaranteed to be null terminated in the disk
    representation, while strlcpy assumes that the source string is always
    null terminated.  This causes a read outside of the source string
    triggering the buffer overflow detection.
    
      detected buffer overflow in strlen
      ------------[ cut here ]------------
      kernel BUG at lib/string.c:1149!
      invalid opcode: 0000 [#1] SMP PTI
      CPU: 1 PID: 910 Comm: mount.ocfs2 Not tainted 5.14.0-1-amd64 #1
        Debian 5.14.6-2
      RIP: 0010:fortify_panic+0xf/0x11
      ...
      Call Trace:
       ocfs2_initialize_super.isra.0.cold+0xc/0x18 [ocfs2]
       ocfs2_fill_super+0x359/0x19b0 [ocfs2]
       mount_bdev+0x185/0x1b0
       legacy_get_tree+0x27/0x40
       vfs_get_tree+0x25/0xb0
       path_mount+0x454/0xa20
       __x64_sys_mount+0x103/0x140
       do_syscall_64+0x3b/0xc0
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Link: https://lkml.kernel.org/r/20210929180654.32460-1-vvidic@valentin-vidic.from.hr
    Signed-off-by: Valentin Vidic <vvidic@valentin-vidic.from.hr>
    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 fa9b6b6c953e3f6441ed6cf83b4c771dac2dae08
Author: Jan Kara <jack@suse.cz>
Date:   Mon Oct 18 15:15:39 2021 -0700

    ocfs2: fix data corruption after conversion from inline format
    
    commit 5314454ea3ff6fc746eaf71b9a7ceebed52888fa upstream.
    
    Commit 6dbf7bb55598 ("fs: Don't invalidate page buffers in
    block_write_full_page()") uncovered a latent bug in ocfs2 conversion
    from inline inode format to a normal inode format.
    
    The code in ocfs2_convert_inline_data_to_extents() attempts to zero out
    the whole cluster allocated for file data by grabbing, zeroing, and
    dirtying all pages covering this cluster.  However these pages are
    beyond i_size, thus writeback code generally ignores these dirty pages
    and no blocks were ever actually zeroed on the disk.
    
    This oversight was fixed by commit 693c241a5f6a ("ocfs2: No need to zero
    pages past i_size.") for standard ocfs2 write path, inline conversion
    path was apparently forgotten; the commit log also has a reasoning why
    the zeroing actually is not needed.
    
    After commit 6dbf7bb55598, things became worse as writeback code stopped
    invalidating buffers on pages beyond i_size and thus these pages end up
    with clean PageDirty bit but with buffers attached to these pages being
    still dirty.  So when a file is converted from inline format, then
    writeback triggers, and then the file is grown so that these pages
    become valid, the invalid dirtiness state is preserved,
    mark_buffer_dirty() does nothing on these pages (buffers are already
    dirty) but page is never written back because it is clean.  So data
    written to these pages is lost once pages are reclaimed.
    
    Simple reproducer for the problem is:
    
      xfs_io -f -c "pwrite 0 2000" -c "pwrite 2000 2000" -c "fsync" \
        -c "pwrite 4000 2000" ocfs2_file
    
    After unmounting and mounting the fs again, you can observe that end of
    'ocfs2_file' has lost its contents.
    
    Fix the problem by not doing the pointless zeroing during conversion
    from inline format similarly as in the standard write path.
    
    [akpm@linux-foundation.org: fix whitespace, per Joseph]
    
    Link: https://lkml.kernel.org/r/20210930095405.21433-1-jack@suse.cz
    Fixes: 6dbf7bb55598 ("fs: Don't invalidate page buffers in block_write_full_page()")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Tested-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Acked-by: Gang He <ghe@suse.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: Jun Piao <piaojun@huawei.com>
    Cc: "Markov, Andrey" <Markov.Andrey@Dell.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 909c8482d8acb75f8c60232150cf904ef476b081
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Mon Oct 18 15:44:12 2021 -0400

    tracing: Have all levels of checks prevent recursion
    
    commit ed65df63a39a3f6ed04f7258de8b6789e5021c18 upstream.
    
    While writing an email explaining the "bit = 0" logic for a discussion on
    making ftrace_test_recursion_trylock() disable preemption, I discovered a
    path that makes the "not do the logic if bit is zero" unsafe.
    
    The recursion logic is done in hot paths like the function tracer. Thus,
    any code executed causes noticeable overhead. Thus, tricks are done to try
    to limit the amount of code executed. This included the recursion testing
    logic.
    
    Having recursion testing is important, as there are many paths that can
    end up in an infinite recursion cycle when tracing every function in the
    kernel. Thus protection is needed to prevent that from happening.
    
    Because it is OK to recurse due to different running context levels (e.g.
    an interrupt preempts a trace, and then a trace occurs in the interrupt
    handler), a set of bits are used to know which context one is in (normal,
    softirq, irq and NMI). If a recursion occurs in the same level, it is
    prevented*.
    
    Then there are infrastructure levels of recursion as well. When more than
    one callback is attached to the same function to trace, it calls a loop
    function to iterate over all the callbacks. Both the callbacks and the
    loop function have recursion protection. The callbacks use the
    "ftrace_test_recursion_trylock()" which has a "function" set of context
    bits to test, and the loop function calls the internal
    trace_test_and_set_recursion() directly, with an "internal" set of bits.
    
    If an architecture does not implement all the features supported by ftrace
    then the callbacks are never called directly, and the loop function is
    called instead, which will implement the features of ftrace.
    
    Since both the loop function and the callbacks do recursion protection, it
    was seemed unnecessary to do it in both locations. Thus, a trick was made
    to have the internal set of recursion bits at a more significant bit
    location than the function bits. Then, if any of the higher bits were set,
    the logic of the function bits could be skipped, as any new recursion
    would first have to go through the loop function.
    
    This is true for architectures that do not support all the ftrace
    features, because all functions being traced must first go through the
    loop function before going to the callbacks. But this is not true for
    architectures that support all the ftrace features. That's because the
    loop function could be called due to two callbacks attached to the same
    function, but then a recursion function inside the callback could be
    called that does not share any other callback, and it will be called
    directly.
    
    i.e.
    
     traced_function_1: [ more than one callback tracing it ]
       call loop_func
    
     loop_func:
       trace_recursion set internal bit
       call callback
    
     callback:
       trace_recursion [ skipped because internal bit is set, return 0 ]
       call traced_function_2
    
     traced_function_2: [ only traced by above callback ]
       call callback
    
     callback:
       trace_recursion [ skipped because internal bit is set, return 0 ]
       call traced_function_2
    
     [ wash, rinse, repeat, BOOM! out of shampoo! ]
    
    Thus, the "bit == 0 skip" trick is not safe, unless the loop function is
    call for all functions.
    
    Since we want to encourage architectures to implement all ftrace features,
    having them slow down due to this extra logic may encourage the
    maintainers to update to the latest ftrace features. And because this
    logic is only safe for them, remove it completely.
    
     [*] There is on layer of recursion that is allowed, and that is to allow
         for the transition between interrupt context (normal -> softirq ->
         irq -> NMI), because a trace may occur before the context update is
         visible to the trace recursion logic.
    
    Link: https://lore.kernel.org/all/609b565a-ed6e-a1da-f025-166691b5d994@linux.alibaba.com/
    Link: https://lkml.kernel.org/r/20211018154412.09fcad3c@gandalf.local.home
    
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Jiri Kosina <jikos@kernel.org>
    Cc: Miroslav Benes <mbenes@suse.cz>
    Cc: Joe Lawrence <joe.lawrence@redhat.com>
    Cc: Colin Ian King <colin.king@canonical.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Jisheng Zhang <jszhang@kernel.org>
    Cc: =?utf-8?b?546L6LSH?= <yun.wang@linux.alibaba.com>
    Cc: Guo Ren <guoren@kernel.org>
    Cc: stable@vger.kernel.org
    Fixes: edc15cafcbfa3 ("tracing: Avoid unnecessary multiple recursion checks")
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54dc25f4e31eaef43ddc92758ed0fc26826f2ad9
Author: Jeff Layton <jlayton@kernel.org>
Date:   Thu Oct 7 14:19:49 2021 -0400

    ceph: fix handling of "meta" errors
    
    commit 1bd85aa65d0e7b5e4d09240f492f37c569fdd431 upstream.
    
    Currently, we check the wb_err too early for directories, before all of
    the unsafe child requests have been waited on. In order to fix that we
    need to check the mapping->wb_err later nearer to the end of ceph_fsync.
    
    We also have an overly-complex method for tracking errors after
    blocklisting. The errors recorded in cleanup_session_requests go to a
    completely separate field in the inode, but we end up reporting them the
    same way we would for any other error (in fsync).
    
    There's no real benefit to tracking these errors in two different
    places, since the only reporting mechanism for them is in fsync, and
    we'd need to advance them both every time.
    
    Given that, we can just remove i_meta_err, and convert the places that
    used it to instead just use mapping->wb_err instead. That also fixes
    the original problem by ensuring that we do a check_and_advance of the
    wb_err at the end of the fsync op.
    
    Cc: stable@vger.kernel.org
    URL: https://tracker.ceph.com/issues/52864
    Reported-by: Patrick Donnelly <pdonnell@redhat.com>
    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    Reviewed-by: Xiubo Li <xiubli@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ff7b35631ac5359a0adfcb0507cc08cdf94e154
Author: Jeff Layton <jlayton@kernel.org>
Date:   Thu Sep 30 08:33:13 2021 -0400

    ceph: skip existing superblocks that are blocklisted or shut down when mounting
    
    commit 98d0a6fb7303a6f4a120b8b8ed05b86ff5db53e8 upstream.
    
    Currently when mounting, we may end up finding an existing superblock
    that corresponds to a blocklisted MDS client. This means that the new
    mount ends up being unusable.
    
    If we've found an existing superblock with a client that is already
    blocklisted, and the client is not configured to recover on its own,
    fail the match. Ditto if the superblock has been forcibly unmounted.
    
    While we're in here, also rename "other" to the more conventional "fsc".
    
    Cc: stable@vger.kernel.org
    URL: https://bugzilla.redhat.com/show_bug.cgi?id=1901499
    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    Reviewed-by: Xiubo Li <xiubli@redhat.com>
    Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d832133cf22881b25e25760ae502c7f4ad80b08b
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Thu Oct 14 17:26:40 2021 +0800

    can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
    
    commit a4fbe70c5cb746441d56b28cf88161d9e0e25378 upstream.
    
    The receiver should abort TP if 'total message size' in TP.CM_RTS and
    TP.CM_BAM is less than 9 or greater than 1785 [1], but currently the
    j1939 stack only checks the upper bound and the receiver will accept
    the following broadcast message:
    
      vcan1  18ECFF00   [8]  20 08 00 02 FF 00 23 01
      vcan1  18EBFF00   [8]  01 00 00 00 00 00 00 00
      vcan1  18EBFF00   [8]  02 00 FF FF FF FF FF FF
    
    This patch adds check for the lower bound and abort illegal TP.
    
    [1] SAE-J1939-82 A.3.4 Row 2 and A.3.6 Row 6.
    
    Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
    Link: https://lore.kernel.org/all/1634203601-3460-1-git-send-email-zhangchangzhong@huawei.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03ec23e55e3eb0ef85ff005b3e83eadff49e2d72
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Thu Sep 30 11:33:20 2021 +0800

    can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length
    
    commit 379743985ab6cfe2cbd32067cf4ed497baca6d06 upstream.
    
    According to SAE-J1939-21, the data length of TP.DT must be 8 bytes, so
    cancel session when receive unexpected TP.DT message.
    
    Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
    Link: https://lore.kernel.org/all/1632972800-45091-1-git-send-email-zhangchangzhong@huawei.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e8811707e2df0c6ba920f0cad3a3bca7b42132f
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Sun Sep 26 18:47:57 2021 +0800

    can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
    
    commit d9d52a3ebd284882f5562c88e55991add5d01586 upstream.
    
    It will trigger UAF for rx_kref of j1939_priv as following.
    
            cpu0                                    cpu1
    j1939_sk_bind(socket0, ndev0, ...)
    j1939_netdev_start
                                            j1939_sk_bind(socket1, ndev0, ...)
                                            j1939_netdev_start
    j1939_priv_set
                                            j1939_priv_get_by_ndev_locked
    j1939_jsk_add
    .....
    j1939_netdev_stop
    kref_put_lock(&priv->rx_kref, ...)
                                            kref_get(&priv->rx_kref, ...)
                                            REFCOUNT_WARN("addition on 0;...")
    
    ====================================================
    refcount_t: addition on 0; use-after-free.
    WARNING: CPU: 1 PID: 20874 at lib/refcount.c:25 refcount_warn_saturate+0x169/0x1e0
    RIP: 0010:refcount_warn_saturate+0x169/0x1e0
    Call Trace:
     j1939_netdev_start+0x68b/0x920
     j1939_sk_bind+0x426/0xeb0
     ? security_socket_bind+0x83/0xb0
    
    The rx_kref's kref_get() and kref_put() should use j1939_netdev_lock to
    protect.
    
    Fixes: 9d71dd0c70099 ("can: add support of SAE J1939 protocol")
    Link: https://lore.kernel.org/all/20210926104757.2021540-1-william.xuanziyang@huawei.com
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+85d9878b19c94f9019ad@syzkaller.appspotmail.com
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb545be86c533277687450e5cb189ef890ff9ae7
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Mon Sep 6 17:42:19 2021 +0800

    can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
    
    commit b504a884f6b5a77dac7d580ffa08e482f70d1a30 upstream.
    
    When the session state is J1939_SESSION_DONE, j1939_tp_rxtimer() will
    give an alert "rx timeout, send abort", but do nothing actually. Move
    the alert into session active judgment condition, it is more
    reasonable.
    
    One of the scenarios is that j1939_tp_rxtimer() execute followed by
    j1939_xtp_rx_abort_one(). After j1939_xtp_rx_abort_one(), the session
    state is J1939_SESSION_DONE, then j1939_tp_rxtimer() give an alert.
    
    Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
    Link: https://lore.kernel.org/all/20210906094219.95924-1-william.xuanziyang@huawei.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 013e7890663d3696a8e8d93da1e4a4698387596c
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Sat Oct 9 15:40:30 2021 +0800

    can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg()
    
    commit 43a08c3bdac4cb42eff8fe5e2278bffe0c5c3daa upstream.
    
    When isotp_sendmsg() concurrent, tx.state of all TX processes can be
    ISOTP_IDLE. The conditions so->tx.state != ISOTP_IDLE and
    wq_has_sleeper(&so->wait) can not protect TX buffer from being
    accessed by multiple TX processes.
    
    We can use cmpxchg() to try to modify tx.state to ISOTP_SENDING firstly.
    If the modification of the previous process succeed, the later process
    must wait tx.state to ISOTP_IDLE firstly. Thus, we can ensure TX buffer
    is accessed by only one process at the same time. And we should also
    restore the original tx.state at the subsequent error processes.
    
    Fixes: e057dd3fc20f ("can: add ISO 15765-2:2016 transport protocol")
    Link: https://lore.kernel.org/all/c2517874fbdf4188585cf9ddf67a8fa74d5dbde5.1633764159.git.william.xuanziyang@huawei.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a76abedd2be3926d6deba236a935c7f98abf9110
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Sat Oct 9 15:40:18 2021 +0800

    can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible()
    
    commit 9acf636215a6ce9362fe618e7da4913b8bfe84c8 upstream.
    
    Using wait_event_interruptible() to wait for complete transmission,
    but do not check the result of wait_event_interruptible() which can be
    interrupted. It will result in TX buffer has multiple accessors and
    the later process interferes with the previous process.
    
    Following is one of the problems reported by syzbot.
    
    =============================================================
    WARNING: CPU: 0 PID: 0 at net/can/isotp.c:840 isotp_tx_timer_handler+0x2e0/0x4c0
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.13.0-rc7+ #68
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/01/2014
    RIP: 0010:isotp_tx_timer_handler+0x2e0/0x4c0
    Call Trace:
     <IRQ>
     ? isotp_setsockopt+0x390/0x390
     __hrtimer_run_queues+0xb8/0x610
     hrtimer_run_softirq+0x91/0xd0
     ? rcu_read_lock_sched_held+0x4d/0x80
     __do_softirq+0xe8/0x553
     irq_exit_rcu+0xf8/0x100
     sysvec_apic_timer_interrupt+0x9e/0xc0
     </IRQ>
     asm_sysvec_apic_timer_interrupt+0x12/0x20
    
    Add result check for wait_event_interruptible() in isotp_sendmsg()
    to avoid multiple accessers for tx buffer.
    
    Fixes: e057dd3fc20f ("can: add ISO 15765-2:2016 transport protocol")
    Link: https://lore.kernel.org/all/10ca695732c9dd267c76a3c30f37aefe1ff7e32f.1633764159.git.william.xuanziyang@huawei.com
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+78bab6958a614b0c80b9@syzkaller.appspotmail.com
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d12d110a820de91c3357f02333539d05c225e88
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Fri May 7 11:18:39 2021 +0200

    can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path
    
    commit d674a8f123b4096d85955c7eaabec688f29724c9 upstream.
    
    When the a large chunk of data send and the receiver does not send a
    Flow Control frame back in time, the sendmsg() does not return a error
    code, but the number of bytes sent corresponding to the size of the
    packet.
    
    If a timeout occurs the isotp_tx_timer_handler() is fired, sets
    sk->sk_err and calls the sk->sk_error_report() function. It was
    wrongly expected that the error would be propagated to user space in
    every case. For isotp_sendmsg() blocking on wait_event_interruptible()
    this is not the case.
    
    This patch fixes the problem by checking if sk->sk_err is set and
    returning the error to user space.
    
    Fixes: e057dd3fc20f ("can: add ISO 15765-2:2016 transport protocol")
    Link: https://github.com/hartkopp/can-isotp/issues/42
    Link: https://github.com/hartkopp/can-isotp/pull/43
    Link: https://lore.kernel.org/all/20210507091839.1366379-1-mkl@pengutronix.de
    Cc: stable@vger.kernel.org
    Reported-by: Sottas Guillaume (LMB) <Guillaume.Sottas@liebherr.com>
    Tested-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e5afdc2315b0737edcf55bede4ee1640d2d464d
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Thu Oct 14 06:28:33 2021 +0000

    can: peak_pci: peak_pci_remove(): fix UAF
    
    commit 949fe9b35570361bc6ee2652f89a0561b26eec98 upstream.
    
    When remove the module peek_pci, referencing 'chan' again after
    releasing 'dev' will cause UAF.
    
    Fix this by releasing 'dev' later.
    
    The following log reveals it:
    
    [   35.961814 ] BUG: KASAN: use-after-free in peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.963414 ] Read of size 8 at addr ffff888136998ee8 by task modprobe/5537
    [   35.965513 ] Call Trace:
    [   35.965718 ]  dump_stack_lvl+0xa8/0xd1
    [   35.966028 ]  print_address_description+0x87/0x3b0
    [   35.966420 ]  kasan_report+0x172/0x1c0
    [   35.966725 ]  ? peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.967137 ]  ? trace_irq_enable_rcuidle+0x10/0x170
    [   35.967529 ]  ? peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.967945 ]  __asan_report_load8_noabort+0x14/0x20
    [   35.968346 ]  peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.968752 ]  pci_device_remove+0xa9/0x250
    
    Fixes: e6d9c80b7ca1 ("can: peak_pci: add support of some new PEAK-System PCI cards")
    Link: https://lore.kernel.org/all/1634192913-15639-1-git-send-email-zheyuma97@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44c353a14375973ebdf46ac5ade6211d88646fbd
Author: Stephane Grosjean <s.grosjean@peak-system.com>
Date:   Wed Sep 29 16:21:10 2021 +0200

    can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
    
    commit 3d031abc7e7249573148871180c28ecedb5e27df upstream.
    
    This corrects the lack of notification of a return to ERROR_ACTIVE
    state for USB - CANFD devices from PEAK-System.
    
    Fixes: 0a25e1f4f185 ("can: peak_usb: add support for PEAK new CANFD USB adapters")
    Link: https://lore.kernel.org/all/20210929142111.55757-1-s.grosjean@peak-system.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e18b9f4d62c1a3c27c218982e89402bcba190da7
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Fri Sep 24 16:55:56 2021 +0900

    can: rcar_can: fix suspend/resume
    
    commit f7c05c3987dcfde9a4e8c2d533db013fabebca0d upstream.
    
    If the driver was not opened, rcar_can_suspend() should not call
    clk_disable() because the clock was not enabled.
    
    Fixes: fd1159318e55 ("can: add Renesas R-Car CAN driver")
    Link: https://lore.kernel.org/all/20210924075556.223685-1-yoshihiro.shimoda.uh@renesas.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Ayumi Nakamichi <ayumi.nakamichi.kf@renesas.com>
    Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
    Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 113f7a1f3421ea0ef7b6dcccdb465ea2fbff9b93
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Wed Oct 20 20:33:40 2021 +0300

    net: enetc: make sure all traffic classes can send large frames
    
    [ Upstream commit e378f4967c8edd64c680f2e279cb646ee06b6f2d ]
    
    The enetc driver does not implement .ndo_change_mtu, instead it
    configures the MAC register field PTC{Traffic Class}MSDUR[MAXSDU]
    statically to a large value during probe time.
    
    The driver used to configure only the max SDU for traffic class 0, and
    that was fine while the driver could only use traffic class 0. But with
    the introduction of mqprio, sending a large frame into any other TC than
    0 is broken.
    
    This patch fixes that by replicating per traffic class the static
    configuration done in enetc_configure_port_mac().
    
    Fixes: cbe9e835946f ("enetc: Enable TC offloading with mqprio")
    Reported-by: Richie Pearn <richard.pearn@nxp.com>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: <Claudiu Manoil <claudiu.manoil@nxp.com>
    Link: https://lore.kernel.org/r/20211020173340.1089992-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 284c68cae7e0ac1c79ed3298094178ccd798e551
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Wed Oct 20 19:52:06 2021 +0300

    net: enetc: fix ethtool counter name for PM0_TERR
    
    [ Upstream commit fb8dc5fc8cbdfd62ecd16493848aee2f42ed84d9 ]
    
    There are two counters named "MAC tx frames", one of them is actually
    incorrect. The correct name for that counter should be "MAC tx error
    frames", which is symmetric to the existing "MAC rx error frames".
    
    Fixes: 16eb4c85c964 ("enetc: Add ethtool statistics")
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: <Claudiu Manoil <claudiu.manoil@nxp.com>
    Link: https://lore.kernel.org/r/20211020165206.1069889-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eff55ddd240fd5372b607587a683d97d6bc6afaf
Author: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
Date:   Mon Jun 7 14:17:11 2021 -0700

    drm/kmb: Enable ADV bridge after modeset
    
    [ Upstream commit 74056092ff415e7e20ce2544689b32ee811c4f0b ]
    
    On KMB, ADV bridge must be programmed and powered on prior to
    MIPI DSI HW initialization.
    
    v2: changed to atomic_bridge_chain_enable (Sam)
    
    Fixes: 98521f4d4b4c ("drm/kmb: Mipi DSI part of the display driver")
    Co-developed-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211019230719.789958-1-anitha.chrisanthus@intel.com
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0179dbae96d5823b4ade39cdfa44812d6875b41
Author: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
Date:   Mon Jul 19 16:28:51 2021 -0700

    drm/kmb: Corrected typo in handle_lcd_irq
    
    [ Upstream commit 004d2719806fb8e355c1bccd538e82c04319d391 ]
    
    Check for Overflow bits for layer3 in the irq handler.
    
    Fixes: 7f7b96a8a0a1 ("drm/kmb: Add support for KeemBay Display")
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211013233632.471892-5-anitha.chrisanthus@intel.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 566ec004ed8b72429c1b7a2d9be9677d3e48d88d
Author: Edmund Dea <edmund.j.dea@intel.com>
Date:   Wed Oct 6 16:03:48 2021 -0700

    drm/kmb: Disable change of plane parameters
    
    [ Upstream commit 982f8ad666a1123028a077b6b009871a0dc9df26 ]
    
    Due to HW limitations, KMB cannot change height, width, or
    pixel format after initial plane configuration.
    
    v2: removed memset disp_cfg as it is already zero.
    
    Fixes: 7f7b96a8a0a1 ("drm/kmb: Add support for KeemBay Display")
    Signed-off-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211013233632.471892-4-anitha.chrisanthus@intel.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2317b45fb3d2a8e78c14fa9efa779c8a37fa7bf6
Author: Edmund Dea <edmund.j.dea@intel.com>
Date:   Tue Apr 20 15:31:53 2021 -0700

    drm/kmb: Remove clearing DPHY regs
    
    [ Upstream commit 13047a092c6d3f23b7d684b5b3fe46b2b50423b9 ]
    
    Don't clear the shared DPHY registers common to MIPI Rx and MIPI Tx during
    DSI initialization since this was causing MIPI Rx reset. Rest of the
    writes are bitwise, so will not affect Mipi Rx side.
    
    Fixes: 98521f4d4b4c ("drm/kmb: Mipi DSI part of the display driver")
    Signed-off-by: Edmund Dea <edmund.j.dea@intel.com>
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211013233632.471892-3-anitha.chrisanthus@intel.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 97cfc4b28c4dc702b447863896478eb1c399d5e3
Author: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
Date:   Tue Dec 15 11:13:09 2020 -0800

    drm/kmb: Work around for higher system clock
    
    [ Upstream commit 3e4c31e8f70251732529a10934355084c7fab0ac ]
    
    Use a different value for system clock offset in the
    ppl/llp ratio calculations for clocks higher than 500 Mhz.
    
    Fixes: 98521f4d4b4c ("drm/kmb: Mipi DSI part of the display driver")
    Signed-off-by: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211013233632.471892-1-anitha.chrisanthus@intel.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4dbf3d658540bf0307440f6050a2ebca20f46095
Author: Dan Johansen <strit@manjaro.org>
Date:   Wed Aug 18 23:48:18 2021 +0200

    drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel
    
    [ Upstream commit 772970620a839141835eaf2bc507d957b10adcca ]
    
    This adjusts sync values according to the datasheet
    
    Fixes: 1c243751c095 ("drm/panel: ilitek-ili9881c: add support for Feixin K101-IM2BYL02 panel")
    Co-developed-by: Marius Gripsgard <marius@ubports.com>
    Signed-off-by: Dan Johansen <strit@manjaro.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210818214818.298089-1-strit@manjaro.org
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b194affe4454a73782122f9b3697ba4c210916b
Author: Emeel Hakim <ehakim@nvidia.com>
Date:   Mon Oct 18 15:31:19 2021 +0300

    net/mlx5e: IPsec: Fix work queue entry ethernet segment checksum flags
    
    [ Upstream commit 1d000323940137332d4d62c6332b6daf5f07aba7 ]
    
    Current Work Queue Entry (WQE) checksum (csum) flags in the ethernet
    segment (eseg) in case of IPsec crypto offload datapath are not aligned
    with PRM/HW expectations.
    
    Currently the driver always sets the l3_inner_csum flag in case of IPsec
    because of the wrong usage of skb->encapsulation as indicator for inner
    IPsec header since skb->encapsulation is always ON for IPsec packets
    since IPsec itself is an encapsulation protocol. The above forced a
    failing attempts of calculating csum of non-existing segments (like in
    the IP|ESP|TCP packet case which does not have an l3_inner) which led
    to lots of packet drops hence the low throughput.
    
    Fix by using xo->inner_ipproto as indicator for inner IPsec header
    instead of skb->encapsulation in addition to setting the csum flags
    as following:
    * Tunnel Mode:
    * Pkt: MAC  IP     ESP  IP    L4
    * CSUM: l3_cs | l3_inner_cs | l4_inner_cs
    *
    * Transport Mode:
    * Pkt: MAC  IP     ESP  L4
    * CSUM: l3_cs [ | l4_cs (checksum partial case)]
    *
    * Tunnel(VXLAN TCP/UDP) over Transport Mode
    * Pkt: MAC  IP     ESP  UDP  VXLAN  IP    L4
    * CSUM: l3_cs | l3_inner_cs | l4_inner_cs
    
    Fixes: f1267798c980 ("net/mlx5: Fix checksum issue of VXLAN and IPsec crypto offload")
    Signed-off-by: Emeel Hakim <ehakim@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea7a4d6132ceb2485521343492ea646a84728a32
Author: Emeel Hakim <ehakim@nvidia.com>
Date:   Mon Oct 18 15:30:09 2021 +0300

    net/mlx5e: IPsec: Fix a misuse of the software parser's fields
    
    [ Upstream commit d10457f85d4ae4d32c0df0cd65358a78c577fbe6 ]
    
    IPsec crypto offload current Software Parser (SWP) fields settings in
    the ethernet segment (eseg) are not aligned with PRM/HW expectations.
    Among others in case of IP|ESP|TCP packet, current driver sets the
    offsets for inner_l3 and inner_l4 although there is no inner l3/l4
    headers relative to ESP header in such packets.
    
    SWP provides the offsets for HW ,so it can be used to find csum fields
    to offload the checksum, however these are not necessarily used by HW
    and are used as fallback in case HW fails to parse the packet, e.g
    when performing IPSec Transport Aware (IP | ESP | TCP) there is no
    need to add SW parse on inner packet. So in some cases packets csum
    was calculated correctly , whereas in other cases it failed. The later
    faced csum errors (caused by wrong packet length calculations) which
    led to lots of packet drops hence the low throughput.
    
    Fix by setting the SWP fields as expected in a IP|ESP|TCP packet.
    
    the following describe the expected SWP offsets:
    * Tunnel Mode:
    * SWP:      OutL3       InL3  InL4
    * Pkt: MAC  IP     ESP  IP    L4
    *
    * Transport Mode:
    * SWP:      OutL3       OutL4
    * Pkt: MAC  IP     ESP  L4
    *
    * Tunnel(VXLAN TCP/UDP) over Transport Mode
    * SWP:      OutL3                   InL3  InL4
    * Pkt: MAC  IP     ESP  UDP  VXLAN  IP    L4
    
    Fixes: f1267798c980 ("net/mlx5: Fix checksum issue of VXLAN and IPsec crypto offload")
    Signed-off-by: Emeel Hakim <ehakim@nvidia.com>
    Reviewed-by: Raed Salem <raeds@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e867502bc4f6f1ed3c8b98813d17fbc36b45e7e7
Author: Tony Nguyen <anthony.l.nguyen@intel.com>
Date:   Tue Oct 19 13:04:16 2021 -0700

    ice: Add missing E810 device ids
    
    [ Upstream commit 7dcf78b870be6418d72bb1c4d4924bf0f5ca5052 ]
    
    As part of support for E810 XXV devices, some device ids were
    inadvertently left out. Add those missing ids.
    
    Fixes: 195fb97766da ("ice: add additional E810 device id")
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b76c3fedb24211883cbf6720ec324e6e5f8c412
Author: Sasha Neftin <sasha.neftin@intel.com>
Date:   Thu Sep 9 20:49:04 2021 +0300

    igc: Update I226_K device ID
    
    [ Upstream commit 79cc8322b6d82747cb63ea464146c0bf5b5a6bc1 ]
    
    The device ID for I226_K was incorrectly assigned, update the device
    ID to the correct one.
    
    Fixes: bfa5e98c9de4 ("igc: Add new device ID")
    Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
    Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3300633367b6a0a39446b98270ee335aa6b13fb5
Author: Sasha Neftin <sasha.neftin@intel.com>
Date:   Wed Sep 22 09:55:42 2021 +0300

    e1000e: Fix packet loss on Tiger Lake and later
    
    [ Upstream commit 639e298f432fb058a9496ea16863f53b1ce935fe ]
    
    Update the HW MAC initialization flow. Do not gate DMA clock from
    the modPHY block. Keeping this clock will prevent dropped packets
    sent in burst mode on the Kumeran interface.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=213651
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=213377
    Fixes: fb776f5d57ee ("e1000e: Add support for Tiger Lake")
    Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
    Tested-by: Mark Pearson <markpearson@lenovo.com>
    Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95c0a0c5ec8839f8f21672be786e87a100319ca8
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Wed Oct 20 16:18:34 2021 +0800

    ptp: Fix possible memory leak in ptp_clock_register()
    
    [ Upstream commit 4225fea1cb28370086e17e82c0f69bec2779dca0 ]
    
    I got memory leak as follows when doing fault injection test:
    
    unreferenced object 0xffff88800906c618 (size 8):
      comm "i2c-idt82p33931", pid 4421, jiffies 4294948083 (age 13.188s)
      hex dump (first 8 bytes):
        70 74 70 30 00 00 00 00                          ptp0....
      backtrace:
        [<00000000312ed458>] __kmalloc_track_caller+0x19f/0x3a0
        [<0000000079f6e2ff>] kvasprintf+0xb5/0x150
        [<0000000026aae54f>] kvasprintf_const+0x60/0x190
        [<00000000f323a5f7>] kobject_set_name_vargs+0x56/0x150
        [<000000004e35abdd>] dev_set_name+0xc0/0x100
        [<00000000f20cfe25>] ptp_clock_register+0x9f4/0xd30 [ptp]
        [<000000008bb9f0de>] idt82p33_probe.cold+0x8b6/0x1561 [ptp_idt82p33]
    
    When posix_clock_register() returns an error, the name allocated
    in dev_set_name() will be leaked, the put_device() should be used
    to give up the device reference, then the name will be freed in
    kobject_cleanup() and other memory will be freed in ptp_clock_release().
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: a33121e5487b ("ptp: fix the race between the release of ptp_clock and cdev")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d487413c020f1c51d6b60cec1815e3ab58d6fb27
Author: Kurt Kanzenbach <kurt@linutronix.de>
Date:   Wed Oct 20 09:04:33 2021 +0200

    net: stmmac: Fix E2E delay mechanism
    
    [ Upstream commit 3cb958027cb8b78d3ee639ce9af54c2ef1bf964f ]
    
    When utilizing End to End delay mechanism, the following error messages show up:
    
    |root@ehl1:~# ptp4l --tx_timestamp_timeout=50 -H -i eno2 -E -m
    |ptp4l[950.573]: selected /dev/ptp3 as PTP clock
    |ptp4l[950.586]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
    |ptp4l[950.586]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
    |ptp4l[952.879]: port 1: new foreign master 001395.fffe.4897b4-1
    |ptp4l[956.879]: selected best master clock 001395.fffe.4897b4
    |ptp4l[956.879]: port 1: assuming the grand master role
    |ptp4l[956.879]: port 1: LISTENING to GRAND_MASTER on RS_GRAND_MASTER
    |ptp4l[962.017]: port 1: received DELAY_REQ without timestamp
    |ptp4l[962.273]: port 1: received DELAY_REQ without timestamp
    |ptp4l[963.090]: port 1: received DELAY_REQ without timestamp
    
    Commit f2fb6b6275eb ("net: stmmac: enable timestamp snapshot for required PTP
    packets in dwmac v5.10a") already addresses this problem for the dwmac
    v5.10. However, same holds true for all dwmacs above version v4.10. Correct the
    check accordingly. Afterwards everything works as expected.
    
    Tested on Intel Atom(R) x6414RE Processor.
    
    Fixes: 14f347334bf2 ("net: stmmac: Correctly take timestamp for PTPv2")
    Fixes: f2fb6b6275eb ("net: stmmac: enable timestamp snapshot for required PTP packets in dwmac v5.10a")
    Suggested-by: Ong Boon Leong <boon.leong.ong@intel.com>
    Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b5a29f0acefa3eb1dbe2fa302b393eeff64d933
Author: Peng Li <lipeng321@huawei.com>
Date:   Tue Oct 19 22:16:35 2021 +0800

    net: hns3: disable sriov before unload hclge layer
    
    [ Upstream commit 0dd8a25f355b4df2d41c08df1716340854c7d4c5 ]
    
    HNS3 driver includes hns3.ko, hnae3.ko and hclge.ko.
    hns3.ko includes network stack and pci_driver, hclge.ko includes
    HW device action, algo_ops and timer task, hnae3.ko includes some
    register function.
    
    When SRIOV is enable and hclge.ko is removed, HW device is unloaded
    but VF still exists, PF will not reply VF mbx messages, and cause
    errors.
    
    This patch fix it by disable SRIOV before remove hclge.ko.
    
    Fixes: e2cb1dec9779 ("net: hns3: Add HNS3 VF HCL(Hardware Compatibility Layer) Support")
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82a136c15a7730de558d637a6977061af4ae835c
Author: Yufeng Mo <moyufeng@huawei.com>
Date:   Tue Oct 19 22:16:34 2021 +0800

    net: hns3: fix vf reset workqueue cannot exit
    
    [ Upstream commit 1385cc81baeb3bd8cbbbcdc1557f038ac1712529 ]
    
    The task of VF reset is performed through the workqueue. It checks the
    value of hdev->reset_pending to determine whether to exit the loop.
    However, the value of hdev->reset_pending may also be assigned by
    the interrupt function hclgevf_misc_irq_handle(), which may cause the
    loop fail to exit and keep occupying the workqueue. This loop is not
    necessary, so remove it and the workqueue will be rescheduled if the
    reset needs to be retried or a new reset occurs.
    
    Fixes: 1cc9bc6e5867 ("net: hns3: split hclgevf_reset() into preparing and rebuilding part")
    Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ee9191d338404992be5725a950efd0b82357215
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date:   Tue Oct 19 22:16:33 2021 +0800

    net: hns3: schedule the polling again when allocation fails
    
    [ Upstream commit 68752b24f51a71d4f350a764d890b670f59062c5 ]
    
    Currently when there is a rx page allocation failure, it is
    possible that polling may be stopped if there is no more packet
    to be reveiced, which may cause queue stall problem under memory
    pressure.
    
    This patch makes sure polling is scheduled again when there is
    any rx page allocation failure, and polling will try to allocate
    receive buffers until it succeeds.
    
    Now the allocation retry is added, it is unnecessary to do the rx
    page allocation at the end of rx cleaning, so remove it. And reset
    the unused_count to zero after calling hns3_nic_alloc_rx_buffers()
    to avoid calling hns3_nic_alloc_rx_buffers() repeatedly under
    memory pressure.
    
    Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6446be7c909045f336e6e4bd0effb427de5847ee
Author: Guangbin Huang <huangguangbin2@huawei.com>
Date:   Tue Oct 19 22:16:30 2021 +0800

    net: hns3: add limit ets dwrr bandwidth cannot be 0
    
    [ Upstream commit 731797fdffa3d083db536e2fdd07ceb050bb40b1 ]
    
    If ets dwrr bandwidth of tc is set to 0, the hardware will switch to SP
    mode. In this case, this tc may occupy all the tx bandwidth if it has
    huge traffic, so it violates the purpose of the user setting.
    
    To fix this problem, limit the ets dwrr bandwidth must greater than 0.
    
    Fixes: cacde272dd00 ("net: hns3: Add hclge_dcb module for the support of DCB feature")
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dddafeda454adc1091fd6d5d7bdb4142d825a848
Author: Guangbin Huang <huangguangbin2@huawei.com>
Date:   Tue Oct 19 22:16:29 2021 +0800

    net: hns3: reset DWRR of unused tc to zero
    
    [ Upstream commit b63fcaab959807282e9822e659034edf95fc8bd1 ]
    
    Currently, DWRR of tc will be initialized to a fixed value when this tc
    is enabled, but it is not been reset to 0 when this tc is disabled. It
    cause a problem that the DWRR of unused tc is not 0 after using tc tool
    to add and delete multi-tc parameters.
    
    For examples, after enabling 4 TCs and restoring to 1 TC by follow
    tc commands:
    
    $ tc qdisc add dev eth0 root mqprio num_tc 4 map 0 1 2 3 0 1 2 3 queues \
      8@0 8@8 8@16 8@24 hw 1 mode channel
    $ tc qdisc del dev eth0 root
    
    Now there is just one TC is enabled for eth0, but the tc info querying by
    debugfs is shown as follow:
    
    $ cat /mnt/hns3/0000:7d:00.0/tm/tc_sch_info
    enabled tc number: 1
    weight_offset: 14
    TC    MODE  WEIGHT
    0     dwrr    100
    1     dwrr    100
    2     dwrr    100
    3     dwrr    100
    4     dwrr      0
    5     dwrr      0
    6     dwrr      0
    7     dwrr      0
    
    This patch fixes it by resetting DWRR of tc to 0 when tc is disabled.
    
    Fixes: 848440544b41 ("net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver")
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 93fa0277ea4edbcb07d2b17312104c7f865d15ea
Author: Jiaran Zhang <zhangjiaran@huawei.com>
Date:   Tue Oct 19 22:16:28 2021 +0800

    net: hns3: Add configuration of TM QCN error event
    
    [ Upstream commit 60484103d5c387df49bd60de4b16c88022747048 ]
    
    Add configuration of interrupt type and fifo interrupt enable of TM QCN
    error event if enabled, otherwise this event will not be reported when
    there is error.
    
    Fixes: d914971df022 ("net: hns3: remove redundant query in hclge_config_tm_hw_err_int()")
    Signed-off-by: Jiaran Zhang <zhangjiaran@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ea0b497a7a2fff6a4b7090310c9f52c91975934
Author: Nathan Lynch <nathanl@linux.ibm.com>
Date:   Fri Oct 15 12:39:02 2021 -0500

    powerpc/smp: do not decrement idle task preempt count in CPU offline
    
    [ Upstream commit 787252a10d9422f3058df9a4821f389e5326c440 ]
    
    With PREEMPT_COUNT=y, when a CPU is offlined and then onlined again, we
    get:
    
    BUG: scheduling while atomic: swapper/1/0/0x00000000
    no locks held by swapper/1/0.
    CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.15.0-rc2+ #100
    Call Trace:
     dump_stack_lvl+0xac/0x108
     __schedule_bug+0xac/0xe0
     __schedule+0xcf8/0x10d0
     schedule_idle+0x3c/0x70
     do_idle+0x2d8/0x4a0
     cpu_startup_entry+0x38/0x40
     start_secondary+0x2ec/0x3a0
     start_secondary_prolog+0x10/0x14
    
    This is because powerpc's arch_cpu_idle_dead() decrements the idle task's
    preempt count, for reasons explained in commit a7c2bb8279d2 ("powerpc:
    Re-enable preemption before cpu_die()"), specifically "start_secondary()
    expects a preempt_count() of 0."
    
    However, since commit 2c669ef6979c ("powerpc/preempt: Don't touch the idle
    task's preempt_count during hotplug") and commit f1a0a376ca0c ("sched/core:
    Initialize the idle task with preemption disabled"), that justification no
    longer holds.
    
    The idle task isn't supposed to re-enable preemption, so remove the
    vestigial preempt_enable() from the CPU offline path.
    
    Tested with pseries and powernv in qemu, and pseries on PowerVM.
    
    Fixes: 2c669ef6979c ("powerpc/preempt: Don't touch the idle task's preempt_count during hotplug")
    Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
    Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
    Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211015173902.2278118-1-nathanl@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0666c4cd67b15319ece98b278a31e82e5b669525
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Oct 18 21:59:00 2021 +0200

    net: dsa: Fix an error handling path in 'dsa_switch_parse_ports_of()'
    
    [ Upstream commit ba69fd9101f20a6d05a96ab743341d4e7b1a2178 ]
    
    If we return before the end of the 'for_each_child_of_node()' iterator, the
    reference taken on 'port' must be released.
    
    Add the missing 'of_node_put()' calls.
    
    Fixes: 83c0afaec7b7 ("net: dsa: Add new binding implementation")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/15d5310d1d55ad51c1af80775865306d92432e03.1634587046.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ef9a287aab522fbf693155706bb3d96f3b9a261
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Mon Oct 4 00:56:06 2021 -0700

    NIOS2: irqflags: rename a redefined register name
    
    [ Upstream commit 4cce60f15c04d69eff6ffc539ab09137dbe15070 ]
    
    Both arch/nios2/ and drivers/mmc/host/tmio_mmc.c define a macro
    with the name "CTL_STATUS". Change the one in arch/nios2/ to be
    "CTL_FSTATUS" (flags status) to eliminate the build warning.
    
    In file included from ../drivers/mmc/host/tmio_mmc.c:22:
    drivers/mmc/host/tmio_mmc.h:31: warning: "CTL_STATUS" redefined
       31 | #define CTL_STATUS 0x1c
    arch/nios2/include/asm/registers.h:14: note: this is the location of the previous definition
       14 | #define CTL_STATUS      0
    
    Fixes: b31ebd8055ea ("nios2: Nios2 registers")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8b523da74a22ad637a3c4590f3480373790f2386
Author: Paul Blakey <paulb@nvidia.com>
Date:   Sun Oct 17 14:58:51 2021 +0300

    net/sched: act_ct: Fix byte count on fragmented packets
    
    [ Upstream commit 2dc4e9e88cfcc38454d52b01ed3422238c134003 ]
    
    First fragmented packets (frag offset = 0) byte len is zeroed
    when stolen by ip_defrag(). And since act_ct update the stats
    only afterwards (at end of execute), bytes aren't correctly
    accounted for such packets.
    
    To fix this, move stats update to start of action execute.
    
    Fixes: b57dc7c13ea9 ("net/sched: Introduce action ct")
    Signed-off-by: Paul Blakey <paulb@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 872b836a183dea48935039c588e586be724937cb
Author: Aleksander Jan Bajkowski <olek2@wp.pl>
Date:   Sat Oct 16 00:10:20 2021 +0200

    net: dsa: lantiq_gswip: fix register definition
    
    [ Upstream commit 66d262804a2276721eac86cf18fcd61046149193 ]
    
    I compared the register definitions with the D-Link DWR-966
    GPL sources and found that the PUAFD field definition was
    incorrect. This definition is unused and causes no issues.
    
    Fixes: 14fceff4771e ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
    Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
    Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57deb5ffd8f6d62c04bc256610010f0e72b14a4b
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Thu Oct 14 19:18:04 2021 -0700

    hamradio: baycom_epp: fix build for UML
    
    [ Upstream commit 0a9bb11a5e298e72b675255a4bb2893513000584 ]
    
    On i386, the baycom_epp driver wants to inspect X86 CPU features (TSC)
    and then act on that data, but that info is not available when running
    on UML, so prevent that test and do the default action.
    
    Prevents this build error on UML + i386:
    
    ../drivers/net/hamradio/baycom_epp.c: In function ‘epp_bh’:
    ../drivers/net/hamradio/baycom_epp.c:630:6: error: implicit declaration of function ‘boot_cpu_has’; did you mean ‘get_cpu_mask’? [-Werror=implicit-function-declaration]
      if (boot_cpu_has(X86_FEATURE_TSC))   \
          ^
    ../drivers/net/hamradio/baycom_epp.c:658:2: note: in expansion of macro ‘GETTICK’
      GETTICK(time1);
    
    Fixes: 68f5d3f3b654 ("um: add PCI over virtio emulation driver")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: linux-um@lists.infradead.org
    Cc: Jeff Dike <jdike@addtoit.com>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: Thomas Sailer <t.sailer@alumni.ethz.ch>
    Cc: linux-hams@vger.kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c74f3c127e6c360101c167252e543cd247f44d44
Author: Stephen Suryaputra <ssuryaextr@gmail.com>
Date:   Thu Oct 14 09:08:45 2021 -0400

    ipv6: When forwarding count rx stats on the orig netdev
    
    [ Upstream commit 0857d6f8c759d95f89d0436f86cdfd189ef99f20 ]
    
    Commit bdb7cc643fc9 ("ipv6: Count interface receive statistics on the
    ingress netdev") does not work when ip6_forward() executes on the skbs
    with vrf-enslaved netdev. Use IP6CB(skb)->iif to get to the right one.
    
    Add a selftest script to verify.
    
    Fixes: bdb7cc643fc9 ("ipv6: Count interface receive statistics on the ingress netdev")
    Signed-off-by: Stephen Suryaputra <ssuryaextr@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/20211014130845.410602-1-ssuryaextr@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1dda424ef5c437849db05fd4af8619a277dd33b4
Author: Leonard Crestez <cdleonard@gmail.com>
Date:   Fri Oct 15 10:26:04 2021 +0300

    tcp: md5: Fix overlap between vrf and non-vrf keys
    
    [ Upstream commit 86f1e3a8489f6a0232c1f3bc2bdb379f5ccdecec ]
    
    With net.ipv4.tcp_l3mdev_accept=1 it is possible for a listen socket to
    accept connection from the same client address in different VRFs. It is
    also possible to set different MD5 keys for these clients which differ
    only in the tcpm_l3index field.
    
    This appears to work when distinguishing between different VRFs but not
    between non-VRF and VRF connections. In particular:
    
     * tcp_md5_do_lookup_exact will match a non-vrf key against a vrf key.
    This means that adding a key with l3index != 0 after a key with l3index
    == 0 will cause the earlier key to be deleted. Both keys can be present
    if the non-vrf key is added later.
     * _tcp_md5_do_lookup can match a non-vrf key before a vrf key. This
    casues failures if the passwords differ.
    
    Fix this by making tcp_md5_do_lookup_exact perform an actual exact
    comparison on l3index and by making  __tcp_md5_do_lookup perfer
    vrf-bound keys above other considerations like prefixlen.
    
    Fixes: dea53bb80e07 ("tcp: Add l3index to tcp_md5sig_key and md5 functions")
    Signed-off-by: Leonard Crestez <cdleonard@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9c281a1006f4d2f4581e9c2cffc7360a09ea7562
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Fri Oct 15 15:07:54 2021 +0200

    lan78xx: select CRC32
    
    [ Upstream commit 46393d61a328d7c4e3264252dae891921126c674 ]
    
    Fix the following build/link error by adding a dependency on the CRC32
    routines:
    
      ld: drivers/net/usb/lan78xx.o: in function `lan78xx_set_multicast':
      lan78xx.c:(.text+0x48cf): undefined reference to `crc32_le'
    
    The actual use of crc32_le() comes indirectly through ether_crc().
    
    Fixes: 55d7de9de6c30 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5220cad0e69e865408e146463ceb8acd37f2db40
Author: Xin Long <lucien.xin@gmail.com>
Date:   Thu Oct 14 00:50:55 2021 -0400

    sctp: fix transport encap_port update in sctp_vtag_verify
    
    [ Upstream commit 075718fdaf0efe20223571236c1bf14ca35a7aa1 ]
    
    transport encap_port update should be updated when sctp_vtag_verify()
    succeeds, namely, returns 1, not returns 0. Correct it in this patch.
    
    While at it, also fix the indentation.
    
    Fixes: a1dd2cf2f1ae ("sctp: allow changing transport encap_port by peer packets")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ddffcd23d325f54707bc7757914905a9b16328c3
Author: Antoine Tenart <atenart@kernel.org>
Date:   Tue Oct 12 16:54:37 2021 +0200

    netfilter: ipvs: make global sysctl readonly in non-init netns
    
    [ Upstream commit 174c376278949c44aad89c514a6b5db6cee8db59 ]
    
    Because the data pointer of net/ipv4/vs/debug_level is not updated per
    netns, it must be marked as read-only in non-init netns.
    
    Fixes: c6d2d445d8de ("IPVS: netns, final patch enabling network name space.")
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd3d0282dd3d59ccef518691cf4cced784c7ea49
Author: Xin Long <lucien.xin@gmail.com>
Date:   Tue Oct 12 08:18:13 2021 -0400

    netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6
    
    [ Upstream commit a482c5e00a9b5a194085bcd372ac36141028becb ]
    
    In rt_mt6(), when it's a nonlinear skb, the 1st skb_header_pointer()
    only copies sizeof(struct ipv6_rt_hdr) to _route that rh points to.
    The access by ((const struct rt0_hdr *)rh)->reserved will overflow
    the buffer. So this access should be moved below the 2nd call to
    skb_header_pointer().
    
    Besides, after the 2nd skb_header_pointer(), its return value should
    also be checked, othersize, *rp may cause null-pointer-ref.
    
    v1->v2:
      - clean up some old debugging log.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aabf95dddb4557fb85bf560d02de27cb1e321b6f
Author: Brett Creeley <brett.creeley@intel.com>
Date:   Mon Sep 27 11:21:50 2021 -0700

    ice: Print the api_patch as part of the fw.mgmt.api
    
    [ Upstream commit b726ddf984a56a385c9df406a66c221f3a77c951 ]
    
    Currently when a user uses "devlink dev info", the fw.mgmt.api will be
    the major.minor numbers as shown below:
    
    devlink dev info pci/0000:3b:00.0
    pci/0000:3b:00.0:
      driver ice
      serial_number 00-01-00-ff-ff-00-00-00
      versions:
          fixed:
            board.id K91258-000
          running:
            fw.mgmt 6.1.2
            fw.mgmt.api 1.7 <--- No patch number included
            fw.mgmt.build 0xd75e7d06
            fw.mgmt.srev 5
            fw.undi 1.2992.0
            fw.undi.srev 5
            fw.psid.api 3.10
            fw.bundle_id 0x800085cc
            fw.app.name ICE OS Default Package
            fw.app 1.3.27.0
            fw.app.bundle_id 0xc0000001
            fw.netlist 3.10.2000-3.1e.0
            fw.netlist.build 0x2a76e110
          stored:
            fw.mgmt.srev 5
            fw.undi 1.2992.0
            fw.undi.srev 5
            fw.psid.api 3.10
            fw.bundle_id 0x800085cc
            fw.netlist 3.10.2000-3.1e.0
            fw.netlist.build 0x2a76e110
    
    There are many features in the driver that depend on the major, minor,
    and patch version of the FW. Without the patch number in the output for
    fw.mgmt.api debugging issues related to the FW API version is difficult.
    Also, using major.minor.patch aligns with the existing firmware version
    which uses a 3 digit value.
    
    Fix this by making the fw.mgmt.api print the major.minor.patch
    versions. Shown below is the result:
    
    devlink dev info pci/0000:3b:00.0
    pci/0000:3b:00.0:
      driver ice
      serial_number 00-01-00-ff-ff-00-00-00
      versions:
          fixed:
            board.id K91258-000
          running:
            fw.mgmt 6.1.2
            fw.mgmt.api 1.7.9 <--- patch number included
            fw.mgmt.build 0xd75e7d06
            fw.mgmt.srev 5
            fw.undi 1.2992.0
            fw.undi.srev 5
            fw.psid.api 3.10
            fw.bundle_id 0x800085cc
            fw.app.name ICE OS Default Package
            fw.app 1.3.27.0
            fw.app.bundle_id 0xc0000001
            fw.netlist 3.10.2000-3.1e.0
            fw.netlist.build 0x2a76e110
          stored:
            fw.mgmt.srev 5
            fw.undi 1.2992.0
            fw.undi.srev 5
            fw.psid.api 3.10
            fw.bundle_id 0x800085cc
            fw.netlist 3.10.2000-3.1e.0
            fw.netlist.build 0x2a76e110
    
    Fixes: ff2e5c700e08 ("ice: add basic handler for devlink .info_get")
    Signed-off-by: Brett Creeley <brett.creeley@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 75ebc3b08bbd42dc9b396f792fef896328feba41
Author: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Date:   Tue Sep 14 19:25:05 2021 -0400

    ice: fix getting UDP tunnel entry
    
    [ Upstream commit e4c2efa1393c6f1fbfabf91d1d83fcb4ae691ccb ]
    
    Correct parameters order in call to ice_tunnel_idx_to_entry function.
    
    Entry in sparse port table is correct when the idx is 0. For idx 1 one
    correct entry should be skipped, for idx 2 two of them should be skipped
    etc. Change if condition to be true when idx is 0, which means that
    previous valid entry of this tunnel type were skipped.
    
    Fixes: b20e6c17c468 ("ice: convert to new udp_tunnel infrastructure")
    Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 777682e59840e24e6c5672197e6ffbcf4bff823b
Author: Dave Ertman <david.m.ertman@intel.com>
Date:   Mon Oct 4 05:15:25 2021 -0700

    ice: Avoid crash from unnecessary IDA free
    
    [ Upstream commit 73e30a62b19b9fbb4e6a3465c59da186630d5f2e ]
    
    In the remove path, there is an attempt to free the aux_idx IDA whether
    it was allocated or not.  This can potentially cause a crash when
    unloading the driver on systems that do not initialize support for RDMA.
    But, this free cannot be gated by the status bit for RDMA, since it is
    allocated if the driver detects support for RDMA at probe time, but the
    driver can enter into a state where RDMA is not supported after the IDA
    has been allocated at probe time and this would lead to a memory leak.
    
    Initialize aux_idx to an invalid value and check for a valid value when
    unloading to determine if an IDA free is necessary.
    
    Fixes: d25a0fc41c1f9 ("ice: Initialize RDMA support")
    Reported-by: Jun Miao <jun.miao@windriver.com>
    Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
    Tested-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31b4517293bf16e9bf93c6ee43f0a643c43e90c4
Author: Brett Creeley <brett.creeley@intel.com>
Date:   Mon Jun 28 10:53:45 2021 -0700

    ice: Fix failure to re-add LAN/RDMA Tx queues
    
    [ Upstream commit ff7e93219442f5ac5b2cfd33e4fe4b7d5942f957 ]
    
    Currently if the VSI is rebuilt/removed and the RDMA PF driver is active
    the RDMA Tx queue scheduler node configuration will not be cleaned up.
    This will cause the rebuild/re-add of the VSI to fail due to the
    software structures not being correctly cleaned up for the VSI index.
    Fix this by always calling ice_rm_vsi_rdma_cfg() for all VSI. If there
    are no RDMA scheduler nodes created, then there is no harm in calling
    ice_rm_vsi_rdma_cfg(). This change applies to all VSI types, so if
    RDMA support is added for other VSI types they will also get this
    change.
    
    Fixes: 348048e724a0 ("ice: Implement iidc operations")
    Signed-off-by: Brett Creeley <brett.creeley@intel.com>
    Tested-by: Jerzy Wiktor Jurkowski <jerzy.wiktor.jurkowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18b4fcfeab6db6d6e7c832e440be621a1173e4b7
Author: Shengjiu Wang <shengjiu.wang@nxp.com>
Date:   Wed Oct 13 13:17:04 2021 +0800

    ASoC: wm8960: Fix clock configuration on slave mode
    
    [ Upstream commit 6b9b546dc00797c74bef491668ce5431ff54e1e2 ]
    
    There is a noise issue for 8kHz sample rate on slave mode.
    Compared with master mode, the difference is the DACDIV
    setting, after correcting the DACDIV, the noise is gone.
    
    There is no noise issue for 48kHz sample rate, because
    the default value of DACDIV is correct for 48kHz.
    
    So wm8960_configure_clocking() should be functional for
    ADC and DAC function even if it is slave mode.
    
    In order to be compatible for old use case, just add
    condition for checking that sysclk is zero with
    slave mode.
    
    Fixes: 0e50b51aa22f ("ASoC: wm8960: Let wm8960 driver configure its bit clock and frame clock")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/1634102224-3922-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 2b7d598b9651c182b4b71923a00d3f904aff21ed
Author: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Date:   Wed Oct 6 22:19:43 2021 +0200

    dma-debug: fix sg checks in debug_dma_map_sg()
    
    [ Upstream commit 293d92cbbd2418ca2ba43fed07f1b92e884d1c77 ]
    
    The following warning occurred sporadically on s390:
    DMA-API: nvme 0006:00:00.0: device driver maps memory from kernel text or rodata [addr=0000000048cc5e2f] [len=131072]
    WARNING: CPU: 4 PID: 825 at kernel/dma/debug.c:1083 check_for_illegal_area+0xa8/0x138
    
    It is a false-positive warning, due to broken logic in debug_dma_map_sg().
    check_for_illegal_area() checks for overlay of sg elements with kernel text
    or rodata. It is called with sg_dma_len(s) instead of s->length as
    parameter. After the call to ->map_sg(), sg_dma_len() will contain the
    length of possibly combined sg elements in the DMA address space, and not
    the individual sg element length, which would be s->length.
    
    The check will then use the physical start address of an sg element, and
    add the DMA length for the overlap check, which could result in the false
    warning, because the DMA length can be larger than the actual single sg
    element length.
    
    In addition, the call to check_for_illegal_area() happens in the iteration
    over mapped_ents, which will not include all individual sg elements if
    any of them were combined in ->map_sg().
    
    Fix this by using s->length instead of sg_dma_len(s). Also put the call to
    check_for_illegal_area() in a separate loop, iterating over all the
    individual sg elements ("nents" instead of "mapped_ents").
    
    While at it, as suggested by Robin Murphy, also move check_for_stack()
    inside the new loop, as it is similarly concerned with validating the
    individual sg elements.
    
    Link: https://lore.kernel.org/lkml/20210705185252.4074653-1-gerald.schaefer@linux.ibm.com
    Fixes: 884d05970bfb ("dma-debug: use sg_dma_len accessor")
    Signed-off-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90c7c58aa2bd02c65a4c63b7dfe0b16eab12cf9f
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Oct 6 16:20:34 2021 +0200

    netfilter: nf_tables: skip netdev events generated on netns removal
    
    [ Upstream commit 68a3765c659f809dcaac20030853a054646eb739 ]
    
    syzbot reported following (harmless) WARN:
    
     WARNING: CPU: 1 PID: 2648 at net/netfilter/core.c:468
      nft_netdev_unregister_hooks net/netfilter/nf_tables_api.c:230 [inline]
      nf_tables_unregister_hook include/net/netfilter/nf_tables.h:1090 [inline]
      __nft_release_basechain+0x138/0x640 net/netfilter/nf_tables_api.c:9524
      nft_netdev_event net/netfilter/nft_chain_filter.c:351 [inline]
      nf_tables_netdev_event+0x521/0x8a0 net/netfilter/nft_chain_filter.c:382
    
    reproducer:
    unshare -n bash -c 'ip link add br0 type bridge; nft add table netdev t ; \
     nft add chain netdev t ingress \{ type filter hook ingress device "br0" \
     priority 0\; policy drop\; \}'
    
    Problem is that when netns device exit hooks create the UNREGISTER
    event, the .pre_exit hook for nf_tables core has already removed the
    base hook.  Notifier attempts to do this again.
    
    The need to do base hook unregister unconditionally was needed in the past,
    because notifier was last stage where reg->dev dereference was safe.
    
    Now that nf_tables does the hook removal in .pre_exit, this isn't
    needed anymore.
    
    Reported-and-tested-by: syzbot+154bd5be532a63aa778b@syzkaller.appspotmail.com
    Fixes: 767d1216bff825 ("netfilter: nftables: fix possible UAF over chains from packet path in netns")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cae7cab804c943d723d52724a3aeb07a3f4a2650
Author: Juhee Kang <claudiajkang@gmail.com>
Date:   Mon Oct 4 21:14:38 2021 +0900

    netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value
    
    [ Upstream commit 902c0b1887522a099aa4e1e6b4b476c2fe5dd13e ]
    
    Currently, when the rule related to IDLETIMER is added, idletimer_tg timer
    structure is initialized by kmalloc on executing idletimer_tg_create
    function. However, in this process timer->timer_type is not defined to
    a specific value. Thus, timer->timer_type has garbage value and it occurs
    kernel panic. So, this commit fixes the panic by initializing
    timer->timer_type using kzalloc instead of kmalloc.
    
    Test commands:
        # iptables -A OUTPUT -j IDLETIMER --timeout 1 --label test
        $ cat /sys/class/xt_idletimer/timers/test
          Killed
    
    Splat looks like:
        BUG: KASAN: user-memory-access in alarm_expires_remaining+0x49/0x70
        Read of size 8 at addr 0000002e8c7bc4c8 by task cat/917
        CPU: 12 PID: 917 Comm: cat Not tainted 5.14.0+ #3 79940a339f71eb14fc81aee1757a20d5bf13eb0e
        Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-1ubuntu1.1 04/01/2014
        Call Trace:
         dump_stack_lvl+0x6e/0x9c
         kasan_report.cold+0x112/0x117
         ? alarm_expires_remaining+0x49/0x70
         __asan_load8+0x86/0xb0
         alarm_expires_remaining+0x49/0x70
         idletimer_tg_show+0xe5/0x19b [xt_IDLETIMER 11219304af9316a21bee5ba9d58f76a6b9bccc6d]
         dev_attr_show+0x3c/0x60
         sysfs_kf_seq_show+0x11d/0x1f0
         ? device_remove_bin_file+0x20/0x20
         kernfs_seq_show+0xa4/0xb0
         seq_read_iter+0x29c/0x750
         kernfs_fop_read_iter+0x25a/0x2c0
         ? __fsnotify_parent+0x3d1/0x570
         ? iov_iter_init+0x70/0x90
         new_sync_read+0x2a7/0x3d0
         ? __x64_sys_llseek+0x230/0x230
         ? rw_verify_area+0x81/0x150
         vfs_read+0x17b/0x240
         ksys_read+0xd9/0x180
         ? vfs_write+0x460/0x460
         ? do_syscall_64+0x16/0xc0
         ? lockdep_hardirqs_on+0x79/0x120
         __x64_sys_read+0x43/0x50
         do_syscall_64+0x3b/0xc0
         entry_SYSCALL_64_after_hwframe+0x44/0xae
        RIP: 0033:0x7f0cdc819142
        Code: c0 e9 c2 fe ff ff 50 48 8d 3d 3a ca 0a 00 e8 f5 19 02 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
        RSP: 002b:00007fff28eee5b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
        RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f0cdc819142
        RDX: 0000000000020000 RSI: 00007f0cdc032000 RDI: 0000000000000003
        RBP: 00007f0cdc032000 R08: 00007f0cdc031010 R09: 0000000000000000
        R10: 0000000000000022 R11: 0000000000000246 R12: 00005607e9ee31f0
        R13: 0000000000000003 R14: 0000000000020000 R15: 0000000000020000
    
    Fixes: 68983a354a65 ("netfilter: xtables: Add snapshot of hardidletimer target")
    Signed-off-by: Juhee Kang <claudiajkang@gmail.com>
    Reviewed-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 78325fcb17f363748ba2a969b0d524be770427c8
Author: Quentin Perret <qperret@google.com>
Date:   Tue Oct 5 13:20:31 2021 +0100

    KVM: arm64: Release mmap_lock when using VM_SHARED with MTE
    
    [ Upstream commit 6e6a8ef088e1222cb1250942f51ad9c1ab219ab2 ]
    
    VM_SHARED mappings are currently forbidden in a memslot with MTE to
    prevent two VMs racing to sanitise the same page. However, this check
    is performed while holding current->mm's mmap_lock, but fails to release
    it. Fix this by releasing the lock when needed.
    
    Fixes: ea7fc1bb1cd1 ("KVM: arm64: Introduce MTE VM feature")
    Signed-off-by: Quentin Perret <qperret@google.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20211005122031.809857-1-qperret@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b372264c66ef78f2cab44e877fbd765ad6d24c39
Author: Quentin Perret <qperret@google.com>
Date:   Tue Oct 5 10:01:41 2021 +0100

    KVM: arm64: Fix host stage-2 PGD refcount
    
    [ Upstream commit 1d58a17ef54599506d44c45ac95be27273a4d2b1 ]
    
    The KVM page-table library refcounts the pages of concatenated stage-2
    PGDs individually. However, when running KVM in protected mode, the
    host's stage-2 PGD is currently managed by EL2 as a single high-order
    compound page, which can cause the refcount of the tail pages to reach 0
    when they shouldn't, hence corrupting the page-table.
    
    Fix this by introducing a new hyp_split_page() helper in the EL2 page
    allocator (matching the kernel's split_page() function), and make use of
    it from host_s2_zalloc_pages_exact().
    
    Fixes: 1025c8c0c6ac ("KVM: arm64: Wrap the host with a stage 2")
    Acked-by: Will Deacon <will@kernel.org>
    Suggested-by: Will Deacon <will@kernel.org>
    Signed-off-by: Quentin Perret <qperret@google.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20211005090155.734578-5-qperret@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 649c2e76632d6f6314e26e1f63f57d3ec64e8868
Author: Mark Brown <broonie@kernel.org>
Date:   Fri Sep 24 20:48:44 2021 +0100

    ASoC: cs4341: Add SPI device ID table
    
    [ Upstream commit 0cc3687eadd0971d5d38ff90d14819d88f854960 ]
    
    Currently autoloading for SPI devices does not use the DT ID table, it uses
    SPI modalises. Supporting OF modalises is going to be difficult if not
    impractical, an attempt was made but has been reverted, so ensure that
    module autoloading works for this driver by adding SPI IDs for parts that
    only have a compatible listed.
    
    Fixes: 96c8395e2166 ("spi: Revert modalias changes")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: patches@opensource.cirrus.com
    Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20210924194844.45974-1-broonie@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit efdcc26785ded2e20a9240fe79ad16d3f1544f56
Author: Mark Brown <broonie@kernel.org>
Date:   Fri Sep 24 20:49:56 2021 +0100

    ASoC: pcm179x: Add missing entries SPI to device ID table
    
    [ Upstream commit ceef3240f9b7e592dd8d10d619c312c7336117fa ]
    
    Currently autoloading for SPI devices does not use the DT ID table, it uses
    SPI modalises. Supporting OF modalises is going to be difficult if not
    impractical, an attempt was made but has been reverted, so ensure that
    module autoloading works for this driver by adding SPI IDs for parts that
    only have a compatible listed.
    
    Fixes: 96c8395e2166 ("spi: Revert modalias changes")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20210924194956.46079-1-broonie@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 242ce1c51b694438005df1a167f5ce7da2d66604
Author: Shengjiu Wang <shengjiu.wang@nxp.com>
Date:   Fri Sep 10 17:18:30 2021 +0800

    ASoC: fsl_xcvr: Fix channel swap issue with ARC
    
    [ Upstream commit 74b7ee0e7b61838a0a161a84d105aeff0d042646 ]
    
    With pause and resume test for ARC, there is occasionally
    channel swap issue. The reason is that currently driver set
    the DPATH out of reset first, then start the DMA, the first
    data got from FIFO may not be the Left channel.
    
    Moving DPATH out of reset operation after the dma enablement
    to fix this issue.
    
    Fixes: 28564486866f ("ASoC: fsl_xcvr: Add XCVR ASoC CPU DAI driver")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://lore.kernel.org/r/1631265510-27384-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 41551810285ea644791628207c8e2afba091fa2d
Author: Peter Rosin <peda@axentia.se>
Date:   Mon Sep 20 16:49:39 2021 +0200

    ASoC: pcm512x: Mend accesses to the I2S_1 and I2S_2 registers
    
    [ Upstream commit 3f4b57ad07d9237acf1b8cff3f8bf530cacef87a ]
    
    Commit 25d27c4f68d2 ("ASoC: pcm512x: Add support for more data formats")
    breaks the TSE-850 device, which is using a pcm5142 in I2S and
    CBM_CFS mode (maybe not relevant). Without this fix, the result
    is:
    
    pcm512x 0-004c: Failed to set data format: -16
    
    And after that, no sound.
    
    This fix is not 100% correct. The datasheet of at least the pcm5142
    states that four bits (0xcc) in the I2S_1 register are "RSV"
    ("Reserved. Do not access.") and no hint is given as to what the
    initial values are supposed to be. So, specifying defaults for
    these bits is wrong. But perhaps better than a broken driver?
    
    Fixes: 25d27c4f68d2 ("ASoC: pcm512x: Add support for more data formats")
    Cc: Liam Girdwood <lgirdwood@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Jaroslav Kysela <perex@perex.cz>
    Cc: Takashi Iwai <tiwai@suse.com>
    Cc: Kirill Marinushkin <kmarinushkin@birdec.com>
    Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Cc: alsa-devel@alsa-project.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
    Reviewed-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
    Link: https://lore.kernel.org/r/2d221984-7a2e-7006-0f8a-ffb5f64ee885@axentia.se
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c8ecd221db9af14a26af51c3420f82ccdc7b9262
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:25 2021 +0530

    powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
    
    [ Upstream commit b7540d62509453263604a155bf2d5f0ed450cba2 ]
    
    Emit similar instruction sequences to commit a048a07d7f4535
    ("powerpc/64s: Add support for a store forwarding barrier at kernel
    entry/exit") when encountering BPF_NOSPEC.
    
    Mitigations are enabled depending on what the firmware advertises. In
    particular, we do not gate these mitigations based on current settings,
    just like in x86. Due to this, we don't need to take any action if
    mitigations are enabled or disabled at runtime.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/956570cbc191cd41f8274bed48ee757a86dac62a.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 663e89b7f4cc04183b5fe2a8d63a80b815e6712a
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:24 2021 +0530

    powerpc/security: Add a helper to query stf_barrier type
    
    [ Upstream commit 030905920f32e91a52794937f67434ac0b3ea41a ]
    
    Add a helper to return the stf_barrier type for the current processor.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/3bd5d7f96ea1547991ac2ce3137dc2b220bae285.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23d127cf5e66742f62f053130771b0ce82cf4b1c
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:21 2021 +0530

    powerpc/bpf: Validate branch ranges
    
    [ Upstream commit 3832ba4e283d7052b783dab8311df7e3590fed93 ]
    
    Add checks to ensure that we never emit branch instructions with
    truncated branch offsets.
    
    Suggested-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Tested-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Acked-by: Song Liu <songliubraving@fb.com>
    Acked-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/71d33a6b7603ec1013c9734dd8bdd4ff5e929142.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e680ab91a0341e0ac8e6331ab1c658cac7fe9cc1
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:20 2021 +0530

    powerpc/lib: Add helper to check if offset is within conditional branch range
    
    [ Upstream commit 4549c3ea3160fa8b3f37dfe2f957657bb265eda9 ]
    
    Add a helper to check if a given offset is within the branch range for a
    powerpc conditional branch instruction, and update some sites to use the
    new helper.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Acked-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/442b69a34ced32ca346a0d9a855f3f6cfdbbbd41.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6fe5d304ca49b4c463cc619e76fd364b84fe0ae1
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Wed Oct 6 13:20:44 2021 -0400

    NFSD: Keep existing listeners on portlist error
    
    [ Upstream commit c20106944eb679fa3ab7e686fe5f6ba30fbc51e5 ]
    
    If nfsd has existing listening sockets without any processes, then an error
    returned from svc_create_xprt() for an additional transport will remove
    those existing listeners.  We're seeing this in practice when userspace
    attempts to create rpcrdma transports without having the rpcrdma modules
    present before creating nfsd kernel processes.  Fix this by checking for
    existing sockets before calling nfsd_destroy().
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ad89fcde18cfbca10a5d4473904ea8cf1c43dde
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sun Aug 1 10:36:59 2021 -0700

    xtensa: xtfpga: Try software restart before simulating CPU reset
    
    [ Upstream commit 012e974501a270d8dfd4ee2039e1fdf7579c907e ]
    
    Rebooting xtensa images loaded with the '-kernel' option in qemu does
    not work. When executing a reboot command, the qemu session either hangs
    or experiences an endless sequence of error messages.
    
      Kernel panic - not syncing: Unrecoverable error in exception handler
    
    Reset code jumps to the CPU restart address, but Linux can not recover
    from there because code and data in the kernel init sections have been
    discarded and overwritten at this point.
    
    XTFPGA platforms have a means to reset the CPU by writing 0xdead into a
    specific FPGA IO address. When used in QEMU the kernel image loaded with
    the '-kernel' option gets restored to its original state allowing the
    machine to boot successfully.
    
    Use that mechanism to attempt a platform reset. If it does not work,
    fall back to the existing mechanism.
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8287678c20b2cc80e4d3390a37d521139c93f794
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Tue Oct 5 11:36:01 2021 -0700

    xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
    
    [ Upstream commit f3d7c2cdf6dc0d5402ec29c3673893b3542c5ad1 ]
    
    Use platform data to initialize xtfpga device drivers when CONFIG_USE_OF
    is not selected. This fixes xtfpga networking when CONFIG_USE_OF is not
    selected but CONFIG_OF is.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2602e9cc283ad1d61a71ad18af2b772346d368bc
Author: Yifan Zhang <yifan1.zhang@amd.com>
Date:   Tue Sep 28 15:42:35 2021 +0800

    drm/amdgpu: init iommu after amdkfd device init
    
    [ Upstream commit 714d9e4574d54596973ee3b0624ee4a16264d700 ]
    
    This patch is to fix clinfo failure in Raven/Picasso:
    
    Number of platforms: 1
      Platform Profile: FULL_PROFILE
      Platform Version: OpenCL 2.2 AMD-APP (3364.0)
      Platform Name: AMD Accelerated Parallel Processing
      Platform Vendor: Advanced Micro Devices, Inc.
      Platform Extensions: cl_khr_icd cl_amd_event_callback
    
      Platform Name: AMD Accelerated Parallel Processing Number of devices: 0
    
    Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
    Reviewed-by: James Zhu <James.Zhu@amd.com>
    Tested-by: James Zhu <James.Zhu@amd.com>
    Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68771262aab3f06806de32aca5c80642dbe0fe12
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Oct 1 15:40:00 2021 -0400

    drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI
    
    [ Upstream commit 4702b34d1de9582df9dfa0e583ea28fff7de29df ]
    
    Depends on DRM_AMDGPU_SI and DRM_AMD_DC
    
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 537a7189df573fd915817259b0bcb717c8d15b9c
Author: Hayes Wang <hayeswang@realtek.com>
Date:   Mon Oct 4 14:28:58 2021 +0800

    r8152: avoid to resubmit rx immediately
    
    [ Upstream commit baf33d7a75642b4b38a87fdf1cd96b506df4849f ]
    
    For the situation that the disconnect event comes very late when the
    device is unplugged, the driver would resubmit the RX bulk transfer
    after getting the callback with -EPROTO immediately and continually.
    Finally, soft lockup occurs.
    
    This patch avoids to resubmit RX immediately. It uses a workqueue to
    schedule the RX NAPI. And the NAPI would resubmit the RX. It let the
    disconnect event have opportunity to stop the submission before soft
    lockup.
    
    Reported-by: Jason-ch Chen <jason-ch.chen@mediatek.com>
    Tested-by: Jason-ch Chen <jason-ch.chen@mediatek.com>
    Signed-off-by: Hayes Wang <hayeswang@realtek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7d8cdaffc518c942ef7c941c091e0b4f782285cb
Author: Jan Beulich <jbeulich@suse.com>
Date:   Thu Sep 30 14:16:15 2021 +0200

    xen/x86: prevent PVH type from getting clobbered
    
    [ Upstream commit 9172b5c4a778da1f855b2e3780b1afabb3cfd523 ]
    
    Like xen_start_flags, xen_domain_type gets set before .bss gets cleared.
    Hence this variable also needs to be prevented from getting put in .bss,
    which is possible because XEN_NATIVE is an enumerator evaluating to
    zero. Any use prior to init_hvm_pv_info() setting the variable again
    would lead to wrong decisions; one such case is xenboot_console_setup()
    when called as a result of "earlyprintk=xen".
    
    Use __ro_after_init as more applicable than either __section(".data") or
    __read_mostly.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    
    Link: https://lore.kernel.org/r/d301677b-6f22-5ae6-bd36-458e1f323d0b@suse.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28d084adc22d342ae25cff720d43e1c941812b7e
Author: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Date:   Mon Oct 4 16:22:07 2021 +0900

    block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output
    
    [ Upstream commit 1dbdd99b511c966be9147ad72991a2856ac76f22 ]
    
    While debugging an issue we've found that $DEBUGFS/block/$disk/state
    doesn't decode QUEUE_FLAG_HCTX_ACTIVE but only displays its numerical
    value.
    
    Add QUEUE_FLAG(HCTX_ACTIVE) to the blk_queue_flag_name array so it'll get
    decoded properly.
    
    Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Link: https://lore.kernel.org/r/4351076388918075bd80ef07756f9d2ce63be12c.1633332053.git.johannes.thumshirn@wdc.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 96a37f6acb6a128615e831c2087892c35fda00ae
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Thu Sep 2 15:13:58 2021 +0300

    ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
    
    [ Upstream commit 4348cc10da6377a86940beb20ad357933b8f91bb ]
    
    Without a sensor node, the ISC will simply fail to probe, as the
    corresponding port node is missing.
    It is then logical to disable the node in the devicetree.
    If we add a port with a connection to a sensor endpoint, ISC can be enabled.
    
    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20210902121358.503589-1-eugen.hristev@microchip.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 470585caf603487928f603c17e898bc21899e114
Author: Rob Herring <robh@kernel.org>
Date:   Thu Aug 19 13:42:38 2021 -0500

    arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address
    
    [ Upstream commit 2e9edc07df2ec6f835222151fa4e536e9e54856a ]
    
    Based on 'ranges', the 'bus@4000000' node unit-address is off by 1 '0'.
    
    Link: https://lore.kernel.org/r/20210819184239.1192395-5-robh@kernel.org
    Cc: Andre Przywara <andre.przywara@arm.com>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 79e3dc32f14f38f8d18b02a3118e4c65ba0a7b28
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri Sep 24 15:43:57 2021 -0700

    sh: pgtable-3level: fix cast to pointer from integer of different size
    
    commit e8e9f1e6327005be9656aa135aeb9dfdaf6b3032 upstream.
    
    If X2TLB=y (CPU_SHX2=y or CPU_SHX3=y, e.g. migor_defconfig), pgd_t.pgd
    is "unsigned long long", causing:
    
        In file included from arch/sh/include/asm/pgtable.h:13,
                         from include/linux/pgtable.h:6,
                         from include/linux/mm.h:33,
                         from arch/sh/kernel/asm-offsets.c:14:
        arch/sh/include/asm/pgtable-3level.h: In function `pud_pgtable':
        arch/sh/include/asm/pgtable-3level.h:37:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
           37 |  return (pmd_t *)pud_val(pud);
              |         ^
    
    Fix this by adding an intermediate cast to "unsigned long", which is
    basically what the old code did before.
    
    Link: https://lkml.kernel.org/r/2c2eef3c9a2f57e5609100a4864715ccf253d30f.1631713483.git.geert+renesas@glider.be
    Fixes: 9cf6fa2458443118 ("mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t *")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Tested-by: Daniel Palmer <daniel@thingy.jp>
    Acked-by: Rob Landley <rob@landley.net>
    Cc: Yoshinori Sato <ysato@users.osdn.me>
    Cc: Rich Felker <dalias@libc.org>
    Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>
    Cc: Jacopo Mondi <jacopo+renesas@jmondi.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 d3f4c51c2a7fbc3b0efa754e398571fa7892eee4
Author: Helge Deller <deller@gmx.de>
Date:   Wed Sep 1 22:18:18 2021 +0200

    parisc: math-emu: Fix fall-through warnings
    
    commit 6f1fce595b78b775d7fb585c15c2dc3a6994f96e upstream.
    
    Fix lots of fallthrough warnings, e.g.:
    arch/parisc/math-emu/fpudispatch.c:323:33: warning: this statement may fall through [-Wimplicit-fallthrough=]
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4248f37f6cfc28015f4ac60a5c6021cd840e931a
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Mon Aug 30 11:11:28 2021 +0200

    block/mq-deadline: Move dd_queued() to fix defined but not used warning
    
    commit 55a51ea14094a1e7dd0d7f33237d246033dd39ab upstream.
    
    If CONFIG_BLK_DEBUG_FS=n:
    
        block/mq-deadline.c:274:12: warning: ‘dd_queued’ defined but not used [-Wunused-function]
          274 | static u32 dd_queued(struct deadline_data *dd, enum dd_prio prio)
              |            ^~~~~~~~~
    
    Fix this by moving dd_queued() just before the sole function that calls
    it.
    
    Fixes: 7b05bf771084ff78 ("Revert "block/mq-deadline: Prioritize high-priority requests"")
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Fixes: 38ba64d12d4c ("block/mq-deadline: Track I/O statistics")
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20210830091128.1854266-1-geert@linux-m68k.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>