commit d1047d75f77afefd19b19ae33cde7ad67f3628c9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Jul 11 19:39:51 2023 +0200

    Linux 6.3.13
    
    Link: https://lore.kernel.org/r/20230709111451.101012554@linuxfoundation.org
    Link: https://lore.kernel.org/r/20230709202353.266998088@linuxfoundation.org
    Link: https://lore.kernel.org/r/20230710054619.475084489@linuxfoundation.org
    Tested-by: Chris Paterson (CIP) <chris.paterson2@renesas.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/r/20230710142227.965586663@linuxfoundation.org
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d3cd509da688fb7ff6a5888baeca7e053a70fae
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Sat Jun 10 10:20:01 2023 +0800

    blktrace: use inline function for blk_trace_remove() while blktrace is disabled
    
    commit cbe7cff4a76bc749dd70264ca5cf924e2adf9296 upstream.
    
    If config is disabled, call blk_trace_remove() directly will trigger
    build warning, hence use inline function instead, prepare to fix
    blktrace debugfs entries leakage.
    
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20230610022003.2557284-2-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb686e3f101c171139d298980d4cc80ac1825f2b
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Fri Jun 16 09:21:36 2023 +0800

    md/raid1-10: fix casting from randomized structure in raid1_submit_write()
    
    commit b5a99602b74bbfa655be509c615181dd95b0719e upstream.
    
    Following build error triggered while build with clang version 17.0.0
    with W=1(this can't be reporduced with gcc 13.1.0):
    
    drivers/md/raid1-10.c:117:25: error: casting from randomized structure
    pointer type 'struct block_device *' to 'struct md_rdev *'
         117 |         struct md_rdev *rdev = (struct md_rdev *)bio->bi_bdev;
             |                                ^
    
    Fix this by casting 'bio->bi_bdev' to 'void *', as it used to be.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202306142042.fmjfmTF8-lkp@intel.com/
    Fixes: 8295efbe68c0 ("md/raid1-10: factor out a helper to submit normal write")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230616012136.3047071-1-yukuai1@huaweicloud.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5a0081ae5b935775d63613c1b89e3ce6eba5ee0
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Jun 29 21:35:19 2023 +0200

    x86/efi: Make efi_set_virtual_address_map IBT safe
    
    [ Upstream commit 0303c9729afc4094ef53e552b7b8cff7436028d6 ]
    
    Niklāvs reported a boot regression on an Alderlake machine and bisected it
    to commit 9df9d2f0471b ("init: Invoke arch_cpu_finalize_init() earlier").
    
    By moving the invocation of arch_cpu_finalize_init() further down he
    identified that efi_enter_virtual_mode() is the function which causes the
    boot hang.
    
    The main difference of the earlier invocation is that the boot CPU is
    already fully initialized and mitigations and alternatives are applied.
    
    But the only really interesting change turned out to be IBT, which is now
    enabled before efi_enter_virtual_mode(). "ibt=off" on the kernel command
    line cured the problem.
    
    Inspection of the involved calls in efi_enter_virtual_mode() unearthed that
    efi_set_virtual_address_map() is the only place in the kernel which invokes
    an EFI call without the IBT safe wrapper. This went obviously unnoticed so
    far as IBT was enabled later.
    
    Use arch_efi_call_virt() instead of efi_call() to cure that.
    
    Fixes: fe379fa4d199 ("x86/ibt: Disable IBT around firmware")
    Fixes: 9df9d2f0471b ("init: Invoke arch_cpu_finalize_init() earlier")
    Reported-by: Niklāvs Koļesņikovs <pinkflames.linux@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217602
    Link: https://lore.kernel.org/r/87jzvm12q0.ffs@tglx
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8769a62faacbbb6cac5e35d9047ce445183d4e9f
Author: Will Deacon <will@kernel.org>
Date:   Wed Jun 28 16:56:05 2023 +0100

    arm64: sme: Use STR P to clear FFR context field in streaming SVE mode
    
    [ Upstream commit 893b24181b4c4bf1fa2841b1ed192e5413a97cb1 ]
    
    The FFR is a predicate register which can vary between 16 and 256 bits
    in size depending upon the configured vector length. When saving the
    SVE state in streaming SVE mode, the FFR register is inaccessible and
    so commit 9f5848665788 ("arm64/sve: Make access to FFR optional") simply
    clears the FFR field of the in-memory context structure. Unfortunately,
    it achieves this using an unconditional 8-byte store and so if the SME
    vector length is anything other than 64 bytes in size we will either
    fail to clear the entire field or, worse, we will corrupt memory
    immediately following the structure. This has led to intermittent kfence
    splats in CI [1] and can trigger kmalloc Redzone corruption messages
    when running the 'fp-stress' kselftest:
    
     | =============================================================================
     | BUG kmalloc-1k (Not tainted): kmalloc Redzone overwritten
     | -----------------------------------------------------------------------------
     |
     | 0xffff000809bf1e22-0xffff000809bf1e27 @offset=7714. First byte 0x0 instead of 0xcc
     | Allocated in do_sme_acc+0x9c/0x220 age=2613 cpu=1 pid=531
     |  __kmalloc+0x8c/0xcc
     |  do_sme_acc+0x9c/0x220
     |  ...
    
    Replace the 8-byte store with a store of a predicate register which has
    been zero-initialised with PFALSE, ensuring that the entire field is
    cleared in memory.
    
    [1] https://lore.kernel.org/r/CA+G9fYtU7HsV0R0dp4XEH5xXHSJFw8KyDf5VQrLLfMxWfxQkag@mail.gmail.com
    
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
    Fixes: 9f5848665788 ("arm64/sve: Make access to FFR optional")
    Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Signed-off-by: Will Deacon <will@kernel.org>
    Reviewed-by: Mark Brown <broonie@kernel.org>
    Tested-by: Anders Roxell <anders.roxell@linaro.org>
    Link: https://lore.kernel.org/r/20230628155605.22296-1-will@kernel.org
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd409d0b83932f114e26b113910dc6a85030a30b
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jun 19 10:19:38 2023 +0200

    ksmbd: avoid field overflow warning
    
    [ Upstream commit 9cedc58bdbe9fff9aacd0ca19ee5777659f28fd7 ]
    
    clang warns about a possible field overflow in a memcpy:
    
    In file included from fs/smb/server/smb_common.c:7:
    include/linux/fortify-string.h:583:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
                            __write_overflow_field(p_size_field, size);
    
    It appears to interpret the "&out[baselen + 4]" as referring to a single
    byte of the character array, while the equivalen "out + baselen + 4" is
    seen as an offset into the array.
    
    I don't see that kind of warning elsewhere, so just go with the simple
    rework.
    
    Fixes: e2f34481b24d ("cifsd: add server-side procedures for SMB3")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c76afe02467bcaf7015ac7079084d38a2f5801c8
Author: Paulo Alcantara <pc@manguebit.com>
Date:   Mon Jun 26 16:04:17 2023 -0300

    smb: client: fix shared DFS root mounts with different prefixes
    
    [ Upstream commit 3ae872de410751fe5e629e04da491a632d95201c ]
    
    When having two DFS root mounts that are connected to same namespace,
    same mount options but different prefix paths, we can't really use the
    shared @server->origin_fullpath when chasing DFS links in them.
    
    Move the origin_fullpath field to cifs_tcon structure so when having
    shared DFS root mounts with different prefix paths, and we need to
    chase any DFS links, dfs_get_automount_devname() will pick up the
    correct full path out of the @tcon that will be used for the new
    mount.
    
    Before patch
    
      mount.cifs //dom/dfs/dir /mnt/1 -o ...
      mount.cifs //dom/dfs /mnt/2 -o ...
      # shared server, ses, tcon
      # server: origin_fullpath=//dom/dfs/dir
    
      # @server->origin_fullpath + '/dir/link1'
      $ ls /mnt/2/dir/link1
      ls: cannot open directory '/mnt/2/dir/link1': No such file or directory
    
    After patch
    
      mount.cifs //dom/dfs/dir /mnt/1 -o ...
      mount.cifs //dom/dfs /mnt/2 -o ...
      # shared server & ses
      # tcon_1: origin_fullpath=//dom/dfs/dir
      # tcon_2: origin_fullpath=//dom/dfs
    
      # @tcon_2->origin_fullpath + '/dir/link1'
      $ ls /mnt/2/dir/link1
      dir0  dir1  dir10  dir3  dir5  dir6  dir7  dir9  target2_file.txt  tsub
    
    Fixes: 8e3554150d6c ("cifs: fix sharing of DFS connections")
    Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c1f934b1a37d2a550c8b42d5db00c7fed8335773
Author: Paulo Alcantara <pc@manguebit.com>
Date:   Tue Jun 27 21:24:49 2023 -0300

    smb: client: fix broken file attrs with nodfs mounts
    
    [ Upstream commit d439b29057e26464120fc6c18f97433aa003b5fe ]
    
    *_get_inode_info() functions expect -EREMOTE when query path info
    calls find a DFS link, regardless whether !CONFIG_CIFS_DFS_UPCALL or
    'nodfs' mount option.  Otherwise, those files will miss the fake DFS
    file attributes.
    
    Before patch
    
      $ mount.cifs //srv/dfs /mnt/1 -o ...,nodfs
      $ ls -l /mnt/1
      ls: cannot access '/mnt/1/link': Operation not supported
      total 0
      -rwxr-xr-x 1 root root 0 Jul 26  2022 dfstest2_file1.txt
      drwxr-xr-x 2 root root 0 Aug  8  2022 dir1
      d????????? ? ?    ?    ?            ? link
    
    After patch
    
      $ mount.cifs //srv/dfs /mnt/1 -o ...,nodfs
      $ ls -l /mnt/1
      total 0
      -rwxr-xr-x 1 root root 0 Jul 26  2022 dfstest2_file1.txt
      drwxr-xr-x 2 root root 0 Aug  8  2022 dir1
      drwx--x--x 2 root root 0 Jun 26 20:29 link
    
    Fixes: c877ce47e137 ("cifs: reduce roundtrips on create/qinfo requests")
    Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8c3f20e534a6a1535fa1312936af6ceb043901e
Author: Shyam Prasad N <sprasad@microsoft.com>
Date:   Thu Jun 22 18:16:04 2023 +0000

    cifs: do all necessary checks for credits within or before locking
    
    [ Upstream commit 326a8d04f147e2bf393f6f9cdb74126ee6900607 ]
    
    All the server credits and in-flight info is protected by req_lock.
    Once the req_lock is held, and we've determined that we have enough
    credits to continue, this lock cannot be dropped till we've made the
    changes to credits and in-flight count.
    
    However, we used to drop the lock in order to avoid deadlock with
    the recent srv_lock. This could cause the checks already made to be
    invalidated.
    
    Fixed it by moving the server status check to before locking req_lock.
    
    Fixes: d7d7a66aacd6 ("cifs: avoid use of global locks for high contention data")
    Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6353518ef8180816e863aa23b06456f395404d6
Author: Shyam Prasad N <sprasad@microsoft.com>
Date:   Thu Jun 22 18:16:03 2023 +0000

    cifs: prevent use-after-free by freeing the cfile later
    
    [ Upstream commit 33f736187d08f6bc822117629f263b97d3df4165 ]
    
    In smb2_compound_op we have a possible use-after-free
    which can cause hard to debug problems later on.
    
    This was revealed during stress testing with KASAN enabled
    kernel. Fixing it by moving the cfile free call to
    a few lines below, after the usage.
    
    Fixes: 76894f3e2f71 ("cifs: improve symlink handling for smb2+")
    Reviewed-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
    Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1df929db46b8f15dce5adafc2e62f88395fd8755
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Tue Jun 27 09:33:09 2023 +0200

    efi/libstub: Disable PCI DMA before grabbing the EFI memory map
    
    [ Upstream commit 2e28a798c3092ea42b968fa16ac835969d124898 ]
    
    Currently, the EFI stub will disable PCI DMA as the very last thing it
    does before calling ExitBootServices(), to avoid interfering with the
    firmware's normal operation as much as possible.
    
    However, the stub will invoke DisconnectController() on all endpoints
    downstream of the PCI bridges it disables, and this may affect the
    layout of the EFI memory map, making it substantially more likely that
    ExitBootServices() will fail the first time around, and that the EFI
    memory map needs to be reloaded.
    
    This, in turn, increases the likelihood that the slack space we
    allocated is insufficient (and we can no longer allocate memory via boot
    services after having called ExitBootServices() once), causing the
    second call to GetMemoryMap (and therefore the boot) to fail. This makes
    the PCI DMA disable feature a bit more fragile than it already is, so
    let's make it more robust, by allocating the space for the EFI memory
    map after disabling PCI DMA.
    
    Fixes: 4444f8541dad16fe ("efi: Allow disabling PCI busmastering on bridges during boot")
    Reported-by: Glenn Washburn <development@efficientek.com>
    Acked-by: Matthew Garrett <mjg59@srcf.ucam.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1263fd280a506d9b38fdb5502a56318851f408e
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon Jun 26 03:16:23 2023 +0900

    kbuild: deb-pkg: remove the CONFIG_MODULES check in buildeb
    
    [ Upstream commit 1240dabe8d58b4eff09e7edf1560da0360f997aa ]
    
    When CONFIG_MODULES is disabled for ARCH=um, 'make (bin)deb-pkg' fails
    with an error like follows:
    
      cp: cannot create regular file 'debian/linux-image/usr/lib/uml/modules/6.4.0-rc2+/System.map': No such file or directory
    
    Remove the CONFIG_MODULES check completely so ${pdir}/usr/lib/uml/modules
    will always be created and modules.builtin.(modinfo) will be installed
    under it for ARCH=um.
    
    Fixes: b611daae5efc ("kbuild: deb-pkg: split image and debug objects staging out into functions")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd8966e78c084a2a1d5d6551f03c2f7358314953
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Thu Jun 22 12:19:53 2023 -0700

    kbuild: builddeb: always make modules_install, to install modules.builtin*
    
    [ Upstream commit 4243afdb932677a03770753be8c54b3190a512e8 ]
    
    Even for a non-modular kernel, the kernel builds modules.builtin and
    modules.builtin.modinfo, with information about the built-in modules.
    Tools such as initramfs-tools need these files to build a working
    initramfs on some systems, such as those requiring firmware.
    
    Now that `make modules_install` works even in non-modular kernels and
    installs these files, unconditionally invoke it when building a Debian
    package.
    
    Signed-off-by: Josh Triplett <josh@joshtriplett.org>
    Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Stable-dep-of: 1240dabe8d58 ("kbuild: deb-pkg: remove the CONFIG_MODULES check in buildeb")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 127f9232b8e2bf3254a2a17e35c34f3b8cad6446
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jun 16 18:24:39 2023 -0700

    cxl/region: Fix state transitions after reset failure
    
    [ Upstream commit adfe19738b71a893da62cb2e30bd6bdb4299ea67 ]
    
    Jonathan reports that failed attempts to reset a region (teardown its
    HDM decoder configuration) mistakenly advance the state of the region
    to "not committed". Revert to the previous state of the region on reset
    failure so that the reset can be re-attempted.
    
    Reported-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
    Closes: http://lore.kernel.org/r/20230316171441.0000205b@Huawei.com
    Fixes: 176baefb2eb5 ("cxl/hdm: Commit decoder state to hardware")
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/168696507968.3590522.14484000711718573626.stgit@dwillia2-xfh.jf.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38665ad70c16dba796c9815f202ce39328d50243
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jun 16 18:24:34 2023 -0700

    cxl/region: Flag partially torn down regions as unusable
    
    [ Upstream commit 2ab47045ac96a605e3037d479a7d5854570ee5bf ]
    
    cxl_region_decode_reset() walks all the decoders associated with a given
    region and disables them. Due to decoder ordering rules it is possible
    that a switch in the topology notices that a given decoder can not be
    shutdown before another region with a higher HPA is shutdown first. That
    can leave the region in a partially committed state.
    
    Capture that state in a new CXL_REGION_F_NEEDS_RESET flag and require
    that a successful cxl_region_decode_reset() attempt must be completed
    before cxl_region_probe() accepts the region.
    
    This is a corollary for the bug that Jonathan identified in "CXL/region
    :  commit reset of out of order region appears to succeed." [1].
    
    Cc: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
    Link: http://lore.kernel.org/r/20230316171441.0000205b@Huawei.com [1]
    Fixes: 176baefb2eb5 ("cxl/hdm: Commit decoder state to hardware")
    Reviewed-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/168696507423.3590522.16254212607926684429.stgit@dwillia2-xfh.jf.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29748dde4326ad851f7774c06c6a6a3216c610a9
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jun 16 18:24:28 2023 -0700

    cxl/region: Move cache invalidation before region teardown, and before setup
    
    [ Upstream commit d1257d098a5a38753a0736a50db0a26a62377ad7 ]
    
    Vikram raised a concern with the theoretical case of a CPU sending
    MemClnEvict to a device that is not prepared to receive. MemClnEvict is
    a message that is sent after a CPU has taken ownership of a cacheline
    from accelerator memory (HDM-DB). In the case of hotplug or HDM decoder
    reconfiguration it is possible that the CPU is holding old contents for
    a new device that has taken over the physical address range being cached
    by the CPU.
    
    To avoid this scenario, invalidate caches prior to tearing down an HDM
    decoder configuration.
    
    Now, this poses another problem that it is possible for something to
    speculate into that space while the decode configuration is still up, so
    to close that gap also invalidate prior to establish new contents behind
    a given physical address range.
    
    With this change the cache invalidation is now explicit and need not be
    checked in cxl_region_probe(), and that obviates the need for
    CXL_REGION_F_INCOHERENT.
    
    Cc: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
    Fixes: d18bc74aced6 ("cxl/region: Manage CPU caches relative to DPA invalidation events")
    Reported-by: Vikram Sethi <vsethi@nvidia.com>
    Closes: http://lore.kernel.org/r/BYAPR12MB33364B5EB908BF7239BB996BBD53A@BYAPR12MB3336.namprd12.prod.outlook.com
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/168696506886.3590522.4597053660991916591.stgit@dwillia2-xfh.jf.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a3a9de8d1e845d12974872c05e254736475656d
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Fri Jun 23 00:11:43 2023 +0000

    kbuild: Disable GCOV for *.mod.o
    
    [ Upstream commit 25a21fbb934a0d989e1858f83c2ddf4cfb2ebe30 ]
    
    With GCOV_PROFILE_ALL, Clang injects __llvm_gcov_* functions to each
    object file, including the *.mod.o. As we filter out CC_FLAGS_CFI
    for *.mod.o, the compiler won't generate type hashes for the
    injected functions, and therefore indirectly calling them during
    module loading trips indirect call checking.
    
    Enabling CFI for *.mod.o isn't sufficient to fix this issue after
    commit 0c3e806ec0f9 ("x86/cfi: Add boot time hash randomization"),
    as *.mod.o aren't processed by objtool, which means any hashes
    emitted there won't be randomized. Therefore, in addition to
    disabling CFI for *.mod.o, also disable GCOV, as the object files
    don't otherwise contain any executable code.
    
    Fixes: cf68fffb66d6 ("add support for Clang CFI")
    Reported-by: Joe Fradley <joefradley@google.com>
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a566122a8f3e6763fd73e97eb22dcd85741cffa3
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Fri Jun 23 00:11:42 2023 +0000

    kbuild: Fix CFI failures with GCOV
    
    [ Upstream commit ddf56288eebd1fe82c46fc9f693b5b18045cddb6 ]
    
    With GCOV_PROFILE_ALL, Clang injects __llvm_gcov_* functions to
    each object file, and the functions are indirectly called during
    boot. However, when code is injected to object files that are not
    part of vmlinux.o, it's also not processed by objtool, which breaks
    CFI hash randomization as the hashes in these files won't be
    included in the .cfi_sites section and thus won't be randomized.
    
    Similarly to commit 42633ed852de ("kbuild: Fix CFI hash
    randomization with KASAN"), disable GCOV for .vmlinux.export.o and
    init/version-timestamp.o to avoid emitting unnecessary functions to
    object files that don't otherwise have executable code.
    
    Fixes: 0c3e806ec0f9 ("x86/cfi: Add boot time hash randomization")
    Reported-by: Joe Fradley <joefradley@google.com>
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 950f1e7b956ce04268862fa69f2fc78c861608e8
Author: Martin Kaiser <martin@kaiser.cx>
Date:   Fri Jun 16 09:58:13 2023 +0100

    hwrng: st - keep clock enabled while hwrng is registered
    
    [ Upstream commit 501e197a02d4aef157f53ba3a0b9049c3e52fedc ]
    
    The st-rng driver uses devres to register itself with the hwrng core,
    the driver will be unregistered from hwrng when its device goes out of
    scope. This happens after the driver's remove function is called.
    
    However, st-rng's clock is disabled in the remove function. There's a
    short timeframe where st-rng is still registered with the hwrng core
    although its clock is disabled. I suppose the clock must be active to
    access the hardware and serve requests from the hwrng core.
    
    Switch to devm_clk_get_enabled and let devres disable the clock and
    unregister the hwrng. This avoids the race condition.
    
    Fixes: 3e75241be808 ("hwrng: drivers - Use device-managed registration API")
    Signed-off-by: Martin Kaiser <martin@kaiser.cx>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8267c76c52017a71f5bcb8aeeb2320e17beb23c8
Author: Tarun Sahu <tsahu@linux.ibm.com>
Date:   Wed Jun 21 21:20:25 2023 +0530

    dax/kmem: Pass valid argument to memory_group_register_static
    
    [ Upstream commit 46e66dab8565f742374e9cc4ff7d35f344d774e2 ]
    
    memory_group_register_static takes maximum number of pages as the argument
    while dev_dax_kmem_probe passes total_len (in bytes) as the argument.
    
    IIUC, I don't see any crash/panic impact as such. As,
    memory_group_register_static just set the max_pages limit which is used in
    auto_movable_zone_for_pfn to determine the zone.
    
    which might cause these condition to behave differently,
    
    This will be true always so jump will happen to kernel_zone
        ...
        if (!auto_movable_can_online_movable(NUMA_NO_NODE, group, nr_pages))
            goto kernel_zone;
    
        ...
        kernel_zone:
            return default_kernel_zone_for_pfn(nid, pfn, nr_pages);
    
    Here, In below, zone_intersects compare range will be larger as nr_pages
    will be higher (derived from total_len passed in dev_dax_kmem_probe).
    
        ...
        static struct zone *default_kernel_zone_for_pfn(int nid, unsigned long start_pfn,
                    unsigned long nr_pages)
        {
            struct pglist_data *pgdat = NODE_DATA(nid);
            int zid;
    
            for (zid = 0; zid < ZONE_NORMAL; zid++) {
                    struct zone *zone = &pgdat->node_zones[zid];
    
                    if (zone_intersects(zone, start_pfn, nr_pages))
                            return zone;
            }
    
            return &pgdat->node_zones[ZONE_NORMAL];
        }
    
    Incorrect zone will be returned here, which in later time might cause bigger
    problem.
    
    Fixes: eedf634aac3b ("dax/kmem: use a single static memory group for a single probed unit")
    Signed-off-by: Tarun Sahu <tsahu@linux.ibm.com>
    Link: https://lore.kernel.org/r/20230621155025.370672-1-tsahu@linux.ibm.com
    Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0bf5b87222425cfd2dd34e1f0b0f788df896a73d
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jun 2 23:14:05 2023 -0700

    dax: Introduce alloc_dev_dax_id()
    
    [ Upstream commit 70aab281e18c68a1284bc387de127c2fc0bed3f8 ]
    
    The reference counting of dax_region objects is needlessly complicated,
    has lead to confusion [1], and has hidden a bug [2]. Towards cleaning up
    that mess introduce alloc_dev_dax_id() to minimize the holding of a
    dax_region reference to only what dev_dax_release() needs, the
    dax_region->ida.
    
    Part of the reason for the mess was the design to dereference a
    dax_region in all cases in free_dev_dax_id() even if the id was
    statically assigned by the upper level dax_region driver. Remove the
    need to call "is_static(dax_region)" by tracking whether the id is
    dynamic directly in the dev_dax instance itself.
    
    With that flag the dax_region pinning and release per dev_dax instance
    can move to alloc_dev_dax_id() and free_dev_dax_id() respectively.
    
    A follow-on cleanup address the unnecessary references in the dax_region
    setup and drivers.
    
    Fixes: 0f3da14a4f05 ("device-dax: introduce 'seed' devices")
    Link: http://lore.kernel.org/r/20221203095858.612027-1-liuyongqiang13@huawei.com [1]
    Link: http://lore.kernel.org/r/3cf0890b-4eb0-e70e-cd9c-2ecc3d496263@hpe.com [2]
    Reported-by: Yongqiang Liu <liuyongqiang13@huawei.com>
    Reported-by: Paul Cassella <cassella@hpe.com>
    Reported-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Link: https://lore.kernel.org/r/168577284563.1672036.13493034988900989554.stgit@dwillia2-xfh.jf.intel.com
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f76db6781d76d8464ec2faa9752cc3fb2e4f6923
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jun 2 23:13:54 2023 -0700

    dax: Fix dax_mapping_release() use after free
    
    [ Upstream commit 6d24b170a9db0456f577b1ab01226a2254c016a8 ]
    
    A CONFIG_DEBUG_KOBJECT_RELEASE test of removing a device-dax region
    provider (like modprobe -r dax_hmem) yields:
    
     kobject: 'mapping0' (ffff93eb460e8800): kobject_release, parent 0000000000000000 (delayed 2000)
     [..]
     DEBUG_LOCKS_WARN_ON(1)
     WARNING: CPU: 23 PID: 282 at kernel/locking/lockdep.c:232 __lock_acquire+0x9fc/0x2260
     [..]
     RIP: 0010:__lock_acquire+0x9fc/0x2260
     [..]
     Call Trace:
      <TASK>
     [..]
      lock_acquire+0xd4/0x2c0
      ? ida_free+0x62/0x130
      _raw_spin_lock_irqsave+0x47/0x70
      ? ida_free+0x62/0x130
      ida_free+0x62/0x130
      dax_mapping_release+0x1f/0x30
      device_release+0x36/0x90
      kobject_delayed_cleanup+0x46/0x150
    
    Due to attempting ida_free() on an ida object that has already been
    freed. Devices typically only hold a reference on their parent while
    registered. If a child needs a parent object to complete its release it
    needs to hold a reference that it drops from its release callback.
    Arrange for a dax_mapping to pin its parent dev_dax instance until
    dax_mapping_release().
    
    Fixes: 0b07ce872a9e ("device-dax: introduce 'mapping' devices")
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Link: https://lore.kernel.org/r/168577283412.1672036.16111545266174261446.stgit@dwillia2-xfh.jf.intel.com
    Reviewed-by: Dave Jiang <dave.jiang@intel.com>
    Reviewed-by: Fan Ni <fan.ni@samsung.com>
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cff7fb969edaeff2bc80c8a8f7cf7b0c8df32da7
Author: Bharath SM <bharathsm@microsoft.com>
Date:   Sun Jun 18 19:02:24 2023 +0000

    SMB3: Do not send lease break acknowledgment if all file handles have been closed
    
    [ Upstream commit da787d5b74983f7525d1eb4b9c0b4aff2821511a ]
    
    In case if all existing file handles are deferred handles and if all of
    them gets closed due to handle lease break then we dont need to send
    lease break acknowledgment to server, because last handle close will be
    considered as lease break ack.
    After closing deferred handels, we check for openfile list of inode,
    if its empty then we skip sending lease break ack.
    
    Fixes: 59a556aebc43 ("SMB3: drop reference to cfile before sending oplock break")
    Reviewed-by: Tom Talpey <tom@talpey.com>
    Signed-off-by: Bharath SM <bharathsm@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62bbbfd5133f390e53dd51700fa804fb6ea9f8e1
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Sun Jun 18 17:32:25 2023 -0400

    NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
    
    [ Upstream commit c907e72f58ed979a24a9fdcadfbc447c51d5e509 ]
    
    When the client received NFS4ERR_BADSESSION, it schedules recovery
    and start the state manager thread which in turn freezes the
    session table and does not allow for any new requests to use the
    no-longer valid session. However, it is possible that before
    the state manager thread runs, a new operation would use the
    released slot that received BADSESSION and was therefore not
    updated its sequence number. Such re-use of the slot can lead
    the application errors.
    
    Fixes: 5c441544f045 ("NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()")
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 107d8341adb556b78045c922f6ca1833b17ae7d2
Author: Qi Zheng <zhengqi.arch@bytedance.com>
Date:   Thu Jun 15 11:19:46 2023 +0000

    NFSv4.2: fix wrong shrinker_id
    
    [ Upstream commit 7f7ab336898f281e58540ef781a8fb375acc32a9 ]
    
    Currently, the list_lru::shrinker_id corresponding to the nfs4_xattr
    shrinkers is wrong:
    
    >>> prog["nfs4_xattr_cache_lru"].shrinker_id
    (int)0
    >>> prog["nfs4_xattr_entry_lru"].shrinker_id
    (int)0
    >>> prog["nfs4_xattr_large_entry_lru"].shrinker_id
    (int)0
    >>> prog["nfs4_xattr_cache_shrinker"].id
    (int)18
    >>> prog["nfs4_xattr_entry_shrinker"].id
    (int)19
    >>> prog["nfs4_xattr_large_entry_shrinker"].id
    (int)20
    
    This is not what we expect, which will cause these shrinkers
    not to be found in shrink_slab_memcg().
    
    We should assign shrinker::id before calling list_lru_init_memcg(),
    so that the corresponding list_lru::shrinker_id will be assigned
    the correct value like below:
    
    >>> prog["nfs4_xattr_cache_lru"].shrinker_id
    (int)16
    >>> prog["nfs4_xattr_entry_lru"].shrinker_id
    (int)17
    >>> prog["nfs4_xattr_large_entry_lru"].shrinker_id
    (int)18
    >>> prog["nfs4_xattr_cache_shrinker"].id
    (int)16
    >>> prog["nfs4_xattr_entry_shrinker"].id
    (int)17
    >>> prog["nfs4_xattr_large_entry_shrinker"].id
    (int)18
    
    So just do it.
    
    Fixes: 95ad37f90c33 ("NFSv4.2: add client side xattr caching.")
    Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b12fe09308aece799ace85e30ae8a5d194dcc2e
Author: Hareshx Sankar Raj <hareshx.sankar.raj@intel.com>
Date:   Mon Jun 5 22:06:07 2023 +0100

    crypto: qat - unmap buffers before free for RSA
    
    [ Upstream commit d776b25495f2c71b9dbf1f5e53b642215ba72f3c ]
    
    The callback function for RSA frees the memory allocated for the source
    and destination buffers before unmapping them.
    This sequence is wrong.
    
    Change the cleanup sequence to unmap the buffers before freeing them.
    
    Fixes: 3dfaf0071ed7 ("crypto: qat - remove dma_free_coherent() for RSA")
    Signed-off-by: Hareshx Sankar Raj <hareshx.sankar.raj@intel.com>
    Co-developed-by: Bolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
    Signed-off-by: Bolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95d22e976210ded409b1a232b1901b68b12f9716
Author: Hareshx Sankar Raj <hareshx.sankar.raj@intel.com>
Date:   Mon Jun 5 22:06:06 2023 +0100

    crypto: qat - unmap buffer before free for DH
    
    [ Upstream commit eb7713f5ca97697b92f225127440d1525119b8de ]
    
    The callback function for DH frees the memory allocated for the
    destination buffer before unmapping it.
    This sequence is wrong.
    
    Change the cleanup sequence to unmap the buffer before freeing it.
    
    Fixes: 029aa4624a7f ("crypto: qat - remove dma_free_coherent() for DH")
    Signed-off-by: Hareshx Sankar Raj <hareshx.sankar.raj@intel.com>
    Co-developed-by: Bolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
    Signed-off-by: Bolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ed26a7184bb23eb18ccd8b0cd87ad67b8e048ca
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon Jun 12 00:50:50 2023 +0900

    ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard
    
    [ Upstream commit 92e2921eeafdfca9acd9b83f07d2b7ca099bac24 ]
    
    ASM_NL is useful not only in *.S files but also in .c files for using
    inline assembler in C code.
    
    On ARC, however, ASM_NL is evaluated inconsistently. It is expanded to
    a backquote (`) in *.S files, but a semicolon (;) in *.c files because
    arch/arc/include/asm/linkage.h defines it inside #ifdef __ASSEMBLY__,
    so the definition for C code falls back to the default value defined in
    include/linux/linkage.h.
    
    If ASM_NL is used in inline assembler in .c files, it will result in
    wrong assembly code because a semicolon is not an instruction separator,
    but the start of a comment for ARC.
    
    Move ASM_NL (also __ALIGN and __ALIGN_STR) out of the #ifdef.
    
    Fixes: 9df62f054406 ("arch: use ASM_NL instead of ';' for assembler new line character in the macro")
    Fixes: 8d92e992a785 ("ARC: define __ALIGN_STR and __ALIGN symbols for ARC")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cade370efe2f9e2a79ea8587506ffe2b51ac6d2b
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Thu Jun 8 11:23:40 2023 +0300

    modpost: fix off by one in is_executable_section()
    
    [ Upstream commit 3a3f1e573a105328a2cca45a7cfbebabbf5e3192 ]
    
    The > comparison should be >= to prevent an out of bounds array
    access.
    
    Fixes: 52dc0595d540 ("modpost: handle relocations mismatch in __ex_table.")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1942b2eff5f949f5b992f0a50d1e0197d9941324
Author: Stephan Müller <smueller@chronox.de>
Date:   Thu May 25 19:00:05 2023 +0200

    crypto: jitter - correct health test during initialization
    
    [ Upstream commit d23659769ad1bf2cbafaa0efcbae20ef1a74f77e ]
    
    With the update of the permanent and intermittent health errors, the
    actual indicator for the health test indicates a potential error only
    for the one offending time stamp gathered in the current iteration
    round. The next iteration round will "overwrite" the health test result.
    
    Thus, the entropy collection loop in jent_gen_entropy checks for
    the health test failure upon each loop iteration. However, the
    initialization operation checked for the APT health test once for
    an APT window which implies it would not catch most errors.
    
    Thus, the check for all health errors is now invoked unconditionally
    during each loop iteration for the startup test.
    
    With the change, the error JENT_ERCT becomes unused as all health
    errors are only reported with the JENT_HEALTH return code. This
    allows the removal of the error indicator.
    
    Fixes: 3fde2fe99aa6 ("crypto: jitter - permanent and intermittent health errors"
    )
    Reported-by: Joachim Vandersmissen <git@jvdsn.com>
    Signed-off-by: Stephan Mueller <smueller@chronox.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 249ff2538788101b1b1b6d14d303b5599d701aa0
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 23 10:33:04 2023 +0200

    crypto: marvell/cesa - Fix type mismatch warning
    
    [ Upstream commit efbc7764c4446566edb76ca05e903b5905673d2e ]
    
    Commit df8fc4e934c1 ("kbuild: Enable -fstrict-flex-arrays=3") uncovered
    a type mismatch in cesa 3des support that leads to a memcpy beyond the
    end of a structure:
    
    In function 'fortify_memcpy_chk',
        inlined from 'mv_cesa_des3_ede_setkey' at drivers/crypto/marvell/cesa/cipher.c:307:2:
    include/linux/fortify-string.h:583:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
      583 |                         __write_overflow_field(p_size_field, size);
          |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    This is probably harmless as the actual data that is copied has the correct
    type, but clearly worth fixing nonetheless.
    
    Fixes: 4ada48397823 ("crypto: marvell/cesa - add Triple-DES support")
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Gustavo A. R. Silva <gustavoars@kernel.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b598f60a38f521f8846907051341683af303778
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Thu Jun 1 21:09:56 2023 +0900

    modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24}
    
    [ Upstream commit 56a24b8ce6a7f9c4a21b2276a8644f6f3d8fc14d ]
    
    addend_arm_rel() processes R_ARM_PC24, R_ARM_CALL, R_ARM_JUMP24 in a
    wrong way.
    
    Here, test code.
    
    [test code for R_ARM_JUMP24]
    
      .section .init.text,"ax"
      bar:
              bx      lr
    
      .section .text,"ax"
      .globl foo
      foo:
              b       bar
    
    [test code for R_ARM_CALL]
    
      .section .init.text,"ax"
      bar:
              bx      lr
    
      .section .text,"ax"
      .globl foo
      foo:
              push    {lr}
              bl      bar
              pop     {pc}
    
    If you compile it with ARM multi_v7_defconfig, modpost will show the
    symbol name, (unknown).
    
      WARNING: modpost: vmlinux.o: section mismatch in reference: foo (section: .text) -> (unknown) (section: .init.text)
    
    (You need to use GNU linker instead of LLD to reproduce it.)
    
    Fix the code to make modpost show the correct symbol name.
    
    I imported (with adjustment) sign_extend32() from include/linux/bitops.h.
    
    The '+8' is the compensation for pc-relative instruction. It is
    documented in "ELF for the Arm Architecture" [1].
    
      "If the relocation is pc-relative then compensation for the PC bias
      (the PC value is 8 bytes ahead of the executing instruction in Arm
      state and 4 bytes in Thumb state) must be encoded in the relocation
      by the object producer."
    
    [1]: https://github.com/ARM-software/abi-aa/blob/main/aaelf32/aaelf32.rst
    
    Fixes: 56a974fa2d59 ("kbuild: make better section mismatch reports on arm")
    Fixes: 6e2e340b59d2 ("ARM: 7324/1: modpost: Fix section warnings for ARM for many compilers")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11029f2fb79adec5d604ae339fe3d9bbc5bf1d69
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Thu Jun 1 21:09:55 2023 +0900

    modpost: fix section mismatch message for R_ARM_ABS32
    
    [ Upstream commit b7c63520f6703a25eebb4f8138fed764fcae1c6f ]
    
    addend_arm_rel() processes R_ARM_ABS32 in a wrong way.
    
    Here, test code.
    
      [test code 1]
    
        #include <linux/init.h>
    
        int __initdata foo;
        int get_foo(void) { return foo; }
    
    If you compile it with ARM versatile_defconfig, modpost will show the
    symbol name, (unknown).
    
      WARNING: modpost: vmlinux.o: section mismatch in reference: get_foo (section: .text) -> (unknown) (section: .init.data)
    
    (You need to use GNU linker instead of LLD to reproduce it.)
    
    If you compile it for other architectures, modpost will show the correct
    symbol name.
    
      WARNING: modpost: vmlinux.o: section mismatch in reference: get_foo (section: .text) -> foo (section: .init.data)
    
    For R_ARM_ABS32, addend_arm_rel() sets r->r_addend to a wrong value.
    
    I just mimicked the code in arch/arm/kernel/module.c.
    
    However, there is more difficulty for ARM.
    
    Here, test code.
    
      [test code 2]
    
        #include <linux/init.h>
    
        int __initdata foo;
        int get_foo(void) { return foo; }
    
        int __initdata bar;
        int get_bar(void) { return bar; }
    
    With this commit applied, modpost will show the following messages
    for ARM versatile_defconfig:
    
      WARNING: modpost: vmlinux.o: section mismatch in reference: get_foo (section: .text) -> foo (section: .init.data)
      WARNING: modpost: vmlinux.o: section mismatch in reference: get_bar (section: .text) -> foo (section: .init.data)
    
    The reference from 'get_bar' to 'foo' seems wrong.
    
    I have no solution for this because it is true in assembly level.
    
    In the following output, relocation at 0x1c is no longer associated
    with 'bar'. The two relocation entries point to the same symbol, and
    the offset to 'bar' is encoded in the instruction 'r0, [r3, #4]'.
    
      Disassembly of section .text:
    
      00000000 <get_foo>:
         0: e59f3004          ldr     r3, [pc, #4]   @ c <get_foo+0xc>
         4: e5930000          ldr     r0, [r3]
         8: e12fff1e          bx      lr
         c: 00000000          .word   0x00000000
    
      00000010 <get_bar>:
        10: e59f3004          ldr     r3, [pc, #4]   @ 1c <get_bar+0xc>
        14: e5930004          ldr     r0, [r3, #4]
        18: e12fff1e          bx      lr
        1c: 00000000          .word   0x00000000
    
      Relocation section '.rel.text' at offset 0x244 contains 2 entries:
       Offset     Info    Type            Sym.Value  Sym. Name
      0000000c  00000c02 R_ARM_ABS32       00000000   .init.data
      0000001c  00000c02 R_ARM_ABS32       00000000   .init.data
    
    When find_elf_symbol() gets into a situation where relsym->st_name is
    zero, there is no guarantee to get the symbol name as written in C.
    
    I am keeping the current logic because it is useful in many architectures,
    but the symbol name is not always correct depending on the optimization.
    I left some comments in find_tosym().
    
    Fixes: 56a974fa2d59 ("kbuild: make better section mismatch reports on arm")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33f8968917e3c3817373e70cbc08e25159bfe2e2
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri May 19 15:33:34 2023 -0700

    crypto: nx - fix build warnings when DEBUG_FS is not enabled
    
    [ Upstream commit b04b076fb56560b39d695ac3744db457e12278fd ]
    
    Fix build warnings when DEBUG_FS is not enabled by using an empty
    do-while loop instead of a value:
    
    In file included from ../drivers/crypto/nx/nx.c:27:
    ../drivers/crypto/nx/nx.c: In function 'nx_register_algs':
    ../drivers/crypto/nx/nx.h:173:33: warning: statement with no effect [-Wunused-value]
      173 | #define NX_DEBUGFS_INIT(drv)    (0)
    ../drivers/crypto/nx/nx.c:573:9: note: in expansion of macro 'NX_DEBUGFS_INIT'
      573 |         NX_DEBUGFS_INIT(&nx_driver);
    ../drivers/crypto/nx/nx.c: In function 'nx_remove':
    ../drivers/crypto/nx/nx.h:174:33: warning: statement with no effect [-Wunused-value]
      174 | #define NX_DEBUGFS_FINI(drv)    (0)
    ../drivers/crypto/nx/nx.c:793:17: note: in expansion of macro 'NX_DEBUGFS_FINI'
      793 |                 NX_DEBUGFS_FINI(&nx_driver);
    
    Also, there is no need to build nx_debugfs.o when DEBUG_FS is not
    enabled, so change the Makefile to accommodate that.
    
    Fixes: ae0222b7289d ("powerpc/crypto: nx driver code supporting nx encryption")
    Fixes: aef7b31c8833 ("powerpc/crypto: Build files for the nx device driver")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Breno Leitão <leitao@debian.org>
    Cc: Nayna Jain <nayna@linux.ibm.com>
    Cc: Paulo Flabiano Smorigo <pfsmorigo@gmail.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: linux-crypto@vger.kernel.org
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 392f1c5dbaf80cee18d627ee143b78553e6b346f
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon May 15 00:27:19 2023 +0900

    modpost: remove broken calculation of exception_table_entry size
    
    [ Upstream commit d0acc76a49aa917c1a455d11d32d34a01e8b2835 ]
    
    find_extable_entry_size() is completely broken. It has awesome comments
    about how to calculate sizeof(struct exception_table_entry).
    
    It was based on these assumptions:
    
      - struct exception_table_entry has two fields
      - both of the fields have the same size
    
    Then, we came up with this equation:
    
      (offset of the second field) * 2 == (size of struct)
    
    It was true for all architectures when commit 52dc0595d540 ("modpost:
    handle relocations mismatch in __ex_table.") was applied.
    
    Our mathematics broke when commit 548acf19234d ("x86/mm: Expand the
    exception table logic to allow new handling options") introduced the
    third field.
    
    Now, the definition of exception_table_entry is highly arch-dependent.
    
    For x86, sizeof(struct exception_table_entry) is apparently 12, but
    find_extable_entry_size() sets extable_entry_size to 8.
    
    I could fix it, but I do not see much value in this code.
    
    extable_entry_size is used just for selecting a slightly different
    error message.
    
    If the first field ("insn") references to a non-executable section,
    
        The relocation at %s+0x%lx references
        section "%s" which is not executable, IOW
        it is not possible for the kernel to fault
        at that address.  Something is seriously wrong
        and should be fixed.
    
    If the second field ("fixup") references to a non-executable section,
    
        The relocation at %s+0x%lx references
        section "%s" which is not executable, IOW
        the kernel will fault if it ever tries to
        jump to it.  Something is seriously wrong
        and should be fixed.
    
    Merge the two error messages rather than adding even more complexity.
    
    Change fatal() to error() to make it continue running and catch more
    possible errors.
    
    Fixes: 548acf19234d ("x86/mm: Expand the exception table logic to allow new handling options")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 318657b4c2077289659f1cd9e2a34f6a3b208e3e
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Thu May 4 11:59:32 2023 +0800

    hwrng: virtio - Fix race on data_avail and actual data
    
    [ Upstream commit ac52578d6e8d300dd50f790f29a24169b1edd26c ]
    
    The virtio rng device kicks off a new entropy request whenever the
    data available reaches zero.  When a new request occurs at the end
    of a read operation, that is, when the result of that request is
    only needed by the next reader, then there is a race between the
    writing of the new data and the next reader.
    
    This is because there is no synchronisation whatsoever between the
    writer and the reader.
    
    Fix this by writing data_avail with smp_store_release and reading
    it with smp_load_acquire when we first enter read.  The subsequent
    reads are safe because they're either protected by the first load
    acquire, or by the completion mechanism.
    
    Also remove the redundant zeroing of data_idx in random_recv_done
    (data_idx must already be zero at this point) and data_avail in
    request_entropy (ditto).
    
    Reported-by: syzbot+726dc8c62c3536431ceb@syzkaller.appspotmail.com
    Fixes: f7f510ec1957 ("virtio: An entropy device, as suggested by hpa.")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11b5d04124addeb950c5ff8bc52234ab1ff62c11
Author: Eric Farman <farman@linux.ibm.com>
Date:   Mon Jun 26 15:36:42 2023 +0200

    vfio/mdev: Move the compat_class initialization to module init
    
    [ Upstream commit ff598081e5b9d0bdd6874bfe340811bbb75b35e4 ]
    
    The pointer to mdev_bus_compat_class is statically defined at the top
    of mdev_core, and was originally (commit 7b96953bc640 ("vfio: Mediated
    device Core driver") serialized by the parent_list_lock. The blamed
    commit removed this mutex, leaving the pointer initialization
    unserialized. As a result, the creation of multiple MDEVs in parallel
    (such as during boot) can encounter errors during the creation of the
    sysfs entries, such as:
    
      [    8.337509] sysfs: cannot create duplicate filename '/class/mdev_bus'
      [    8.337514] vfio_ccw 0.0.01d8: MDEV: Registered
      [    8.337516] CPU: 13 PID: 946 Comm: driverctl Not tainted 6.4.0-rc7 #20
      [    8.337522] Hardware name: IBM 3906 M05 780 (LPAR)
      [    8.337525] Call Trace:
      [    8.337528]  [<0000000162b0145a>] dump_stack_lvl+0x62/0x80
      [    8.337540]  [<00000001622aeb30>] sysfs_warn_dup+0x78/0x88
      [    8.337549]  [<00000001622aeca6>] sysfs_create_dir_ns+0xe6/0xf8
      [    8.337552]  [<0000000162b04504>] kobject_add_internal+0xf4/0x340
      [    8.337557]  [<0000000162b04d48>] kobject_add+0x78/0xd0
      [    8.337561]  [<0000000162b04e0a>] kobject_create_and_add+0x6a/0xb8
      [    8.337565]  [<00000001627a110e>] class_compat_register+0x5e/0x90
      [    8.337572]  [<000003ff7fd815da>] mdev_register_parent+0x102/0x130 [mdev]
      [    8.337581]  [<000003ff7fdc7f2c>] vfio_ccw_sch_probe+0xe4/0x178 [vfio_ccw]
      [    8.337588]  [<0000000162a7833c>] css_probe+0x44/0x80
      [    8.337599]  [<000000016279f4da>] really_probe+0xd2/0x460
      [    8.337603]  [<000000016279fa08>] driver_probe_device+0x40/0xf0
      [    8.337606]  [<000000016279fb78>] __device_attach_driver+0xc0/0x140
      [    8.337610]  [<000000016279cbe0>] bus_for_each_drv+0x90/0xd8
      [    8.337618]  [<00000001627a00b0>] __device_attach+0x110/0x190
      [    8.337621]  [<000000016279c7c8>] bus_rescan_devices_helper+0x60/0xb0
      [    8.337626]  [<000000016279cd48>] drivers_probe_store+0x48/0x80
      [    8.337632]  [<00000001622ac9b0>] kernfs_fop_write_iter+0x138/0x1f0
      [    8.337635]  [<00000001621e5e14>] vfs_write+0x1ac/0x2f8
      [    8.337645]  [<00000001621e61d8>] ksys_write+0x70/0x100
      [    8.337650]  [<0000000162b2bdc4>] __do_syscall+0x1d4/0x200
      [    8.337656]  [<0000000162b3c828>] system_call+0x70/0x98
      [    8.337664] kobject: kobject_add_internal failed for mdev_bus with -EEXIST, don't try to register things with the same name in the same directory.
      [    8.337668] kobject: kobject_create_and_add: kobject_add error: -17
      [    8.337674] vfio_ccw: probe of 0.0.01d9 failed with error -12
      [    8.342941] vfio_ccw_mdev aeb9ca91-10c6-42bc-a168-320023570aea: Adding to iommu group 2
    
    Move the initialization of the mdev_bus_compat_class pointer to the
    init path, to match the cleanup in module exit. This way the code
    in mdev_register_parent() can simply link the new parent to it,
    rather than determining whether initialization is required first.
    
    Fixes: 89345d5177aa ("vfio/mdev: embedd struct mdev_parent in the parent data structure")
    Reported-by: Alexander Egorenkov <egorenar@linux.ibm.com>
    Signed-off-by: Eric Farman <farman@linux.ibm.com>
    Reviewed-by: Kevin Tian <kevin.tian@intel.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Tony Krowiak <akrowiak@linux.ibm.com>
    Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
    Link: https://lore.kernel.org/r/20230626133642.2939168-1-farman@linux.ibm.com
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0eeb5fbfd16cd43d63366d023224e12bdd57ba70
Author: Xinghui Li <korantli@tencent.com>
Date:   Thu Apr 20 17:43:31 2023 +0800

    PCI: vmd: Fix uninitialized variable usage in vmd_enable_domain()
    
    [ Upstream commit 0c0206dc4f5ba2d18b15e24d2047487d6f73916b ]
    
    The ret variable in the vmd_enable_domain() function was used
    uninitialized when printing a warning message upon failure of
    the pci_reset_bus() function.
    
    Thus, fix the issue by assigning ret with the value returned from
    pci_reset_bus() before referencing it in the warning message.
    
    This was detected by Smatch:
    
      drivers/pci/controller/vmd.c:931 vmd_enable_domain() error: uninitialized symbol 'ret'.
    
    [kwilczynski: drop the second patch from the series, add missing reported
    by tag, commit log]
    Fixes: 0a584655ef89 ("PCI: vmd: Fix secondary bus reset for Intel bridges")
    Link: https://lore.kernel.org/all/202305270219.B96IiIfv-lkp@intel.com
    Link: https://lore.kernel.org/linux-pci/20230420094332.1507900-2-korantwork@gmail.com
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: Xinghui Li <korantli@tencent.com>
    Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
    Reviewed-by: Nirmal Patel <nirmal.patel@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9e6e2519887419bb89aa15b6110086ecf873149
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Wed Apr 12 15:34:47 2023 +0900

    PCI: endpoint: functions/pci-epf-test: Fix dma_chan direction
    
    [ Upstream commit 880d51c729a3fa944794feb19f605eefe55916fc ]
    
    In pci_epf_test_init_dma_chan() epf_test->dma_chan_rx is assigned from
    dma_request_channel() with DMA_DEV_TO_MEM as filter.dma_mask.
    
    However, in pci_epf_test_data_transfer() if the dir is DMA_DEV_TO_MEM,
    epf->dma_chan_rx should be used but instead we are using
    epf_test->dma_chan_tx.
    
    Fix it.
    
    Link: https://lore.kernel.org/r/20230412063447.2841177-1-yoshihiro.shimoda.uh@renesas.com
    Fixes: 8353813c88ef ("PCI: endpoint: Enable DMA tests for endpoints with DMA capabilities")
    Tested-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Frank Li <Frank.Li@nxp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 10e0df3cce9c8f552a79cdc072441ccbb7c375ad
Author: Shunsuke Mie <mie@igel.co.jp>
Date:   Thu Feb 2 19:38:32 2023 +0900

    PCI: endpoint: Fix a Kconfig prompt of vNTB driver
    
    [ Upstream commit 37587673cda963ec950e4983db5023802f9b5ff2 ]
    
    vNTB driver and NTB driver have same Kconfig prompt. Changed to make it
    distinguishable.
    
    Link: https://lore.kernel.org/r/20230202103832.2038286-1-mie@igel.co.jp
    Fixes: e35f56bb0330 ("PCI: endpoint: Support NTB transfer between RC and EP")
    Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
    Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88f214b30cdf443e86e63a825146b31e7f0ba2a7
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Thu Jun 22 16:53:57 2023 -0700

    perf test: Set PERF_EXEC_PATH for script execution
    
    [ Upstream commit e4ef3ef1bc0a3d2535427da78b8095ef657eb474 ]
    
    The task-analyzer.py script (actually every other scripts too) requires
    PERF_EXEC_PATH env to find dependent libraries and scripts. For scripts
    test to run correctly, it needs to set PERF_EXEC_PATH to the perf tool
    source directory.
    
    Instead of blindly update the env, let's check the directory structure
    to make sure it points to the correct location.
    
    Fixes: e8478b84d6ba ("perf test: add new task-analyzer tests")
    Cc: Petar Gligoric <petar.gligoric@rohde-schwarz.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: Aditya Gupta <adityag@linux.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Acked-by: Ian Rogers <irogers@google.com>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf945eb7a338843cc87f6c89a9c54986382f3669
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Fri Jun 16 16:38:15 2023 +0530

    powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary
    
    [ Upstream commit c8eebc4a99f15280654f23e914e746c40a516e50 ]
    
    Without this fix, the last subsection vmemmap can end up in memory even if
    the namespace is created with -M mem and has sufficient space in the altmap
    area.
    
    Fixes: cf387d9644d8 ("libnvdimm/altmap: Track namespace boundaries in altmap")
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Tested-by: Sachin Sant <sachinp@linux.ibm.com <mailto:sachinp@linux.ibm.com>>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230616110826.344417-6-aneesh.kumar@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a07449723fbca25d958ea022dd55ffc46f3bb410
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Fri Jun 16 16:38:13 2023 +0530

    powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo
    
    [ Upstream commit 0da90af431abc3f497a38ec9ef6e43b0d0dabe80 ]
    
    On memory unplug reduce DirectMap page count correctly.
    root@ubuntu-guest:# grep Direct /proc/meminfo
    DirectMap4k:           0 kB
    DirectMap64k:           0 kB
    DirectMap2M:    115343360 kB
    DirectMap1G:           0 kB
    
    Before fix:
    root@ubuntu-guest:# ndctl disable-namespace all
    disabled 1 namespace
    root@ubuntu-guest:# grep Direct /proc/meminfo
    DirectMap4k:           0 kB
    DirectMap64k:           0 kB
    DirectMap2M:    115343360 kB
    DirectMap1G:           0 kB
    
    After fix:
    root@ubuntu-guest:# ndctl disable-namespace all
    disabled 1 namespace
    root@ubuntu-guest:# grep Direct /proc/meminfo
    DirectMap4k:           0 kB
    DirectMap64k:           0 kB
    DirectMap2M:    104857600 kB
    DirectMap1G:           0 kB
    
    Fixes: a2dc009afa9a ("powerpc/mm/book3s/radix: Add mapping statistics")
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Tested-by: Sachin Sant <sachinp@linux.ibm.com <mailto:sachinp@linux.ibm.com>>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230616110826.344417-4-aneesh.kumar@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f37fcc3078f256e08d51f36ffaeac9144a10aaa6
Author: Tiezhu Yang <yangtiezhu@loongson.cn>
Date:   Sun Apr 23 09:42:26 2023 +0800

    riscv: uprobes: Restore thread.bad_cause
    
    [ Upstream commit 58b1294dd1d65bb62f08dddbf418f954210c2057 ]
    
    thread.bad_cause is saved in arch_uprobe_pre_xol(), it should be restored
    in arch_uprobe_{post,abort}_xol() accordingly, otherwise the save operation
    is meaningless, this change is similar with x86 and powerpc.
    
    Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Reviewed-by: Guo Ren <guoren@kernel.org>
    Fixes: 74784081aac8 ("riscv: Add uprobes supported")
    Link: https://lore.kernel.org/r/1682214146-3756-1-git-send-email-yangtiezhu@loongson.cn
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0810f97e57a959d899a37152ff2c057d27dc219
Author: Xi Pardee <xi.pardee@intel.com>
Date:   Tue Jun 13 15:53:40 2023 -0700

    platform/x86:intel/pmc: Update maps for Meteor Lake P/M platforms
    
    [ Upstream commit 9682cfd1973d01e43c2764c662e6d3291ddf770d ]
    
    Fix the IP name errors in the register maps used by the following
    debugfs attributes in the Meteor Lake SOC-M PMC.
    
    pfear_sts
    lpm_sts
    ltr_show
    
    Fixes: c5ad454a12c6 ("platform/x86: intel/pmc/core: Add Meteor Lake support to pmc core driver")
    Signed-off-by: Xi Pardee <xi.pardee@intel.com>
    Signed-off-by: Rajvi Jingar <rajvi.jingar@linux.intel.com>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20230613225347.2720665-2-rajvi.jingar@linux.intel.com
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca9465056e1a40ec0b729c115871b1b17755b631
Author: Aditya Gupta <adityag@linux.ibm.com>
Date:   Thu Jun 15 14:40:47 2023 +0530

    powerpc: update ppc_save_regs to save current r1 in pt_regs
    
    [ Upstream commit b684c09f09e7a6af3794d4233ef785819e72db79 ]
    
    ppc_save_regs() skips one stack frame while saving the CPU register states.
    Instead of saving current R1, it pulls the previous stack frame pointer.
    
    When vmcores caused by direct panic call (such as `echo c >
    /proc/sysrq-trigger`), are debugged with gdb, gdb fails to show the
    backtrace correctly. On further analysis, it was found that it was because
    of mismatch between r1 and NIP.
    
    GDB uses NIP to get current function symbol and uses corresponding debug
    info of that function to unwind previous frames, but due to the
    mismatching r1 and NIP, the unwinding does not work, and it fails to
    unwind to the 2nd frame and hence does not show the backtrace.
    
    GDB backtrace with vmcore of kernel without this patch:
    
    ---------
    (gdb) bt
     #0  0xc0000000002a53e8 in crash_setup_regs (oldregs=<optimized out>,
        newregs=0xc000000004f8f8d8) at ./arch/powerpc/include/asm/kexec.h:69
     #1  __crash_kexec (regs=<optimized out>) at kernel/kexec_core.c:974
     #2  0x0000000000000063 in ?? ()
     #3  0xc000000003579320 in ?? ()
    ---------
    
    Further analysis revealed that the mismatch occurred because
    "ppc_save_regs" was saving the previous stack's SP instead of the current
    r1. This patch fixes this by storing current r1 in the saved pt_regs.
    
    GDB backtrace with vmcore of patched kernel:
    
    --------
    (gdb) bt
     #0  0xc0000000002a53e8 in crash_setup_regs (oldregs=0x0, newregs=0xc00000000670b8d8)
        at ./arch/powerpc/include/asm/kexec.h:69
     #1  __crash_kexec (regs=regs@entry=0x0) at kernel/kexec_core.c:974
     #2  0xc000000000168918 in panic (fmt=fmt@entry=0xc000000001654a60 "sysrq triggered crash\n")
        at kernel/panic.c:358
     #3  0xc000000000b735f8 in sysrq_handle_crash (key=<optimized out>) at drivers/tty/sysrq.c:155
     #4  0xc000000000b742cc in __handle_sysrq (key=key@entry=99, check_mask=check_mask@entry=false)
        at drivers/tty/sysrq.c:602
     #5  0xc000000000b7506c in write_sysrq_trigger (file=<optimized out>, buf=<optimized out>,
        count=2, ppos=<optimized out>) at drivers/tty/sysrq.c:1163
     #6  0xc00000000069a7bc in pde_write (ppos=<optimized out>, count=<optimized out>,
        buf=<optimized out>, file=<optimized out>, pde=0xc00000000362cb40) at fs/proc/inode.c:340
     #7  proc_reg_write (file=<optimized out>, buf=<optimized out>, count=<optimized out>,
        ppos=<optimized out>) at fs/proc/inode.c:352
     #8  0xc0000000005b3bbc in vfs_write (file=file@entry=0xc000000006aa6b00,
        buf=buf@entry=0x61f498b4f60 <error: Cannot access memory at address 0x61f498b4f60>,
        count=count@entry=2, pos=pos@entry=0xc00000000670bda0) at fs/read_write.c:582
     #9  0xc0000000005b4264 in ksys_write (fd=<optimized out>,
        buf=0x61f498b4f60 <error: Cannot access memory at address 0x61f498b4f60>, count=2)
        at fs/read_write.c:637
     #10 0xc00000000002ea2c in system_call_exception (regs=0xc00000000670be80, r0=<optimized out>)
        at arch/powerpc/kernel/syscall.c:171
     #11 0xc00000000000c270 in system_call_vectored_common ()
        at arch/powerpc/kernel/interrupt_64.S:192
    --------
    
    Nick adds:
      So this now saves regs as though it was an interrupt taken in the
      caller, at the instruction after the call to ppc_save_regs, whereas
      previously the NIP was there, but R1 came from the caller's caller and
      that mismatch is what causes gdb's dwarf unwinder to go haywire.
    
    Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
    Fixes: d16a58f8854b1 ("powerpc: Improve ppc_save_regs()")
    Reivewed-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230615091047.90433-1-adityag@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6314465b88072a6b6f3b3c12a7898abe09095f95
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Thu Jun 8 10:58:49 2023 +0100

    powerpc/powernv/sriov: perform null check on iov before dereferencing iov
    
    [ Upstream commit f4f913c980bc6abe0ccfe88fe3909c125afe4a2d ]
    
    Currently pointer iov is being dereferenced before the null check of iov
    which can lead to null pointer dereference errors. Fix this by moving the
    iov null check before the dereferencing.
    
    Detected using cppcheck static analysis:
    linux/arch/powerpc/platforms/powernv/pci-sriov.c:597:12: warning: Either
    the condition '!iov' is redundant or there is possible null pointer
    dereference: iov. [nullPointerRedundantCheck]
     num_vfs = iov->num_vfs;
               ^
    
    Fixes: 052da31d45fc ("powerpc/powernv/sriov: De-indent setup and teardown")
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230608095849.1147969-1-colin.i.king@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit accac779321739c04a33feef1d240cbee901011f
Author: Stanley Chu <stanley.chu@mediatek.com>
Date:   Sat Jun 10 10:15:51 2023 +0800

    scsi: ufs: core: mcq: Fix the incorrect OCS value for the device command
    
    [ Upstream commit 0fef6bb730c490fcdc4347dbd21646d3ffe62cf5 ]
    
    In MCQ mode, when a device command uses a hardware queue shared with other
    commands, a race condition may occur in the following scenario:
    
     1. A device command is completed in CQx with CQE entry "e".
    
     2. The interrupt handler copies the "cqe" pointer to "hba->dev_cmd.cqe"
        and completes "hba->dev_cmd.complete".
    
     3. The "ufshcd_wait_for_dev_cmd()" function is awakened and retrieves the
        OCS value from "hba->dev_cmd.cqe".
    
    However, there is a possibility that the CQE entry "e" will be overwritten
    by newly completed commands in CQx, resulting in an incorrect OCS value
    being received by "ufshcd_wait_for_dev_cmd()".
    
    To avoid this race condition, the OCS value should be immediately copied to
    the struct "lrb" of the device command. Then "ufshcd_wait_for_dev_cmd()"
    can retrieve the OCS value from the struct "lrb".
    
    Fixes: 57b1c0ef89ac ("scsi: ufs: core: mcq: Add support to allocate multiple queues")
    Suggested-by: Can Guo <quic_cang@quicinc.com>
    Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
    Link: https://lore.kernel.org/r/20230610021553.1213-2-powen.kao@mediatek.com
    Tested-by: Po-Wen Kao <powen.kao@mediatek.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 000ef836b601d3c655e966c97d25e5730f7051e5
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed May 31 15:40:47 2023 -0700

    scsi: ufs: core: Remove a ufshcd_add_command_trace() call
    
    [ Upstream commit 72554035b9797e00e68cd866e6cefa7f0b2c6f76 ]
    
    ufshcd_add_command_trace() traces SCSI commands. Remove a
    ufshcd_add_command_trace() call from a code path that is not related to
    SCSI commands.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20230531224050.25554-1-bvanassche@acm.org
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Stable-dep-of: 0fef6bb730c4 ("scsi: ufs: core: mcq: Fix the incorrect OCS value for the device command")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d35d98eb1442f0780f5e7a09fa0258e0b3557602
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Fri Jun 16 00:32:10 2023 -0700

    perf stat: Reset aggr stats for each run
    
    [ Upstream commit ed4090a22c123b9b33368741253edddc6ff8d18f ]
    
    When it runs multiple times with -r option, it missed to reset the
    aggregation counters and the values were added up.  The aggregation
    count has the values to be printed in the end.  It should reset the
    counters at the beginning of each run.  But the current code does that
    only when -I/--interval-print option is given.
    
    Fixes: 91f85f98da7ab8c3 ("perf stat: Display event stats using aggr counts")
    Reported-by: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230616073211.1057936-1-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bfd577cc728270d6cd7af6c652a1e7661f25487
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Thu Jun 15 13:53:33 2023 +0300

    pinctrl: at91-pio4: check return value of devm_kasprintf()
    
    [ Upstream commit f6fd5d4ff8ca0b24cee1af4130bcb1fa96b61aa0 ]
    
    devm_kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: 776180848b57 ("pinctrl: introduce driver for Atmel PIO4 controller")
    Depends-on: 1c4e5c470a56 ("pinctrl: at91: use devm_kasprintf() to avoid potential leaks")
    Depends-on: 5a8f9cf269e8 ("pinctrl: at91-pio4: use proper format specifier for unsigned int")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20230615105333.585304-4-claudiu.beznea@microchip.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c7dcd17bce3e102e2e22cfe4090cc2388323962
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Thu Jun 15 13:53:32 2023 +0300

    pinctrl: microchip-sgpio: check return value of devm_kasprintf()
    
    [ Upstream commit 310cd4c206cd04696ccbfd1927b5ab6973e8cc8e ]
    
    devm_kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: 7e5ea974e61c ("pinctrl: pinctrl-microchip-sgpio: Add pinctrl driver for Microsemi Serial GPIO")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20230615105333.585304-3-claudiu.beznea@microchip.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f85d3cb10f4df5ae3bdb9a9357315c28d781651f
Author: Xiaolei Wang <xiaolei.wang@windriver.com>
Date:   Fri May 5 07:37:36 2023 +0800

    pinctrl: freescale: Fix a memory out of bounds when num_configs is 1
    
    [ Upstream commit 9063777ca1e2e895c5fdd493ee0c3f18fa710ed4 ]
    
    The config passed in by pad wakeup is 1, when num_configs is 1,
    Configuration [1] should not be fetched, which will be detected
    by KASAN as a memory out of bounds condition. Modify to get
    configs[1] when num_configs is 2.
    
    Fixes: f60c9eac54af ("gpio: mxc: enable pad wakeup on i.MX8x platforms")
    Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com>
    Reviewed-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/20230504233736.3766296-1-xiaolei.wang@windriver.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db8657fdd53c5e3069149d7f957cb60e63027bb2
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Wed Jun 7 20:10:24 2023 +1000

    powerpc/64s: Fix VAS mm use after free
    
    [ Upstream commit b4bda59b47879cce38a6ec5a01cd3cac702b5331 ]
    
    The refcount on mm is dropped before the coprocessor is detached.
    
    Reported-by: Sachin Sant <sachinp@linux.ibm.com>
    Fixes: 7bc6f71bdff5f ("powerpc/vas: Define and use common vas_window struct")
    Fixes: b22f2d88e435c ("powerpc/pseries/vas: Integrate API with open/close windows")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Tested-by: Sachin Sant <sachinp@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230607101024.14559-1-npiggin@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 010139bfc6bb9ddab81dbc2cf71cd3a9c28adc7f
Author: Ian Rogers <irogers@google.com>
Date:   Tue Jun 13 16:54:16 2023 -0700

    perf tool x86: Fix perf_env memory leak
    
    [ Upstream commit 99d4850062a84564f36923764bb93935ef2ed108 ]
    
    Found by leak sanitizer:
    ```
    ==1632594==ERROR: LeakSanitizer: detected memory leaks
    
    Direct leak of 21 byte(s) in 1 object(s) allocated from:
        #0 0x7f2953a7077b in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:439
        #1 0x556701d6fbbf in perf_env__read_cpuid util/env.c:369
        #2 0x556701d70589 in perf_env__cpuid util/env.c:465
        #3 0x55670204bba2 in x86__is_amd_cpu arch/x86/util/env.c:14
        #4 0x5567020487a2 in arch__post_evsel_config arch/x86/util/evsel.c:83
        #5 0x556701d8f78b in evsel__config util/evsel.c:1366
        #6 0x556701ef5872 in evlist__config util/record.c:108
        #7 0x556701cd6bcd in test__PERF_RECORD tests/perf-record.c:112
        #8 0x556701cacd07 in run_test tests/builtin-test.c:236
        #9 0x556701cacfac in test_and_print tests/builtin-test.c:265
        #10 0x556701cadddb in __cmd_test tests/builtin-test.c:402
        #11 0x556701caf2aa in cmd_test tests/builtin-test.c:559
        #12 0x556701d3b557 in run_builtin tools/perf/perf.c:323
        #13 0x556701d3bac8 in handle_internal_command tools/perf/perf.c:377
        #14 0x556701d3be90 in run_argv tools/perf/perf.c:421
        #15 0x556701d3c3f8 in main tools/perf/perf.c:537
        #16 0x7f2952a46189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    
    SUMMARY: AddressSanitizer: 21 byte(s) leaked in 1 allocation(s).
    ```
    
    Fixes: f7b58cbdb3ff36eb ("perf mem/c2c: Add load store event mappings for AMD")
    Signed-off-by: Ian Rogers <irogers@google.com>
    Acked-by: Ravi Bangoria <ravi.bangoria@amd.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Bangoria <ravi.bangoria@amd.com>
    Link: https://lore.kernel.org/r/20230613235416.1650755-1-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7786104ec46315c6acd434817907e2d10cc8e85
Author: Ravi Bangoria <ravi.bangoria@amd.com>
Date:   Tue Jun 13 15:25:04 2023 +0530

    perf tool x86: Consolidate is_amd check into single function
    
    [ Upstream commit 0cd1ca4650c9cf5f318110f67d39cbebae3693b3 ]
    
    There are multiple places where x86 specific code determines AMD vs
    Intel arch and acts based on that. Consolidate those checks into a
    single function.
    
    Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ali Saidi <alisaidi@amazon.com>
    Cc: Ananth Narayan <ananth.narayan@amd.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sandipan Das <sandipan.das@amd.com>
    Cc: Santosh Shukla <santosh.shukla@amd.com>
    Link: https://lore.kernel.org/r/20230613095506.547-3-ravi.bangoria@amd.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Stable-dep-of: 99d4850062a8 ("perf tool x86: Fix perf_env memory leak")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf49d34d849fe0db24bace548fea2b9fb43efcca
Author: Michal Wilczynski <michal.wilczynski@intel.com>
Date:   Tue Jun 13 11:43:10 2023 +0300

    platform/x86/dell/dell-rbtn: Fix resources leaking on error path
    
    [ Upstream commit 966cca72ab20289083521a385fa56035d85a222d ]
    
    Currently rbtn_add() in case of failure is leaking resources. Fix this
    by adding a proper rollback. Move devm_kzalloc() before rbtn_acquire(),
    so it doesn't require rollback in case of failure. While at it, remove
    unnecessary assignment of NULL to device->driver_data and unnecessary
    whitespace, plus add a break for the default case in a switch.
    
    Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Suggested-by: Pali Rohár <pali@kernel.org>
    Fixes: 817a5cdb40c8 ("dell-rbtn: Dell Airplane Mode Switch driver")
    Signed-off-by: Michal Wilczynski <michal.wilczynski@intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Rafael J. Wysocki <rafael@kernel.org>
    Reviewed-by: Pali Rohár <pali@kernel.org>
    Link: https://lore.kernel.org/r/20230613084310.2775896-1-michal.wilczynski@intel.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6266715164267721c9c995ace0ec1144868e7fb8
Author: Aditya Gupta <adityag@linux.ibm.com>
Date:   Tue Jun 13 22:11:45 2023 +0530

    perf tests task_analyzer: Skip tests if no libtraceevent support
    
    [ Upstream commit c3ac3b0779770acd3ad7eecb5099ab4419ef2e2e ]
    
    Test "perf script task-analyzer tests" fails in environment with missing
    libtraceevent support, as perf record fails to create the perf.data
    file, which further tests depend on.
    
    Instead, when perf is not compiled with libtraceevent support, skip
    those tests instead of failing them, by checking the output of `perf
    record --dry-run` to see if it prints the error "libtraceevent is
    necessary for tracepoint support"
    
    For the following output, perf compiled with: `make NO_LIBTRACEEVENT=1`
    
    Before the patch:
    
    108: perf script task-analyzer tests                                 :
    test child forked, pid 24105
    failed to open perf.data: No such file or directory  (try 'perf record' first)
    FAIL: "invokation of perf script report task-analyzer command failed" Error message: ""
    FAIL: "test_basic" Error message: "Failed to find required string:'Comm'."
    failed to open perf.data: No such file or directory  (try 'perf record' first)
    FAIL: "invokation of perf script report task-analyzer --ns --rename-comms-by-tids 0:random command failed" Error message: ""
    FAIL: "test_ns_rename" Error message: "Failed to find required string:'Comm'."
    failed to open perf.data: No such file or directory  (try 'perf record' first)
    <...>
    perf script task-analyzer tests: FAILED!
    
    With this patch, the script instead returns 2 signifying SKIP, and after
    the patch:
    
    108: perf script task-analyzer tests                                 :
    test child forked, pid 26010
    libtraceevent is necessary for tracepoint support
    WARN: Skipping tests. No libtraceevent support
    test child finished with -2
    perf script task-analyzer tests: Skip
    
    Fixes: e8478b84d6ba9ccf ("perf test: Add new task-analyzer tests")
    Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
    Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Petar Gligoric <petar.gligoric@rohde-schwarz.com>
    Cc: Ravi Bangoria <ravi.bangoria@amd.com>
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/r/20230613164145.50488-18-atrajeev@linux.vnet.ibm.com
    Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c30e5005f4b41340a306928e476f72f516d81247
Author: Aditya Gupta <adityag@linux.ibm.com>
Date:   Tue Jun 13 22:11:43 2023 +0530

    perf tests task_analyzer: Fix bad substitution ${$1}
    
    [ Upstream commit 5c4396efb53ef07d046a2e9456b240880e0c3076 ]
    
    ${$1} gives bad substitution error on sh, bash, and zsh. This seems like
    a typo, and this patch modifies it to $1, since that is what it's usage
    looks like from wherever `check_exec_0` is called.
    
    This issue due to ${$1} caused all function calls to give error in
    `find_str_or_fail` line, and so no test runs completely. But
    'perf test "perf script task-analyzer tests"' wrongly reports
    that tests passed with the status OK, which is wrong considering
    the tests didn't even run completely
    
    Fixes: e8478b84d6ba9ccf ("perf test: add new task-analyzer tests")
    Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
    Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
    Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Petar Gligoric <petar.gligoric@rohde-schwarz.com>
    Cc: Ravi Bangoria <ravi.bangoria@amd.com>
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/r/20230613164145.50488-16-atrajeev@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5fb285b8c97b920d483eb593cc919bad7452d31c
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Mon Jun 12 16:41:01 2023 -0700

    perf dwarf-aux: Fix off-by-one in die_get_varname()
    
    [ Upstream commit 3abfcfd847717d232e36963f31a361747c388fe7 ]
    
    The die_get_varname() returns "(unknown_type)" string if it failed to
    find a type for the variable.  But it had a space before the opening
    parenthesis and it made the closing parenthesis cut off due to the
    off-by-one in the string length (14).
    
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Fixes: 88fd633cdfa19060 ("perf probe: No need to use formatting strbuf method")
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230612234102.3909116-1-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 318b1febc84d7fea6f74672cf69d756e6c3b584a
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Tue Jun 6 11:18:04 2023 -0400

    platform/x86: thinkpad_acpi: Fix lkp-tests warnings for platform profiles
    
    [ Upstream commit f999e23ce66c1555d7b653fba171a88ecee53704 ]
    
    Fix issues identified in dytc_profile_refresh identified by lkp-tests.
    drivers/platform/x86/thinkpad_acpi.c:10538
            dytc_profile_refresh() error: uninitialized symbol 'funcmode'.
    drivers/platform/x86/thinkpad_acpi.c:10531
            dytc_profile_refresh() error: uninitialized symbol 'output'.
    drivers/platform/x86/thinkpad_acpi.c:10537
            dytc_profile_refresh() error: uninitialized symbol 'output'.
    
    These issues should not lead to real problems in the field as the refresh
    function should only be called if MMC or PSC mode enabled. But good to fix.
    
    Thanks to Dan Carpenter and the lkp-tests project for flagging these.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <error27@gmail.com>
    Closes: https://lore.kernel.org/r/202306011202.1hbgLRD4-lkp@intel.com/
    Fixes: 1bc5d819f0b9 ("platform/x86: thinkpad_acpi: Fix profile modes on Intel platforms")
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Link: https://lore.kernel.org/r/20230606151804.8819-1-mpearson-lenovo@squebb.ca
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7db6b20aadf447e1835c8b661a0a8a079283689
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Tue Jun 6 16:11:10 2023 -0300

    perf script: Fix allocation of evsel->priv related to per-event dump files
    
    [ Upstream commit 36d3e4138e1b6cc9ab179f3f397b5548f8b1eaae ]
    
    When printing output we may want to generate per event files, where the
    --per-event-dump option should be used, creating perf.data.EVENT.dump
    files instead of printing to stdout.
    
    The callback thar processes event thus expects that evsel->priv->fp
    should point to either the per-event FILE descriptor or to stdout.
    
    The a3af66f51bd0bca7 ("perf script: Fix crash because of missing
    evsel->priv") changeset fixed a case where evsel->priv wasn't setup,
    thus set to NULL, causing a segfault when trying to access
    evsel->priv->fp.
    
    But it did it for the non --per-event-dump case by allocating a 'struct
    perf_evsel_script' just to set its ->fp to stdout.
    
    Since evsel->priv is only freed when --per-event-dump is used, we ended
    up with a memory leak, detected using ASAN.
    
    Fix it by using the same method as perf_script__setup_per_event_dump(),
    and reuse that static 'struct perf_evsel_script'.
    
    Also check if evsel_script__new() failed.
    
    Fixes: a3af66f51bd0bca7 ("perf script: Fix crash because of missing evsel->priv")
    Reported-by: Ian Rogers <irogers@google.com>
    Tested-by: Ian Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Link: https://lore.kernel.org/lkml/ZH+F0wGAWV14zvMP@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 885e8df797819b613bb94ee0d91e7742406a291e
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Mon Jun 5 10:58:35 2023 +0200

    powerpc/signal32: Force inlining of __unsafe_save_user_regs() and save_tm_user_regs_unsafe()
    
    [ Upstream commit a03b1a0b19398a47489fdcef02ec19c2ba05a15d ]
    
    Looking at generated code for handle_signal32() shows calls to a
    function called __unsafe_save_user_regs.constprop.0 while user access
    is open.
    
    And that __unsafe_save_user_regs.constprop.0 function has two nops at
    the begining, allowing it to be traced, which is unexpected during
    user access open window.
    
    The solution could be to mark __unsafe_save_user_regs() no trace, but
    to be on the safe side the most efficient is to flag it __always_inline
    as already done for function __unsafe_restore_general_regs(). The
    function is relatively small and only called twice, so the size
    increase will remain in the noise.
    
    Do the same with save_tm_user_regs_unsafe() as it may suffer the
    same issue.
    
    Fixes: ef75e7318294 ("powerpc/signal32: Transform save_user_regs() and save_tm_user_regs() in 'unsafe' version")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/7e469c8f01860a69c1ada3ca6a5e2aa65f0f74b2.1685955220.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 243003b0c1618b5580b450dde1353c997b3996cc
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Mon Jun 5 10:55:26 2023 +0200

    powerpc/interrupt: Don't read MSR from interrupt_exit_kernel_prepare()
    
    [ Upstream commit 0eb089a72fda3f7969e6277804bde75dc1474a14 ]
    
    A disassembly of interrupt_exit_kernel_prepare() shows a useless read
    of MSR register. This is shown by r9 being re-used immediately without
    doing anything with the value read.
    
      c000e0e0:       60 00 00 00     nop
      c000e0e4:       7d 3a c2 a6     mfmd_ap r9
      c000e0e8:       7d 20 00 a6     mfmsr   r9
      c000e0ec:       7c 51 13 a6     mtspr   81,r2
      c000e0f0:       81 3f 00 84     lwz     r9,132(r31)
      c000e0f4:       71 29 80 00     andi.   r9,r9,32768
    
    This is due to the use of local_irq_save(). The flags read by
    local_irq_save() are never used, use local_irq_disable() instead.
    
    Fixes: 13799748b957 ("powerpc/64: use interrupt restart table to speed up return from interrupt")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/df36c6205ab64326fb1b991993c82057e92ace2f.1685955214.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 487d69e76805973173a845a2e9b586679d162205
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Fri May 12 17:31:17 2023 +0200

    kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures
    
    [ Upstream commit 353e7300a1db928e427462f2745f9a2cd1625b3d ]
    
    Activating KCSAN on a 32 bits architecture leads to the following
    link-time failure:
    
        LD      .tmp_vmlinux.kallsyms1
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_load':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_load_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_store':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_store_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_exchange':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_exchange_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_add':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_add_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_sub':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_sub_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_and':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_and_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_or':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_or_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_xor':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_xor_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_nand':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_nand_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_compare_exchange_strong':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_compare_exchange_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_compare_exchange_weak':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_compare_exchange_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_compare_exchange_val':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_compare_exchange_8'
    
    32 bits architectures don't have 64 bits atomic builtins. Only
    include DEFINE_TSAN_ATOMIC_OPS(64) on 64 bits architectures.
    
    Fixes: 0f8ad5f2e934 ("kcsan: Add support for atomic builtins")
    Suggested-by: Marco Elver <elver@google.com>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Reviewed-by: Marco Elver <elver@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/d9c6afc28d0855240171a4e0ad9ffcdb9d07fceb.1683892665.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 952fd6de18d6c8a00471c8d6b74088a3b7c6c052
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Wed Jun 7 17:58:29 2023 +0800

    pinctrl: npcm7xx: Add missing check for ioremap
    
    [ Upstream commit ad64639417161e90b30dda00486570eb150aeee5 ]
    
    Add check for ioremap() and return the error if it fails in order to
    guarantee the success of ioremap().
    
    Fixes: 3b588e43ee5c ("pinctrl: nuvoton: add NPCM7xx pinctrl and GPIO driver")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20230607095829.1345-1-jiasheng@iscas.ac.cn
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6fad96eccf8f6f8ae24f4a9b022f090a9b33d15
Author: Wells Lu <wellslutw@gmail.com>
Date:   Sun May 28 20:34:37 2023 +0800

    pinctrl:sunplus: Add check for kmalloc
    
    [ Upstream commit 73f8ce7f961afcb3be49352efeb7c26cc1c00cc4 ]
    
    Fix Smatch static checker warning:
    potential null dereference 'configs'. (kmalloc returns null)
    
    Changes in v2:
    1. Add free allocated memory before returned -ENOMEM.
    2. Add call of_node_put() before returned -ENOMEM.
    
    Fixes: aa74c44be19c ("pinctrl: Add driver for Sunplus SP7021")
    Signed-off-by: Wells Lu <wellslutw@gmail.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/1685277277-12209-1-git-send-email-wellslutw@gmail.com
    [Rebased on the patch from Lu Hongfei]
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 43ccb94c2e48a7484657170e6f5245db7c8eb7c3
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Thu Jun 1 16:05:50 2023 -0400

    platform/x86: think-lmi: Correct NVME password handling
    
    [ Upstream commit 4cebb42412248d28df6de01420cfac5654428d41 ]
    
    NVME passwords identifier have been standardised across the Lenovo
    systems and now use udrp and adrp (user and admin level) instead of
    unvp and mnvp.
    
    This should apparently be backwards compatible.
    
    Fixes: 640a5fa50a42 ("platform/x86: think-lmi: Opcode support")
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230601200552.4396-6-mpearson-lenovo@squebb.ca
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 08135c63de3d803b9865ef47af492395c47ff5e4
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Thu Jun 1 16:05:47 2023 -0400

    platform/x86: think-lmi: Correct System password interface
    
    [ Upstream commit 97eef5983372d7aee6549d644d788fd0c10d2b6e ]
    
    The system password identification was incorrect. This means that if
    the password was enabled it wouldn't be detected correctly; and setting
    it would not work.
    Also updated code to use TLMI_SMP_PWD instead of TLMI_SYS_PWD to be in
    sync with Lenovo documentation.
    
    Fixes: 640a5fa50a42 ("platform/x86: think-lmi: Opcode support")
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230601200552.4396-3-mpearson-lenovo@squebb.ca
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 91c99eccc9d8c3b746e16c34d07299e24ba2bc1c
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Thu Jun 1 16:05:45 2023 -0400

    platform/x86: think-lmi: mutex protection around multiple WMI calls
    
    [ Upstream commit c41e0121a1221894a1a9c4666156db9e1def4d6c ]
    
    When an attribute is being changed if the Admin account is enabled, or if
    a password is being updated then multiple WMI calls are needed.
    Add mutex protection to ensure no race conditions are introduced.
    
    Fixes: b49f72e7f96d ("platform/x86: think-lmi: Certificate authentication support")
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230601200552.4396-1-mpearson-lenovo@squebb.ca
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbdd2ebb3470d3d86e342d032b2b8d1ce4196cb7
Author: Xi Pardee <xi.pardee@intel.com>
Date:   Wed May 31 17:47:06 2023 -0700

    platform/x86:intel/pmc: Remove Meteor Lake S platform support
    
    [ Upstream commit 416a87c972b978d71ab828442d1d48e3bd194855 ]
    
    commit c5ad454a12c6 ("platform/x86: intel/pmc/core: Add Meteor Lake
    support to pmc core driver") was supposed to add support for Meter
    Lake P/M and mistakenly added support for Meteor Lake S instead. Meteor
    Lake P/M support was added later and MTL-S support needs to be removed
    since its currently assigned to the wrong register maps.
    
    Fixes: c5ad454a12c6 ("platform/x86: intel/pmc/core: Add Meteor Lake support to pmc core driver")
    Signed-off-by: Xi Pardee <xi.pardee@intel.com>
    Signed-off-by: David E. Box <david.e.box@linux.intel.com>
    Link: https://lore.kernel.org/r/20230601004706.871528-1-xi.pardee@intel.com
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 016bb7419497f3b62d01af766ee8af810728a2b7
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon Jun 5 17:37:34 2023 +0300

    pinctrl: cherryview: Return correct value if pin in push-pull mode
    
    [ Upstream commit 5835196a17be5cfdcad0b617f90cf4abe16951a4 ]
    
    Currently the getter returns ENOTSUPP on pin configured in
    the push-pull mode. Fix this by adding the missed switch case.
    
    Fixes: ccdf81d08dbe ("pinctrl: cherryview: add option to set open-drain pin config")
    Fixes: 6e08d6bbebeb ("pinctrl: Add Intel Cherryview/Braswell pin controller support")
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5f63ab875c2c0615e21701edb731519aa19a8d1
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Fri Jun 2 15:38:25 2023 -0300

    perf bench: Add missing setlocale() call to allow usage of %'d style formatting
    
    [ Upstream commit 16203e9cd01896b4244100a8e3fb9f6e612ab2b1 ]
    
    Without this we were not getting the thousands separator for big
    numbers.
    
    Noticed while developing 'perf bench uprobe', but the use of %' predates
    that, for instance 'perf bench syscall' uses it.
    
    Before:
    
      # perf bench uprobe all
      # Running uprobe/baseline benchmark...
      # Executed 1000 usleep(1000) calls
           Total time: 1054082243ns
    
       1054082.243000 nsecs/op
    
      #
    
    After:
    
      # perf bench uprobe all
      # Running uprobe/baseline benchmark...
      # Executed 1,000 usleep(1000) calls
           Total time: 1,053,715,144ns
    
       1,053,715.144000 nsecs/op
    
      #
    
    Fixes: c2a08203052f8975 ("perf bench: Add basic syscall benchmark")
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andre Fredette <anfredet@redhat.com>
    Cc: Clark Williams <williams@redhat.com>
    Cc: Dave Tucker <datucker@redhat.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Derek Barbosa <debarbos@redhat.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
    Link: https://lore.kernel.org/lkml/ZH3lcepZ4tBYr1jv@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01e7b50d17f08e46677cfc4d6c120d37b7b5cc7f
Author: Thierry Reding <treding@nvidia.com>
Date:   Tue May 30 12:53:07 2023 +0200

    pinctrl: tegra: Duplicate pinmux functions table
    
    [ Upstream commit fad57233501beb5bd25f037cb9128a533e710600 ]
    
    The function table is filled with group information based on other
    instance-specific data at runtime. However, the function table can be
    shared between multiple instances, causing the ->probe() function for
    one instance to overwrite the table of a previously probed instance.
    
    Fix this by sharing only the function names and allocating a separate
    function table for each instance.
    
    Fixes: 5a0047360743 ("pinctrl: tegra: Separate Tegra194 instances")
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Link: https://lore.kernel.org/r/20230530105308.1292852-1-thierry.reding@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3ee24af62681b942bbd799ac77b90a6d7e1fdb1
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed May 24 13:36:20 2023 -0700

    scsi: ufs: core: Fix handling of lrbp->cmd
    
    [ Upstream commit 549e91a9bbaa0ee480f59357868421a61d369770 ]
    
    ufshcd_queuecommand() may be called two times in a row for a SCSI command
    before it is completed. Hence make the following changes:
    
     - In the functions that submit a command, do not check the old value of
       lrbp->cmd nor clear lrbp->cmd in error paths.
    
     - In ufshcd_release_scsi_cmd(), do not clear lrbp->cmd.
    
    See also scsi_send_eh_cmnd().
    
    This commit prevents that the following appears if a command times out:
    
    WARNING: at drivers/ufs/core/ufshcd.c:2965 ufshcd_queuecommand+0x6f8/0x9a8
    Call trace:
     ufshcd_queuecommand+0x6f8/0x9a8
     scsi_send_eh_cmnd+0x2c0/0x960
     scsi_eh_test_devices+0x100/0x314
     scsi_eh_ready_devs+0xd90/0x114c
     scsi_error_handler+0x2b4/0xb70
     kthread+0x16c/0x1e0
    
    Fixes: 5a0b0cb9bee7 ("[SCSI] ufs: Add support for sending NOP OUT UPIU")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20230524203659.1394307-3-bvanassche@acm.org
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf37fe52aa3fcd2d593430b83b67a02b32ebe675
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed May 24 13:36:19 2023 -0700

    scsi: ufs: core: Increase the START STOP UNIT timeout from one to ten seconds
    
    [ Upstream commit fe8637f7708c16765ecf4035813efbfdd2c9be10 ]
    
    One UFS vendor asked to increase the UFS timeout from 1 s to 3 s.  Another
    UFS vendor asked to increase the UFS timeout from 1 s to 10 s.  Hence this
    patch that increases the UFS timeout to 10 s. This patch can cause the
    total timeout to exceed 20 s, the Android shutdown timeout.  This is fine
    since the loop around ufshcd_execute_start_stop() exists to deal with unit
    attentions and because unit attentions are reported quickly.
    
    Fixes: dcd5b7637c6d ("scsi: ufs: Reduce the START STOP UNIT timeout")
    Fixes: 8f2c96420c6e ("scsi: ufs: core: Reduce the power mode change timeout")
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20230524203659.1394307-2-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5210c0276ef8e4b2ea54b8f81ede48be1c61b9f
Author: Justin Tee <justin.tee@broadcom.com>
Date:   Tue May 23 11:32:01 2023 -0700

    scsi: lpfc: Revise NPIV ELS unsol rcv cmpl logic to drop ndlp based on nlp_state
    
    [ Upstream commit 9914a3d033d3e1d836a43e93e9738e7dd44a096a ]
    
    When NPIV ports are zoned to devices that support both initiator and target
    mode, a remote device's initiated PRLI results in unintended final kref
    clean up of the device's ndlp structure.  This disrupts NPIV ports'
    discovery for target devices that support both initiator and target mode.
    
    Modify the NPIV lpfc_drop_node clause such that we allow the ndlp to live
    so long as it was in NLP_STE_PLOGI_ISSUE, NLP_STE_REG_LOGIN_ISSUE, or
    NLP_STE_PRLI_ISSUE nlp_state.  This allows lpfc's issued PRLI completion
    routine to determine if the final kref clean up should execute rather than
    a remote device's issued PRLI.
    
    Fixes: db651ec22524 ("scsi: lpfc: Correct used_rpi count when devloss tmo fires with no recovery")
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Link: https://lore.kernel.org/r/20230523183206.7728-5-justintee8345@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9007cb56931ad4d237de499b12553fdb17c33420
Author: Sui Jingfeng <suijingfeng@loongson.cn>
Date:   Wed May 31 18:27:44 2023 +0800

    PCI: Add pci_clear_master() stub for non-CONFIG_PCI
    
    [ Upstream commit 2aa5ac633259843f656eb6ecff4cf01e8e810c5e ]
    
    Add a pci_clear_master() stub when CONFIG_PCI is not set so drivers that
    support both PCI and platform devices don't need #ifdefs or extra Kconfig
    symbols for the PCI parts.
    
    [bhelgaas: commit log]
    Fixes: 6a479079c072 ("PCI: Add pci_clear_master() as opposite of pci_set_master()")
    Link: https://lore.kernel.org/r/20230531102744.2354313-1-suijingfeng@loongson.cn
    Signed-off-by: Sui Jingfeng <suijingfeng@loongson.cn>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34bc699225d77e4a6519e65b2e48a5ff410166fd
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon May 29 13:26:39 2023 -0700

    scsi: ufs: Declare ufshcd_{hold,release}() once
    
    [ Upstream commit 4b68b7f9c46d90c541d39c8b397a86ac0ca4c765 ]
    
    ufshcd_hold() and ufshcd_release are declared twice: once in
    drivers/ufs/core/ufshcd-priv.h and a second time in include/ufs/ufshcd.h.
    Remove the declarations from ufshcd-priv.h.
    
    Fixes: dd11376b9f1b ("scsi: ufs: Split the drivers/scsi/ufs directory")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20230529202640.11883-5-bvanassche@acm.org
    Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Keoseong Park <keosung.park@samsung.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c84eedd2a9dca8f110ec0098978810e6e16f560e
Author: Wells Lu <wellslutw@gmail.com>
Date:   Sun May 28 20:34:37 2023 +0800

    pinctrl: sunplus: Add check for kmalloc
    
    [ Upstream commit a5961bed5429cf1134d7f539b4ed60317012f84d ]
    
    Fix Smatch static checker warning:
    potential null dereference 'configs'. (kmalloc returns null)
    
    Fixes: aa74c44be19c ("pinctrl: Add driver for Sunplus SP7021")
    Signed-off-by: Wells Lu <wellslutw@gmail.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/1685277277-12209-1-git-send-email-wellslutw@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e18f353c586e8ce4bfaf5f9ef2ca1dda419b728
Author: Junyan Ye <yejunyan@hust.edu.cn>
Date:   Mon May 8 12:36:41 2023 +0800

    PCI: ftpci100: Release the clock resources
    
    [ Upstream commit c60738de85f40b0b9f5cb23c21f9246e5a47908c ]
    
    Smatch reported:
    1. drivers/pci/controller/pci-ftpci100.c:526 faraday_pci_probe() warn:
    'clk' from clk_prepare_enable() not released on lines: 442,451,462,478,512,517.
    2. drivers/pci/controller/pci-ftpci100.c:526 faraday_pci_probe() warn:
    'p->bus_clk' from clk_prepare_enable() not released on lines: 451,462,478,512,517.
    
    The clock resource is obtained by devm_clk_get(), and then
    clk_prepare_enable() makes the clock resource ready for use. After that,
    clk_disable_unprepare() should be called to release the clock resource
    when it is no longer needed. However, while doing some error handling
    in faraday_pci_probe(), clk_disable_unprepare() is not called to release
    clk and p->bus_clk before returning. These return lines are exactly 442,
    451, 462, 478, 512, 517.
    
    Fix this warning by replacing devm_clk_get() with devm_clk_get_enabled(),
    which is equivalent to devm_clk_get() + clk_prepare_enable(). And with
    devm_clk_get_enabled(), the clock will automatically be disabled,
    unprepared and freed when the device is unbound from the bus.
    
    Link: https://lore.kernel.org/r/20230508043641.23807-1-yejunyan@hust.edu.cn
    Fixes: b3c433efb8a3 ("PCI: faraday: Fix wrong pointer passed to PTR_ERR()")
    Fixes: 2eeb02b28579 ("PCI: faraday: Add clock handling")
    Fixes: 783a862563f7 ("PCI: faraday: Use pci_parse_request_of_pci_ranges()")
    Fixes: d3c68e0a7e34 ("PCI: faraday: Add Faraday Technology FTPCI100 PCI Host Bridge driver")
    Fixes: f1e8bd21e39e ("PCI: faraday: Convert IRQ masking to raw PCI config accessors")
    Signed-off-by: Junyan Ye <yejunyan@hust.edu.cn>
    Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56f074d6bce22cd1bad739673ff6d44cddfabc25
Author: Ian Rogers <irogers@google.com>
Date:   Fri May 26 12:44:42 2023 -0700

    perf evsel: Don't let for_each_group() treat the head of the list as one of its nodes
    
    [ Upstream commit 797b9ec8c4bc9ec89f633a9b2c710b7b64753ca4 ]
    
    Address/memory sanitizer was reporting issues in evsel__group_pmu_name
    because the for_each_group_evsel loop didn't terminate when the head
    was reached, the head would then be cast and accessed as an evsel
    leading to invalid memory accesses.
    
    Fix for_each_group_member and for_each_group_evsel to terminate at the
    list head. Note, evsel__group_pmu_name no longer iterates the group, but
    the problem is present regardless.
    
    Fixes: 717e263fc354d53d ("perf report: Show group description when event group is enabled")
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Changbin Du <changbin.du@huawei.com>
    Cc: Dmitrii Dolgov <9erthalion6@gmail.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung.kim@lge.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Sandipan Das <sandipan.das@amd.com>
    Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
    Link: https://lore.kernel.org/r/20230526194442.2355872-3-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d07590003ef7450a92b4e3e2d742bee36218859
Author: Rongguang Wei <weirongguang@kylinos.cn>
Date:   Fri May 12 10:15:18 2023 +0800

    PCI: pciehp: Cancel bringup sequence if card is not present
    
    [ Upstream commit e8afd0d9fccc27c8ad263db5cf5952cfcf72d6fe ]
    
    If a PCIe hotplug slot has an Attention Button, the normal hot-add flow is:
    
      - Slot is empty and slot power is off
      - User inserts card in slot and presses Attention Button
      - OS blinks Power Indicator for 5 seconds
      - After 5 seconds, OS turns on Power Indicator, turns on slot power, and
        enumerates the device
    
    Previously, if a user pressed the Attention Button on an *empty* slot,
    pciehp logged the following messages and blinked the Power Indicator
    until a second button press:
    
      [0.000] pciehp: Button press: will power on in 5 sec
      [0.001] # Power Indicator starts blinking
      [5.001] # 5 second timeout; slot is empty, so we should cancel the
                request to power on and turn off Power Indicator
    
      [7.000] # Power Indicator still blinking
      [8.000] # possible card insertion
      [9.000] pciehp: Button press: canceling request to power on
    
    The first button press incorrectly left the slot in BLINKINGON_STATE, so
    the second was interpreted as a "cancel power on" event regardless of
    whether a card was present.
    
    If the slot is empty, turn off the Power Indicator and return from
    BLINKINGON_STATE to OFF_STATE after 5 seconds, effectively canceling the
    request to power on.  Putting the slot in OFF_STATE also means the second
    button press will correctly request a slot power on if the slot is
    occupied.
    
    [bhelgaas: commit log]
    Link: https://lore.kernel.org/r/20230512021518.336460-1-clementwei90@163.com
    Fixes: d331710ea78f ("PCI: pciehp: Become resilient to missed events")
    Suggested-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Rongguang Wei <weirongguang@kylinos.cn>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e26d48b0aee609982d4c553c506cb0e2d8638b9d
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Mon May 22 10:44:54 2023 +0300

    pinctrl: at91: fix a couple NULL vs IS_ERR() checks
    
    [ Upstream commit 35216718c9ac2aef934ea9cd229572d4996807b2 ]
    
    The devm_kasprintf_strarray() function doesn't return NULL on error,
    it returns error pointers.  Update the checks accordingly.
    
    Fixes: f494c1913cbb ("pinctrl: at91: use devm_kasprintf() to avoid potential leaks (part 2)")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Ryan Wanner <ryan.wanner@microchip.com>
    Link: https://lore.kernel.org/r/5697980e-f687-47a7-9db8-2af34ae464bd@kili.mountain
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1a520b69582c9cb229ce2bb3a6295f214b42f7b3
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Feb 15 15:42:41 2023 +0200

    pinctrl: at91: Use dev_err_probe() instead of custom messaging
    
    [ Upstream commit 472bbb2cfd6384fe4c4b956af2170c1225fe2a92 ]
    
    The custom message has no value except printing the error code,
    the same does dev_err_probe(). Let's use the latter for the sake
    of unification.
    
    Note that some APIs already have messaging in them and some simply
    do not require the current noise.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Tested-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230215134242.37618-5-andriy.shevchenko@linux.intel.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Stable-dep-of: 35216718c9ac ("pinctrl: at91: fix a couple NULL vs IS_ERR() checks")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 534ce1a306ad9050c101bda1bf5335252e2d33ee
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Feb 15 15:42:39 2023 +0200

    pinctrl: at91: Don't mix non-devm calls with devm ones
    
    [ Upstream commit 415a099ea55ae716b69beefdcaa654b96087c016 ]
    
    Replace devm_clk_get() by devm_clk_get_enabled() and drop
    unneeded code pieces. This will make sure we keep the ordering
    of the resource allocation correct.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Tested-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230215134242.37618-3-andriy.shevchenko@linux.intel.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Stable-dep-of: 35216718c9ac ("pinctrl: at91: fix a couple NULL vs IS_ERR() checks")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc7016a6d85cef6982945cde84280d8ca4b28395
Author: Yuchen Yang <u202114568@hust.edu.cn>
Date:   Fri May 5 22:12:55 2023 +0800

    scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe()
    
    [ Upstream commit 2e2fe5ac695a00ab03cab4db1f4d6be07168ed9d ]
    
    Smatch complains that:
    
    tw_probe() warn: missing error code 'retval'
    
    This patch adds error checking to tw_probe() to handle initialization
    failure. If tw_reset_sequence() function returns a non-zero value, the
    function will return -EINVAL to indicate initialization failure.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Yuchen Yang <u202114568@hust.edu.cn>
    Link: https://lore.kernel.org/r/20230505141259.7730-1-u202114568@hust.edu.cn
    Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d51d2eeae4ce54d542909c4d9d07bf371a78592c
Author: Ding Hui <dinghui@sangfor.com.cn>
Date:   Sun May 7 11:40:57 2023 +0800

    PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free
    
    [ Upstream commit 456d8aa37d0f56fc9e985e812496e861dcd6f2f2 ]
    
    Struct pcie_link_state->downstream is a pointer to the pci_dev of function
    0.  Previously we retained that pointer when removing function 0, and
    subsequent ASPM policy changes dereferenced it, resulting in a
    use-after-free warning from KASAN, e.g.:
    
      # echo 1 > /sys/bus/pci/devices/0000:03:00.0/remove
      # echo powersave > /sys/module/pcie_aspm/parameters/policy
    
      BUG: KASAN: slab-use-after-free in pcie_config_aspm_link+0x42d/0x500
      Call Trace:
       kasan_report+0xae/0xe0
       pcie_config_aspm_link+0x42d/0x500
       pcie_aspm_set_policy+0x8e/0x1a0
       param_attr_store+0x162/0x2c0
       module_attr_store+0x3e/0x80
    
    PCIe spec r6.0, sec 7.5.3.7, recommends that software program the same ASPM
    Control value in all functions of multi-function devices.
    
    Disable ASPM and free the pcie_link_state when any child function is
    removed so we can discard the dangling pcie_link_state->downstream pointer
    and maintain the same ASPM Control configuration for all functions.
    
    [bhelgaas: commit log and comment]
    Debugged-by: Zongquan Qin <qinzongquan@sangfor.com.cn>
    Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
    Fixes: b5a0a9b59c81 ("PCI/ASPM: Read and set up L1 substate capabilities")
    Link: https://lore.kernel.org/r/20230507034057.20970-1-dinghui@sangfor.com.cn
    Signed-off-by: Ding Hui <dinghui@sangfor.com.cn>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33a9294f7f1b4acd5be3e997bf12664c0dfe4e1e
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Apr 30 18:57:52 2023 +0200

    platform/x86: lenovo-yogabook: Set default keyboard backligh brightness on probe()
    
    [ Upstream commit 9e6380d6573181c555ca1b5019b08d19a9ee581c ]
    
    Set default keyboard backlight brightness on probe(), this fixes
    the backlight being off after a rmmod + modprobe.
    
    Fixes: c0549b72d99d ("platform/x86: lenovo-yogabook-wmi: Add driver for Lenovo Yoga Book")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230430165807.472798-5-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd70ad67a397c8d4bd2d26922544bb9150bbb971
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Apr 30 18:57:51 2023 +0200

    platform/x86: lenovo-yogabook: Reprobe devices on remove()
    
    [ Upstream commit 711bcc0cb34e96a60e88d7b0260862781de3e530 ]
    
    Ensure that both the keyboard touchscreen and the digitizer have their
    driver bound after remove(). Without this modprobing lenovo-yogabook-wmi
    after a rmmod fails because lenovo-yogabook-wmi defers probing until
    both devices have their driver bound.
    
    Fixes: c0549b72d99d ("platform/x86: lenovo-yogabook-wmi: Add driver for Lenovo Yoga Book")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230430165807.472798-4-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7db86294ec7c1612a1c202a3539564f530001f6b
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Apr 30 18:57:50 2023 +0200

    platform/x86: lenovo-yogabook: Fix work race on remove()
    
    [ Upstream commit 9148cd2eb4450a8e9c49c8a14201fb82f651128f ]
    
    When yogabook_wmi_remove() runs yogabook_wmi_work might still be running
    and using the devices which yogabook_wmi_remove() puts.
    
    To avoid this move to explicitly cancelling the work rather then using
    devm_work_autocancel().
    
    This requires also making the yogabook_backside_hall_irq handler non
    devm managed, so that it cannot re-queue the work while
    yogabook_wmi_remove() runs.
    
    Fixes: c0549b72d99d ("platform/x86: lenovo-yogabook-wmi: Add driver for Lenovo Yoga Book")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230430165807.472798-3-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 641516c20bfa2cd16f3aeade311bef7ee97619af
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Apr 16 23:43:41 2023 +0200

    pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors
    
    [ Upstream commit cdf7e616120065007687fe1df0412154f259daec ]
    
    gpiochip_add_pin_range() can fail, so better return its error code than
    a hard coded '0'.
    
    Fixes: d2b67744fd99 ("pinctrl: bcm2835: implement hook for missing gpio-ranges")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/98c3b5890bb72415145c9fe4e1d974711edae376.1681681402.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 08c001c1e9444a3046c79a99aa93ac48073b18cc
Author: Jinhong Zhu <jinhongzhu@hust.edu.cn>
Date:   Tue May 2 22:00:21 2023 +0800

    scsi: qedf: Fix NULL dereference in error handling
    
    [ Upstream commit f025312b089474a54e4859f3453771314d9e3d4f ]
    
    Smatch reported:
    
    drivers/scsi/qedf/qedf_main.c:3056 qedf_alloc_global_queues()
    warn: missing unwind goto?
    
    At this point in the function, nothing has been allocated so we can return
    directly. In particular the "qedf->global_queues" have not been allocated
    so calling qedf_free_global_queues() will lead to a NULL dereference when
    we check if (!gl[i]) and "gl" is NULL.
    
    Fixes: 61d8658b4a43 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.")
    Signed-off-by: Jinhong Zhu <jinhongzhu@hust.edu.cn>
    Link: https://lore.kernel.org/r/20230502140022.2852-1-jinhongzhu@hust.edu.cn
    Reviewed-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c6bfda50e00920d719fff9688533a369f40dc27f
Author: Nirmal Patel <nirmal.patel@linux.intel.com>
Date:   Fri Feb 24 13:28:11 2023 -0700

    PCI: vmd: Reset VMD config register between soft reboots
    
    [ Upstream commit b61cf04c49c3dfa70a0d6725d3eb40bf9b35cf71 ]
    
    VMD driver can disable or enable MSI remapping by changing
    VMCONFIG_MSI_REMAP register. This register needs to be set to the
    default value during soft reboots. Drives failed to enumerate
    when Windows boots after performing a soft reboot from Linux.
    Windows doesn't support MSI remapping disable feature and stale
    register value hinders Windows VMD driver initialization process.
    Adding vmd_shutdown function to make sure to set the VMCONFIG
    register to the default value.
    
    Link: https://lore.kernel.org/r/20230224202811.644370-1-nirmal.patel@linux.intel.com
    Fixes: ee81ee84f873 ("PCI: vmd: Disable MSI-X remapping when possible")
    Signed-off-by: Nirmal Patel <nirmal.patel@linux.intel.com>
    Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
    Reviewed-by: Jon Derrick <jonathan.derrick@linux.dev>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit efee5ca159a992975f7c841d436d5b209c4fa917
Author: Siddharth Vadapalli <s-vadapalli@ti.com>
Date:   Wed Mar 15 12:38:00 2023 +0530

    PCI: cadence: Fix Gen2 Link Retraining process
    
    [ Upstream commit 0e12f830236928b6fadf40d917a7527f0a048d2f ]
    
    The Link Retraining process is initiated to account for the Gen2 defect in
    the Cadence PCIe controller in J721E SoC. The errata corresponding to this
    is i2085, documented at:
    https://www.ti.com/lit/er/sprz455c/sprz455c.pdf
    
    The existing workaround implemented for the errata waits for the Data Link
    initialization to complete and assumes that the link retraining process
    at the Physical Layer has completed. However, it is possible that the
    Physical Layer training might be ongoing as indicated by the
    PCI_EXP_LNKSTA_LT bit in the PCI_EXP_LNKSTA register.
    
    Fix the existing workaround, to ensure that the Physical Layer training
    has also completed, in addition to the Data Link initialization.
    
    Link: https://lore.kernel.org/r/20230315070800.1615527-1-s-vadapalli@ti.com
    Fixes: 4740b969aaf5 ("PCI: cadence: Retrain Link to work around Gen2 training defect")
    Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
    Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
    Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d2b603d938c898b5fd8da6e3d80184366ca6ea0
Author: Jason Gunthorpe <jgg@ziepe.ca>
Date:   Tue Jun 20 11:11:24 2023 -0300

    iommufd: Call iopt_area_contig_done() under the lock
    
    [ Upstream commit dbe245cdf5189e88d680379ed13901356628b650 ]
    
    The iter internally holds a pointer to the area and
    iopt_area_contig_done() will dereference it. The pointer is not valid
    outside the iova_rwsem.
    
    syzkaller reports:
    
      BUG: KASAN: slab-use-after-free in iommufd_access_unpin_pages+0x363/0x370
      Read of size 8 at addr ffff888022286e20 by task syz-executor669/5771
    
      CPU: 0 PID: 5771 Comm: syz-executor669 Not tainted 6.4.0-rc5-syzkaller-00313-g4c605260bc60 #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/25/2023
      Call Trace:
       <TASK>
       dump_stack_lvl+0xd9/0x150
       print_address_description.constprop.0+0x2c/0x3c0
       kasan_report+0x11c/0x130
       iommufd_access_unpin_pages+0x363/0x370
       iommufd_test_access_unmap+0x24b/0x390
       iommufd_access_notify_unmap+0x24c/0x3a0
       iopt_unmap_iova_range+0x4c4/0x5f0
       iopt_unmap_all+0x27/0x50
       iommufd_ioas_unmap+0x3d0/0x490
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
      RIP: 0033:0x7fec1dae3b19
      Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 11 15 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
      RSP: 002b:00007fec1da74308 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      RAX: ffffffffffffffda RBX: 00007fec1db6b438 RCX: 00007fec1dae3b19
      RDX: 0000000020000100 RSI: 0000000000003b86 RDI: 0000000000000003
      RBP: 00007fec1db6b430 R08: 00007fec1da74700 R09: 0000000000000000
      R10: 00007fec1da74700 R11: 0000000000000246 R12: 00007fec1db6b43c
      R13: 00007fec1db39074 R14: 6d6f692f7665642f R15: 0000000000022000
       </TASK>
    
      Allocated by task 5770:
       kasan_save_stack+0x22/0x40
       kasan_set_track+0x25/0x30
       __kasan_kmalloc+0xa2/0xb0
       iopt_alloc_area_pages+0x94/0x560
       iopt_map_user_pages+0x205/0x4e0
       iommufd_ioas_map+0x329/0x5f0
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
      Freed by task 5770:
       kasan_save_stack+0x22/0x40
       kasan_set_track+0x25/0x30
       kasan_save_free_info+0x2e/0x40
       ____kasan_slab_free+0x160/0x1c0
       slab_free_freelist_hook+0x8b/0x1c0
       __kmem_cache_free+0xaf/0x2d0
       iopt_unmap_iova_range+0x288/0x5f0
       iopt_unmap_all+0x27/0x50
       iommufd_ioas_unmap+0x3d0/0x490
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    The parallel unmap free'd iter->area the instant the lock was released.
    
    Fixes: 51fe6141f0f6 ("iommufd: Data structure to provide IOVA to PFN mapping")
    Link: https://lore.kernel.org/r/2-v2-9a03761d445d+54-iommufd_syz2_jgg@nvidia.com
    Reviewed-by: Kevin Tian <kevin.tian@intel.com>
    Reported-by: syzbot+6c8d756f238a75fc3eb8@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/r/000000000000905eba05fe38e9f2@google.com
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cbf285760e96817bebb8c68eb4b2d8aca585f732
Author: Jason Gunthorpe <jgg@ziepe.ca>
Date:   Tue Jun 20 11:11:23 2023 -0300

    iommufd: Do not access the area pointer after unlocking
    
    [ Upstream commit 804ca14d04df09bf7924bacc5ad22a4bed80c94f ]
    
    A concurrent unmap can trigger freeing of the area pointers while we are
    generating an unmapping notification for accesses.
    
    syzkaller reports:
    
      BUG: KASAN: slab-use-after-free in iopt_unmap_iova_range+0x5ba/0x5f0
      Read of size 4 at addr ffff888075996184 by task syz-executor.2/31160
    
      CPU: 1 PID: 31160 Comm: syz-executor.2 Not tainted 6.4.0-rc5-syzkaller-00313-g4c605260bc60 #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/25/2023
      Call Trace:
       <TASK>
       dump_stack_lvl+0xd9/0x150
       print_address_description.constprop.0+0x2c/0x3c0
       kasan_report+0x11c/0x130
       iopt_unmap_iova_range+0x5ba/0x5f0
       iopt_unmap_all+0x27/0x50
       iommufd_ioas_unmap+0x3d0/0x490
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
      RIP: 0033:0x7f0812c8c169
      Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 19 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
      RSP: 002b:00007f0813914168 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      RAX: ffffffffffffffda RBX: 00007f0812dabf80 RCX: 00007f0812c8c169
      RDX: 0000000020000100 RSI: 0000000000003b86 RDI: 0000000000000005
      RBP: 00007f0812ce7ca1 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
      R13: 00007f0812ecfb1f R14: 00007f0813914300 R15: 0000000000022000
       </TASK>
    
      Allocated by task 31160:
       kasan_save_stack+0x22/0x40
       kasan_set_track+0x25/0x30
       __kasan_kmalloc+0xa2/0xb0
       iopt_alloc_area_pages+0x94/0x560
       iopt_map_user_pages+0x205/0x4e0
       iommufd_ioas_map+0x329/0x5f0
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
      Freed by task 31161:
       kasan_save_stack+0x22/0x40
       kasan_set_track+0x25/0x30
       kasan_save_free_info+0x2e/0x40
       ____kasan_slab_free+0x160/0x1c0
       slab_free_freelist_hook+0x8b/0x1c0
       __kmem_cache_free+0xaf/0x2d0
       iopt_unmap_iova_range+0x288/0x5f0
       iopt_unmap_all+0x27/0x50
       iommufd_ioas_unmap+0x3d0/0x490
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
      The buggy address belongs to the object at ffff888075996100
       which belongs to the cache kmalloc-cg-192 of size 192
      The buggy address is located 132 bytes inside of
       freed 192-byte region [ffff888075996100, ffff8880759961c0)
    
      The buggy address belongs to the physical page:
      page:ffffea0001d66580 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x75996
      memcg:ffff88801f1c2701
      flags: 0xfff00000000200(slab|node=0|zone=1|lastcpupid=0x7ff)
      page_type: 0xffffffff()
      raw: 00fff00000000200 ffff88801244ddc0 dead000000000122 0000000000000000
      raw: 0000000000000000 0000000080100010 00000001ffffffff ffff88801f1c2701
      page dumped because: kasan: bad access detected
      page_owner tracks the page as allocated
      page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112cc0(GFP_USER|__GFP_NOWARN|__GFP_NORETRY), pid 31157, tgid 31154 (syz-executor.0), ts 1984547323469, free_ts 1983933451331
       post_alloc_hook+0x2db/0x350
       get_page_from_freelist+0xf41/0x2c00
       __alloc_pages+0x1cb/0x4a0
       alloc_pages+0x1aa/0x270
       allocate_slab+0x25f/0x390
       ___slab_alloc+0xa91/0x1400
       __slab_alloc.constprop.0+0x56/0xa0
       __kmem_cache_alloc_node+0x136/0x320
       kmalloc_trace+0x26/0xe0
       iommufd_test+0x1328/0x2c20
       iommufd_fops_ioctl+0x317/0x4b0
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x39/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
      page last free stack trace:
       free_unref_page_prepare+0x62e/0xcb0
       free_unref_page_list+0xe3/0xa70
       release_pages+0xcd8/0x1380
       tlb_batch_pages_flush+0xa8/0x1a0
       tlb_finish_mmu+0x14b/0x7e0
       exit_mmap+0x2b2/0x930
       __mmput+0x128/0x4c0
       mmput+0x60/0x70
       do_exit+0x9b0/0x29b0
       do_group_exit+0xd4/0x2a0
       get_signal+0x2318/0x25b0
       arch_do_signal_or_restart+0x79/0x5c0
       exit_to_user_mode_prepare+0x11f/0x240
       syscall_exit_to_user_mode+0x1d/0x50
       do_syscall_64+0x46/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Precompute what is needed to call the access function and do not check the
    area's num_accesses again as the pointer may not be valid anymore. Use a
    counter instead.
    
    Fixes: 51fe6141f0f6 ("iommufd: Data structure to provide IOVA to PFN mapping")
    Link: https://lore.kernel.org/r/1-v2-9a03761d445d+54-iommufd_syz2_jgg@nvidia.com
    Reviewed-by: Kevin Tian <kevin.tian@intel.com>
    Reported-by: syzbot+1ad12d16afca0e7d2dde@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/r/0000000000001d40fc05fe385332@google.com
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59a9bd59c59ce802226670c1b1ac06226e6cbf09
Author: Syed Saba Kareem <Syed.SabaKareem@amd.com>
Date:   Thu Jun 22 20:53:38 2023 +0530

    ASoC: amd: acp: clear pdm dma interrupt mask
    
    [ Upstream commit ad60672394bd1f95c58d3d9336902f47e05126fc ]
    
    Clear pdm dma interrupt mask in acp_dmic_shutdown().
    
    'Fixes: c32bd332ce5c9 ("ASoC: amd: acp: Add generic support for
    PDM controller on ACP")'
    
    Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com>
    Link: https://lore.kernel.org/r/Message-Id: <20230622152406.3709231-1-Syed.SabaKareem@amd.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c73cdcf0a7b69e2df51af5833c421bc86aedff9
Author: Michael Walle <mwalle@kernel.org>
Date:   Fri Jun 16 15:18:40 2023 +0200

    ARM: dts: lan966x: kontron-d10: fix SPI CS
    
    [ Upstream commit fcb79ee3f0b15ed15f35eca5f24e952fdced9c61 ]
    
    The pinctrl node was missing which change the pin mux to GPIO mode.
    Add it so we don't have to rely on the bootloader to set the correct
    mode.
    
    Fixes: 79d83b3a458e ("ARM: dts: lan966x: add basic Kontron KSwitch D10 support")
    Signed-off-by: Michael Walle <mwalle@kernel.org>
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230616-feature-d10-dt-cleanups-v1-2-50dd0452b8fe@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a85d2623036c8cda6dd6986a8e33f5926e3a16d
Author: Michael Walle <mwalle@kernel.org>
Date:   Fri Jun 16 15:18:39 2023 +0200

    ARM: dts: lan966x: kontron-d10: fix board reset
    
    [ Upstream commit bfcd5714f6424c03e385e0e9296dcd69855cfea7 ]
    
    The pinctrl node was missing which change the pin mux to GPIO mode. Add
    it.
    
    Fixes: 79d83b3a458e ("ARM: dts: lan966x: add basic Kontron KSwitch D10 support")
    Signed-off-by: Michael Walle <mwalle@kernel.org>
    [claudiu.beznea: moved pinctrl-* bindings after compatible]
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230616-feature-d10-dt-cleanups-v1-1-50dd0452b8fe@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb1b04fd4283fc8f9acefe0ddc61ba072ed44877
Author: Fei Shao <fshao@chromium.org>
Date:   Mon Jun 19 11:22:53 2023 +0800

    clk: Fix memory leak in devm_clk_notifier_register()
    
    [ Upstream commit 7fb933e56f77a57ef7cfc59fc34cbbf1b1fa31ff ]
    
    devm_clk_notifier_register() allocates a devres resource for clk
    notifier but didn't register that to the device, so the notifier didn't
    get unregistered on device detach and the allocated resource was leaked.
    
    Fix the issue by registering the resource through devres_add().
    
    This issue was found with kmemleak on a Chromebook.
    
    Fixes: 6d30d50d037d ("clk: add devm variant of clk_notifier_register")
    Signed-off-by: Fei Shao <fshao@chromium.org>
    Link: https://lore.kernel.org/r/20230619112253.v2.1.I13f060c10549ef181603e921291bdea95f83033c@changeid
    Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 225a9c1047e7bf2654a27f86003637770c7ba988
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Wed Jun 14 15:15:09 2023 +0300

    ASoC: imx-audmix: check return value of devm_kasprintf()
    
    [ Upstream commit 2f76e1d6ca524a888d29aafe29f2ad2003857971 ]
    
    devm_kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: b86ef5367761 ("ASoC: fsl: Add Audio Mixer machine driver")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230614121509.443926-1-claudiu.beznea@microchip.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33ab4dd6202f359558a0a2678b94d1b9994c17e5
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Mon Apr 3 11:29:59 2023 +0300

    ovl: update of dentry revalidate flags after copy up
    
    [ Upstream commit b07d5cc93e1b28df47a72c519d09d0a836043613 ]
    
    After copy up, we may need to update d_flags if upper dentry is on a
    remote fs and lower dentries are not.
    
    Add helpers to allow incremental update of the revalidate flags.
    
    Fixes: bccece1ead36 ("ovl: allow remote upper")
    Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5397290815a4d9f6574d19e9a0bb8c60997614b3
Author: Alexey Romanov <avromanov@sberdevices.ru>
Date:   Sat Jun 10 12:04:14 2023 +0300

    drivers: meson: secure-pwrc: always enable DMA domain
    
    [ Upstream commit 0bb4644d583789c97e74d3e3047189f0c59c4742 ]
    
    Starting from commit e45f243409db ("firmware: meson_sm:
    populate platform devices from sm device tree data") pwrc
    is probed successfully and disables unused pwr domains.
    By A1 SoC family design, any TEE requires DMA pwr domain
    always enabled.
    
    Fixes: b3dde5013e13 ("soc: amlogic: Add support for Secure power domains controller")
    Signed-off-by: Alexey Romanov <avromanov@sberdevices.ru>
    Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/20230610090414.90529-1-avromanov@sberdevices.ru
    [narmstrong: added fixes tag]
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit adf0be6bd1eb4f873236ad365da6c0d30dd2967b
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:12 2023 +0300

    clk: ti: clkctrl: check return value of kasprintf()
    
    [ Upstream commit bd46cd0b802d9c9576ca78007aa084ae3e74907b ]
    
    kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: 852049594b9a ("clk: ti: clkctrl: convert subclocks to use proper names also")
    Fixes: 6c3090520554 ("clk: ti: clkctrl: Fix hidden dependency to node name")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-8-claudiu.beznea@microchip.com
    Reviewed-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afcb3fbdb422c6d16505324d6e9d2c7000a24bb1
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:11 2023 +0300

    clk: keystone: sci-clk: check return value of kasprintf()
    
    [ Upstream commit b73ed981da6d25c921aaefa7ca3df85bbd85b7fc ]
    
    kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: b745c0794e2f ("clk: keystone: Add sci-clk driver support")
    Depends-on: 96488c09b0f4 ("clk: keystone: sci-clk: cut down the clock name length")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-7-claudiu.beznea@microchip.com
    Reviewed-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4349eb4ef4c65ac1cf5a8fba88a3aa156d90b2a8
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:10 2023 +0300

    clk: si5341: free unused memory on probe failure
    
    [ Upstream commit 267ad94b13c53d8c99a336f0841b1fa1595b1d0f ]
    
    Pointers from synth_clock_names[] should be freed at the end of probe
    either on probe success or failure path.
    
    Fixes: b7bbf6ec4940 ("clk: si5341: Allow different output VDD_SEL values")
    Fixes: 9b13ff4340df ("clk: si5341: Add sysfs properties to allow checking/resetting device faults")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-6-claudiu.beznea@microchip.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb9212b0bc05508db1154168390c9043ad58518a
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:09 2023 +0300

    clk: si5341: check return value of {devm_}kasprintf()
    
    [ Upstream commit 36e4ef82016a2b785cf2317eade77e76699b7bff ]
    
    {devm_}kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: 3044a860fd09 ("clk: Add Si5341/Si5340 driver")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-5-claudiu.beznea@microchip.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4582fd89eb6a48cc648ede5bba62a8be05fbfa4d
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:08 2023 +0300

    clk: si5341: return error if one synth clock registration fails
    
    [ Upstream commit 2560114c06d7a752b3f4639f28cece58fed11267 ]
    
    In case devm_clk_hw_register() fails for one of synth clocks the probe
    continues. Later on, when registering output clocks which have as parents
    all the synth clocks, in case there is registration failure for at least
    one synth clock the information passed to clk core for registering output
    clock is not right: init.num_parents is fixed but init.parents may contain
    an array with less parents.
    
    Fixes: 3044a860fd09 ("clk: Add Si5341/Si5340 driver")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-4-claudiu.beznea@microchip.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13a967f32833a5d4e6750b7b3e2a8b53fc1c3513
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:07 2023 +0300

    clk: cdce925: check return value of kasprintf()
    
    [ Upstream commit bb7d09ddbf361d51eae46f38e7c8a2b85914ea2a ]
    
    kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: 19fbbbbcd3a3 ("Add TI CDCE925 I2C controlled clock synthesizer driver")
    Depends-on: e665f029a283 ("clk: Convert to using %pOFn instead of device_node.name")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-3-claudiu.beznea@microchip.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00e768509d1292d6fcc6a62647a86db7332bc83b
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Tue May 30 12:39:06 2023 +0300

    clk: vc5: check memory returned by kasprintf()
    
    [ Upstream commit 144601f6228de5598f03e693822b60a95c367a17 ]
    
    kasprintf() returns a pointer to dynamically allocated memory.
    Pointer could be NULL in case allocation fails. Check pointer validity.
    Identified with coccinelle (kmerr.cocci script).
    
    Fixes: f491276a5168 ("clk: vc5: Allow Versaclock driver to support multiple instances")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20230530093913.1656095-2-claudiu.beznea@microchip.com
    Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c736cac92acc0dac514409d8956dc4b60a27250
Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Date:   Thu Jun 15 14:20:51 2023 +0200

    clk: mediatek: clk-mt8173-apmixedsys: Fix iomap not released issue
    
    [ Upstream commit b270ae61730e0ebccee39a21dd3311d6896a38ae ]
    
    In case of error after of_ioremap() the resource must be released:
    call iounmap() where appropriate to fix that.
    
    Fixes: 41138fbf876c ("clk: mediatek: mt8173: Migrate to platform driver and common probe")
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20230615122051.546985-4-angelogioacchino.delregno@collabora.com
    Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 344a8e750be309be8b8b6817f4c5001683bb570b
Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Date:   Thu Jun 15 14:20:50 2023 +0200

    clk: mediatek: clk-mt8173-apmixedsys: Fix return value for of_iomap() error
    
    [ Upstream commit 3dc265b369ee61db999d6d1588e888eb21dc421e ]
    
    The of_iomap() function returns NULL in case of error so usage of
    PTR_ERR() is wrong!
    Change that to return -ENOMEM in case of failure.
    
    Fixes: 41138fbf876c ("clk: mediatek: mt8173: Migrate to platform driver and common probe")
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20230615122051.546985-3-angelogioacchino.delregno@collabora.com
    Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: Markus Schneider-Pargmann <msp@baylibre.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e9a87561bf6d51332328c6988e06bd97e62874f
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Jun 13 03:09:41 2023 +0300

    drm/msm/dpu: correct MERGE_3D length
    
    [ Upstream commit 9a6c13b847d61b0c3796820ca6e976789df59cd8 ]
    
    Each MERGE_3D block has just two registers. Correct the block length
    accordingly.
    
    Fixes: 4369c93cf36b ("drm/msm/dpu: initial support for merge3D hardware block")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/542177/
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Link: https://lore.kernel.org/r/20230613001004.3426676-3-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ea8d43777aae5c2f1d160cd525030c2c77f3cdf
Author: Luben Tuikov <luben.tuikov@amd.com>
Date:   Sat Jun 10 06:19:15 2023 -0400

    drm/amdgpu: Fix usage of UMC fill record in RAS
    
    [ Upstream commit 71344a718a9fda8c551cdc4381d354f9a9907f6f ]
    
    The fixed commit listed in the Fixes tag below, introduced a bug in
    amdgpu_ras.c::amdgpu_reserve_page_direct(), in that when introducing the new
    amdgpu_umc_fill_error_record() and internally in that new function the physical
    address (argument "uint64_t retired_page"--wrong name) is right-shifted by
    AMDGPU_GPU_PAGE_SHIFT. Thus, in amdgpu_reserve_page_direct() when we pass
    "address" to that new function, we should NOT right-shift it, since this
    results, erroneously, in the page address to be 0 for first
    2^(2*AMDGPU_GPU_PAGE_SHIFT) memory addresses.
    
    This commit fixes this bug.
    
    Cc: Tao Zhou <tao.zhou1@amd.com>
    Cc: Hawking Zhang <Hawking.Zhang@amd.com>
    Cc: Alex Deucher <Alexander.Deucher@amd.com>
    Fixes: 400013b268cb ("drm/amdgpu: add umc_fill_error_record to make code more simple")
    Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
    Link: https://lore.kernel.org/r/20230610113536.10621-1-luben.tuikov@amd.com
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e26082a554fd3082f387dfab85ac56d1a050e5c
Author: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Date:   Fri Jun 9 14:06:43 2023 +0530

    drm/amdgpu: Fix memcpy() in sienna_cichlid_append_powerplay_table function.
    
    [ Upstream commit d50dc746ff72b9c48812dac3344fa87fbde940a3 ]
    
    Fixes the following gcc with W=1:
    
    In file included from ./include/linux/string.h:253,
                     from ./include/linux/bitmap.h:11,
                     from ./include/linux/cpumask.h:12,
                     from ./arch/x86/include/asm/cpumask.h:5,
                     from ./arch/x86/include/asm/msr.h:11,
                     from ./arch/x86/include/asm/processor.h:22,
                     from ./arch/x86/include/asm/cpufeature.h:5,
                     from ./arch/x86/include/asm/thread_info.h:53,
                     from ./include/linux/thread_info.h:60,
                     from ./arch/x86/include/asm/preempt.h:7,
                     from ./include/linux/preempt.h:78,
                     from ./include/linux/spinlock.h:56,
                     from ./include/linux/mmzone.h:8,
                     from ./include/linux/gfp.h:7,
                     from ./include/linux/firmware.h:7,
                     from drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.c:26:
    In function ‘fortify_memcpy_chk’,
        inlined from ‘sienna_cichlid_append_powerplay_table’ at drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.c:444:2,
        inlined from ‘sienna_cichlid_setup_pptable’ at drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.c:506:8,
        inlined from ‘sienna_cichlid_setup_pptable’ at drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.c:494:12:
    ./include/linux/fortify-string.h:413:4: warning: call to ‘__read_overflow2_field’ declared with attribute warning: detected read beyond size of field (2nd parameter); maybe use struct_group()? [-Wattribute-warning]
      413 |    __read_overflow2_field(q_size_field, size);
          |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    the compiler complains about the size calculation in the memcpy() -
    "sizeof(*smc_dpm_table) - sizeof(smc_dpm_table->table_header)" is much
    larger than what fits into table_member.
    
    Hence, reuse 'smu_memcpy_trailing' for nv1x
    
    Fixes: 7077b19a38240 ("drm/amd/pm: use macro to get pptable members")
    Suggested-by: Evan Quan <Evan.Quan@amd.com>
    Cc: Evan Quan <Evan.Quan@amd.com>
    Cc: Chengming Gui <Jack.Gui@amd.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
    Reviewed-by: Evan Quan <evan.quan@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce2f6ff1e526d53804369cef2465d80e3fac1818
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Tue Jun 6 16:43:20 2023 +0100

    arm64: dts: mt7986: increase bl2 partition on NAND of Bananapi R3
    
    [ Upstream commit 3bfbff9b461e3506dfb5b2904e8c15a0aea39e07 ]
    
    The bootrom burned into the MT7986 SoC will try multiple locations on
    the SPI-NAND flash to load bl2 in case the bl2 image located at the the
    previously attempted offset is corrupt.
    
    Use 0x100000 instead of 0x80000 as partition size for bl2 on SPI-NAND,
    allowing for up to four redundant copies of bl2 (typically sized a
    bit less than 0x40000).
    
    Fixes: 8e01fb15b8157 ("arm64: dts: mt7986: add Bananapi R3")
    Signed-off-by: Daniel Golle <daniel@makrotopia.org>
    Link: https://lore.kernel.org/r/ZH9UGF99RgzrHZ88@makrotopia.org
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dd6dd939eadde697c203e1406b93792dbed96d3d
Author: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Date:   Fri Jun 2 14:35:15 2023 -0400

    arm64: dts: mediatek: mt8192: Fix CPUs capacity-dmips-mhz
    
    [ Upstream commit a4366b5695c984b8a3fc8b31de9e758c8f6d1aed ]
    
    The capacity-dmips-mhz parameter was miscalculated: this SoC runs
    the first (Cortex-A55) cluster at a maximum of 2000MHz and the
    second (Cortex-A76) cluster at a maximum of 2200MHz.
    
    In order to calculate the right capacity-dmips-mhz, the following
    test was performed:
    1. CPUFREQ governor was set to 'performance' on both clusters
    2. Ran dhrystone with 500000000 iterations for 10 times on each cluster
    3. Calculated the mean result for each cluster
    4. Calculated DMIPS/MHz: dmips_mhz = dmips_per_second / cpu_mhz
    5. Scaled results to 1024:
       result_c0 = dmips_mhz_c0 / dmips_mhz_c1 * 1024
    
    The mean results for this SoC are:
    Cluster 0 (LITTLE): 12016411 Dhry/s
    Cluster 1 (BIG): 31702034 Dhry/s
    
    The calculated scaled results are:
    Cluster 0: 426.953226899238 (rounded to 427)
    Cluster 1: 1024
    
    Fixes: 48489980e27e ("arm64: dts: Add Mediatek SoC MT8192 and evaluation board dts and Makefile")
    Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20230602183515.3778780-1-nfraprado@collabora.com
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1395d2b7759f09029d294615996552e75e5533a7
Author: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Date:   Fri Mar 17 14:19:44 2023 +0800

    arm64: dts: mediatek: Add cpufreq nodes for MT8192
    
    [ Upstream commit 9d498cce9298a71e3896e2d1aee24a1a4c531d81 ]
    
    Add the cpufreq nodes for MT8192 SoC.
    
    Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
    Tested-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
    Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20230317061944.15434-1-allen-kh.cheng@mediatek.com
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Stable-dep-of: a4366b5695c9 ("arm64: dts: mediatek: mt8192: Fix CPUs capacity-dmips-mhz")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c3278db06e332fdc14f3f297499fb88ded264d2
Author: Bjorn Andersson <quic_bjorande@quicinc.com>
Date:   Mon Jun 12 15:02:59 2023 -0700

    drm/msm/dp: Free resources after unregistering them
    
    [ Upstream commit fa0048a4b1fa7a50c8b0e514f5b428abdf69a6f8 ]
    
    The DP component's unbind operation walks through the submodules to
    unregister and clean things up. But if the unbind happens because the DP
    controller itself is being removed, all the memory for those submodules
    has just been freed.
    
    Change the order of these operations to avoid the many use-after-free
    that otherwise happens in this code path.
    
    Fixes: c943b4948b58 ("drm/msm/dp: add displayPort driver support")
    Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/542166/
    Link: https://lore.kernel.org/r/20230612220259.1884381-1-quic_bjorande@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e09ed06938807cb113cddd0708ed74bd8cdaff33
Author: Bjorn Andersson <quic_bjorande@quicinc.com>
Date:   Mon Jun 12 15:01:06 2023 -0700

    drm/msm/dp: Drop aux devices together with DP controller
    
    [ Upstream commit a7bfb2ad2184a1fba78be35209b6019aa8cc8d4d ]
    
    Using devres to depopulate the aux bus made sure that upon a probe
    deferral the EDP panel device would be destroyed and recreated upon next
    attempt.
    
    But the struct device which the devres is tied to is the DPUs
    (drm_dev->dev), which may be happen after the DP controller is torn
    down.
    
    Indications of this can be seen in the commonly seen EDID-hexdump full
    of zeros in the log, or the occasional/rare KASAN fault where the
    panel's attempt to read the EDID information causes a use after free on
    DP resources.
    
    It's tempting to move the devres to the DP controller's struct device,
    but the resources used by the device(s) on the aux bus are explicitly
    torn down in the error path. The KASAN-reported use-after-free also
    remains, as the DP aux "module" explicitly frees its devres-allocated
    memory in this code path.
    
    As such, explicitly depopulate the aux bus in the error path, and in the
    component unbind path, to avoid these issues.
    
    Fixes: 2b57f726611e ("drm/msm/dp: fix aux-bus EP lifetime")
    Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Patchwork: https://patchwork.freedesktop.org/patch/542163/
    Link: https://lore.kernel.org/r/20230612220106.1884039-1-quic_bjorande@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fdd9fb71a737a1f41252eaf3ca2bfda9ebc90bd0
Author: Jessica Zhang <quic_jesszhan@quicinc.com>
Date:   Fri Jun 9 15:57:17 2023 -0700

    drm/msm/dsi: Remove incorrect references to slice_count
    
    [ Upstream commit 155fa3a91d64221eb0885fd221cc8085dbef908f ]
    
    Currently, slice_count is being used to calculate word count and
    pkt_per_line. Instead, these values should be calculated using slice per
    packet, which is not the same as slice_count.
    
    Slice count represents the number of slices per interface, and its value
    will not always match that of slice per packet. For example, it is possible
    to have cases where there are multiple slices per interface but the panel
    specifies only one slice per packet.
    
    Thus, use the default value of one slice per packet and remove slice_count
    from the aforementioned calculations.
    
    Fixes: 08802f515c3c ("drm/msm/dsi: Add support for DSC configuration")
    Fixes: bc6b6ff8135c ("drm/msm/dsi: Use DSC slice(s) packet size to compute word count")
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/541965/
    Link: https://lore.kernel.org/r/20230405-add-dsc-support-v6-5-95eab864d1b6@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4a5c406faf204fbfca24939ac7f4d267837150e
Author: Jessica Zhang <quic_jesszhan@quicinc.com>
Date:   Wed May 24 10:45:20 2023 -0700

    drm/msm/dpu: Fix slice_last_group_size calculation
    
    [ Upstream commit c223059e6f8340f7eac2319470984cbfc39c433b ]
    
    Correct the math for slice_last_group_size so that it matches the
    calculations downstream.
    
    Fixes: c110cfd1753e ("drm/msm/disp/dpu1: Add support for DSC")
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/539269/
    Link: https://lore.kernel.org/r/20230329-rfc-msm-dsc-helper-v14-7-bafc7be95691@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00fd7e886ca6d8ee268a263ed885fd848eab112f
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Mon Jun 12 21:25:33 2023 +0300

    drm/msm/dpu: do not enable color-management if DSPPs are not available
    
    [ Upstream commit 3bcfc7b90465efd337d39b91b43972162f0d1908 ]
    
    We can not support color management without DSPP blocks being provided
    in the HW catalog. Do not enable color management for CRTCs if num_dspps
    is 0.
    
    Fixes: 4259ff7ae509 ("drm/msm/dpu: add support for pcc color block in dpu driver")
    Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Reviewed-by: Sumit Semwal <sumit.semwal@linaro.org>
    Tested-by: Yongqin Liu <yongqin.liu@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/542141/
    Link: https://lore.kernel.org/r/20230612182534.3345805-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 09baf460dfba79ee6a0c72e68ccdbbba84d894df
Author: Su Hui <suhui@nfschina.com>
Date:   Thu Jun 15 10:17:32 2023 +0800

    ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer
    
    [ Upstream commit 79597c8bf64ca99eab385115743131d260339da5 ]
    
    smatch error:
    sound/pci/ac97/ac97_codec.c:2354 snd_ac97_mixer() error:
    we previously assumed 'rac97' could be null (see line 2072)
    
    remove redundant assignment, return error if rac97 is NULL.
    
    Fixes: da3cec35dd3c ("ALSA: Kill snd_assert() in sound/pci/*")
    Signed-off-by: Su Hui <suhui@nfschina.com>
    Link: https://lore.kernel.org/r/20230615021732.1972194-1-suhui@nfschina.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3ca34e186b7f6357a6b28bcd5fc5107c7992515
Author: Nishanth Menon <nm@ti.com>
Date:   Fri Jun 2 16:49:33 2023 -0500

    arm64: dts: ti: k3-am69-sk: Fix main_i2c0 alias
    
    [ Upstream commit b38c6ced4ec5b3f6260ff6cc2b71e8a3d8c897d7 ]
    
    main_i2c0 is aliased as i2c0 which creates a problem for u-boot R5
    SPL attempting to reuse the same definition in the common board
    detection logic as it looks for the first i2c instance as the bus on
    which to detect the eeprom to understand the board variant involved.
    Switch main_i2c0 to i2c3 alias allowing us to introduce wkup_i2c0
    and potentially space for mcu_i2c instances in the gap for follow on
    patches.
    
    Fixes: 635fb18ba008 ("arch: arm64: dts: Add support for AM69 Starter Kit")
    Signed-off-by: Nishanth Menon <nm@ti.com>
    Reviewed-by: Udit Kumar <u-kumar1@ti.com>
    Link: https://lore.kernel.org/r/20230602214937.2349545-5-nm@ti.com
    Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 427eeceb1d2e05663a285e7ce1881c42c57c9779
Author: Thejasvi Konduru <t-konduru@ti.com>
Date:   Wed May 3 14:01:43 2023 +0530

    arm64: dts: ti: k3-j784s4: Fix wakeup pinmux range and pinctrl node offsets
    
    [ Upstream commit 14462bd0b247d05070d48d0f02eb7ca2680ab7bd ]
    
    The wkup_pmx register region in j784s4 has multiple non-addressable
    regions, hence the existing wkup_pmx region is split as follows to
    avoid the non-addressable regions. The pinctrl node offsets are
    also corrected as per the newly split wkup_pmx* nodes.
    
    wkup_pmx0 -> 13 pins (WKUP_PADCONFIG 0 - 12)
    wkup_pmx1 -> 11 pins (WKUP_PADCONFIG 14 - 24)
    wkup_pmx2 -> 72 pins (WKUP_PADCONFIG 26 - 97)
    wkup_pmx3 -> 1 pin (WKUP_PADCONFIG 100)
    
    Fixes: 4664ebd8346a ("arm64: dts: ti: Add initial support for J784S4 SoC")
    Signed-off-by: Thejasvi Konduru <t-konduru@ti.com>
    Reviewed-by: Nishanth Menon <nm@ti.com>
    Link: https://lore.kernel.org/r/20230503083143.32369-1-t-konduru@ti.com
    Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b13201da5f81bbe7d901b9822fadd58492f11541
Author: Siddharth Vadapalli <s-vadapalli@ti.com>
Date:   Wed Mar 15 09:55:48 2023 +0530

    arm64: dts: ti: k3-j784s4-evm: Enable MCU CPSW2G
    
    [ Upstream commit 6cd4b7cfbcca4a45f06a8031f299c4019221a4ce ]
    
    Add device tree support to enable MCU CPSW with J784S4 EVM.
    
    Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
    Reviewed-by: Andrew Davis <afd@ti.com>
    Link: https://lore.kernel.org/r/20230315042548.1500528-1-s-vadapalli@ti.com
    Signed-off-by: Nishanth Menon <nm@ti.com>
    Stable-dep-of: 14462bd0b247 ("arm64: dts: ti: k3-j784s4: Fix wakeup pinmux range and pinctrl node offsets")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c1aa3984d134e7001f7bd7dd3970c59f21e1af9f
Author: Nishanth Menon <nm@ti.com>
Date:   Fri Jun 2 16:49:30 2023 -0500

    arm64: dts: ti: k3-j784s4-evm: Fix main_i2c0 alias
    
    [ Upstream commit c10a9df30e3401bd5a5ee43f1afd6c2b2ca75ad7 ]
    
    main_i2c0 is aliased as i2c0 which creates a problem for u-boot R5
    SPL attempting to reuse the same definition in the common board
    detection logic as it looks for the first i2c instance as the bus on
    which to detect the eeprom to understand the board variant involved.
    Switch main_i2c0 to i2c3 alias allowing us to introduce wkup_i2c0
    and potentially space for mcu_i2c instances in the gap for follow on
    patches.
    
    Fixes: e20a06aca5c9 ("arm64: dts: ti: Add support for J784S4 EVM board")
    Signed-off-by: Nishanth Menon <nm@ti.com>
    Reviewed-by: Udit Kumar <u-kumar1@ti.com>
    Link: https://lore.kernel.org/r/20230602214937.2349545-2-nm@ti.com
    Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce8ddab5157f38757ef757097c2ec4d3b54f3b73
Author: Andrew Davis <afd@ti.com>
Date:   Mon May 15 12:21:33 2023 -0500

    arm64: dts: ti: k3-j721e-beagleboneai64: Fix mailbox node status
    
    [ Upstream commit 155e7635ed1f3814d94d12556a3a0fed41d05b76 ]
    
    Mailbox nodes are now disabled by default. The BeagleBoard AI64 DT
    addition went in at around the same time and must have missed that
    change so the mailboxes are not re-enabled. Do that here.
    
    Fixes: fae14a1cb8dd ("arm64: dts: ti: Add k3-j721e-beagleboneai64")
    Signed-off-by: Andrew Davis <afd@ti.com>
    Reviewed-by: Nishanth Menon <nm@ti.com>
    Link: https://lore.kernel.org/r/20230515172137.474626-1-afd@ti.com
    Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e969c144d908ea9387442659f103d374c8ff682d
Author: Yuan Can <yuancan@huawei.com>
Date:   Fri Dec 9 09:41:24 2022 +0000

    clk: tegra: tegra124-emc: Fix potential memory leak
    
    [ Upstream commit 53a06e5924c0d43c11379a08c5a78529c3e61595 ]
    
    The tegra and tegra needs to be freed in the error handling path, otherwise
    it will be leaked.
    
    Fixes: 2db04f16b589 ("clk: tegra: Add EMC clock driver")
    Signed-off-by: Yuan Can <yuancan@huawei.com>
    Link: https://lore.kernel.org/r/20221209094124.71043-1-yuancan@huawei.com
    Acked-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25dbdfb7b71ef8601d00c6d9a2b1a96de28b30c5
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Thu May 11 20:01:20 2023 +0300

    clk: clocking-wizard: Fix Oops in clk_wzrd_register_divider()
    
    [ Upstream commit 9c632a6396505a019ea6d12b5ab45e659a542a93 ]
    
    Smatch detected this potential error pointer dereference
    clk_wzrd_register_divider().  If devm_clk_hw_register() fails then
    it sets "hw" to an error pointer and then dereferences it on the
    next line.  Return the error directly instead.
    
    Fixes: 5a853722eb32 ("staging: clocking-wizard: Add support for dynamic reconfiguration")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://lore.kernel.org/r/f0e39b5c-4554-41e0-80d9-54ca3fabd060@kili.mountain
    Reviewed-by: Michal Simek <michal.simek@amd.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d0f4af90ad8f974ee2ab0be4984a7cc14bb1cd89
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Fri Apr 21 13:41:01 2023 +0300

    clk: bcm: rpi: Fix off by one in raspberrypi_discover_clocks()
    
    [ Upstream commit da2edb3e3c09fd1451b7f400ccd1070ef086619a ]
    
    Smatch detected an off by one in this code:
        drivers/clk/bcm/clk-raspberrypi.c:374 raspberrypi_discover_clocks()
        error: buffer overflow 'data->hws' 16 <= 16
    
    The data->hws[] array has RPI_FIRMWARE_NUM_CLK_ID elements so the >
    comparison needs to changed to >=.
    
    Fixes: 12c90f3f27bb ("clk: bcm: rpi: Add variant structure")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://lore.kernel.org/r/5a850b08-d2f5-4794-aceb-a6b468965139@kili.mountain
    Reviewed-by: Stefan Wahren <stefan.wahren@i2se.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3eb86a15fd674af15f2da470bdfbb271300c792a
Author: Abel Vesa <abel.vesa@linaro.org>
Date:   Thu Jun 1 13:38:17 2023 +0300

    arm64: dts: qcom: sm8550: Add missing interconnect path to USB HC
    
    [ Upstream commit 11a1397bbf69e408223bb691858a0fcd295a8f76 ]
    
    The USB HC node is missing the interconnect paths, so add them.
    
    Fixes: 7f7e5c1b037f ("arm64: dts: qcom: sm8550: Add USB PHYs and controller nodes")
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230601103817.4066446-1-abel.vesa@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a99268cee28c6e588024eb9e36edc2443f6aa0cd
Author: Marijn Suijten <marijn.suijten@somainline.org>
Date:   Tue Jun 6 23:14:18 2023 +0200

    arm64: dts: qcom: sm8250-edo: Panel framebuffer is 2.5k instead of 4k
    
    [ Upstream commit 223ce29c8b7e5b00f01a68387aabeefd77d97f06 ]
    
    The framebuffer configuration for edo pdx203, written in edo dtsi (which
    is overwritten in pdx206 dts for its smaller panel) has to use a
    1096x2560 configuration as this is what the panel (and framebuffer area)
    has been initialized to.  Downstream userspace also has access to (and
    uses) this 2.5k mode by default, and only switches the panel to 4k when
    requested.
    
    This is similar to commit be8de06dc397 ("arm64: dts: qcom:
    sm8150-kumano: Panel framebuffer is 2.5k instead of 4k") which fixed the
    same for the previous generation Sony platform.
    
    Fixes: 69cdb97ef652 ("arm64: dts: qcom: sm8250: Add support for SONY Xperia 1 II / 5 II (Edo platform)")
    Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230606211418.587676-1-marijn.suijten@somainline.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eee1999b433233a2b56e2b1dacc24b2e90320f30
Author: Konrad Dybcio <konrad.dybcio@linaro.org>
Date:   Wed May 31 15:22:42 2023 +0200

    arm64: dts: qcom: sm8550: Flush RSC sleep & wake votes
    
    [ Upstream commit 4b2c7ac8e469ab7f92e50c34ad4012a77e79d078 ]
    
    The rpmh driver will cache sleep and wake votes until the cluster
    power-domain is about to enter idle, to avoid unnecessary writes. So
    associate the apps_rsc with the cluster pd, so that it can be notified
    about this event.
    
    Without this, only AMC votes are being commited.
    
    Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230531-topic-rsc-v1-8-b4a985f57b8b@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9cfd7431b689ef0f78d7b9607a7925e004ed4f4c
Author: Konrad Dybcio <konrad.dybcio@linaro.org>
Date:   Wed May 31 15:22:40 2023 +0200

    arm64: dts: qcom: sdm845: Flush RSC sleep & wake votes
    
    [ Upstream commit 91e83140b5dd5598fbcfada3ee1f8b2b410c3731 ]
    
    The rpmh driver will cache sleep and wake votes until the cluster
    power-domain is about to enter idle, to avoid unnecessary writes. So
    associate the apps_rsc with the cluster pd, so that it can be notified
    about this event.
    
    Without this, only AMC votes are being commited.
    
    Fixes: c83545d95376 ("arm64: dts: sdm845: Add rpmh-rsc node")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230531-topic-rsc-v1-6-b4a985f57b8b@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0fb17392ca1c09292d0dff04582adadfa69adf3
Author: Konrad Dybcio <konrad.dybcio@linaro.org>
Date:   Wed May 31 15:22:39 2023 +0200

    arm64: dts: qcom: sdm670: Flush RSC sleep & wake votes
    
    [ Upstream commit 7b04cbd81b0e60c5151a310e7b730dc4a951a211 ]
    
    The rpmh driver will cache sleep and wake votes until the cluster
    power-domain is about to enter idle, to avoid unnecessary writes. So
    associate the apps_rsc with the cluster pd, so that it can be notified
    about this event.
    
    Without this, only AMC votes are being commited.
    
    Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230531-topic-rsc-v1-5-b4a985f57b8b@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3c3b3d2fccd7341062e2d08f3eae4de19645876
Author: Konrad Dybcio <konrad.dybcio@linaro.org>
Date:   Wed May 31 15:22:37 2023 +0200

    arm64: dts: qcom: qdu1000: Flush RSC sleep & wake votes
    
    [ Upstream commit ab033e7846f91953244d0626b28ce66412b813b3 ]
    
    The rpmh driver will cache sleep and wake votes until the cluster
    power-domain is about to enter idle, to avoid unnecessary writes. So
    associate the apps_rsc with the cluster pd, so that it can be notified
    about this event.
    
    Without this, only AMC votes are being commited.
    
    Fixes: 6bd20c54b589 ("arm64: dts: qcom: Add base QDU1000/QRU1000 DTSIs")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230531-topic-rsc-v1-3-b4a985f57b8b@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2cae6a28d8c12c597e8656962271520434c61c48
Author: Bosi Zhang <u201911157@hust.edu.cn>
Date:   Sat Apr 22 08:43:31 2023 +0000

    clk: mediatek: fix of_iomap memory leak
    
    [ Upstream commit 3db7285e044144fd88a356f5b641b9cd4b231a77 ]
    
    Smatch reports:
    drivers/clk/mediatek/clk-mtk.c:583 mtk_clk_simple_probe() warn:
        'base' from of_iomap() not released on lines: 496.
    
    This problem was also found in linux-next. In mtk_clk_simple_probe(),
    base is not released when handling errors
    if clk_data is not existed, which may cause a leak.
    So free_base should be added here to release base.
    
    Fixes: c58cd0e40ffa ("clk: mediatek: Add mtk_clk_simple_probe() to simplify clock providers")
    Signed-off-by: Bosi Zhang <u201911157@hust.edu.cn>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Link: https://lore.kernel.org/r/20230422084331.47198-1-u201911157@hust.edu.cn
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bcf140e9e6cf76f1f1bd1f489a14ca4d49f9a1a
Author: Yuxing Liu <lyx2022@hust.edu.cn>
Date:   Wed May 3 07:06:07 2023 +0000

    clk: imx: clk-imx8mp: improve error handling in imx8mp_clocks_probe()
    
    [ Upstream commit 878b02d5f3b56cb090dbe2c70c89273be144087f ]
    
    Replace of_iomap() and kzalloc() with devm_of_iomap() and devm_kzalloc()
    which can automatically release the related memory when the device
    or driver is removed or unloaded to avoid potential memory leak.
    
    In this case, iounmap(anatop_base) in line 427,433 are removed
    as manual release is not required.
    
    Besides, referring to clk-imx8mq.c, check the return code of
    of_clk_add_hw_provider, if it returns negtive, print error info
    and unregister hws, which makes the program more robust.
    
    Fixes: 9c140d992676 ("clk: imx: Add support for i.MX8MP clock driver")
    Signed-off-by: Yuxing Liu <lyx2022@hust.edu.cn>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
    Link: https://lore.kernel.org/r/20230503070607.2462-1-lyx2022@hust.edu.cn
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fac9c624138c4bc021d7a8ee3b974c9e10926d92
Author: Zhanhao Hu <zero12113@hust.edu.cn>
Date:   Thu Jun 1 03:38:25 2023 +0000

    clk: imx93: fix memory leak and missing unwind goto in imx93_clocks_probe
    
    [ Upstream commit e02ba11b457647050cb16e7cad16cec3c252fade ]
    
    In function probe(), it returns directly without unregistered hws
    when error occurs.
    
    Fix this by adding 'goto unregister_hws;' on line 295 and
    line 310.
    
    Use devm_kzalloc() instead of kzalloc() to automatically
    free the memory using devm_kfree() when error occurs.
    
    Replace of_iomap() with devm_of_iomap() to automatically
    handle the unused ioremap region and delete 'iounmap(anatop_base);'
    in unregister_hws.
    
    Fixes: 24defbe194b6 ("clk: imx: add i.MX93 clk")
    Signed-off-by: Zhanhao Hu <zero12113@hust.edu.cn>
    Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
    Link: https://lore.kernel.org/r/20230601033825.336558-1-zero12113@hust.edu.cn
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9428cf0fbf4be9a24f3e15a0c166b861b12666af
Author: Hao Luo <m202171776@hust.edu.cn>
Date:   Tue Apr 11 09:51:07 2023 +0800

    clk: imx: clk-imx8mn: fix memory leak in imx8mn_clocks_probe
    
    [ Upstream commit 188d070de9132667956f5aadd98d2bd87d3eac89 ]
    
    Use devm_of_iomap() instead of of_iomap() to automatically handle
    the unused ioremap region.
    
    If any error occurs, regions allocated by kzalloc() will leak,
    but using devm_kzalloc() instead will automatically free the memory
    using devm_kfree().
    
    Fixes: daeb14545514 ("clk: imx: imx8mn: Switch to clk_hw based API")
    Fixes: 96d6392b54db ("clk: imx: Add support for i.MX8MN clock driver")
    Signed-off-by: Hao Luo <m202171776@hust.edu.cn>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Reviewed-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/20230411015107.2645-1-m202171776@hust.edu.cn
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0fbdfd2542252e4c02e8158a06b7c0c9cfd40f99
Author: Kai Ma <kaima@hust.edu.cn>
Date:   Tue Apr 18 11:34:51 2023 +0000

    clk: imx: clk-imxrt1050: fix memory leak in imxrt1050_clocks_probe
    
    [ Upstream commit 1b280598ab3bd8a2dc8b96a12530d5b1ee7a8f4a ]
    
    Use devm_of_iomap() instead of of_iomap() to automatically
    handle the unused ioremap region. If any error occurs, regions allocated by
    kzalloc() will leak, but using devm_kzalloc() instead will automatically
    free the memory using devm_kfree().
    
    Also, fix error handling of hws by adding unregister_hws label, which
    unregisters remaining hws when iomap failed.
    
    Fixes: 7154b046d8f3 ("clk: imx: Add initial support for i.MXRT1050 clock driver")
    Signed-off-by: Kai Ma <kaima@hust.edu.cn>
    Reviewed-by: Peng Fan <peng.fan@nxp.com>
    Acked-by: Jesse Taube <Mr.Bossman075@gmail.com>
    Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
    Link: https://lore.kernel.org/r/20230418113451.151312-1-kaima@hust.edu.cn
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5710bc67d7e977241ad4f8126191a03735612cca
Author: Kashyap Desai <kashyap.desai@broadcom.com>
Date:   Fri Jun 9 04:01:39 2023 -0700

    RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context
    
    [ Upstream commit 3099bcdc19b701f732f638ee45679858c08559bb ]
    
    bnxt_qplib_service_creq can be called from interrupt or tasklet or
    process context. So the function take irq variant  of spin_lock.
    But when wake_up is invoked with the lock held, it is putting the
    calling context to sleep.
    
    [exception RIP: __wake_up_common+190]
    RIP: ffffffffb7539d7e  RSP: ffffa73300207ad8  RFLAGS: 00000083
    RAX: 0000000000000001  RBX: ffff91fa295f69b8  RCX: dead000000000200
    RDX: ffffa733344af940  RSI: ffffa73336527940  RDI: ffffa73336527940
    RBP: 000000000000001c   R8: 0000000000000002   R9: 00000000000299c0
    R10: 0000017230de82c5  R11: 0000000000000002  R12: ffffa73300207b28
    R13: 0000000000000000  R14: ffffa733341bf928  R15: 0000000000000000
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
    
    Call the wakeup after releasing the lock.
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Link: https://lore.kernel.org/r/1686308514-11996-3-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7bfa0303fbc265c94cfbd17505c55b99848aa4e3
Author: Kashyap Desai <kashyap.desai@broadcom.com>
Date:   Fri Jun 9 04:01:38 2023 -0700

    RDMA/bnxt_re: wraparound mbox producer index
    
    [ Upstream commit 0af91306e17ef3d18e5f100aa58aa787869118af ]
    
    Driver is not handling the wraparound of the mbox producer index correctly.
    Currently the wraparound happens once u32 max is reached.
    
    Bit 31 of the producer index register is special and should be set
    only once for the first command. Because the producer index overflow
    setting bit31 after a long time, FW goes to initialization sequence
    and this causes FW hang.
    
    Fix is to wraparound the mbox producer index once it reaches u16 max.
    
    Fixes: cee0c7bba486 ("RDMA/bnxt_re: Refactor command queue management code")
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Link: https://lore.kernel.org/r/1686308514-11996-2-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1161f5ca0ab4dc59f8fa0f2c886dde0f91a21b12
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Sun Apr 9 04:13:29 2023 +0300

    drm/msm/a5xx: really check for A510 in a5xx_gpu_init
    
    [ Upstream commit 736a9327365644b460e4498b1ce172ca411efcbc ]
    
    The commit 010c8bbad2cb ("drm: msm: adreno: Disable preemption on Adreno
    510") added special handling for a510 (this SKU doesn't seem to support
    preemption, so the driver should clamp nr_rings to 1). However the
    gpu->revn is not yet set (it is set later, in adreno_gpu_init()) and
    thus the condition is always false. Check config->rev instead.
    
    Fixes: 010c8bbad2cb ("drm: msm: adreno: Disable preemption on Adreno 510")
    Reported-by: Adam Skladowski <a39.skl@gmail.com>
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Tested-by: Adam Skladowski <a39.skl@gmail.com>
    Patchwork: https://patchwork.freedesktop.org/patch/531511/
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5cf95d123fc98231bf96baf9f5b41daf6223a288
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Mon Apr 10 21:52:26 2023 +0300

    drm/msm/a6xx: don't set IO_PGTABLE_QUIRK_ARM_OUTER_WBWA with coherent SMMU
    
    [ Upstream commit 38e27a6fbf2206b18417c5985dbcdeca0f2026b8 ]
    
    If the Adreno SMMU is dma-coherent, allocation will fail unless we
    disable IO_PGTABLE_QUIRK_ARM_OUTER_WBWA. Skip setting this quirk for the
    coherent SMMUs (like we have on sm8350 platform).
    
    Fixes: 54af0ceb7595 ("arm64: dts: qcom: sm8350: add GPU, GMU, GPU CC and SMMU nodes")
    Reported-by: David Heidelberg <david@ixit.cz>
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Tested-by: David Heidelberg <david@ixit.cz>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Tested-by: Konrad Dybcio <konrad.dybcio@linaro.org> # SM8450 HDK
    Patchwork: https://patchwork.freedesktop.org/patch/531562/
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f015aadc0d973047f49526a127e900c488d4e425
Author: Chia-I Wu <olvaffe@gmail.com>
Date:   Thu Jun 1 15:44:12 2023 -0700

    amdgpu: validate offset_in_bo of drm_amdgpu_gem_va
    
    [ Upstream commit 9f0bcf49e9895cb005d78b33a5eebfa11711b425 ]
    
    This is motivated by OOB access in amdgpu_vm_update_range when
    offset_in_bo+map_size overflows.
    
    v2: keep the validations in amdgpu_vm_bo_map
    v3: add the validations to amdgpu_vm_bo_map/amdgpu_vm_bo_replace_map
        rather than to amdgpu_gem_va_ioctl
    
    Fixes: 9f7eb5367d00 ("drm/amdgpu: actually use the VM map parameters")
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3649d44135380d80146751018bcb2c71cde59fc9
Author: Bob Pearson <rpearsonhpe@gmail.com>
Date:   Tue May 30 17:13:32 2023 -0500

    RDMA/rxe: Fix access checks in rxe_check_bind_mw
    
    [ Upstream commit 425e1c9018fdf25cb4531606cc92d9d01a55534f ]
    
    The subroutine rxe_check_bind_mw() in rxe_mw.c performs checks on the mw
    access flags before they are set so they always succeed.  This patch
    instead checks the access flags passed in the send wqe.
    
    Fixes: 32a577b4c3a9 ("RDMA/rxe: Add support for bind MW work requests")
    Link: https://lore.kernel.org/r/20230530221334.89432-4-rpearsonhpe@gmail.com
    Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f1ee55cff4551893f98e92dcaa10241384320d9
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue May 23 17:10:59 2023 +0200

    HID: uclogic: Modular KUnit tests should not depend on KUNIT=y
    
    [ Upstream commit 49904a0ebf23b15aad288a10f5354e7cd8193121 ]
    
    While KUnit tests that cannot be built as a loadable module must depend
    on "KUNIT=y", this is not true for modular tests, where it adds an
    unnecessary limitation.
    
    Fix this by relaxing the dependency to "KUNIT".
    
    Fixes: 08809e482a1c44d9 ("HID: uclogic: KUnit best practices and naming conventions")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: David Gow <davidgow@google.com>
    Reviewed-by: José Expósito <jose.exposito89@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8379b4ae63e89babf8293ca27f404d7d756a7c54
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Fri May 19 08:33:27 2023 -0700

    drm/radeon: fix possible division-by-zero errors
    
    [ Upstream commit 1becc57cd1a905e2aa0e1eca60d2a37744525c4a ]
    
    Function rv740_get_decoded_reference_divider() may return 0 due to
    unpredictable reference divider value calculated in
    radeon_atom_get_clock_dividers(). This will lead to
    division-by-zero error once that value is used as a divider
    in calculating 'clk_s'.
    While unlikely, this issue should nonetheless be prevented so add a
    sanity check for such cases by testing 'decoded_ref' value against 0.
    
    Found by Linux Verification Center (linuxtesting.org) with static
    analysis tool SVACE.
    
    v2: minor coding style fixes (Alex)
    In practice this should actually happen as the vbios should be
    properly populated.
    
    Fixes: 66229b200598 ("drm/radeon/kms: add dpm support for rv7xx (v4)")
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e00c2d126dded12a8ad24126a60bc8c40883dd0
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date:   Wed May 17 14:39:46 2023 -0400

    drm/amd/display: Fix artifacting on eDP panels when engaging freesync video mode
    
    [ Upstream commit b18f05a0666aecd5cb19c26a8305bcfa4e9d6502 ]
    
    [Why]
    When freesync video mode is enabled, switching resolution from native
    mode to one of the freesync video compatible modes can trigger continous
    artifacts on some eDP panels when running under KDE. The articating can be seen in the
    attached bug report.
    
    [How]
    Fix this by restricting updates that require full commit by using the same checks
    for stream and scaling changes in the the enable pass of dm_update_crtc_state()
    along with the check for compatible timings for freesync vide mode.
    
    Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2162
    Fixes: da5e14909776 ("drm/amd/display: Fix hang when skipping modeset")
    Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f2299c32e0806a4327e2e641731fe7b50bc1093
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Wed May 31 14:35:30 2023 +0800

    soc: mediatek: SVS: Fix MT8192 GPU node name
    
    [ Upstream commit 95094495401bdf6a0649d220dfd095e6079b5e39 ]
    
    Device tree node names should be generic. The planned device node name
    for the GPU, according to the bindings and posted DT changes, is "gpu",
    not "mali".
    
    Fix the GPU node name in the SVS driver to follow.
    
    Fixes: 0bbb09b2af9d ("soc: mediatek: SVS: add mt8192 SVS GPU driver")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
    Link: https://lore.kernel.org/r/20230531063532.2240038-1-wenst@chromium.org
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7d774b036acdc1a0332b0e72ab1aa2ac5a2cabd3
Author: Daniil Dulov <d.dulov@aladdin.ru>
Date:   Thu May 11 04:23:14 2023 -0700

    drm/amdkfd: Fix potential deallocation of previously deallocated memory.
    
    [ Upstream commit cabbdea1f1861098991768d7bbf5a49ed1608213 ]
    
    Pointer mqd_mem_obj can be deallocated in kfd_gtt_sa_allocate().
    The function then returns non-zero value, which causes the second deallocation.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: d1f8f0d17d40 ("drm/amdkfd: Move non-sdma mqd allocation out of init_mqd")
    Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
    Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Reviewed-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 1d845bbd89e46edfa2c11358d4873462b6b2e3af
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Apr 17 23:41:11 2023 +0200

    drm/amd/display: Fix a test dml32_rq_dlg_get_rq_reg()
    
    [ Upstream commit bafc31166aa7df5fa26ae0ad8196d1717e6cdea9 ]
    
    It is likely p1_min_meta_chunk_bytes was expected here, instead of
    min_meta_chunk_bytes.
    
    Test the correct variable.
    
    Fixes: dda4fb85e433 ("drm/amd/display: DML changes for DCN32/321")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57ec1efac8ad43d1761b7f8a3b1481b190e9719f
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Apr 17 23:35:08 2023 +0200

    drm/amd/display: Fix a test CalculatePrefetchSchedule()
    
    [ Upstream commit 960e27a5741cd3001996ff6ddfb3eb0ed3a4909d ]
    
    It is likely Height was expected here, instead of Width.
    
    Test the correct variable.
    
    Fixes: 17529ea2acfa ("drm/amd/display: Optimizations for DML math")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38ea173f54b4cceaf77face69f0235dbbe11f4ef
Author: Paul Cercueil <paul@crapouillou.net>
Date:   Sun Jun 4 16:56:35 2023 +0200

    MIPS: DTS: CI20: Fix ACT8600 regulator node names
    
    [ Upstream commit 08384e80a70fb1942510ab5f0ce27bad134e634e ]
    
    The Device Tree was using invalid node names for the ACT8600 regulators.
    To be fair, it is not the original committer's fault, as the
    documentation did gives invalid names as well.
    
    In theory, the fix should have been to modify the driver to accept the
    alternative names. However, even though the act8865 driver spits
    warnings, the kernel seemed to work fine with what is currently
    supported upstream. For that reason, I think it is okay to just update
    the DTS.
    
    I removed the "regulator-name" too, since they really didn't bring any
    information. The node names are enough.
    
    Fixes: 73f2b940474d ("MIPS: CI20: DTS: Add I2C nodes")
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 862898eb72d99559aaa961f6ba39116284c7e790
Author: Maxime Ripard <mripard@kernel.org>
Date:   Fri May 5 13:25:03 2023 +0200

    clk: Export clk_hw_forward_rate_request()
    
    [ Upstream commit ed046ac74da0b5602566073023a1519b5ae657b7 ]
    
    Commit 262ca38f4b6e ("clk: Stop forwarding clk_rate_requests to the
    parent") introduced the public clk_hw_forward_rate_request() function,
    but didn't export the symbol. Make sure it's the case.
    
    Fixes: 262ca38f4b6e ("clk: Stop forwarding clk_rate_requests to the parent")
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20221018-clk-range-checks-fixes-v4-1-971d5077e7d2@cerno.tech
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 35aa3ca59c1c1557a1531c881bfd6b8b35ba36b1
Author: Christian Lamparter <chunkeey@gmail.com>
Date:   Thu Jun 8 17:36:29 2023 +0200

    ARM: dts: BCM5301X: fix duplex-full => full-duplex
    
    [ Upstream commit fd274b733bfdde3ca72f0fa2a37f032f3a8c402c ]
    
    this typo was found by the dtbs_check
    | ports:port@5:fixed-link: 'oneOf' conditional failed,
    |  {'speed': [[1000]], 'duplex-full': True} is not of type 'array'
    | 'duplex-full' does not match any of the regexes: 'pinctrl-[0-]..."
    
    this should have been full-duplex;
    
    Fixes: 935327a73553 ("ARM: dts: BCM5301X: Add DT for Meraki MR26")
    Fixes: ec88a9c344d9 ("ARM: BCM5301X: Add DT for Meraki MR32")
    Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
    Link: https://lore.kernel.org/r/50522f45566951a9eabd22820647924cc6b4a264.1686238550.git.chunkeey@gmail.com
    Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d041a17ed05e2a696e11aa3383401ec51cbb1b28
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Jun 2 14:34:47 2023 -0700

    hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272
    
    [ Upstream commit b153a0bb4199566abd337119207f82b59a8cd1ca ]
    
    The PMON_CONFIG register on ADM1272 is a 16 bit register. Writing a 8 bit
    value into it clears the upper 8 bits of the register, resulting in
    unexpected side effects. Fix by writing the 16 bit register value.
    
    Also, it has been reported that temperature readings are sometimes widely
    inaccurate, to the point where readings may result in device shutdown due
    to errant overtemperature faults. Improve by enabling temperature sampling.
    
    While at it, move the common code for ADM1272 and ADM1278 into a separate
    function, and clarify in the error message that an attempt was made to
    enable both VOUT and temperature monitoring.
    
    Last but not least, return the error code reported by the underlying I2C
    controller and not -ENODEV if updating the PMON_CONFIG register fails.
    After all, this does not indicate that the chip is not present, but an
    error in the communication with the chip.
    
    Fixes: 4ff0ce227a1e ("hwmon: (pmbus/adm1275) Add support for ADM1272")
    Fixes: 9da9c2dc57b2 ("hwmon: (adm1275) enable adm1272 temperature reporting")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20230602213447.3557346-1-linux@roeck-us.net
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 10ee3cd04dcf7600f7a78287aeab0a314032bf31
Author: Tim Harvey <tharvey@gateworks.com>
Date:   Tue Jun 6 08:30:04 2023 -0700

    hwmon: (gsc-hwmon) fix fan pwm temperature scaling
    
    [ Upstream commit a6d80df47ee2c69db99e4f2f8871aa4db154620b ]
    
    The GSC fan pwm temperature register is in centidegrees celcius but the
    Linux hwmon convention is to use milidegrees celcius. Fix the scaling.
    
    Fixes: 3bce5377ef66 ("hwmon: Add Gateworks System Controller support")
    Signed-off-by: Tim Harvey <tharvey@gateworks.com>
    Link: https://lore.kernel.org/r/20230606153004.1448086-1-tharvey@gateworks.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e34ad4eef07e27a467e82fc143b7b886f9bc456
Author: Olivier Moysan <olivier.moysan@foss.st.com>
Date:   Tue Jun 6 13:56:04 2023 +0200

    ARM: dts: stm32: fix i2s endpoint format property for stm32mp15xx-dkx
    
    [ Upstream commit 076c74c592cabe4a47537fe5205b5b678bed010d ]
    
    Use "dai-format" to configure DAI audio format as specified in
    audio-graph-port.yaml bindings.
    
    Fixes: 144d1ba70548 ("ARM: dts: stm32: Adapt STM32MP157 DK boards to stm32 DT diversity")
    Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c2cbabe3c04d629a95cc5929b21e37c01c5cc631
Author: Marek Vasut <marex@denx.de>
Date:   Tue Jun 6 20:01:12 2023 +0200

    ARM: dts: stm32: Fix audio routing on STM32MP15xx DHCOM PDK2
    
    [ Upstream commit e3f2778b1b6ced649bffdc7cbb05b80bb92f2108 ]
    
    The audio routing flow is not correct, the flow should be from source
    (second element in the pair) to sink (first element in the pair). The
    flow now is from "HP_OUT" to "Playback", where "Playback" is source
    and "HP_OUT" is sink, i.e. the direction is swapped and there is no
    direct link between the two either.
    
    Fill in the correct routing, where "HP_OUT" supplies the "Headphone Jack",
    "Line In Jack" supplies "LINE_IN" input, "Microphone Jack" supplies "MIC_IN"
    input and "Mic Bias" supplies "Microphone Jack".
    
    Fixes: 34e0c7847dcf ("ARM: dts: stm32: Add DH Electronics DHCOM STM32MP1 SoM and PDK2 board")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 24e5db294ce611ef1ad8cb36ee958d3cd5c01bd8
Author: Caleb Connolly <caleb.connolly@linaro.org>
Date:   Tue Jun 6 12:05:32 2023 -0700

    Input: pm8941-powerkey - fix debounce on gen2+ PMICs
    
    [ Upstream commit 8c9cce9cb81b5fdc6e66bf3f129727b89e8daab7 ]
    
    Since PM8998/PM660, the power key debounce register was redefined to
    support shorter debounce times. On PM8941 the shortest debounce time
    (represented by register value 0) was 15625us, on PM8998 the shortest
    debounce time is 62us, with the default being 2ms.
    
    Adjust the bit shift to correctly program debounce on PM8998 and newer.
    
    Fixes: 68c581d5e7d8 ("Input: add Qualcomm PM8941 power key driver")
    Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
    Link: https://lore.kernel.org/r/20230529-pm8941-pwrkey-debounce-v1-2-c043a6d5c814@linaro.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b6324c32fdc92dee57ff5ddc94ae6307d11cd54
Author: Keerthy <j-keerthy@ti.com>
Date:   Wed Apr 19 09:30:06 2023 +0530

    arm64: dts: ti: k3-j7200: Fix physical address of pin
    
    [ Upstream commit 3d011933000ed9054c649952d83162d24f020a93 ]
    
    wkup_pmx splits into multiple regions. Like
    
        wkup_pmx0 -> 13 pins (WKUP_PADCONFIG 0 - 12)
        wkup_pmx1 -> 2 pins (WKUP_PADCONFIG 14 - 15)
        wkup_pmx2 -> 59 pins (WKUP_PADCONFIG 26 - 84)
        wkup_pmx3 -> 8 pins (WKUP_PADCONFIG 93 - 100)
    
    With this split, pin offset needs to be adjusted to
    match with new pmx for all pins above wkup_pmx0.
    
    Example a pin under wkup_pmx1 should start from 0 instead of
    old offset(0x38 WKUP_PADCONFIG 14 offset)
    
    J7200 Datasheet (Table 6-106, Section 6.4 Pin Multiplexing) :
    https://www.ti.com/lit/ds/symlink/dra821u.pdf
    
    Fixes: 9ae21ac445e9 ("arm64: dts: ti: k3-j7200: Fix wakeup pinmux range")
    
    Signed-off-by: Keerthy <j-keerthy@ti.com>
    Signed-off-by: Udit Kumar <u-kumar1@ti.com>
    Link: https://lore.kernel.org/r/20230419040007.3022780-2-u-kumar1@ti.com
    Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7cca0af3167dd9603da5fa6fff3392f8338e97e1
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Jun 4 17:42:28 2023 +0200

    fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
    
    [ Upstream commit 79a3908d1ea6c35157a6d907b1a9d8ec06015e7a ]
    
    If 'mipid_detect()' fails, we must free 'md' to avoid a memory leak.
    
    Fixes: 66d2f99d0bb5 ("omapfb: add support for MIPI-DCS compatible LCDs")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28eea78ebe53c0d91e1e02230aed748628fb756d
Author: Kuogee Hsieh <quic_khsieh@quicinc.com>
Date:   Thu May 25 10:40:55 2023 -0700

    drm/msm/dpu: always clear every individual pending flush mask
    
    [ Upstream commit 625cbb077007698060b12d0ae5657a4d8411b153 ]
    
    There are two tiers of pending flush control, top level and
    individual hardware block. Currently only the top level of
    flush mask is reset to 0 but the individual pending flush masks
    of particular hardware blocks are left at their previous values,
    eventually accumulating all possible bit values and typically
    flushing more than necessary.
    Reset all individual hardware block flush masks to 0 to avoid
    accidentally flushing them.
    
    Changes in V13:
    -- rewording commit text
    -- add an empty space line as suggested
    
    Changes in V14:
    -- add Fixes tag
    
    Fixes: 73bfb790ac78 ("msm:disp:dpu1: setup display datapath for SC7180 target")
    Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Patchwork: https://patchwork.freedesktop.org/patch/539508/
    Link: https://lore.kernel.org/r/1685036458-22683-8-git-send-email-quic_khsieh@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 87b0af9f62d8e3c50354aa9cc1185f0588a6ee58
Author: Kuogee Hsieh <quic_khsieh@quicinc.com>
Date:   Thu May 25 10:40:49 2023 -0700

    drm/msm/dpu: set DSC flush bit correctly at MDP CTL flush register
    
    [ Upstream commit 12cef323c903bd8b13d1f6ff24a9695c2cdc360b ]
    
    The CTL_FLUSH register should be programmed with the 22th bit
    (DSC_IDX) to flush the DSC hardware blocks, not the literal value of
    22 (which corresponds to flushing VIG1, VIG2 and RGB1 instead).
    
    Changes in V12:
    -- split this patch out of "separate DSC flush update out of interface"
    
    Changes in V13:
    -- rewording the commit text
    
    Changes in V14:
    -- drop 'DSC" from "The DSC CTL_FLUSH register" at commit text
    
    Fixes: 77f6da90487c ("drm/msm/disp/dpu1: Add DSC support in hw_ctl")
    Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Patchwork: https://patchwork.freedesktop.org/patch/539496/
    Link: https://lore.kernel.org/r/1685036458-22683-2-git-send-email-quic_khsieh@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d30e61e894cfce78af325dde3d4253a92f4bbbdb
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Thu May 25 10:48:22 2023 +0200

    arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1
    
    [ Upstream commit 1a2c4e5635177939a088d22fa35c6a7032725663 ]
    
    The schematics are misleading, the flow control is for HSCIF1. We need
    SCIF1 for GNSS/GPS which does not use flow control.
    
    Fixes: c6c816e22bc8 ("arm64: dts: ulcb-kf: enable SCIF1")
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20230525084823.4195-2-wsa+renesas@sang-engineering.com
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 713ca0e0b8f673878c8d18264f0c3ddf9a16e4d8
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue May 23 17:35:16 2023 +0200

    ARM: dts: iwg20d-q7-common: Fix backlight pwm specifier
    
    [ Upstream commit 0501fdec106a291c43b3c1b525cf22ab4c24b2d8 ]
    
    make dtbs_check:
    
        arch/arm/boot/dts/renesas/r8a7743-iwg20d-q7.dtb: backlight: pwms: [[58, 0, 5000000], [0]] is too long
                From schema: Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml
        arch/arm/boot/dts/renesas/r8a7743-iwg20d-q7-dbcm-ca.dtb: backlight: pwms: [[67, 0, 5000000], [0]] is too long
                From schema: Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml
        arch/arm/boot/dts/renesas/r8a7744-iwg20d-q7-dbcm-ca.dtb: backlight: pwms: [[67, 0, 5000000], [0]] is too long
                From schema: Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml
        arch/arm/boot/dts/renesas/r8a7744-iwg20d-q7.dtb: backlight: pwms: [[58, 0, 5000000], [0]] is too long
                From schema: Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml
    
    PWM specifiers referring to R-Car PWM Timer Controllers should contain
    only two cells.
    
    Fix this by dropping the bogus third cell.
    
    Fixes: 6f89dd9e9325d05b ("ARM: dts: iwg20d-q7-common: Add LCD support")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/6e5c3167424a43faf8c1fa68d9667b3d87dc86d8.1684855911.git.geert+renesas@glider.be
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c3aebc11b9b5cc34d18c403851f4a55f5f7d050c
Author: Chengchang Tang <tangchengchang@huawei.com>
Date:   Tue May 23 20:16:40 2023 +0800

    RDMA/hns: Fix hns_roce_table_get return value
    
    [ Upstream commit cf5b608fb0e369c473a8303cad6ddb386505e5b8 ]
    
    The return value of set_hem has been fixed to ENODEV, which will lead a
    diagnostic information missing.
    
    Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver")
    Link: https://lore.kernel.org/r/20230523121641.3132102-3-huangjunxian6@hisilicon.com
    Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
    Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa9d69d0083bbb6416088d6e2e756d3678d1247a
Author: Brendan Cunningham <bcunningham@cornelisnetworks.com>
Date:   Fri May 19 12:32:16 2023 -0400

    IB/hfi1: Fix wrong mmu_node used for user SDMA packet after invalidate
    
    [ Upstream commit c9358de193ecfb360c3ce75f27ce839ca0b0bc8c ]
    
    The hfi1 user SDMA pinned-page cache will leave a stale cache entry when
    the cache-entry's virtual address range is invalidated but that cache
    entry is in-use by an outstanding SDMA request.
    
    Subsequent user SDMA requests with buffers in or spanning the virtual
    address range of the stale cache entry will result in packets constructed
    from the wrong memory, the physical pages pointed to by the stale cache
    entry.
    
    To fix this, remove mmu_rb_node cache entries from the mmu_rb_handler
    cache independent of the cache entry's refcount. Add 'struct kref
    refcount' to struct mmu_rb_node and manage mmu_rb_node lifetime with
    kref_get() and kref_put().
    
    mmu_rb_node.refcount makes sdma_mmu_node.refcount redundant. Remove
    'atomic_t refcount' from struct sdma_mmu_node and change sdma_mmu_node
    code to use mmu_rb_node.refcount.
    
    Move the mmu_rb_handler destructor call after a
    wait-for-SDMA-request-completion call so mmu_rb_nodes that need
    mmu_rb_handler's workqueue to queue themselves up for destruction from an
    interrupt context may do so.
    
    Fixes: f48ad614c100 ("IB/hfi1: Move driver out of staging")
    Fixes: 00cbce5cbf88 ("IB/hfi1: Fix bugs with non-PAGE_SIZE-end multi-iovec user SDMA requests")
    Link: https://lore.kernel.org/r/168451393605.3700681.13493776139032178861.stgit@awfm-02.cornelisnetworks.com
    Reviewed-by: Dean Luick <dean.luick@cornelisnetworks.com>
    Signed-off-by: Brendan Cunningham <bcunningham@cornelisnetworks.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af48ffbd65b3606b35fee3126dd648340742771c
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 23 13:18:45 2023 +0200

    RDMA/irdma: avoid fortify-string warning in irdma_clr_wqes
    
    [ Upstream commit b002760f877c0d91ecd3c78565b52f4bbac379dd ]
    
    Commit df8fc4e934c1 ("kbuild: Enable -fstrict-flex-arrays=3") triggers a
    warning for fortified memset():
    
    In function 'fortify_memset_chk',
        inlined from 'irdma_clr_wqes' at drivers/infiniband/hw/irdma/uk.c:103:4:
    include/linux/fortify-string.h:493:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
      493 |                         __write_overflow_field(p_size_field, size);
          |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    The problem here isthat the inner array only has four 8-byte elements, so
    clearing 4096 bytes overflows that. As this structure is part of an outer
    array, change the code to pass a pointer to the irdma_qp_quanta instead,
    and change the size argument for readability, matching the comment above
    it.
    
    Fixes: 551c46edc769 ("RDMA/irdma: Add user/kernel shared libraries")
    Link: https://lore.kernel.org/r/20230523111859.2197825-1-arnd@kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4048405c133948ec5a6a1d09e413c0eafa3e391a
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun May 21 15:52:16 2023 -0700

    soc/fsl/qe: fix usb.c build errors
    
    [ Upstream commit 7b1a78babd0d2cd27aa07255dee0c2d7ac0f31e3 ]
    
    Fix build errors in soc/fsl/qe/usb.c when QUICC_ENGINE is not set.
    This happens when PPC_EP88XC is set, which selects CPM1 & CPM.
    When CPM is set, USB_FSL_QE can be set without QUICC_ENGINE
    being set. When USB_FSL_QE is set, QE_USB deafults to y, which
    causes build errors when QUICC_ENGINE is not set. Making
    QE_USB depend on QUICC_ENGINE prevents QE_USB from defaulting to y.
    
    Fixes these build errors:
    
    drivers/soc/fsl/qe/usb.o: in function `qe_usb_clock_set':
    usb.c:(.text+0x1e): undefined reference to `qe_immr'
    powerpc-linux-ld: usb.c:(.text+0x2a): undefined reference to `qe_immr'
    powerpc-linux-ld: usb.c:(.text+0xbc): undefined reference to `qe_setbrg'
    powerpc-linux-ld: usb.c:(.text+0xca): undefined reference to `cmxgcr_lock'
    powerpc-linux-ld: usb.c:(.text+0xce): undefined reference to `cmxgcr_lock'
    
    Fixes: 5e41486c408e ("powerpc/QE: add support for QE USB clocks routing")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Link: https://lore.kernel.org/all/202301101500.pillNv6R-lkp@intel.com/
    Suggested-by: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Leo Li <leoyang.li@nxp.com>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Nicolas Schier <nicolas@fjasle.eu>
    Cc: Qiang Zhao <qiang.zhao@nxp.com>
    Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Kumar Gala <galak@kernel.crashing.org>
    Acked-by: Nicolas Schier <nicolas@jasle.eu>
    Signed-off-by: Li Yang <leoyang.li@nxp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 230803c7eeefc16860fd3bd407a3e54eda7b2f67
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Tue May 16 22:30:29 2023 +0200

    ARM: dts: meson8: correct uart_B and uart_C clock references
    
    [ Upstream commit 98b503c7fb13a17a47d8ebf15fa8f7c10118e75c ]
    
    On Meson8 uart_B and uart_C do not work, because they are relying on
    incorrect clocks. Change the references of pclk to the correct CLKID
    (UART1 for uart_B and UART2 for uart_C), to allow use of the two uarts.
    
    This was originally reported by Hans-Frieder Vogt for Meson8b [0], but
    the same bug is also present in meson8.dtsi
    
    [0] https://lore.kernel.org/linux-amlogic/trinity-bf20bcb9-790b-4ab9-99e3-0831ef8257f4-1680878185420@3c-app-gmx-bap55/
    
    Fixes: 57007bfb5469 ("ARM: dts: meson8: Fix the UART device-tree schema validation")
    Reported-by: Hans-Frieder Vogt <hfdevel@gmx.net> # for meson8b.dtsi
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Link: https://lore.kernel.org/r/20230516203029.1031174-1-martin.blumenstingl@googlemail.com
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7c4058e9c0c42e1bb6e9d1276e83e2c6fa10ec6
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Tue May 30 21:11:39 2023 +0300

    ASoC: es8316: Do not set rate constraints for unsupported MCLKs
    
    [ Upstream commit 60413129ee2b38a80347489270af7f6e1c1de4d0 ]
    
    When using the codec through the generic audio graph card, there are at
    least two calls of es8316_set_dai_sysclk(), with the effect of limiting
    the allowed sample rates according to the MCLK/LRCK ratios supported by
    the codec:
    
    1. During audio card setup, to set the initial MCLK - see
       asoc_simple_init_dai().
    
    2. Before opening a stream, to update MCLK, according to the stream
       sample rate and the multiplication factor - see
       asoc_simple_hw_params().
    
    In some cases the initial MCLK might be set to a frequency that doesn't
    match any of the supported ratios, e.g. 12287999 instead of 12288000,
    which is only 1 Hz below the supported clock, as that is what the
    hardware reports. This creates an empty list of rate constraints, which
    is further passed to snd_pcm_hw_constraint_list() via
    es8316_pcm_startup(), and causes the following error on the very first
    access of the sound card:
    
      $ speaker-test -D hw:Analog,0 -F S16_LE -c 2 -t wav
      Broken configuration for playback: no configurations available: Invalid argument
      Setting of hwparams failed: Invalid argument
    
    Note that all subsequent retries succeed thanks to the updated MCLK set
    at point 2 above, which uses a computed frequency value instead of a
    reading from the hardware registers. Normally this would have mitigated
    the issue, but es8316_pcm_startup() executes before the 2nd call to
    es8316_set_dai_sysclk(), hence it cannot make use of the updated
    constraints.
    
    Since es8316_pcm_hw_params() performs anyway a final validation of MCLK
    against the stream sample rate and the supported MCLK/LRCK ratios, fix
    the issue by ensuring that sysclk_constraints list is only set when at
    least one supported sample rate is autodetected by the codec.
    
    Fixes: b8b88b70875a ("ASoC: add es8316 codec driver")
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Link: https://lore.kernel.org/r/20230530181140.483936-3-cristian.ciocaltea@collabora.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ecc7858bf67ff725f0f5c3a823c52bb94b643c91
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Tue May 30 21:11:38 2023 +0300

    ASoC: es8316: Increment max value for ALC Capture Target Volume control
    
    [ Upstream commit 6f073429037cd79d7311cd8236311c53f5ea8f01 ]
    
    The following error occurs when trying to restore a previously saved
    ALSA mixer state (tested on a Rock 5B board):
    
      $ alsactl --no-ucm -f /tmp/asound.state store hw:Analog
      $ alsactl --no-ucm -I -f /tmp/asound.state restore hw:Analog
      alsactl: set_control:1475: Cannot write control '2:0:0:ALC Capture Target Volume:0' : Invalid argument
    
    According to ES8316 datasheet, the register at address 0x2B, which is
    related to the above mixer control, contains by default the value 0xB0.
    Considering the corresponding ALC target bits (ALCLVL) are 7:4, the
    control is initialized with 11, which is one step above the maximum
    value allowed by the driver:
    
     ALCLVL | dB gain
     -------+--------
      0000  |  -16.5
      0001  |  -15.0
      0010  |  -13.5
      ....  |  .....
      0111  |   -6.0
      1000  |   -4.5
      1001  |   -3.0
      1010  |   -1.5
      ....  |  .....
      1111  |   -1.5
    
    The tests performed using the VU meter feature (--vumeter=TYPE) of
    arecord/aplay confirm the specs are correct and there is no measured
    gain if the 1011-1111 range would have been mapped to 0 dB:
    
     dB gain | VU meter %
     --------+-----------
       -6.0  |  30-31
       -4.5  |  35-36
       -3.0  |  42-43
       -1.5  |  50-51
        0.0  |  50-51
    
    Increment the max value allowed for ALC Capture Target Volume control,
    so that it matches the hardware default.  Additionally, update the
    related TLV to prevent an artificial extension of the dB gain range.
    
    Fixes: b8b88b70875a ("ASoC: add es8316 codec driver")
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Link: https://lore.kernel.org/r/20230530181140.483936-2-cristian.ciocaltea@collabora.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6216ab54319c351db9f9cf470846b19d82a8bed
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Sun May 7 22:07:33 2023 +0300

    ARM: dts: qcom: apq8074-dragonboard: Set DMA as remotely controlled
    
    [ Upstream commit e60c230588d88036f974cec7e93361e2c4f62226 ]
    
    Add the qcom,controlled-remotely property for the blsp2_bam
    controller node. This board requires this, otherwise the board stalls
    during the boot for some reason (most probably because TZ mishandles the
    protection error and keeps on looping somewhere inside).
    
    Fixes: 62bc81792223 dts: msm8974: Add blsp2_bam dma node
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230507190735.2333145-3-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61a4002a11a6783e2b3050e42808c0d9e0f7ed26
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sat May 13 13:29:31 2023 +0200

    memory: brcmstb_dpfe: fix testing array offset after use
    
    [ Upstream commit 1d9e93fad549bc38f593147479ee063f2872c170 ]
    
    Code should first check for valid value of array offset, then use it as
    the index.  Fixes smatch warning:
    
      drivers/memory/brcmstb_dpfe.c:443 __send_command() error: testing array offset 'cmd' after use.
    
    Fixes: 2f330caff577 ("memory: brcmstb: Add driver for DPFE")
    Acked-by: Markus Mayer <mmayer@broadcom.com>
    Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Link: https://lore.kernel.org/r/20230513112931.176066-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21efe26f3b3487a7318d60b8ffc3e105f6e694fa
Author: Marek Vasut <marex@denx.de>
Date:   Thu May 18 02:42:32 2023 +0200

    ARM: dts: stm32: Shorten the AV96 HDMI sound card name
    
    [ Upstream commit 0cf765e598712addec34d0208cc1418c151fefb2 ]
    
    Fix the following error in kernel log due to too long sound card name:
    "
    asoc-audio-graph-card sound: ASoC: driver name too long 'STM32MP1-AV96-HDMI' -> 'STM32MP1-AV96-H'
    "
    
    Fixes: e027da342772 ("ARM: dts: stm32: Add bindings for audio on AV96")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dfee7f7d88be132b89399a7ff085a8eb555c4038
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon May 15 13:13:52 2023 -0700

    arm64: dts: mediatek: mt8183: Add mediatek,broken-save-restore-fw to kukui
    
    [ Upstream commit 42127f578ebde652d1373e0233356fbd351675c4 ]
    
    Firmware shipped on mt8183 Chromebooks is affected by the GICR
    save/restore issue as described by the patch ("dt-bindings:
    interrupt-controller: arm,gic-v3: Add quirk for Mediatek SoCs w/
    broken FW"). Add the quirk property.
    
    Fixes: cd894e274b74 ("arm64: dts: mt8183: Add krane-sku176 board")
    Reviewed-by: Julius Werner <jwerner@chromium.org>
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20230515131353.v2.3.I525a2ed4260046d43c885ee1275e91707743df1c@changeid
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb09cf22ac180fa201bde9041a7c76ef32873db0
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sun May 7 19:45:16 2023 +0200

    arm64: dts: qcom: apq8096: fix fixed regulator name property
    
    [ Upstream commit c77612a07d18d4425fd8ddd532a8a9b8e1970c53 ]
    
    Correct the typo in 'regulator-name' property.
    
      apq8096-ifc6640.dtb: v1p05-regulator: 'regulator-name' is a required property
      apq8096-ifc6640.dtb: v1p05-regulator: Unevaluated properties are not allowed ('reglator-name' was unexpected)
    
    Fixes: 6cbdec2d3ca6 ("arm64: dts: qcom: msm8996: Introduce IFC6640")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230507174516.264936-3-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c2f43f0acfde186b2cbe5869140fdcb2a2628bfc
Author: Luca Weiss <luca.weiss@fairphone.com>
Date:   Fri Apr 7 09:45:44 2023 +0200

    arm64: dts: qcom: pm7250b: add missing spmi-vadc include
    
    [ Upstream commit 83022f6484b11a60dbf9a95a88c7ef8e59c4b19c ]
    
    This file is using definitions from the spmi-vadc header, so we need to
    include it.
    
    Fixes: 11975b9b8135 ("arm64: dts: qcom: Add pm7250b PMIC")
    Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230407-pm7250b-sid-v1-1-fc648478cc25@fairphone.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c523d7a0794161a0c5bc41cc9fadc8e0448261e6
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 16 17:31:04 2023 +0200

    ARM: omap2: fix missing tick_broadcast() prototype
    
    [ Upstream commit 861bc1d2886d47bd57a2cbf2cda87fdbe3eb9d08 ]
    
    omap2 contains a hack to define tick_broadcast() on non-SMP
    configurations in place of the normal SMP definition. This one
    causes a warning because of a missing prototype:
    
    arch/arm/mach-omap2/board-generic.c:44:6: error: no previous prototype for 'tick_broadcast'
    
    Make sure to always include the header with the declaration.
    
    Fixes: d86ad463d670 ("ARM: OMAP2+: Fix regression for using local timer on non-SMP SoCs")
    Acked-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Link: https://lore.kernel.org/r/20230516153109.514251-9-arnd@kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3fed4f193856a98a3130b216a2f1309f55e86be7
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 16 17:30:58 2023 +0200

    ARM: ep93xx: fix missing-prototype warnings
    
    [ Upstream commit 419013740ea1e4343d8ade535d999f59fa28e460 ]
    
    ep93xx_clocksource_read() is only called from the file it is declared in,
    while ep93xx_timer_init() is declared in a header that is not included here.
    
    arch/arm/mach-ep93xx/timer-ep93xx.c:120:13: error: no previous prototype for 'ep93xx_timer_init'
    arch/arm/mach-ep93xx/timer-ep93xx.c:63:5: error: no previous prototype for 'ep93xx_clocksource_read'
    
    Fixes: 000bc17817bf ("ARM: ep93xx: switch to GENERIC_CLOCKEVENTS")
    Acked-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
    Link: https://lore.kernel.org/r/20230516153109.514251-3-arnd@kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d7721b2cfa575265668ba9b749969044b0a2e27
Author: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Date:   Tue May 16 10:50:39 2023 +0200

    drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H
    
    [ Upstream commit f24b49550814fdee4a98b9552e35e243ccafd4a8 ]
    
    The previous setting was related to the overall dimension and not to the
    active display area.
    In the "PHYSICAL SPECIFICATIONS" section, the datasheet shows the
    following parameters:
    
     ----------------------------------------------------------
    |       Item        |         Specifications        | unit |
     ----------------------------------------------------------
    | Display area      | 98.7 (W) x 57.5 (H)           |  mm  |
     ----------------------------------------------------------
    | Overall dimension | 105.5(W) x 67.2(H) x 4.96(D)  |  mm  |
     ----------------------------------------------------------
    
    Fixes: 966fea78adf2 ("drm/panel: simple: Add support for Ampire AM-480272H3TMQW-T01H")
    Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    [narmstrong: fixed Fixes commit id length]
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230516085039.3797303-1-dario.binacchi@amarulasolutions.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 382df18924b7b4ab08d93ee8257bd0acaf2e51a6
Author: Frieder Schrempf <frieder.schrempf@kontron.de>
Date:   Wed May 3 18:33:07 2023 +0200

    drm/bridge: ti-sn65dsi83: Fix enable/disable flow to meet spec
    
    [ Upstream commit dd9e329af7236e34c566d3705ea32a63069b9b13 ]
    
    The datasheet describes the following initialization flow including
    minimum delay times between each step:
    
    1. DSI data lanes need to be in LP-11 and the clock lane in HS mode
    2. toggle EN signal
    3. initialize registers
    4. enable PLL
    5. soft reset
    6. enable DSI stream
    7. check error status register
    
    To meet this requirement we need to make sure the host bridge's
    pre_enable() is called first by using the pre_enable_prev_first
    flag.
    
    Furthermore we need to split enable() into pre_enable() which covers
    steps 2-5 from above and enable() which covers step 7 and is called
    after the host bridge's enable().
    
    Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
    Fixes: ceb515ba29ba ("drm/bridge: ti-sn65dsi83: Add TI SN65DSI83 and SN65DSI84 driver")
    Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> #TQMa8MxML/MBa8Mx
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230503163313.2640898-3-frieder@fris.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1c9243475ff5653efac9d2825edc2faa3849450
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Wed May 17 20:48:41 2023 +0200

    arm64: dts: qcom: apq8016-sbc: Fix 1.8V power rail on LS expansion
    
    [ Upstream commit 5500f823db38db073d30557af159b77fb1f2bf26 ]
    
    The 96Boards specification expects a 1.8V power rail on the low-speed
    expansion connector that is able to provide at least 0.18W / 100 mA.
    According to the DB410c hardware user manual this is done by connecting
    both L15 and L16 in parallel with up to 55mA each (for 110 mA total) [1].
    
    Unfortunately the current regulator setup in the DB410c device tree
    does not implement the specification correctly and only provides 5 mA:
    
      - Only L15 is marked always-on, so L16 is never enabled.
      - Without specifying a load the regulator is put into LPM where
        it can only provide 5 mA.
    
    Fix this by:
    
      - Adding proper voltage constraints for L16.
      - Making L16 always-on.
      - Adding regulator-system-load for both L15 and L16. 100 mA should be
        available in total, so specify 50 mA for each. (The regulator
        hardware can only be in normal (55 mA) or low-power mode (5 mA) so
        this will actually result in the expected 110 mA total...)
    
    [1]: https://www.96boards.org/documentation/consumer/dragonboard/dragonboard410c/hardware-docs/hardware-user-manual.md.html#power-supplies
    
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Fixes: 828dd5d66f0f ("arm64: dts: apq8016-sbc: make 1.8v available on LS expansion")
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230510-msm8916-regulators-v1-2-54d4960a05fc@gerhold.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ddefb00f1b76423543c4fc1d374dc2fe65b4a0dc
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Wed May 17 20:48:40 2023 +0200

    arm64: dts: qcom: apq8016-sbc: Fix regulator constraints
    
    [ Upstream commit e27654df20d77ad7549a3cf6739ebaa3aa59a088 ]
    
    For some reason DB410c has completely bogus regulator constraints that
    actually just correspond to the programmable voltages which are already
    provided by the regulator driver. Some of them are not just outside the
    recommended operating conditions of the APQ8016E SoC but even exceed
    the absolute maximum ratings, potentially risking permanent device
    damage.
    
    In practice it's not quite as dangerous thanks to the RPM firmware:
    It turns out that it has its own voltage constraints and silently
    clamps all regulator requests. For example, requesting 3.3V for L5
    (allowed by the current regulator constraints!) still results in 1.8V
    being programmed in the actual regulator hardware.
    
    Experimentation with various voltages shows that the internal RPM
    voltage constraints roughly correspond to the safe "specified range"
    in the PM8916 Device Specification (rather than the "programmable
    range" used inside apq8016-sbc.dtsi right now).
    
    Combine those together with some fixed voltages used in the old
    msm-3.10 device tree from Qualcomm to give DB410c some actually valid
    voltage constraints.
    
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Fixes: 4c7d53d16d77 ("arm64: dts: apq8016-sbc: add regulators support")
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230510-msm8916-regulators-v1-1-54d4960a05fc@gerhold.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44db461f4de139197ad9cc6221d2ecef16c94697
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:56 2023 +0200

    arm64: dts: qcom: sdm845-polaris: add missing touchscreen child node reg
    
    [ Upstream commit 4a0156b8862665a3e31c8280607388e3001ace3d ]
    
    Add missing reg property to touchscreen child node to fix dtbs W=1 warnings:
    
      Warning (unit_address_vs_reg): /soc@0/geniqup@ac0000/i2c@a98000/touchscreen@20/rmi4-f12@12: node has a unit name, but no reg or ranges property
    
    Fixes: be497abe19bf ("arm64: dts: qcom: Add support for Xiaomi Mi Mix2s")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: Molly Sophia <mollysophia379@gmail.com>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-18-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da2a958c3246458b911e809dd7d7d46ca4e37ba8
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:55 2023 +0200

    arm64: dts: qcom: sm8550: correct pinctrl unit address
    
    [ Upstream commit 950a4fe6ec8498799d1c7bd31a489a718f94a87e ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/pinctrl@f000000: simple-bus unit address format error, expected "f100000"
    
    Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-17-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 724d8a9a5f925438cacd4c3189654bc6ec4412e4
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:54 2023 +0200

    arm64: dts: qcom: sm8550: correct crypto unit address
    
    [ Upstream commit 3cbf49ef16962ab6d99a3659cb34a33c5f147b50 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/crypto@1de0000: simple-bus unit address format error, expected "1dfa000"
    
    Fixes: 433477c3bf0b ("arm64: dts: qcom: sm8550: add QCrypto nodes")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-16-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c4638c959dc85ef3ac2d5270a527408041a695f
Author: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Date:   Wed Feb 22 19:22:37 2023 +0200

    arm64: dts: qcom: sm8550: add QCE IP family compatible values
    
    [ Upstream commit e47a80784306a544a58f5c7febaaa3cc646f51a2 ]
    
    Add a family compatible for QCE IP on SM8550 SoC, which is equal to QCE IP
    found on SM8150 SoC and described in the recently updated device tree
    bindings documentation, as well add a generic QCE IP family compatible.
    
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: 3cbf49ef1696 ("arm64: dts: qcom: sm8550: correct crypto unit address")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 649159f3dffd8eb24cad95df82e04479fa980329
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:52 2023 +0200

    arm64: dts: qcom: sm8350: correct PCI phy unit address
    
    [ Upstream commit ab98c21bc9246f421a6ae70e69f1b73cea6f85e3 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/phy@1c0f000: simple-bus unit address format error, expected "1c0e000"
    
    Fixes: 6daee40678a0 ("arm64: dts: qcom: sm8350: add PCIe devices")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-14-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0ce8fc08c412ef711e0cd9152e67913078c554d
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:51 2023 +0200

    arm64: dts: qcom: sm8350: correct DMA controller unit address
    
    [ Upstream commit 41d6bca799b3f40d4d3c22dd4545aeac7c210e33 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/dma-controller@900000: simple-bus unit address format error, expected "9800000"
    
    Fixes: bc08fbf49bc8 ("arm64: dts: qcom: sm8350: Define GPI DMA engines")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-13-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd172413e8264a8bdf2639c54a6f7a0e6996ffe2
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:50 2023 +0200

    arm64: dts: qcom: sm6115: correct thermal-sensor unit address
    
    [ Upstream commit 2358b43256080459fcc5642265ed4fec75558f8c ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/thermal-sensor@4410000: simple-bus unit address format error, expected "4411000"
    
    Fixes: 7b74cba6b13f ("arm64: dts: qcom: sm6115: Add TSENS node")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-12-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 098ffc276026aaa7df359fe3df8690fba1ff5666
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:49 2023 +0200

    arm64: dts: qcom: sdm845: correct camss unit address
    
    [ Upstream commit a05b913a27e46926ba60ba2bcacc7ec7a8403e4c ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/camss@a00000: simple-bus unit address format error, expected "acb3000"
    
    Fixes: d48a6698a6b7 ("arm64: dts: qcom: sdm845: Add CAMSS ISP node")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-11-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e585a9df27222f9cdde087419fdb0578e86c152b
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:48 2023 +0200

    arm64: dts: qcom: sdm630: correct camss unit address
    
    [ Upstream commit c8b7faa7e9913a94444b3f00b6480e53a174fcfd ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc/camss@ca00000: simple-bus unit address format error, expected "ca00020"
    
    Fixes: f3d5d3cc6971 ("arm64: dts: qcom: sdm630: Configure the camera subsystem")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-10-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd63ab181e2972f35e63afba50c0cc9717010cc3
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:47 2023 +0200

    arm64: dts: qcom: msm8996: correct camss unit address
    
    [ Upstream commit e959ced1d0e5ef0b1f66a0c2d0e1ae80790e5ca5 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc/camss@a00000: simple-bus unit address format error, expected "a34000"
    
    Fixes: e0531312e78f ("arm64: dts: qcom: msm8996: Add CAMSS support")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-9-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6da7ec1807d1dea88d94dfc0cd7efff2892eb92
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:46 2023 +0200

    arm64: dts: qcom: msm8994: correct SPMI unit address
    
    [ Upstream commit 24f0f6a8059c7108d4ee3476c95db1e7ff4feb79 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc/spmi@fc4c0000: simple-bus unit address format error, expected "fc4cf000"
    
    Fixes: b0ad598f8ec0 ("arm64: dts: qcom: msm8994: Add SPMI PMIC arbiter device")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-8-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3a6885fe44f0ff959a0435cf4b3282a7a0521e35
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:45 2023 +0200

    arm64: dts: qcom: msm8976: correct MMC unit address
    
    [ Upstream commit 80284797a4cb8ceae71e3c403bafc6648263a060 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/mmc@7824000: simple-bus unit address format error, expected "7824900"
      Warning (simple_bus_reg): /soc@0/mmc@7864000: simple-bus unit address format error, expected "7864900"
      Warning (simple_bus_reg): /soc@0/mmc@7a24000: simple-bus unit address format error, expected "7a24900"
    
    Fixes: 0484d3ce0902 ("arm64: dts: qcom: Add DTS for MSM8976 and MSM8956 SoCs")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-7-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0f17d150e0420b10be42bd38bcbcf9a86788ebb
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:43 2023 +0200

    arm64: dts: qcom: msm8953: correct IOMMU unit address
    
    [ Upstream commit 1c06b93461ec9df8a5878947db4a9d2d1cb72855 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/iommu@1e00000: simple-bus unit address format error, expected "1e20000"
    
    Fixes: c0b9575a3606 ("arm64: dts: qcom: msm8953: add APPS IOMMU")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-5-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ccec266524c83f5e999953469c70e1ed90dc6e20
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:42 2023 +0200

    arm64: dts: qcom: msm8916: correct WCNSS unit address
    
    [ Upstream commit 1f9a41bb0bba7b373c26a6f2cc8d35cc3159c861 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/remoteproc@a21b000: simple-bus unit address format error, expected "a204000"
    
    Fixes: 88106096cbf8 ("ARM: dts: msm8916: Add and enable wcnss node")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-4-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1024438942f0b361b48f65fe91b50feddf38cc37
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Thu Mar 9 10:14:52 2023 +0100

    arm64: dts: qcom: msm8916: Move WCN compatible to boards
    
    [ Upstream commit 3244442406ff49e8f75a1f2def211c497710570f ]
    
    On MSM8916 the wireless connectivity functionality (WiFi/Bluetooth) is
    split into the digital part inside the SoC and the analog RF part inside
    a supplementary WCN36xx chip. For MSM8916, three different options
    exist:
    
      - WCN3620  (WLAN 802.11 b/g/n 2.4 GHz + Bluetooth)
      - WCN3660B (WLAN 802.11 a/b/g/n 2.4/5 GHz + Bluetooth)
      - WCN3680B (WLAN 802.11ac 2.4/5 GHz + Bluetooth)
    
    Choosing one of these is up to the board vendor. This means that the
    compatible belongs into the board-specific DT part so people porting
    new boards pay attention to set the correct compatible.
    
    Right now msm8916.dtsi sets "qcom,wcn3620" as default compatible,
    which does not work at all for boards that have WCN3660B or WCN3680B.
    
    Remove the default compatible from msm8196.dtsi and move it to the board
    DT as follows:
    
      - Boards with only &pronto { status = "okay"; } used the default
        "qcom,wcn3620" so far. They now set this explicitly for &wcnss_iris.
      - Boards with &pronto { ... iris { compatible = "qcom,wcn3660b"; }};
        already had an override that just moves to &wcnss_iris now.
      - For msm8916-samsung-a2015-common.dtsi the WCN compatible differs for
        boards making use of it (a3u: wcn3620, a5u: wcn3660b, e2015: wcn3620)
        so the definitions move to the board-specific DT part.
    
    Since this requires touching all the board DTs, use this as a chance to
    name the WCNSS-related labels consistently, so everything is grouped
    properly when sorted alphabetically.
    
    No functional change, just clean-up for more clarity & easier porting.
    Aside from ordering the generated DTBs are identical.
    
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230309091452.1011776-1-stephan.gerhold@kernkonzept.com
    Stable-dep-of: 1f9a41bb0bba ("arm64: dts: qcom: msm8916: correct WCNSS unit address")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dd60d592a86a4b87f3c31a954fdc1a8892d15a44
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:41 2023 +0200

    arm64: dts: qcom: msm8916: correct MMC unit address
    
    [ Upstream commit 72644bc76d5145c098c268829554a0b98fab1de1 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/mmc@7824000: simple-bus unit address format error, expected "7824900"
      Warning (simple_bus_reg): /soc@0/mmc@7864000: simple-bus unit address format error, expected "7864900"
    
    Fixes: c4da5a561627 ("arm64: dts: qcom: Add msm8916 sdhci configuration nodes")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-3-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 687310c0ef430ce59668e2c90bc6aee715c1c2a3
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:40 2023 +0200

    arm64: dts: qcom: msm8916: correct camss unit address
    
    [ Upstream commit 48798d992ce276cf0d57bf75318daf8eabd02aa4 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc@0/camss@1b00000: simple-bus unit address format error, expected "1b0ac00"
    
    Fixes: 58f479f90a7c ("arm64: dts: qcom: msm8916: Add CAMSS support")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-2-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 838a6be67105815a3ef50350392c23d0b0bea992
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed Apr 19 23:18:39 2023 +0200

    arm64: dts: qcom: ipq6018: correct qrng unit address
    
    [ Upstream commit 085058786a7890dd44ec623fe5ac74db870f6b93 ]
    
    Match unit-address to reg entry to fix dtbs W=1 warnings:
    
      Warning (simple_bus_reg): /soc/qrng@e1000: simple-bus unit address format error, expected "e3000"
    
    Fixes: 5bf635621245 ("arm64: dts: ipq6018: Add a few device nodes")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230419211856.79332-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f334ecdb2b7e86aeb7d62bfccbbb9ad1e0689dc
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Sun Apr 9 21:21:45 2023 +0300

    arm64: dts: qcom: pm8998: don't use GIC_SPI for SPMI interrupts
    
    [ Upstream commit d9ef7a805a709a0b07341857d97a25598a7f92da ]
    
    Unlike typical GIC interrupts, first cell for SPMI interrupts is the
    USID rather than GIC_SPI/GIC_PPI/GIC_LPI qualifier. Fix the resin
    interrupt to use USID value 0x0 rather than GIC_SPI define.
    
    Fixes: f86ae6f23a9e ("arm64: dts: qcom: sagit: add initial device tree for sagit")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230409182145.122895-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f05a6c3e96adf6a344068b3abf5dfd1755aa947e
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Mon Apr 10 19:52:32 2023 +0200

    ARM: dts: qcom: msm8974: do not use underscore in node name (again)
    
    [ Upstream commit 311bbc884b2edcf584b67d331be85ce43b27586f ]
    
    Align RPM requests node with DT schema by using hyphen instead of
    underscore.
    
    Fixes: f300826d27be ("ARM: dts: qcom-msm8974: Sort and clean up nodes")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230410175232.22317-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c973392449e26b12f4a9e4022aa1aa799a8e456
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sun Apr 30 11:35:05 2023 +0200

    ARM/mfd/gpio: Fixup TPS65010 regression on OMAP1 OSK1
    
    [ Upstream commit c32c81f3dbdfd68f6ab20a29ad86f811aed36e4e ]
    
    Aaro reports problems on the OSK1 board after we altered
    the dynamic base for GPIO allocations.
    
    It appears this happens because the OMAP driver now
    allocates GPIO numbers dynamically, so all that is
    references by number is a bit up in the air.
    
    Let's bite the bullet and try to just move the gpio_chip
    in the tps65010 MFD driver over to using dynamic allocations.
    Alter everything in the OSK1 board file to use a GPIO
    descriptor table and lookups.
    
    Utilize the NULL device to define some board-specific
    GPIO lookups and use these to immediately look up the
    same GPIOs, convert to IRQ numbers and pass as resources
    to the devices. This is ugly but should work.
    
    The .setup() callback for tps65010 was used for some GPIO
    hogging, but since the OSK1 is the only user in the entire
    kernel we can alter the signatures to something that
    is helpful and make a clean transition.
    
    Fixes: 92bf78b33b0b ("gpio: omap: use dynamic allocation of base")
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: andy.shevchenko@gmail.com
    Cc: Andreas Kemnade <andreas@kemnade.info>
    Acked-by: Lee Jones <lee@kernel.org>
    Reviewed-by: Lee Jones <lee@kernel.org>
    Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 36afdb8d493b926659230f7d9bb93961e6c9c9a8
Author: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Date:   Thu May 18 15:39:02 2023 -0400

    drm/bridge: anx7625: Prevent endless probe loop
    
    [ Upstream commit 1464e48d69ab7a50a377c9d39f5e5eb3cee2722e ]
    
    During probe, the driver registers i2c dummy devices and populates the
    aux bus, which registers a device for the panel. After doing that, the
    driver can still defer probe if needed. This ordering of operations is
    troublesome however, because the deferred probe work will retry probing
    all pending devices every time a new device is registered. Therefore, if
    modules need to be loaded in order to satisfy the dependencies for this
    driver to complete probe, the kernel will stall, since it'll keep trying
    to probe the anx7625 driver, but never succeed, given that modules would
    only be loaded after the deferred probe work completes.
    
    Two changes are required to avoid this issue:
    * Move of_find_mipi_dsi_host_by_node(), which can defer probe, to before
      anx7625_register_i2c_dummy_clients() and
      devm_of_dp_aux_populate_ep_devices(), which register devices.
    * Make use of the done_probing callback when populating the aux bus,
      so that the bridge registration is only done after the panel is
      probed. This is required because the panel might need to defer probe,
      but the aux bus population needs the i2c dummy devices working, so
      this call couldn't just be moved to an earlier point in probe.
      One caveat is that if the panel is described outside the aux bus, the
      probe loop issue can still happen, but we don't have a way to avoid
      it in that case since there's no callback available.
    
    With this patch applied, it's possible to boot on
    mt8192-asurada-spherion with
    
    CONFIG_DRM_ANALOGIX_ANX7625=y
    CONFIG_MTK_MMSYS=m
    CONFIG_BACKLIGHT_PWM=y
    
    and also with
    
    CONFIG_DRM_ANALOGIX_ANX7625=y
    CONFIG_MTK_MMSYS=y
    CONFIG_BACKLIGHT_PWM=m
    
    Fixes: adca62ec370c ("drm/bridge: anx7625: Support reading edid through aux channel")
    Fixes: 269332997a16 ("drm/bridge: anx7625: Return -EPROBE_DEFER if the dsi host was not found")
    Reported-by: "kernelci.org bot" <bot@kernelci.org>
    Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230518193902.891121-1-nfraprado@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 666179c526798a002e891f175bcd20af3efc991f
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed May 17 13:32:25 2023 +0300

    ARM: dts: gta04: Move model property out of pinctrl node
    
    [ Upstream commit 4ffec92e70ac5097b9f67ec154065305b16a3b46 ]
    
    The model property should be at the top level, let's move it out
    of the pinctrl node.
    
    Fixes: d2eaf949d2c3 ("ARM: dts: omap3-gta04a5one: define GTA04A5 variant with OneNAND")
    Cc: Andreas Kemnade <andreas@kemnade.info>
    Cc: H. Nikolaus Schaller <hns@goldelico.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d378b96030c0974e1cd7f8a43a680f92be1e1daf
Author: Biju Das <biju.das.jz@bp.renesas.com>
Date:   Thu May 18 16:23:34 2023 +0100

    clk: renesas: rzg2l: Fix CPG_SIPLL5_CLK1 register write
    
    [ Upstream commit d1c20885d3b01e6a62e920af4b227abd294d22f3 ]
    
    As per the RZ/G2L HW(Rev.1.30 May2023) manual, there are no "write enable"
    bits in the CPG_SIPLL5_CLK1 register.  So fix the CPG_SIPLL5_CLK register
    write by removing the "write enable" bits.
    
    Fixes: 1561380ee72f ("clk: renesas: rzg2l: Add FOUTPOSTDIV clk support")
    Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20230518152334.514922-1-biju.das.jz@bp.renesas.com
    [geert: Remove CPG_SIPLL5_CLK1_*_WEN bit definitions]
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db5911974e9040411df19ecf02c3c2d37b6aa7ca
Author: Jean-Philippe Brucker <jean-philippe@linaro.org>
Date:   Mon May 15 12:39:50 2023 +0100

    iommu/virtio: Return size mapped for a detached domain
    
    [ Upstream commit 7061b6af34686e7e2364b7240cfb061293218f2d ]
    
    When map() is called on a detached domain, the domain does not exist in
    the device so we do not send a MAP request, but we do update the
    internal mapping tree, to be replayed on the next attach. Since this
    constitutes a successful iommu_map() call, return *mapped in this case
    too.
    
    Fixes: 7e62edd7a33a ("iommu/virtio: Add map/unmap_pages() callbacks implementation")
    Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
    Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
    Link: https://lore.kernel.org/r/20230515113946.1017624-3-jean-philippe@linaro.org
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d950e59bc5de3e5d08d2877ee1c6b98ffd75c0f
Author: Jean-Philippe Brucker <jean-philippe@linaro.org>
Date:   Mon May 15 12:39:48 2023 +0100

    iommu/virtio: Detach domain on endpoint release
    
    [ Upstream commit 809d0810e3520da669d231303608cdf5fe5c1a70 ]
    
    When an endpoint is released, for example a PCIe VF being destroyed or a
    function hot-unplugged, it should be detached from its domain. Send a
    DETACH request.
    
    Fixes: edcd69ab9a32 ("iommu: Add virtio-iommu driver")
    Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com>
    Link: https://lore.kernel.org/all/15bf1b00-3aa0-973a-3a86-3fa5c4d41d2c@daynix.com/
    Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
    Tested-by: Akihiko Odaki <akihiko.odaki@daynix.com>
    Link: https://lore.kernel.org/r/20230515113946.1017624-2-jean-philippe@linaro.org
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94b9941bc2c4211b0bd36747fad204e69c88ca02
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Apr 17 23:03:23 2023 +0200

    drm/nouveau: dispnv50: fix missing-prototypes warning
    
    [ Upstream commit 504e72ed3a1b1c0d4450712a42ae6070d3a05a8e ]
    
    nv50_display_create() is declared in another header, along with
    a couple of declarations that are now outdated:
    
    drivers/gpu/drm/nouveau/dispnv50/disp.c:2517:1: error: no previous prototype for 'nv50_display_create'
    
    Fixes: ba801ef068c1 ("drm/nouveau/kms: display destroy/init/fini hooks can be static")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230417210329.2469722-1-arnd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 009aafa45029eeab571f083eb18325cbc52dc6bd
Author: Konrad Dybcio <konrad.dybcio@linaro.org>
Date:   Fri May 19 20:49:59 2023 +0200

    drm/msm/dpu: Set DPU_DATA_HCTL_EN for in INTF_SC7180_MASK
    
    [ Upstream commit a7129231edf329a00e92dbd2d741f6da728a4a06 ]
    
    DPU5 and newer targets enable this unconditionally. Move it from the
    SC7280 mask to the SC7180 one.
    
    Fixes: 7e6ee55320f0 ("drm/msm/disp/dpu1: enable DATA_HCTL_EN for sc7280 target")
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/538159/
    Link: https://lore.kernel.org/r/20230508-topic-hctl_en-v2-1-e7bea9f1f5dd@linaro.org
    [DB: removed BIT(DPU_INTF_DATA_COMPRESS), which is not yet merged]
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de0982243651051669002bd83ddaed8b8044a7fb
Author: Vinod Polimera <quic_vpolimer@quicinc.com>
Date:   Thu Mar 2 22:03:08 2023 +0530

    drm/msm/disp/dpu: get timing engine status from intf status register
    
    [ Upstream commit e3969eadc8ee78a5bdca65b8ed0a421a359e4090 ]
    
    Recommended way of reading the interface timing gen status is via
    status register. Timing gen status register will give a reliable status
    of the interface especially during ON/OFF transitions. This support was
    added from DPU version 5.0.0.
    
    Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/524724/
    Link: https://lore.kernel.org/r/1677774797-31063-6-git-send-email-quic_vpolimer@quicinc.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Stable-dep-of: a7129231edf3 ("drm/msm/dpu: Set DPU_DATA_HCTL_EN for in INTF_SC7180_MASK")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6def16811b246105f7b39114c8303130e0ea0971
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Mon May 1 04:12:57 2023 +0300

    drm/msm/dsi: don't allow enabling 14nm VCO with unprogrammed rate
    
    [ Upstream commit 1e0a97f84d73ea1182740f62069690c7f3271abb ]
    
    If the dispcc uses CLK_OPS_PARENT_ENABLE (e.g. on QCM2290), CCF can try
    enabling VCO before the rate has been programmed. This can cause clock
    lockups and/or other boot issues. Program the VCO to the minimal PLL
    rate if the read rate is 0 Hz.
    
    Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reported-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Reported-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Fixes: f079f6d999cb ("drm/msm/dsi: Add PHY/PLL for 8x96")
    Patchwork: https://patchwork.freedesktop.org/patch/534813/
    Link: https://lore.kernel.org/r/20230501011257.3460103-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bafc3604fa791cfef027cdd69f0f34b768c32aa8
Author: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date:   Thu May 18 23:48:15 2023 -0700

    RDMA/bnxt_re: Fix to remove an unnecessary log
    
    [ Upstream commit 43774bc156614346fe5dacabc8e8c229167f2536 ]
    
    During destroy_qp, driver sets the qp handle in the existing CQEs
    belonging to the QP being destroyed to NULL. As a result, a poll_cq after
    destroy_qp can report unnecessary messages.  Remove this noise from system
    logs.
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Link: https://lore.kernel.org/r/1684478897-12247-6-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 261584493908977b89771fcf54c93b46714d8dad
Author: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date:   Thu May 18 23:48:14 2023 -0700

    RDMA/bnxt_re: Remove a redundant check inside bnxt_re_update_gid
    
    [ Upstream commit b989f90cef0af48aa5679b6a75476371705ec53c ]
    
    The NULL check inside bnxt_re_update_gid() always return false.  If
    sgid_tbl->tbl is not allocated, then dev_init would have failed.
    
    Fixes: 5fac5b1b297f ("RDMA/bnxt_re: Add vlan tag for untagged RoCE traffic when PFC is configured")
    Link: https://lore.kernel.org/r/1684478897-12247-5-git-send-email-selvin.xavier@broadcom.com
    Reviewed-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
    Reviewed-by: Damodharam Ammepalli <damodharam.ammepalli@broadcom.com>
    Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff306adf4c5801605da62b187f87aac39119fa5a
Author: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date:   Thu May 18 23:48:13 2023 -0700

    RDMA/bnxt_re: Use unique names while registering interrupts
    
    [ Upstream commit ff2e4bfd162cf66a112a81509e419805add44d64 ]
    
    bnxt_re currently uses the names "bnxt_qplib_creq" and "bnxt_qplib_nq-0"
    while registering IRQs. There is no way to distinguish the IRQs of
    different device ports when there are multiple IB devices registered.
    This could make the scenarios worse where one want to pin IRQs of a device
    port to certain CPUs.
    
    Fixed the code to use unique names which has PCI BDF information while
    registering interrupts like: "bnxt_re-nq-0@pci:0000:65:00.0" and
    "bnxt_re-creq@pci:0000:65:00.1".
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Link: https://lore.kernel.org/r/1684478897-12247-4-git-send-email-selvin.xavier@broadcom.com
    Reviewed-by: Bhargava Chenna Marreddy <bhargava.marreddy@broadcom.com>
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d332d5e5319ca02ca36874fed6fefa901878fb26
Author: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date:   Thu May 18 23:48:12 2023 -0700

    RDMA/bnxt_re: Fix to remove unnecessary return labels
    
    [ Upstream commit 9b3ee47796f529e5bc31a355d6cb756d68a7079a ]
    
    If there is no cleanup needed then just return directly.  This cleans up
    the code and improve readability.
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Link: https://lore.kernel.org/r/1684478897-12247-3-git-send-email-selvin.xavier@broadcom.com
    Reviewed-by: Kashyap Desai <kashyap.desai@broadcom.com>
    Reviewed-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c78f6a19dac09fa0647ca5cd792644198c2f2204
Author: Selvin Xavier <selvin.xavier@broadcom.com>
Date:   Thu May 18 23:48:11 2023 -0700

    RDMA/bnxt_re: Disable/kill tasklet only if it is enabled
    
    [ Upstream commit ab112ee7899d6171da5acd77a7ed7ae103f488de ]
    
    When the ulp hook to start the IRQ fails because the rings are not
    available, tasklets are not enabled. In this case when the driver is
    unloaded, driver calls CREQ tasklet_kill. This causes an indefinite hang
    as the tasklet is not enabled.
    
    Driver shouldn't call tasklet_kill if it is not enabled. So using the
    creq->requested and nq->requested flags to identify if both tasklets/irqs
    are registered. Checking this flag while scheduling the tasklet from
    ISR. Also, added a cleanup for disabling tasklet, in case request_irq
    fails during start_irq.
    
    Check for return value for bnxt_qplib_rcfw_start_irq and in case the
    bnxt_qplib_rcfw_start_irq fails, return bnxt_re_start_irq without
    attempting to start NQ IRQs.
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Link: https://lore.kernel.org/r/1684478897-12247-2-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 09018e45820210f6e734e3b5a9ee8c1b822a73ab
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Wed May 10 07:35:37 2023 -0700

    hwmon: (f71882fg) prevent possible division by zero
    
    [ Upstream commit 0babf89c9cca7e074d6e59893e462e4886f481cc ]
    
    In the unlikely event that something goes wrong with the device and
    its registers, the fan_from_reg() function may return 0. This value
    will cause a division-by-zero error in the show_pwm() function.
    
    To prevent this, test the value of
    fan_from_reg(data->fan_full_speed[nr]) against 0 before performing
    the division. If the division-by-zero error is avoided, assign 0 to
    the val variable.
    
    Found by Linux Verification Center (linuxtesting.org) with static
    analysis tool SVACE.
    
    Fixes: df9ec2dae094 ("hwmon: (f71882fg) Reorder symbols to get rid of a few forward declarations")
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://lore.kernel.org/r/20230510143537.145060-1-n.zhandarovich@fintech.ru
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3d90921f91fc6a8c801d527bb5848c99e335c1cf
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Wed Apr 19 17:23:01 2023 +0300

    clk: imx: scu: use _safe list iterator to avoid a use after free
    
    [ Upstream commit 632c60ecd25dbacee54d5581fe3aeb834b57010a ]
    
    This loop is freeing "clk" so it needs to use list_for_each_entry_safe().
    Otherwise it dereferences a freed variable to get the next item on the
    loop.
    
    Fixes: 77d8f3068c63 ("clk: imx: scu: add two cells binding support")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
    Link: https://lore.kernel.org/r/0793fbd1-d2b5-4ec2-9403-3c39343a3e2d@kili.mountain
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 79d8c176310b2f20f51726cedd17ebe25a222d97
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Wed May 17 14:21:06 2023 +0200

    drm/bridge: tc358767: Switch to devm MIPI-DSI helpers
    
    [ Upstream commit f47d6140b7a4c858d82d263e7577ff6fb5279a9c ]
    
    DSI device registering and attaching needs to be undone upon
    deregistration. This fixes module unload/load.
    
    Fixes: bbfd3190b656 ("drm/bridge: tc358767: Add DSI-to-DPI mode support")
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230517122107.1766673-1-alexander.stein@ew.tq-group.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54ac09291fbee7f70b8f0acaa2b8b6a5066c7086
Author: Robert Marko <robert.marko@sartura.hr>
Date:   Tue Feb 21 11:50:37 2023 +0100

    arm64: dts: microchip: sparx5: do not use PSCI on reference boards
    
    [ Upstream commit 70be83708c925b3f72c508e4756e48ad2330c830 ]
    
    PSCI is not implemented on SparX-5 at all, there is no ATF and U-boot that
    is shipped does not implement it as well.
    
    I have tried flashing the latest BSP 2022.12 U-boot which did not work.
    After contacting Microchip, they confirmed that there is no ATF for the
    SoC nor PSCI implementation which is unfortunate in 2023.
    
    So, disable PSCI as otherwise kernel crashes as soon as it tries probing
    PSCI with, and the crash is only visible if earlycon is used.
    
    Since PSCI is not implemented, switch core bringup to use spin-tables
    which are implemented in the vendor U-boot and actually work.
    
    Tested on PCB134 with eMMC (VSC5640EV).
    
    Fixes: 6694aee00a4b ("arm64: dts: sparx5: Add basic cpu support")
    Signed-off-by: Robert Marko <robert.marko@sartura.hr>
    Acked-by: Steen Hegelund <Steen.Hegelund@microchip.com>
    Link: https://lore.kernel.org/r/20230221105039.316819-1-robert.marko@sartura.hr
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa7402de4488b3ac9a948b5573a08f1ef37dd228
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed May 17 10:04:16 2023 +0300

    bus: ti-sysc: Fix dispc quirk masking bool variables
    
    [ Upstream commit f620596fa347170852da499e778a5736d79a4b79 ]
    
    Fix warning drivers/bus/ti-sysc.c:1806 sysc_quirk_dispc()
    warn: masking a bool.
    
    While at it let's add a comment for what were doing to make
    the code a bit easier to follow.
    
    Fixes: 7324a7a0d5e2 ("bus: ti-sysc: Implement display subsystem reset quirk")
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Closes: https://lore.kernel.org/linux-omap/a8ec8a68-9c2c-4076-bf47-09fccce7659f@kili.mountain/
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b538efc200150d884f6c10368e182c5a7075e9a1
Author: Marek Vasut <marex@denx.de>
Date:   Fri May 5 23:37:29 2023 +0200

    ARM: dts: stm32: Move ethernet MAC EEPROM from SoM to carrier boards
    
    [ Upstream commit 9660efc2af37f3c12dc6e6a5511ad99e0addc297 ]
    
    The ethernet MAC EEPROM is not populated on the SoM itself, it has to be
    populated on each carrier board. Move the EEPROM into the correct place
    in DTs, i.e. the carrier board DTs. Add label to the EEPROM too.
    
    Fixes: 7e76f82acd9e1 ("ARM: dts: stm32: Split Avenger96 into DHCOR SoM and Avenger96 board")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0573f5510bd4a98ac9003288c80cf5d3097f9d8c
Author: Maíra Canal <mcanal@igalia.com>
Date:   Fri May 12 07:40:45 2023 -0300

    drm/vkms: Fix RGB565 pixel conversion
    
    [ Upstream commit ab87f558dcfb2562c3497e89600dec798a446665 ]
    
    Currently, the pixel conversion isn't rounding the fixed-point values
    before assigning it to the RGB coefficients, which is causing the IGT
    pixel-format tests to fail. So, use the drm_fixp2int_round() fixed-point
    helper to round the values when assigning it to the RGB coefficients.
    
    Tested with igt@kms_plane@pixel-format and igt@kms_plane@pixel-format-source-clamping.
    
    [v2]:
        * Use drm_fixp2int_round() to fix the pixel conversion instead of
          casting the values to s32 (Melissa Wen).
    
    Fixes: 89b03aeaef16 ("drm/vkms: fix 32bit compilation error by replacing macros")
    Signed-off-by: Maíra Canal <mcanal@igalia.com>
    Reviewed-by: Arthur Grillo <arthurgrillo@riseup.net>
    Signed-off-by: Maíra Canal <mairacanal@riseup.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230512104044.65034-2-mcanal@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20e04b01270a5f1269979af847d94952fd911b4e
Author: Maíra Canal <mcanal@igalia.com>
Date:   Fri May 12 07:40:44 2023 -0300

    drm: Add fixed-point helper to get rounded integer values
    
    [ Upstream commit 8b25320887d7feac98875546ea0f521628b745bb ]
    
    Create a new fixed-point helper to allow us to return the rounded value
    of our fixed point value.
    
    [v2]:
        * Create the function drm_fixp2int_round() (Melissa Wen).
    [v3]:
        * Use drm_fixp2int() instead of shifting manually (Arthur Grillo).
    
    Signed-off-by: Maíra Canal <mcanal@igalia.com>
    Reviewed-by: Arthur Grillo <arthurgrillo@riseup.net>
    Signed-off-by: Maíra Canal <mairacanal@riseup.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230512104044.65034-1-mcanal@igalia.com
    Stable-dep-of: ab87f558dcfb ("drm/vkms: Fix RGB565 pixel conversion")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 484f8839a4abb3c87420abae8b44589ebd8b038e
Author: Maíra Canal <mcanal@igalia.com>
Date:   Tue Apr 18 10:05:21 2023 -0300

    drm/vkms: isolate pixel conversion functionality
    
    [ Upstream commit 322d716a3e8a74fb75cd0f657647be4df253fd2f ]
    
    Currently, the pixel conversion functions repeat the same loop to
    iterate the rows. Instead of repeating the same code for each pixel
    format, create a function to wrap the loop and isolate the pixel
    conversion functionality.
    
    Suggested-by: Arthur Grillo <arthurgrillo@riseup.net>
    Signed-off-by: Maíra Canal <mcanal@igalia.com>
    Reviewed-by: Arthur Grillo <arthurgrillo@riseup.net>
    Signed-off-by: Maíra Canal <mairacanal@riseup.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230418130525.128733-2-mcanal@igalia.com
    Stable-dep-of: ab87f558dcfb ("drm/vkms: Fix RGB565 pixel conversion")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 900270a098e716b557595990d3a34cb5e10c08fa
Author: Bard Liao <yung-chuan.liao@linux.intel.com>
Date:   Fri May 12 12:32:59 2023 -0500

    ASoC: Intel: sof_sdw: remove SOF_SDW_TGL_HDMI for MeteorLake devices
    
    [ Upstream commit 0db94947c9d3da16aa31d152b7d26fab78b02cb9 ]
    
    Topologies support three HDMI links on MeteorLake devices only.
    
    Fixes: 18489174e4fb ("ASoC: intel: sof_sdw: add RT711 SDCA card for MTL platform")
    Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com
    Link: https://lore.kernel.org/r/20230512173305.65399-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e1a5c5443abdd3c2ab2c41a91da9fb9d826fa9dc
Author: Trevor Wu <trevor.wu@mediatek.com>
Date:   Wed May 10 11:55:25 2023 +0800

    ASoC: dt-bindings: mediatek,mt8188-afe: correct clock name
    
    [ Upstream commit 1e4fe75e9746be8e40c57132bb3fba1ce3dd24af ]
    
    The original clock names are different from the list in driver code.
    Correct the mismatched binding names in the patch.
    
    Because no mt8188 upstream dts exists, it doesn't affect the existing
    dts file.
    
    Fixes: 692d25b67e10 ("ASoC: dt-bindings: mediatek,mt8188-afe: add audio afe document")
    Signed-off-by: Trevor Wu <trevor.wu@mediatek.com
    Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org
    Link: https://lore.kernel.org/r/20230510035526.18137-9-trevor.wu@mediatek.com
    Signed-off-by: Mark Brown <broonie@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f16599e638073ef0b2828bb64f5e99138e9381b5
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Fri Apr 21 13:44:54 2023 +0300

    driver: soc: xilinx: use _safe loop iterator to avoid a use after free
    
    [ Upstream commit c58da0ba3e5c86e51e2c1557afaf6f71e00c4533 ]
    
    The hash_for_each_possible() loop dereferences "eve_data" to get the
    next item on the list.  However the loop frees eve_data so it leads to
    a use after free.  Use hash_for_each_possible_safe() instead.
    
    Fixes: c7fdb2404f66 ("drivers: soc: xilinx: add xilinx event management driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://lore.kernel.org/r/761e0e4a-4caf-4a71-8f47-1c6ad908a848@kili.mountain
    Signed-off-by: Michal Simek <michal.simek@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 35d6b74956308d4b9f29078e1746d5acfa28c6e5
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Sun May 7 20:26:38 2023 +0300

    drm/panel: sharp-ls043t1le01: adjust mode settings
    
    [ Upstream commit dee23b2c9e3ff46d59c5d45e1436eceb878e7c9a ]
    
    Using current settings causes panel flickering on APQ8074 dragonboard.
    Adjust panel settings to follow the vendor-provided mode. This also
    enables MIPI_DSI_MODE_VIDEO_SYNC_PULSE, which is also specified by the
    vendor dtsi for the mentioned dragonboard.
    
    Fixes: ee0172383190 ("drm/panel: Add Sharp LS043T1LE01 MIPI DSI panel")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230507172639.2320934-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit adfcac96cc849d0e14fa571e4f0c509cbf122113
Author: XuDong Liu <m202071377@hust.edu.cn>
Date:   Sun Apr 30 19:23:46 2023 +0800

    drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
    
    [ Upstream commit 123ee07ba5b7123e0ce0e0f9d64938026c16a2ce ]
    
    Smatch reports:
    drivers/gpu/drm/sun4i/sun4i_tcon.c:805 sun4i_tcon_init_clocks() warn:
    'tcon->clk' from clk_prepare_enable() not released on lines: 792,801.
    
    In the function sun4i_tcon_init_clocks(), tcon->clk and tcon->sclk0 are
    not disabled in the error handling, which affects the release of
    these variable. Although sun4i_tcon_bind(), which calls
    sun4i_tcon_init_clocks(), use sun4i_tcon_free_clocks to disable the
    variables mentioned, but the error handling branch of
    sun4i_tcon_init_clocks() ignores the required disable process.
    
    To fix this issue, use the devm_clk_get_enabled to automatically
    balance enable and disabled calls. As original implementation use
    sun4i_tcon_free_clocks() to disable clk explicitly, we delete the
    related calls and error handling that are no longer needed.
    
    Fixes: 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")
    Fixes: b14e945bda8a ("drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at init")
    Fixes: 8e9240472522 ("drm/sun4i: support TCONs without channel 1")
    Fixes: 34d698f6e349 ("drm/sun4i: Add has_channel_0 TCON quirk")
    Signed-off-by: XuDong Liu <m202071377@hust.edu.cn>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230430112347.4689-1-m202071377@hust.edu.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 08d2212023622fdbd63de34b815fbb0667b80796
Author: Marek Vasut <marex@denx.de>
Date:   Wed May 10 17:27:55 2023 -0700

    Input: adxl34x - do not hardcode interrupt trigger type
    
    [ Upstream commit e96220bce5176ed2309f77f061dcc0430b82b25e ]
    
    Instead of hardcoding IRQ trigger type to IRQF_TRIGGER_HIGH, let's
    respect the settings specified in the firmware description.
    
    Fixes: e27c729219ad ("Input: add driver for ADXL345/346 Digital Accelerometers")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Acked-by: Michael Hennerich <michael.hennerich@analog.com>
    Link: https://lore.kernel.org/r/20230509203555.549158-1-marex@denx.de
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 16c4dc7caf529d420520dc2cfc08ea493dbebd8a
Author: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date:   Sun May 7 15:39:06 2023 +0200

    clk: rs9: Fix .driver_data content in i2c_device_id
    
    [ Upstream commit ad527ca87e4ea42d7baad2ce710b44069287931b ]
    
    The .driver_data content in i2c_device_id table must match the
    .data content in of_device_id table, else device_get_match_data()
    would return bogus value on i2c_device_id match. Align the two
    tables.
    
    The i2c_device_id table is now converted from of_device_id using
    's@.compatible = "renesas,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'
    
    Fixes: 892e0ddea1aa ("clk: rs9: Add Renesas 9-series PCIe clock generator driver")
    Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
    Link: https://lore.kernel.org/r/20230507133906.15061-3-marek.vasut+renesas@mailbox.org
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5f593afbf2f708fa807cd097e5d89423974bc78
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Mar 10 08:55:35 2023 +0100

    clk: rs9: Add support for 9FGV0441
    
    [ Upstream commit e44fdd114cc3c872aa5157c6b3a190bcf92a9ffb ]
    
    This model is similar to 9FGV0241, but the DIFx bits start at bit 0.
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Reviewed-by: Marek Vasut <marex@denx.de>
    Link: https://lore.kernel.org/r/20230310075535.3476580-4-alexander.stein@ew.tq-group.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Stable-dep-of: ad527ca87e4e ("clk: rs9: Fix .driver_data content in i2c_device_id")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d39e911273445c25a7a7cc06fd56a73656594d3c
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Mar 10 08:55:34 2023 +0100

    clk: rs9: Support device specific dif bit calculation
    
    [ Upstream commit 603df193ec5174ff81c32cf1a78b7819ce984b8c ]
    
    The calculation DIFx is BIT(n) +1 is only true for 9FGV0241. With
    additional devices this is getting more complicated.
    Support a base bit for the DIF calculation, currently only devices
    with consecutive bits are supported, e.g. the 6-channel device needs
    additional logic.
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Reviewed-by: Marek Vasut <marex@denx.de>
    Link: https://lore.kernel.org/r/20230310075535.3476580-3-alexander.stein@ew.tq-group.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Stable-dep-of: ad527ca87e4e ("clk: rs9: Fix .driver_data content in i2c_device_id")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f4b73ca17311dcd9e28a5eecd2ab3f48aa0cc2e
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Mar 10 08:55:32 2023 +0100

    clk: rs9: Check for vendor/device ID
    
    [ Upstream commit da751726ff2ad2322d81316ebf6aadb22dfad0d8 ]
    
    This is in preparation to support additional devices which have different
    IDs as well as a slightly different register layout.
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Reviewed-by: Marek Vasut <marex@denx.de>
    Link: https://lore.kernel.org/r/20230310075535.3476580-1-alexander.stein@ew.tq-group.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Stable-dep-of: ad527ca87e4e ("clk: rs9: Fix .driver_data content in i2c_device_id")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30982d8358a7d3afa52b50f103e7eed192e72dc1
Author: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date:   Sun May 7 15:39:05 2023 +0200

    clk: vc7: Fix .driver_data content in i2c_device_id
    
    [ Upstream commit b5e10beeafaa3266559c582dde7534ae3fe8cefb ]
    
    The .driver_data content in i2c_device_id table must match the
    .data content in of_device_id table, else device_get_match_data()
    would return bogus value on i2c_device_id match. Align the two
    tables.
    
    The i2c_device_id table is now converted from of_device_id using
    's@.compatible = "renesas,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'
    
    Fixes: 48c5e98fedd9 ("clk: Renesas versaclock7 ccf device driver")
    Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
    Link: https://lore.kernel.org/r/20230507133906.15061-2-marek.vasut+renesas@mailbox.org
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f926698142ac86941bdbf5e43e8291ca3c042458
Author: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date:   Sun May 7 15:39:04 2023 +0200

    clk: vc5: Fix .driver_data content in i2c_device_id
    
    [ Upstream commit be3471c5bd9b921c9adfab7948e8021611639164 ]
    
    The .driver_data content in i2c_device_id table must match the
    .data content in of_device_id table, else device_get_match_data()
    would return bogus value on i2c_device_id match. Align the two
    tables.
    
    The i2c_device_id table is now converted from of_device_id using
    's@.compatible = "idt,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'
    
    Fixes: 9adddb01ce5f ("clk: vc5: Add structure to describe particular chip features")
    Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
    Link: https://lore.kernel.org/r/20230507133906.15061-1-marek.vasut+renesas@mailbox.org
    Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 630251d7d92081b660da23a5fb720899aa49a58c
Author: hfdevel@gmx.net <hfdevel@gmx.net>
Date:   Fri Apr 7 16:36:25 2023 +0200

    ARM: dts: meson8b: correct uart_B and uart_C clock references
    
    [ Upstream commit d542ce8d4769cdef6a7bc3437e59cfed9c68f0e4 ]
    
    With the current device tree for meson8b, uarts B (e.g. available on pins
    8/10 on Odroid-C1) and C (pins 3/5 on Odroid-C1) do not work, because they
    are relying on incorrect clocks. Change the references of pclk to the
    correct CLKID, to allow use of the two uarts.
    
    Fixes: 3375aa77135f ("ARM: dts: meson8b: Fix the UART device-tree schema validation")
    Signed-off-by: Hans-Frieder Vogt <hfdevel@gmx.net>
    Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Link: https://lore.kernel.org/r/trinity-bf20bcb9-790b-4ab9-99e3-0831ef8257f4-1680878185420@3c-app-gmx-bap55
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8bfd8fe0685d875fc0addda5ccf58759f3aa991f
Author: Rafał Miłecki <rafal@milecki.pl>
Date:   Wed May 3 14:28:30 2023 +0200

    ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
    
    [ Upstream commit d3c8e2c5757153bbfad70019ec1decbca86f3def ]
    
    There is no such property in the SPI controller binding documentation.
    Also Linux driver doesn't look for it.
    
    This fixes:
    arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: spi@18029200: Unevaluated properties are not allowed ('clock-names' was unexpected)
            From schema: Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
    
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    Link: https://lore.kernel.org/r/20230503122830.3200-1-zajec5@gmail.com
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1102f583af8626c1e8203601c061e5729153ad92
Author: Luc Ma <luc@sietium.com>
Date:   Mon May 8 08:09:16 2023 +0800

    drm/vram-helper: fix function names in vram helper doc
    
    [ Upstream commit b8e392245105b50706f18418054821e71e637288 ]
    
    Refer to drmm_vram_helper_init() instead of the non-existent
    drmm_vram_helper_alloc_mm().
    
    Fixes: a5f23a72355d ("drm/vram-helper: Managed vram helpers")
    Signed-off-by: Luc Ma <luc@sietium.com>
    Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/64583db2.630a0220.eb75d.8f51@mx.google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit efe1325e4cc7215dc38dfdb682e70f6155abc6de
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:33 2023 +0200

    drm/bridge: tc358768: fix THS_TRAILCNT computation
    
    [ Upstream commit bac7842cd179572e8e0fc2d7b5254e40c6e9e057 ]
    
    Correct computation of THS_TRAILCNT register.
    
    This register must be set to a value that ensure that
    THS_TRAIL > 60 ns + 4 x UI
     and
    THS_TRAIL > 8 x UI
     and
    THS_TRAIL < TEOT
     with
    TEOT = 105 ns + (12 x UI)
    
    with the actual value of THS_TRAIL being
    
    (1 + THS_TRAILCNT) x ByteClk cycle + ((1 to 2) + 2) xHSBYTECLK cycle +
     - (PHY output delay)
    
    with PHY output delay being about
    
    (8 + (5 to 6)) x MIPIBitClk cycle in the BitClk conversion.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-9-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52250ffbfb8fa310ac1730f8f4e5e3bdb6eddcf3
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:32 2023 +0200

    drm/bridge: tc358768: fix TXTAGOCNT computation
    
    [ Upstream commit 3666aad8185af8d0ce164fd3c4974235417d6d0b ]
    
    Correct computation of TXTAGOCNT register.
    
    This register must be set to a value that ensure that the
    TTA-GO period = (4 x TLPX)
    
    with the actual value of TTA-GO being
    
    4 x (TXTAGOCNT + 1) x (HSByteClk cycle)
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-8-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff114494dbc0d1216fa41000b1cf024bd153e6a5
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:31 2023 +0200

    drm/bridge: tc358768: fix THS_ZEROCNT computation
    
    [ Upstream commit 77a089328da791118af9692543a5eedc79eb5fd4 ]
    
    Correct computation of THS_ZEROCNT register.
    
    This register must be set to a value that ensure that
    THS_PREPARE + THS_ZERO > 145ns + 10*UI
    
    with the actual value of (THS_PREPARE + THS_ZERO) being
    
    ((1 to 2) + 1 + (TCLK_ZEROCNT + 1) + (3 to 4)) x ByteClk cycle +
      + HSByteClk x (2 + (1 to 2)) + (PHY delay)
    
    with PHY delay being about
    
    (8 + (5 to 6)) x MIPIBitClk cycle in the BitClk conversion.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-7-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3342d2ad4b54d47d9934bae6102a044668413301
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:30 2023 +0200

    drm/bridge: tc358768: fix TCLK_TRAILCNT computation
    
    [ Upstream commit ee18698e212b1659dd0850d7e2ae0f22e16ed3d3 ]
    
    Correct computation of TCLK_TRAILCNT register.
    
    The driver does not implement non-continuous clock mode, so the actual
    value doesn't make a practical difference yet. However this change also
    ensures that the value does not write to reserved registers bits in case
    of under/overflow.
    
    This register must be set to a value that ensures that
    
    TCLK-TRAIL > 60ns
     and
    TEOT <= (105 ns + 12 x UI)
    
    with the actual value of TCLK-TRAIL being
    
    (TCLK_TRAILCNT + (1 to 2)) xHSByteClkCycle +
     (2 + (1 to 2)) * HSBYTECLKCycle - (PHY output delay)
    
    with PHY output delay being about
    
    (2 to 3) x MIPIBitClk cycle in the BitClk conversion.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-2-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-3-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-4-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-5-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-2-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-3-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-4-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-5-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-2-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-3-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-4-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-5-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-2-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-3-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-4-francesco@dolcini.it
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-5-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e552f4cb1dc4af764c9791251c0c107cabb6001e
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Mar 30 11:59:41 2023 +0200

    drm/bridge: tc358768: Add atomic_get_input_bus_fmts() implementation
    
    [ Upstream commit cec5ccef85bd0128cf895612de54a9d21d2015d0 ]
    
    Add atomic_get_input_bus_fmts() implementation, tc358768 has a parallel
    RGB input interface with the actual bus format depending on the amount
    of parallel input data lines.
    
    Without this change when the tc358768 is used with less than 24bit the
    color mapping is completely wrong.
    
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230330095941.428122-7-francesco@dolcini.it
    Stable-dep-of: ee18698e212b ("drm/bridge: tc358768: fix TCLK_TRAILCNT computation")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18ab3d5ec7899ff49d6199d51077d843d02e9074
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:29 2023 +0200

    drm/bridge: tc358768: fix TCLK_ZEROCNT computation
    
    [ Upstream commit f9cf811374f42fca31ac34aaf59ee2ae72b89879 ]
    
    Correct computation of TCLK_ZEROCNT register.
    
    This register must be set to a value that ensure that
    (TCLK-PREPARECNT + TCLK-ZERO) > 300ns
    
    with the actual value of (TCLK-PREPARECNT + TCLK-ZERO) being
    
    (1 to 2) + (TCLK_ZEROCNT + 1)) x HSByteClkCycle + (PHY output delay)
    
    with PHY output delay being about
    
    (2 to 3) x MIPIBitClk cycle in the BitClk conversion.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-5-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54447fe218f0ae97a76a4493a6d75fe5b1b595f3
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:28 2023 +0200

    drm/bridge: tc358768: fix PLL target frequency
    
    [ Upstream commit ffd2e4bbea626d565b9817312b0fcfb382fecb88 ]
    
    Correctly compute the PLL target frequency, the current formula works
    correctly only when the input bus width is 24bit, actually to properly
    compute the PLL target frequency what is relevant is the bits-per-pixel
    on the DSI link.
    
    No regression expected since the DSI format is currently hard-coded as
    MIPI_DSI_FMT_RGB888.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-4-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2089bffe1d15004884a9e3381f0d55b4938c2965
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:27 2023 +0200

    drm/bridge: tc358768: fix PLL parameters computation
    
    [ Upstream commit 6a4020b4c63911977aaf8047f904a300d15de739 ]
    
    According to Toshiba documentation the PLL input clock after the divider
    should be not less than 4MHz, fix the PLL parameters computation
    accordingly.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-3-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1dbedecadaccc9a88a375fe9da0b8cb073e647a8
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Apr 27 16:29:26 2023 +0200

    drm/bridge: tc358768: always enable HS video mode
    
    [ Upstream commit 75a8aeac2573ab258c53676eba9b3796ea691988 ]
    
    Always enable HS video mode setting the TXMD bit, without this change no
    video output is present with DSI sinks that are setting
    MIPI_DSI_MODE_LPM flag (tested with LT8912B DSI-HDMI bridge).
    
    Previously the driver was enabling HS mode only when the DSI sink was
    not explicitly setting the MIPI_DSI_MODE_LPM, however this is not
    correct.
    
    The MIPI_DSI_MODE_LPM is supposed to indicate that the sink is willing
    to receive data in low power mode, however clearing the
    TC358768_DSI_CONTROL_TXMD bit will make the TC358768 send video in
    LP mode that is not the intended behavior.
    
    Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-2-francesco@dolcini.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e561d311b4cd5c174d16a24d02ffa421d126abd
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Thu May 4 08:53:16 2023 +0200

    drm/bridge: ti-sn65dsi83: Fix enable error path
    
    [ Upstream commit 8a91b29f1f50ce7742cdbe5cf11d17f128511f3f ]
    
    If PLL locking failed, the regulator needs to be disabled again.
    
    Fixes: 5664e3c907e2 ("drm/bridge: ti-sn65dsi83: Add vcc supply regulator support")
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230504065316.2640739-1-alexander.stein@ew.tq-group.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c261139c1df65c9c4bf00e96c91183bcfc1919ec
Author: Duoming Zhou <duoming@zju.edu.cn>
Date:   Mon May 1 17:37:02 2023 -0700

    Input: cyttsp4_core - change del_timer_sync() to timer_shutdown_sync()
    
    [ Upstream commit dbe836576f12743a7d2d170ad4ad4fd324c4d47a ]
    
    The watchdog_timer can schedule tx_timeout_task and watchdog_work
    can also arm watchdog_timer. The process is shown below:
    
    ----------- timer schedules work ------------
    cyttsp4_watchdog_timer() //timer handler
      schedule_work(&cd->watchdog_work)
    
    ----------- work arms timer ------------
    cyttsp4_watchdog_work() //workqueue callback function
      cyttsp4_start_wd_timer()
        mod_timer(&cd->watchdog_timer, ...)
    
    Although del_timer_sync() and cancel_work_sync() are called in
    cyttsp4_remove(), the timer and workqueue could still be rearmed.
    As a result, the possible use after free bugs could happen. The
    process is shown below:
    
      (cleanup routine)           |  (timer and workqueue routine)
    cyttsp4_remove()              | cyttsp4_watchdog_timer() //timer
      cyttsp4_stop_wd_timer()     |   schedule_work()
        del_timer_sync()          |
                                  | cyttsp4_watchdog_work() //worker
                                  |   cyttsp4_start_wd_timer()
                                  |     mod_timer()
        cancel_work_sync()        |
                                  | cyttsp4_watchdog_timer() //timer
                                  |   schedule_work()
        del_timer_sync()          |
      kfree(cd) //FREE            |
                                  | cyttsp4_watchdog_work() // reschedule!
                                  |   cd-> //USE
    
    This patch changes del_timer_sync() to timer_shutdown_sync(),
    which could prevent rearming of the timer from the workqueue.
    
    Fixes: 17fb1563d69b ("Input: cyttsp4 - add core driver for Cypress TMA4XX touchscreen devices")
    Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
    Link: https://lore.kernel.org/r/20230421082919.8471-1-duoming@zju.edu.cn
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5fa5349650b5fa3bb770b97bb5fa044d27a09abe
Author: Luca Weiss <luca@z3ntu.xyz>
Date:   Mon May 1 17:01:45 2023 -0700

    Input: drv260x - sleep between polling GO bit
    
    [ Upstream commit efef661dfa6bf8cbafe4cd6a97433fcef0118967 ]
    
    When doing the initial startup there's no need to poll without any
    delay and spam the I2C bus.
    
    Let's sleep 15ms between each attempt, which is the same time as used
    in the vendor driver.
    
    Fixes: 7132fe4f5687 ("Input: drv260x - add TI drv260x haptics driver")
    Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
    Link: https://lore.kernel.org/r/20230430-drv260x-improvements-v1-2-1fb28b4cc698@z3ntu.xyz
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 652f1f53566083fe287b79e73d56f0fd4559a412
Author: Markus Elfring <elfring@users.sourceforge.net>
Date:   Sun Apr 16 17:30:46 2023 +0200

    drm/bridge: it6505: Move a variable assignment behind a null pointer check in receive_timing_debugfs_show()
    
    [ Upstream commit 0be05a75de2916421e88e0d64b001984f54df0bd ]
    
    The address of a data structure member was determined before
    a corresponding null pointer check in the implementation of
    the function “receive_timing_debugfs_show”.
    
    Thus avoid the risk for undefined behaviour by moving the assignment
    for the variable “vid” behind the null pointer check.
    
    This issue was detected by using the Coccinelle software.
    
    Fixes: b5c84a9edcd4 ("drm/bridge: add it6505 driver")
    Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/fa69384f-1485-142b-c4ee-3df54ac68a89@web.de
    Reviewed-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Robert Foss <rfoss@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 669fc3d3fb72fd32bd3ddcc26182570cda1fbf6e
Author: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Date:   Tue Apr 25 17:39:41 2023 -0700

    drm/i915/guc/slpc: Provide sysfs for efficient freq
    
    [ Upstream commit 55f9720dbf23ed640a51ea5564c22305efa8a467 ]
    
    SLPC enables use of efficient freq at init by default. It is
    possible for GuC to request frequencies that are higher than
    the 'software' max if user has set it lower than the efficient
    level.
    
    Scenarios/tests that require strict fixing of freq below the efficient
    level will need to disable it through this interface.
    
    v2: Keep just one interface to toggle sysfs. With this, user will
    be completely responsible for toggling efficient frequency if need
    be. There will be no implicit disabling when user sets min < RP1 (Ashutosh)
    
    v3: Remove unused label, review comments (Ashutosh)
    
    v4: Toggle efficient freq usage in SLPC selftest and checkpatch fixes
    
    v5: Review comments (Andi) and add a separate patch for selftest updates
    
    Fixes: 95ccf312a1e4 ("drm/i915/guc/slpc: Allow SLPC to use efficient frequency")
    Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
    Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230426003942.1924347-1-vinay.belgaumkar@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82c9442a0be5b88d527686539b10fcd10cddbaa0
Author: John Harrison <John.C.Harrison@Intel.com>
Date:   Mon Feb 6 21:07:16 2023 -0800

    drm/i915/guc: More debug print updates - GuC SLPC
    
    [ Upstream commit 9847ffce9b5f83a7707504b0127aeb6a05dbd378 ]
    
    Update a bunch more debug prints to use the new GT based scheme.
    
    v2: Also change prints to use %pe for error values (MichalW).
    
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230207050717.1833718-6-John.C.Harrison@Intel.com
    Stable-dep-of: 55f9720dbf23 ("drm/i915/guc/slpc: Provide sysfs for efficient freq")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c23a28122634cf94c549706c1d3e48ce07f88de7
Author: Liu Shixin <liushixin2@huawei.com>
Date:   Tue Jul 4 18:19:42 2023 +0800

    bootmem: remove the vmemmap pages from kmemleak in free_bootmem_page
    
    commit 028725e73375a1ff080bbdf9fb503306d0116f28 upstream.
    
    commit dd0ff4d12dd2 ("bootmem: remove the vmemmap pages from kmemleak in
    put_page_bootmem") fix an overlaps existing problem of kmemleak.  But the
    problem still existed when HAVE_BOOTMEM_INFO_NODE is disabled, because in
    this case, free_bootmem_page() will call free_reserved_page() directly.
    
    Fix the problem by adding kmemleak_free_part() in free_bootmem_page() when
    HAVE_BOOTMEM_INFO_NODE is disabled.
    
    Link: https://lkml.kernel.org/r/20230704101942.2819426-1-liushixin2@huawei.com
    Fixes: f41f2ed43ca5 ("mm: hugetlb: free the vmemmap pages associated with each HugeTLB page")
    Signed-off-by: Liu Shixin <liushixin2@huawei.com>
    Acked-by: Muchun Song <songmuchun@bytedance.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a60da37b774d0bbf70d7606d557eaa38188b8e71
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Thu May 2 13:21:48 2019 -0400

    drm/amd/display: Explicitly specify update type per plane info change
    
    [ Upstream commit 710cc1e7cd461446a9325c9bd1e9a54daa462952 ]
    
    [Why]
    The bit for flip addr is being set causing the determination for
    FAST vs MEDIUM to always return MEDIUM when plane info is provided
    as a surface update. This causes extreme stuttering for the typical
    atomic update path on Linux.
    
    [How]
    Don't use update_flags->raw for determining FAST vs MEDIUM. It's too
    fragile to changes like this.
    
    Explicitly specify the update type per update flag instead. It's not
    as clever as checking the bits itself but at least it's correct.
    
    Fixes: aa5fdb1ab5b6 ("drm/amd/display: Explicitly specify update type per plane info change")
    Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 71ef084df8b26e8b84484747727892ade7fa9a82
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Thu Apr 13 08:12:28 2023 -0700

    radeon: avoid double free in ci_dpm_init()
    
    [ Upstream commit 20c3dffdccbd494e0dd631d1660aeecbff6775f2 ]
    
    Several calls to ci_dpm_fini() will attempt to free resources that
    either have been freed before or haven't been allocated yet. This
    may lead to undefined or dangerous behaviour.
    
    For instance, if r600_parse_extended_power_table() fails, it might
    call r600_free_extended_power_table() as will ci_dpm_fini() later
    during error handling.
    
    Fix this by only freeing pointers to objects previously allocated.
    
    Found by Linux Verification Center (linuxtesting.org) with static
    analysis tool SVACE.
    
    Fixes: cc8dbbb4f62a ("drm/radeon: add dpm support for CI dGPUs (v2)")
    Co-developed-by: Natalia Petrova <n.petrova@fintech.ru>
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8fdee2f0ed8dd0e3fca8e9ff1fc7d670dd51ac5
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Apr 18 00:07:18 2023 +0200

    drm/amd/display: fix is_timing_changed() prototype
    
    [ Upstream commit 3306ba4b60b2f3d9ac6bddc587a4d702e1ba2224 ]
    
    Three functions in the amdgpu display driver cause -Wmissing-prototype
    warnings:
    
    drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_resource.c:1858:6: error: no previous prototype for 'is_timing_changed' [-Werror=missing-prototypes]
    
    is_timing_changed() is actually meant to be a global symbol, but needs
    a proper name and prototype.
    
    Fixes: 17ce8a6907f7 ("drm/amd/display: Add dsc pre-validation in atomic check")
    Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 949aa06384f0fcb9aad48f21652e16d536205b6d
Author: Wesley Chalmers <Wesley.Chalmers@amd.com>
Date:   Wed Jun 10 11:49:16 2020 -0400

    drm/amd/display: Add logging for display MALL refresh setting
    
    [ Upstream commit cd8f067a46d34dee3188da184912ae3d64d98444 ]
    
    [WHY]
    Add log entry for when display refresh from MALL
    settings are sent to SMU.
    
    Fixes: 1664641ea946 ("drm/amd/display: Add logger for SMU msg")
    Signed-off-by: Wesley Chalmers <Wesley.Chalmers@amd.com>
    Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ba2044cfe26ae4f1698f73008681da9a9739c7d8
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jun 26 09:43:13 2023 -0700

    netlink: Add __sock_i_ino() for __netlink_diag_dump().
    
    [ Upstream commit 25a9c8a4431c364f97f75558cb346d2ad3f53fbb ]
    
    syzbot reported a warning in __local_bh_enable_ip(). [0]
    
    Commit 8d61f926d420 ("netlink: fix potential deadlock in
    netlink_set_err()") converted read_lock(&nl_table_lock) to
    read_lock_irqsave() in __netlink_diag_dump() to prevent a deadlock.
    
    However, __netlink_diag_dump() calls sock_i_ino() that uses
    read_lock_bh() and read_unlock_bh().  If CONFIG_TRACE_IRQFLAGS=y,
    read_unlock_bh() finally enables IRQ even though it should stay
    disabled until the following read_unlock_irqrestore().
    
    Using read_lock() in sock_i_ino() would trigger a lockdep splat
    in another place that was fixed in commit f064af1e500a ("net: fix
    a lockdep splat"), so let's add __sock_i_ino() that would be safe
    to use under BH disabled.
    
    [0]:
    WARNING: CPU: 0 PID: 5012 at kernel/softirq.c:376 __local_bh_enable_ip+0xbe/0x130 kernel/softirq.c:376
    Modules linked in:
    CPU: 0 PID: 5012 Comm: syz-executor487 Not tainted 6.4.0-rc7-syzkaller-00202-g6f68fc395f49 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/27/2023
    RIP: 0010:__local_bh_enable_ip+0xbe/0x130 kernel/softirq.c:376
    Code: 45 bf 01 00 00 00 e8 91 5b 0a 00 e8 3c 15 3d 00 fb 65 8b 05 ec e9 b5 7e 85 c0 74 58 5b 5d c3 65 8b 05 b2 b6 b4 7e 85 c0 75 a2 <0f> 0b eb 9e e8 89 15 3d 00 eb 9f 48 89 ef e8 6f 49 18 00 eb a8 0f
    RSP: 0018:ffffc90003a1f3d0 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: 0000000000000201 RCX: 1ffffffff1cf5996
    RDX: 0000000000000000 RSI: 0000000000000201 RDI: ffffffff8805c6f3
    RBP: ffffffff8805c6f3 R08: 0000000000000001 R09: ffff8880152b03a3
    R10: ffffed1002a56074 R11: 0000000000000005 R12: 00000000000073e4
    R13: dffffc0000000000 R14: 0000000000000002 R15: 0000000000000000
    FS:  0000555556726300(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000000000045ad50 CR3: 000000007c646000 CR4: 00000000003506f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     sock_i_ino+0x83/0xa0 net/core/sock.c:2559
     __netlink_diag_dump+0x45c/0x790 net/netlink/diag.c:171
     netlink_diag_dump+0xd6/0x230 net/netlink/diag.c:207
     netlink_dump+0x570/0xc50 net/netlink/af_netlink.c:2269
     __netlink_dump_start+0x64b/0x910 net/netlink/af_netlink.c:2374
     netlink_dump_start include/linux/netlink.h:329 [inline]
     netlink_diag_handler_dump+0x1ae/0x250 net/netlink/diag.c:238
     __sock_diag_cmd net/core/sock_diag.c:238 [inline]
     sock_diag_rcv_msg+0x31e/0x440 net/core/sock_diag.c:269
     netlink_rcv_skb+0x165/0x440 net/netlink/af_netlink.c:2547
     sock_diag_rcv+0x2a/0x40 net/core/sock_diag.c:280
     netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
     netlink_unicast+0x547/0x7f0 net/netlink/af_netlink.c:1365
     netlink_sendmsg+0x925/0xe30 net/netlink/af_netlink.c:1914
     sock_sendmsg_nosec net/socket.c:724 [inline]
     sock_sendmsg+0xde/0x190 net/socket.c:747
     ____sys_sendmsg+0x71c/0x900 net/socket.c:2503
     ___sys_sendmsg+0x110/0x1b0 net/socket.c:2557
     __sys_sendmsg+0xf7/0x1c0 net/socket.c:2586
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7f5303aaabb9
    Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007ffc7506e548 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f5303aaabb9
    RDX: 0000000000000000 RSI: 0000000020000180 RDI: 0000000000000003
    RBP: 00007f5303a6ed60 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007f5303a6edf0
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
     </TASK>
    
    Fixes: 8d61f926d420 ("netlink: fix potential deadlock in netlink_set_err()")
    Reported-by: syzbot+5da61cf6a9bc1902d422@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=5da61cf6a9bc1902d422
    Suggested-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20230626164313.52528-1-kuniyu@amazon.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3948c69b3837fec2ee5a90fbc911c343199be0ac
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Mon Jun 26 18:44:02 2023 +0300

    net: dsa: avoid suspicious RCU usage for synced VLAN-aware MAC addresses
    
    [ Upstream commit d06f925f13976ab82167c93467c70a337a0a3cda ]
    
    When using the felix driver (the only one which supports UC filtering
    and MC filtering) as a DSA master for a random other DSA switch, one can
    see the following stack trace when the downstream switch ports join a
    VLAN-aware bridge:
    
    =============================
    WARNING: suspicious RCU usage
    -----------------------------
    net/8021q/vlan_core.c:238 suspicious rcu_dereference_protected() usage!
    
    stack backtrace:
    Workqueue: dsa_ordered dsa_slave_switchdev_event_work
    Call trace:
     lockdep_rcu_suspicious+0x170/0x210
     vlan_for_each+0x8c/0x188
     dsa_slave_sync_uc+0x128/0x178
     __hw_addr_sync_dev+0x138/0x158
     dsa_slave_set_rx_mode+0x58/0x70
     __dev_set_rx_mode+0x88/0xa8
     dev_uc_add+0x74/0xa0
     dsa_port_bridge_host_fdb_add+0xec/0x180
     dsa_slave_switchdev_event_work+0x7c/0x1c8
     process_one_work+0x290/0x568
    
    What it's saying is that vlan_for_each() expects rtnl_lock() context and
    it's not getting it, when it's called from the DSA master's ndo_set_rx_mode().
    
    The caller of that - dsa_slave_set_rx_mode() - is the slave DSA
    interface's dsa_port_bridge_host_fdb_add() which comes from the deferred
    dsa_slave_switchdev_event_work().
    
    We went to great lengths to avoid the rtnl_lock() context in that call
    path in commit 0faf890fc519 ("net: dsa: drop rtnl_lock from
    dsa_slave_switchdev_event_work"), and calling rtnl_lock() is simply not
    an option due to the possibility of deadlocking when calling
    dsa_flush_workqueue() from the call paths that do hold rtnl_lock() -
    basically all of them.
    
    So, when the DSA master calls vlan_for_each() from its ndo_set_rx_mode(),
    the state of the 8021q driver on this device is really not protected
    from concurrent access by anything.
    
    Looking at net/8021q/, I don't think that vlan_info->vid_list was
    particularly designed with RCU traversal in mind, so introducing an RCU
    read-side form of vlan_for_each() - vlan_for_each_rcu() - won't be so
    easy, and it also wouldn't be exactly what we need anyway.
    
    In general I believe that the solution isn't in net/8021q/ anyway;
    vlan_for_each() is not cut out for this task. DSA doesn't need rtnl_lock()
    to be held per se - since it's not a netdev state change that we're
    blocking, but rather, just concurrent additions/removals to a VLAN list.
    We don't even need sleepable context - the callback of vlan_for_each()
    just schedules deferred work.
    
    The proposed escape is to remove the dependency on vlan_for_each() and
    to open-code a non-sleepable, rtnl-free alternative to that, based on
    copies of the VLAN list modified from .ndo_vlan_rx_add_vid() and
    .ndo_vlan_rx_kill_vid().
    
    Fixes: 64fdc5f341db ("net: dsa: sync unicast and multicast addresses for VLAN filters too")
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20230626154402.3154454-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 707e56abc686c75126cffda48917f8c8048814d5
Author: Cambda Zhu <cambda@linux.alibaba.com>
Date:   Mon Jun 26 17:33:47 2023 +0800

    ipvlan: Fix return value of ipvlan_queue_xmit()
    
    [ Upstream commit 8a9922e7be6d042fa00f894c376473b17a162b66 ]
    
    ipvlan_queue_xmit() should return NET_XMIT_XXX, but
    ipvlan_xmit_mode_l2/l3() returns rx_handler_result_t or NET_RX_XXX
    in some cases. ipvlan_rcv_frame() will only return RX_HANDLER_CONSUMED
    in ipvlan_xmit_mode_l2/l3() because 'local' is true. It's equal to
    NET_XMIT_SUCCESS. But dev_forward_skb() can return NET_RX_SUCCESS or
    NET_RX_DROP, and returning NET_RX_DROP(NET_XMIT_DROP) will increase
    both ipvlan and ipvlan->phy_dev drops counter.
    
    The skb to forward can be treated as xmitted successfully. This patch
    makes ipvlan_queue_xmit() return NET_XMIT_SUCCESS for forward skb.
    
    Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
    Signed-off-by: Cambda Zhu <cambda@linux.alibaba.com>
    Link: https://lore.kernel.org/r/20230626093347.7492-1-cambda@linux.alibaba.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57feff38fdad490f48862d7a192e54c49efc671c
Author: Ilia.Gavrilov <Ilia.Gavrilov@infotecs.ru>
Date:   Fri Jun 23 11:23:46 2023 +0000

    netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value.
    
    [ Upstream commit f188d30087480eab421cd8ca552fb15f55d57f4d ]
    
    ct_sip_parse_numerical_param() returns only 0 or 1 now.
    But process_register_request() and process_register_response() imply
    checking for a negative value if parsing of a numerical header parameter
    failed.
    The invocation in nf_nat_sip() looks correct:
            if (ct_sip_parse_numerical_param(...) > 0 &&
                ...) { ... }
    
    Make the return value of the function ct_sip_parse_numerical_param()
    a tristate to fix all the cases
    a) return 1 if value is found; *val is set
    b) return 0 if value is not found; *val is unchanged
    c) return -1 on error; *val is undefined
    
    Found by InfoTeCS on behalf of Linux Verification Center
    (linuxtesting.org) with SVACE.
    
    Fixes: 0f32a40fc91a ("[NETFILTER]: nf_conntrack_sip: create signalling expectations")
    Signed-off-by: Ilia.Gavrilov <Ilia.Gavrilov@infotecs.ru>
    Reviewed-by: Simon Horman <simon.horman@corigine.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 26bd1f210d3783a691052c51d76bb8a8bbd24c67
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Jun 21 17:56:53 2023 +0200

    netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one
    
    [ Upstream commit ff0a3a7d52ff7282dbd183e7fc29a1fe386b0c30 ]
    
    Eric Dumazet says:
      nf_conntrack_dccp_packet() has an unique:
    
      dh = skb_header_pointer(skb, dataoff, sizeof(_dh), &_dh);
    
      And nothing more is 'pulled' from the packet, depending on the content.
      dh->dccph_doff, and/or dh->dccph_x ...)
      So dccp_ack_seq() is happily reading stuff past the _dh buffer.
    
    BUG: KASAN: stack-out-of-bounds in nf_conntrack_dccp_packet+0x1134/0x11c0
    Read of size 4 at addr ffff000128f66e0c by task syz-executor.2/29371
    [..]
    
    Fix this by increasing the stack buffer to also include room for
    the extra sequence numbers and all the known dccp packet type headers,
    then pull again after the initial validation of the basic header.
    
    While at it, mark packets invalid that lack 48bit sequence bit but
    where RFC says the type MUST use them.
    
    Compile tested only.
    
    v2: first skb_header_pointer() now needs to adjust the size to
        only pull the generic header. (Eric)
    
    Heads-up: I intend to remove dccp conntrack support later this year.
    
    Fixes: 2bc780499aa3 ("[NETFILTER]: nf_conntrack: add DCCP protocol support")
    Reported-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 346259155310b9b460f649953bc89f444d47368b
Author: Jeremy Sowden <jeremy@azazel.net>
Date:   Mon Jun 19 20:06:57 2023 +0100

    lib/ts_bm: reset initial match offset for every block of text
    
    [ Upstream commit 6f67fbf8192da80c4db01a1800c7fceaca9cf1f9 ]
    
    The `shift` variable which indicates the offset in the string at which
    to start matching the pattern is initialized to `bm->patlen - 1`, but it
    is not reset when a new block is retrieved.  This means the implemen-
    tation may start looking at later and later positions in each successive
    block and miss occurrences of the pattern at the beginning.  E.g.,
    consider a HTTP packet held in a non-linear skb, where the HTTP request
    line occurs in the second block:
    
      [... 52 bytes of packet headers ...]
      GET /bmtest HTTP/1.1\r\nHost: www.example.com\r\n\r\n
    
    and the pattern is "GET /bmtest".
    
    Once the first block comprising the packet headers has been examined,
    `shift` will be pointing to somewhere near the end of the block, and so
    when the second block is examined the request line at the beginning will
    be missed.
    
    Reinitialize the variable for each new block.
    
    Fixes: 8082e4ed0a61 ("[LIB]: Boyer-Moore extension for textsearch infrastructure strike #2")
    Link: https://bugzilla.netfilter.org/show_bug.cgi?id=1390
    Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3ad46e155a6d91b36c6e892019a43e3ef3c696d
Author: Lin Ma <linma@zju.edu.cn>
Date:   Sun Jun 25 17:10:07 2023 +0800

    net: nfc: Fix use-after-free caused by nfc_llcp_find_local
    
    [ Upstream commit 6709d4b7bc2e079241fdef15d1160581c5261c10 ]
    
    This commit fixes several use-after-free that caused by function
    nfc_llcp_find_local(). For example, one UAF can happen when below buggy
    time window occurs.
    
    // nfc_genl_llc_get_params   | // nfc_unregister_device
                                 |
    dev = nfc_get_device(idx);   | device_lock(...)
    if (!dev)                    | dev->shutting_down = true;
        return -ENODEV;          | device_unlock(...);
                                 |
    device_lock(...);            |   // nfc_llcp_unregister_device
                                 |   nfc_llcp_find_local()
    nfc_llcp_find_local(...);    |
                                 |   local_cleanup()
    if (!local) {                |
        rc = -ENODEV;            |     // nfc_llcp_local_put
        goto exit;               |     kref_put(.., local_release)
    }                            |
                                 |       // local_release
                                 |       list_del(&local->list)
      // nfc_genl_send_params    |       kfree()
      local->dev->idx !!!UAF!!!  |
                                 |
    
    and the crash trace for the one of the discussed UAF like:
    
    BUG: KASAN: slab-use-after-free in nfc_genl_llc_get_params+0x72f/0x780  net/nfc/netlink.c:1045
    Read of size 8 at addr ffff888105b0e410 by task 20114
    
    Call Trace:
     <TASK>
     __dump_stack  lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0x72/0xa0  lib/dump_stack.c:106
     print_address_description  mm/kasan/report.c:319 [inline]
     print_report+0xcc/0x620  mm/kasan/report.c:430
     kasan_report+0xb2/0xe0  mm/kasan/report.c:536
     nfc_genl_send_params  net/nfc/netlink.c:999 [inline]
     nfc_genl_llc_get_params+0x72f/0x780  net/nfc/netlink.c:1045
     genl_family_rcv_msg_doit.isra.0+0x1ee/0x2e0  net/netlink/genetlink.c:968
     genl_family_rcv_msg  net/netlink/genetlink.c:1048 [inline]
     genl_rcv_msg+0x503/0x7d0  net/netlink/genetlink.c:1065
     netlink_rcv_skb+0x161/0x430  net/netlink/af_netlink.c:2548
     genl_rcv+0x28/0x40  net/netlink/genetlink.c:1076
     netlink_unicast_kernel  net/netlink/af_netlink.c:1339 [inline]
     netlink_unicast+0x644/0x900  net/netlink/af_netlink.c:1365
     netlink_sendmsg+0x934/0xe70  net/netlink/af_netlink.c:1913
     sock_sendmsg_nosec  net/socket.c:724 [inline]
     sock_sendmsg+0x1b6/0x200  net/socket.c:747
     ____sys_sendmsg+0x6e9/0x890  net/socket.c:2501
     ___sys_sendmsg+0x110/0x1b0  net/socket.c:2555
     __sys_sendmsg+0xf7/0x1d0  net/socket.c:2584
     do_syscall_x64  arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3f/0x90  arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    RIP: 0033:0x7f34640a2389
    RSP: 002b:00007f3463415168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00007f34641c1f80 RCX: 00007f34640a2389
    RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000006
    RBP: 00007f34640ed493 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 00007ffe38449ecf R14: 00007f3463415300 R15: 0000000000022000
     </TASK>
    
    Allocated by task 20116:
     kasan_save_stack+0x22/0x50  mm/kasan/common.c:45
     kasan_set_track+0x25/0x30  mm/kasan/common.c:52
     ____kasan_kmalloc  mm/kasan/common.c:374 [inline]
     __kasan_kmalloc+0x7f/0x90  mm/kasan/common.c:383
     kmalloc  include/linux/slab.h:580 [inline]
     kzalloc  include/linux/slab.h:720 [inline]
     nfc_llcp_register_device+0x49/0xa40  net/nfc/llcp_core.c:1567
     nfc_register_device+0x61/0x260  net/nfc/core.c:1124
     nci_register_device+0x776/0xb20  net/nfc/nci/core.c:1257
     virtual_ncidev_open+0x147/0x230  drivers/nfc/virtual_ncidev.c:148
     misc_open+0x379/0x4a0  drivers/char/misc.c:165
     chrdev_open+0x26c/0x780  fs/char_dev.c:414
     do_dentry_open+0x6c4/0x12a0  fs/open.c:920
     do_open  fs/namei.c:3560 [inline]
     path_openat+0x24fe/0x37e0  fs/namei.c:3715
     do_filp_open+0x1ba/0x410  fs/namei.c:3742
     do_sys_openat2+0x171/0x4c0  fs/open.c:1356
     do_sys_open  fs/open.c:1372 [inline]
     __do_sys_openat  fs/open.c:1388 [inline]
     __se_sys_openat  fs/open.c:1383 [inline]
     __x64_sys_openat+0x143/0x200  fs/open.c:1383
     do_syscall_x64  arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3f/0x90  arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Freed by task 20115:
     kasan_save_stack+0x22/0x50  mm/kasan/common.c:45
     kasan_set_track+0x25/0x30  mm/kasan/common.c:52
     kasan_save_free_info+0x2e/0x50  mm/kasan/generic.c:521
     ____kasan_slab_free  mm/kasan/common.c:236 [inline]
     ____kasan_slab_free  mm/kasan/common.c:200 [inline]
     __kasan_slab_free+0x10a/0x190  mm/kasan/common.c:244
     kasan_slab_free  include/linux/kasan.h:162 [inline]
     slab_free_hook  mm/slub.c:1781 [inline]
     slab_free_freelist_hook  mm/slub.c:1807 [inline]
     slab_free  mm/slub.c:3787 [inline]
     __kmem_cache_free+0x7a/0x190  mm/slub.c:3800
     local_release  net/nfc/llcp_core.c:174 [inline]
     kref_put  include/linux/kref.h:65 [inline]
     nfc_llcp_local_put  net/nfc/llcp_core.c:182 [inline]
     nfc_llcp_local_put  net/nfc/llcp_core.c:177 [inline]
     nfc_llcp_unregister_device+0x206/0x290  net/nfc/llcp_core.c:1620
     nfc_unregister_device+0x160/0x1d0  net/nfc/core.c:1179
     virtual_ncidev_close+0x52/0xa0  drivers/nfc/virtual_ncidev.c:163
     __fput+0x252/0xa20  fs/file_table.c:321
     task_work_run+0x174/0x270  kernel/task_work.c:179
     resume_user_mode_work  include/linux/resume_user_mode.h:49 [inline]
     exit_to_user_mode_loop  kernel/entry/common.c:171 [inline]
     exit_to_user_mode_prepare+0x108/0x110  kernel/entry/common.c:204
     __syscall_exit_to_user_mode_work  kernel/entry/common.c:286 [inline]
     syscall_exit_to_user_mode+0x21/0x50  kernel/entry/common.c:297
     do_syscall_64+0x4c/0x90  arch/x86/entry/common.c:86
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Last potentially related work creation:
     kasan_save_stack+0x22/0x50  mm/kasan/common.c:45
     __kasan_record_aux_stack+0x95/0xb0  mm/kasan/generic.c:491
     kvfree_call_rcu+0x29/0xa80  kernel/rcu/tree.c:3328
     drop_sysctl_table+0x3be/0x4e0  fs/proc/proc_sysctl.c:1735
     unregister_sysctl_table.part.0+0x9c/0x190  fs/proc/proc_sysctl.c:1773
     unregister_sysctl_table+0x24/0x30  fs/proc/proc_sysctl.c:1753
     neigh_sysctl_unregister+0x5f/0x80  net/core/neighbour.c:3895
     addrconf_notify+0x140/0x17b0  net/ipv6/addrconf.c:3684
     notifier_call_chain+0xbe/0x210  kernel/notifier.c:87
     call_netdevice_notifiers_info+0xb5/0x150  net/core/dev.c:1937
     call_netdevice_notifiers_extack  net/core/dev.c:1975 [inline]
     call_netdevice_notifiers  net/core/dev.c:1989 [inline]
     dev_change_name+0x3c3/0x870  net/core/dev.c:1211
     dev_ifsioc+0x800/0xf70  net/core/dev_ioctl.c:376
     dev_ioctl+0x3d9/0xf80  net/core/dev_ioctl.c:542
     sock_do_ioctl+0x160/0x260  net/socket.c:1213
     sock_ioctl+0x3f9/0x670  net/socket.c:1316
     vfs_ioctl  fs/ioctl.c:51 [inline]
     __do_sys_ioctl  fs/ioctl.c:870 [inline]
     __se_sys_ioctl  fs/ioctl.c:856 [inline]
     __x64_sys_ioctl+0x19e/0x210  fs/ioctl.c:856
     do_syscall_x64  arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3f/0x90  arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    The buggy address belongs to the object at ffff888105b0e400
     which belongs to the cache kmalloc-1k of size 1024
    The buggy address is located 16 bytes inside of
     freed 1024-byte region [ffff888105b0e400, ffff888105b0e800)
    
    The buggy address belongs to the physical page:
    head:ffffea000416c200 order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0
    flags: 0x200000000010200(slab|head|node=0|zone=2)
    raw: 0200000000010200 ffff8881000430c0 ffffea00044c7010 ffffea0004510e10
    raw: 0000000000000000 00000000000a000a 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff888105b0e300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff888105b0e380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    >ffff888105b0e400: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                             ^
     ffff888105b0e480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff888105b0e500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    In summary, this patch solves those use-after-free by
    
    1. Re-implement the nfc_llcp_find_local(). The current version does not
    grab the reference when getting the local from the linked list.  For
    example, the llcp_sock_bind() gets the reference like below:
    
    // llcp_sock_bind()
    
        local = nfc_llcp_find_local(dev); // A
        ..... \
               | raceable
        ..... /
        llcp_sock->local = nfc_llcp_local_get(local); // B
    
    There is an apparent race window that one can  drop the reference
    and free the local object fetched in (A) before (B) gets the reference.
    
    2. Some callers of the nfc_llcp_find_local() do not grab the reference
    at all. For example, the nfc_genl_llc_{{get/set}_params/sdreq} functions.
    We add the nfc_llcp_local_put() for them. Moreover, we add the necessary
    error handling function to put the reference.
    
    3. Add the nfc_llcp_remove_local() helper. The local object is removed
    from the linked list in local_release() when all reference is gone. This
    patch removes it when nfc_llcp_unregister_device() is called.
    
    Therefore, every caller of nfc_llcp_find_local() will get a reference
    even when the nfc_llcp_unregister_device() is called. This promises no
    use-after-free for the local object is ever possible.
    
    Fixes: 52feb444a903 ("NFC: Extend netlink interface for LTO, RW, and MIUX parameters support")
    Fixes: c7aa12252f51 ("NFC: Take a reference on the LLCP local pointer when creating a socket")
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 470152d76b3ed107d172ea46acc4bfa941f20b4b
Author: Edward Cree <ecree.xilinx@gmail.com>
Date:   Fri Jun 23 15:34:48 2023 +0100

    sfc: fix crash when reading stats while NIC is resetting
    
    [ Upstream commit d1b355438b8325a486f087e506d412c4e852f37b ]
    
    efx_net_stats() (.ndo_get_stats64) can be called during an ethtool
     selftest, during which time nic_data->mc_stats is NULL as the NIC has
     been fini'd.  In this case do not attempt to fetch the latest stats
     from the hardware, else we will crash on a NULL dereference:
        BUG: kernel NULL pointer dereference, address: 0000000000000038
        RIP efx_nic_update_stats
        abridged calltrace:
        efx_ef10_update_stats_pf
        efx_net_stats
        dev_get_stats
        dev_seq_printf_stats
    Skipping the read is safe, we will simply give out stale stats.
    To ensure that the free in efx_ef10_fini_nic() does not race against
     efx_ef10_update_stats_pf(), which could cause a TOCTTOU bug, take the
     efx->stats_lock in fini_nic (it is already held across update_stats).
    
    Fixes: d3142c193dca ("sfc: refactor EF10 stats handling")
    Reviewed-by: Pieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>
    Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15f1ce879eed88791a33c58ee2a74f228041e192
Author: David Howells <dhowells@redhat.com>
Date:   Fri Jun 23 23:55:10 2023 +0100

    ocfs2: Fix use of slab data with sendpage
    
    [ Upstream commit 86d7bd6e66e9925f0f04a7bcf3c92c05fdfefb5a ]
    
    ocfs2 uses kzalloc() to allocate buffers for o2net_hand, o2net_keep_req and
    o2net_keep_resp and then passes these to sendpage.  This isn't really
    allowed as the lifetime of slab objects is not controlled by page ref -
    though in this case it will probably work.  sendmsg() with MSG_SPLICE_PAGES
    will, however, print a warning and give an error.
    
    Fix it to use folio_alloc() instead to allocate a buffer for the handshake
    message, keepalive request and reply messages.
    
    Fixes: 98211489d414 ("[PATCH] OCFS2: The Second Oracle Cluster Filesystem")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Mark Fasheh <mark@fasheh.com>
    cc: Kurt Hackel <kurt.hackel@oracle.com>
    cc: Joel Becker <jlbec@evilplan.org>
    cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    cc: ocfs2-devel@oss.oracle.com
    Link: https://lore.kernel.org/r/20230623225513.2732256-14-dhowells@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cbf46029ea1649199fb9273edc917a92c08eab58
Author: Maxim Kochetkov <fido_max@inbox.ru>
Date:   Thu Jun 22 22:22:45 2023 +0300

    net: axienet: Move reset before 64-bit DMA detection
    
    [ Upstream commit f1bc9fc4a06de0108e0dca2a9a7e99ba1fc632f9 ]
    
    64-bit DMA detection will fail if axienet was started before (by boot
    loader, boot ROM, etc). In this state axienet will not start properly.
    XAXIDMA_TX_CDESC_OFFSET + 4 register (MM2S_CURDESC_MSB) is used to detect
    64-bit DMA capability here. But datasheet says: When DMACR.RS is 1
    (axienet is in enabled state), CURDESC_PTR becomes Read Only (RO) and
    is used to fetch the first descriptor. So iowrite32()/ioread32() trick
    to this register to detect 64-bit DMA will not work.
    So move axienet reset before 64-bit DMA detection.
    
    Fixes: f735c40ed93c ("net: axienet: Autodetect 64-bit DMA capability")
    Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
    Reviewed-by: Robert Hancock <robert.hancock@calian.com>
    Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
    Link: https://lore.kernel.org/r/20230622192245.116864-1-fido_max@inbox.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dae6095bdb24f537b4798ffd9201515b97bac94e
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Thu Jun 22 14:32:31 2023 -0700

    gtp: Fix use-after-free in __gtp_encap_destroy().
    
    [ Upstream commit ce3aee7114c575fab32a5e9e939d4bbb3dcca79f ]
    
    syzkaller reported use-after-free in __gtp_encap_destroy(). [0]
    
    It shows the same process freed sk and touched it illegally.
    
    Commit e198987e7dd7 ("gtp: fix suspicious RCU usage") added lock_sock()
    and release_sock() in __gtp_encap_destroy() to protect sk->sk_user_data,
    but release_sock() is called after sock_put() releases the last refcnt.
    
    [0]:
    BUG: KASAN: slab-use-after-free in instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
    BUG: KASAN: slab-use-after-free in atomic_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:541 [inline]
    BUG: KASAN: slab-use-after-free in queued_spin_lock include/asm-generic/qspinlock.h:111 [inline]
    BUG: KASAN: slab-use-after-free in do_raw_spin_lock include/linux/spinlock.h:186 [inline]
    BUG: KASAN: slab-use-after-free in __raw_spin_lock_bh include/linux/spinlock_api_smp.h:127 [inline]
    BUG: KASAN: slab-use-after-free in _raw_spin_lock_bh+0x75/0xe0 kernel/locking/spinlock.c:178
    Write of size 4 at addr ffff88800dbef398 by task syz-executor.2/2401
    
    CPU: 1 PID: 2401 Comm: syz-executor.2 Not tainted 6.4.0-rc5-01219-gfa0e21fa4443 #2
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0x72/0xa0 lib/dump_stack.c:106
     print_address_description mm/kasan/report.c:351 [inline]
     print_report+0xcc/0x620 mm/kasan/report.c:462
     kasan_report+0xb2/0xe0 mm/kasan/report.c:572
     check_region_inline mm/kasan/generic.c:181 [inline]
     kasan_check_range+0x39/0x1c0 mm/kasan/generic.c:187
     instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
     atomic_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:541 [inline]
     queued_spin_lock include/asm-generic/qspinlock.h:111 [inline]
     do_raw_spin_lock include/linux/spinlock.h:186 [inline]
     __raw_spin_lock_bh include/linux/spinlock_api_smp.h:127 [inline]
     _raw_spin_lock_bh+0x75/0xe0 kernel/locking/spinlock.c:178
     spin_lock_bh include/linux/spinlock.h:355 [inline]
     release_sock+0x1f/0x1a0 net/core/sock.c:3526
     gtp_encap_disable_sock drivers/net/gtp.c:651 [inline]
     gtp_encap_disable+0xb9/0x220 drivers/net/gtp.c:664
     gtp_dev_uninit+0x19/0x50 drivers/net/gtp.c:728
     unregister_netdevice_many_notify+0x97e/0x1520 net/core/dev.c:10841
     rtnl_delete_link net/core/rtnetlink.c:3216 [inline]
     rtnl_dellink+0x3c0/0xb30 net/core/rtnetlink.c:3268
     rtnetlink_rcv_msg+0x450/0xb10 net/core/rtnetlink.c:6423
     netlink_rcv_skb+0x15d/0x450 net/netlink/af_netlink.c:2548
     netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
     netlink_unicast+0x700/0x930 net/netlink/af_netlink.c:1365
     netlink_sendmsg+0x91c/0xe30 net/netlink/af_netlink.c:1913
     sock_sendmsg_nosec net/socket.c:724 [inline]
     sock_sendmsg+0x1b7/0x200 net/socket.c:747
     ____sys_sendmsg+0x75a/0x990 net/socket.c:2493
     ___sys_sendmsg+0x11d/0x1c0 net/socket.c:2547
     __sys_sendmsg+0xfe/0x1d0 net/socket.c:2576
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3f/0x90 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    RIP: 0033:0x7f1168b1fe5d
    Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 73 9f 1b 00 f7 d8 64 89 01 48
    RSP: 002b:00007f1167edccc8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00000000004bbf80 RCX: 00007f1168b1fe5d
    RDX: 0000000000000000 RSI: 00000000200002c0 RDI: 0000000000000003
    RBP: 00000000004bbf80 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 000000000000000b R14: 00007f1168b80530 R15: 0000000000000000
     </TASK>
    
    Allocated by task 1483:
     kasan_save_stack+0x22/0x50 mm/kasan/common.c:45
     kasan_set_track+0x25/0x30 mm/kasan/common.c:52
     __kasan_slab_alloc+0x59/0x70 mm/kasan/common.c:328
     kasan_slab_alloc include/linux/kasan.h:186 [inline]
     slab_post_alloc_hook mm/slab.h:711 [inline]
     slab_alloc_node mm/slub.c:3451 [inline]
     slab_alloc mm/slub.c:3459 [inline]
     __kmem_cache_alloc_lru mm/slub.c:3466 [inline]
     kmem_cache_alloc+0x16d/0x340 mm/slub.c:3475
     sk_prot_alloc+0x5f/0x280 net/core/sock.c:2073
     sk_alloc+0x34/0x6c0 net/core/sock.c:2132
     inet6_create net/ipv6/af_inet6.c:192 [inline]
     inet6_create+0x2c7/0xf20 net/ipv6/af_inet6.c:119
     __sock_create+0x2a1/0x530 net/socket.c:1535
     sock_create net/socket.c:1586 [inline]
     __sys_socket_create net/socket.c:1623 [inline]
     __sys_socket_create net/socket.c:1608 [inline]
     __sys_socket+0x137/0x250 net/socket.c:1651
     __do_sys_socket net/socket.c:1664 [inline]
     __se_sys_socket net/socket.c:1662 [inline]
     __x64_sys_socket+0x72/0xb0 net/socket.c:1662
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3f/0x90 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Freed by task 2401:
     kasan_save_stack+0x22/0x50 mm/kasan/common.c:45
     kasan_set_track+0x25/0x30 mm/kasan/common.c:52
     kasan_save_free_info+0x2e/0x50 mm/kasan/generic.c:521
     ____kasan_slab_free mm/kasan/common.c:236 [inline]
     ____kasan_slab_free mm/kasan/common.c:200 [inline]
     __kasan_slab_free+0x10c/0x1b0 mm/kasan/common.c:244
     kasan_slab_free include/linux/kasan.h:162 [inline]
     slab_free_hook mm/slub.c:1781 [inline]
     slab_free_freelist_hook mm/slub.c:1807 [inline]
     slab_free mm/slub.c:3786 [inline]
     kmem_cache_free+0xb4/0x490 mm/slub.c:3808
     sk_prot_free net/core/sock.c:2113 [inline]
     __sk_destruct+0x500/0x720 net/core/sock.c:2207
     sk_destruct+0xc1/0xe0 net/core/sock.c:2222
     __sk_free+0xed/0x3d0 net/core/sock.c:2233
     sk_free+0x7c/0xa0 net/core/sock.c:2244
     sock_put include/net/sock.h:1981 [inline]
     __gtp_encap_destroy+0x165/0x1b0 drivers/net/gtp.c:634
     gtp_encap_disable_sock drivers/net/gtp.c:651 [inline]
     gtp_encap_disable+0xb9/0x220 drivers/net/gtp.c:664
     gtp_dev_uninit+0x19/0x50 drivers/net/gtp.c:728
     unregister_netdevice_many_notify+0x97e/0x1520 net/core/dev.c:10841
     rtnl_delete_link net/core/rtnetlink.c:3216 [inline]
     rtnl_dellink+0x3c0/0xb30 net/core/rtnetlink.c:3268
     rtnetlink_rcv_msg+0x450/0xb10 net/core/rtnetlink.c:6423
     netlink_rcv_skb+0x15d/0x450 net/netlink/af_netlink.c:2548
     netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
     netlink_unicast+0x700/0x930 net/netlink/af_netlink.c:1365
     netlink_sendmsg+0x91c/0xe30 net/netlink/af_netlink.c:1913
     sock_sendmsg_nosec net/socket.c:724 [inline]
     sock_sendmsg+0x1b7/0x200 net/socket.c:747
     ____sys_sendmsg+0x75a/0x990 net/socket.c:2493
     ___sys_sendmsg+0x11d/0x1c0 net/socket.c:2547
     __sys_sendmsg+0xfe/0x1d0 net/socket.c:2576
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3f/0x90 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    The buggy address belongs to the object at ffff88800dbef300
     which belongs to the cache UDPv6 of size 1344
    The buggy address is located 152 bytes inside of
     freed 1344-byte region [ffff88800dbef300, ffff88800dbef840)
    
    The buggy address belongs to the physical page:
    page:00000000d31bfed5 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88800dbeed40 pfn:0xdbe8
    head:00000000d31bfed5 order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0
    memcg:ffff888008ee0801
    flags: 0x100000000010200(slab|head|node=0|zone=1)
    page_type: 0xffffffff()
    raw: 0100000000010200 ffff88800c7a3000 dead000000000122 0000000000000000
    raw: ffff88800dbeed40 0000000080160015 00000001ffffffff ffff888008ee0801
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff88800dbef280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff88800dbef300: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff88800dbef380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                ^
     ffff88800dbef400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff88800dbef480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    Fixes: e198987e7dd7 ("gtp: fix suspicious RCU usage")
    Reported-by: syzkaller <syzkaller@googlegroups.com>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Link: https://lore.kernel.org/r/20230622213231.24651-1-kuniyu@amazon.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f4f89eb1c51f527bb3875eec760fff73fe00838
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Thu Jun 22 23:03:34 2023 +0200

    selftests: rtnetlink: remove netdevsim device after ipsec offload test
    
    [ Upstream commit 5f789f103671fec3733ebe756e56adf15c90c21d ]
    
    On systems where netdevsim is built-in or loaded before the test
    starts, kci_test_ipsec_offload doesn't remove the netdevsim device it
    created during the test.
    
    Fixes: e05b2d141fef ("netdevsim: move netdev creation/destruction to dev probe")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Link: https://lore.kernel.org/r/e1cb94f4f82f4eca4a444feec4488a1323396357.1687466906.git.sd@queasysnail.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c96cc3d9acaca53d9a81c884c23f1224b61c829b
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jun 22 15:23:04 2023 +0000

    bonding: do not assume skb mac_header is set
    
    [ Upstream commit 6a940abdef3162e5723f1495b8a49859d1708f79 ]
    
    Drivers must not assume in their ndo_start_xmit() that
    skbs have their mac_header set. skb->data is all what is needed.
    
    bonding seems to be one of the last offender as caught by syzbot:
    
    WARNING: CPU: 1 PID: 12155 at include/linux/skbuff.h:2907 skb_mac_offset include/linux/skbuff.h:2913 [inline]
    WARNING: CPU: 1 PID: 12155 at include/linux/skbuff.h:2907 bond_xmit_hash drivers/net/bonding/bond_main.c:4170 [inline]
    WARNING: CPU: 1 PID: 12155 at include/linux/skbuff.h:2907 bond_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5149 [inline]
    WARNING: CPU: 1 PID: 12155 at include/linux/skbuff.h:2907 bond_3ad_xor_xmit drivers/net/bonding/bond_main.c:5186 [inline]
    WARNING: CPU: 1 PID: 12155 at include/linux/skbuff.h:2907 __bond_start_xmit drivers/net/bonding/bond_main.c:5442 [inline]
    WARNING: CPU: 1 PID: 12155 at include/linux/skbuff.h:2907 bond_start_xmit+0x14ab/0x19d0 drivers/net/bonding/bond_main.c:5470
    Modules linked in:
    CPU: 1 PID: 12155 Comm: syz-executor.3 Not tainted 6.1.30-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/25/2023
    RIP: 0010:skb_mac_header include/linux/skbuff.h:2907 [inline]
    RIP: 0010:skb_mac_offset include/linux/skbuff.h:2913 [inline]
    RIP: 0010:bond_xmit_hash drivers/net/bonding/bond_main.c:4170 [inline]
    RIP: 0010:bond_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5149 [inline]
    RIP: 0010:bond_3ad_xor_xmit drivers/net/bonding/bond_main.c:5186 [inline]
    RIP: 0010:__bond_start_xmit drivers/net/bonding/bond_main.c:5442 [inline]
    RIP: 0010:bond_start_xmit+0x14ab/0x19d0 drivers/net/bonding/bond_main.c:5470
    Code: 8b 7c 24 30 e8 76 dd 1a 01 48 85 c0 74 0d 48 89 c3 e8 29 67 2e fe e9 15 ef ff ff e8 1f 67 2e fe e9 10 ef ff ff e8 15 67 2e fe <0f> 0b e9 45 f8 ff ff e8 09 67 2e fe e9 dc fa ff ff e8 ff 66 2e fe
    RSP: 0018:ffffc90002fff6e0 EFLAGS: 00010283
    RAX: ffffffff835874db RBX: 000000000000ffff RCX: 0000000000040000
    RDX: ffffc90004dcf000 RSI: 00000000000000b5 RDI: 00000000000000b6
    RBP: ffffc90002fff8b8 R08: ffffffff83586d16 R09: ffffffff83586584
    R10: 0000000000000007 R11: ffff8881599fc780 R12: ffff88811b6a7b7e
    R13: 1ffff110236d4f6f R14: ffff88811b6a7ac0 R15: 1ffff110236d4f76
    FS: 00007f2e9eb47700(0000) GS:ffff8881f6b00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001b2e421000 CR3: 000000010e6d4000 CR4: 00000000003526e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
    <TASK>
    [<ffffffff8471a49f>] netdev_start_xmit include/linux/netdevice.h:4925 [inline]
    [<ffffffff8471a49f>] __dev_direct_xmit+0x4ef/0x850 net/core/dev.c:4380
    [<ffffffff851d845b>] dev_direct_xmit include/linux/netdevice.h:3043 [inline]
    [<ffffffff851d845b>] packet_direct_xmit+0x18b/0x300 net/packet/af_packet.c:284
    [<ffffffff851c7472>] packet_snd net/packet/af_packet.c:3112 [inline]
    [<ffffffff851c7472>] packet_sendmsg+0x4a22/0x64d0 net/packet/af_packet.c:3143
    [<ffffffff8467a4b2>] sock_sendmsg_nosec net/socket.c:716 [inline]
    [<ffffffff8467a4b2>] sock_sendmsg net/socket.c:736 [inline]
    [<ffffffff8467a4b2>] __sys_sendto+0x472/0x5f0 net/socket.c:2139
    [<ffffffff8467a715>] __do_sys_sendto net/socket.c:2151 [inline]
    [<ffffffff8467a715>] __se_sys_sendto net/socket.c:2147 [inline]
    [<ffffffff8467a715>] __x64_sys_sendto+0xe5/0x100 net/socket.c:2147
    [<ffffffff8553071f>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    [<ffffffff8553071f>] do_syscall_64+0x2f/0x50 arch/x86/entry/common.c:80
    [<ffffffff85600087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Fixes: 7b8fc0103bb5 ("bonding: add a vlan+srcmac tx hashing option")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Jarod Wilson <jarod@redhat.com>
    Cc: Moshe Tal <moshet@nvidia.com>
    Cc: Jussi Maki <joamaki@gmail.com>
    Cc: Jay Vosburgh <j.vosburgh@gmail.com>
    Cc: Andy Gospodarek <andy@greyhouse.net>
    Cc: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20230622152304.2137482-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6f2d4618fc697886ad41e215ae20638153e42d0
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jun 21 17:47:20 2023 +0000

    netlink: do not hard code device address lenth in fdb dumps
    
    [ Upstream commit aa5406950726e336c5c9585b09799a734b6e77bf ]
    
    syzbot reports that some netdev devices do not have a six bytes
    address [1]
    
    Replace ETH_ALEN by dev->addr_len.
    
    [1] (Case of a device where dev->addr_len = 4)
    
    BUG: KMSAN: kernel-infoleak in instrument_copy_to_user include/linux/instrumented.h:114 [inline]
    BUG: KMSAN: kernel-infoleak in copyout+0xb8/0x100 lib/iov_iter.c:169
    instrument_copy_to_user include/linux/instrumented.h:114 [inline]
    copyout+0xb8/0x100 lib/iov_iter.c:169
    _copy_to_iter+0x6d8/0x1d00 lib/iov_iter.c:536
    copy_to_iter include/linux/uio.h:206 [inline]
    simple_copy_to_iter+0x68/0xa0 net/core/datagram.c:513
    __skb_datagram_iter+0x123/0xdc0 net/core/datagram.c:419
    skb_copy_datagram_iter+0x5c/0x200 net/core/datagram.c:527
    skb_copy_datagram_msg include/linux/skbuff.h:3960 [inline]
    netlink_recvmsg+0x4ae/0x15a0 net/netlink/af_netlink.c:1970
    sock_recvmsg_nosec net/socket.c:1019 [inline]
    sock_recvmsg net/socket.c:1040 [inline]
    ____sys_recvmsg+0x283/0x7f0 net/socket.c:2722
    ___sys_recvmsg+0x223/0x840 net/socket.c:2764
    do_recvmmsg+0x4f9/0xfd0 net/socket.c:2858
    __sys_recvmmsg net/socket.c:2937 [inline]
    __do_sys_recvmmsg net/socket.c:2960 [inline]
    __se_sys_recvmmsg net/socket.c:2953 [inline]
    __x64_sys_recvmmsg+0x397/0x490 net/socket.c:2953
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Uninit was stored to memory at:
    __nla_put lib/nlattr.c:1009 [inline]
    nla_put+0x1c6/0x230 lib/nlattr.c:1067
    nlmsg_populate_fdb_fill+0x2b8/0x600 net/core/rtnetlink.c:4071
    nlmsg_populate_fdb net/core/rtnetlink.c:4418 [inline]
    ndo_dflt_fdb_dump+0x616/0x840 net/core/rtnetlink.c:4456
    rtnl_fdb_dump+0x14ff/0x1fc0 net/core/rtnetlink.c:4629
    netlink_dump+0x9d1/0x1310 net/netlink/af_netlink.c:2268
    netlink_recvmsg+0xc5c/0x15a0 net/netlink/af_netlink.c:1995
    sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1019
    ____sys_recvmsg+0x664/0x7f0 net/socket.c:2720
    ___sys_recvmsg+0x223/0x840 net/socket.c:2764
    do_recvmmsg+0x4f9/0xfd0 net/socket.c:2858
    __sys_recvmmsg net/socket.c:2937 [inline]
    __do_sys_recvmmsg net/socket.c:2960 [inline]
    __se_sys_recvmmsg net/socket.c:2953 [inline]
    __x64_sys_recvmmsg+0x397/0x490 net/socket.c:2953
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Uninit was created at:
    slab_post_alloc_hook+0x12d/0xb60 mm/slab.h:716
    slab_alloc_node mm/slub.c:3451 [inline]
    __kmem_cache_alloc_node+0x4ff/0x8b0 mm/slub.c:3490
    kmalloc_trace+0x51/0x200 mm/slab_common.c:1057
    kmalloc include/linux/slab.h:559 [inline]
    __hw_addr_create net/core/dev_addr_lists.c:60 [inline]
    __hw_addr_add_ex+0x2e5/0x9e0 net/core/dev_addr_lists.c:118
    __dev_mc_add net/core/dev_addr_lists.c:867 [inline]
    dev_mc_add+0x9a/0x130 net/core/dev_addr_lists.c:885
    igmp6_group_added+0x267/0xbc0 net/ipv6/mcast.c:680
    ipv6_mc_up+0x296/0x3b0 net/ipv6/mcast.c:2754
    ipv6_mc_remap+0x1e/0x30 net/ipv6/mcast.c:2708
    addrconf_type_change net/ipv6/addrconf.c:3731 [inline]
    addrconf_notify+0x4d3/0x1d90 net/ipv6/addrconf.c:3699
    notifier_call_chain kernel/notifier.c:93 [inline]
    raw_notifier_call_chain+0xe4/0x430 kernel/notifier.c:461
    call_netdevice_notifiers_info net/core/dev.c:1935 [inline]
    call_netdevice_notifiers_extack net/core/dev.c:1973 [inline]
    call_netdevice_notifiers+0x1ee/0x2d0 net/core/dev.c:1987
    bond_enslave+0xccd/0x53f0 drivers/net/bonding/bond_main.c:1906
    do_set_master net/core/rtnetlink.c:2626 [inline]
    rtnl_newlink_create net/core/rtnetlink.c:3460 [inline]
    __rtnl_newlink net/core/rtnetlink.c:3660 [inline]
    rtnl_newlink+0x378c/0x40e0 net/core/rtnetlink.c:3673
    rtnetlink_rcv_msg+0x16a6/0x1840 net/core/rtnetlink.c:6395
    netlink_rcv_skb+0x371/0x650 net/netlink/af_netlink.c:2546
    rtnetlink_rcv+0x34/0x40 net/core/rtnetlink.c:6413
    netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
    netlink_unicast+0xf28/0x1230 net/netlink/af_netlink.c:1365
    netlink_sendmsg+0x122f/0x13d0 net/netlink/af_netlink.c:1913
    sock_sendmsg_nosec net/socket.c:724 [inline]
    sock_sendmsg net/socket.c:747 [inline]
    ____sys_sendmsg+0x999/0xd50 net/socket.c:2503
    ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2557
    __sys_sendmsg net/socket.c:2586 [inline]
    __do_sys_sendmsg net/socket.c:2595 [inline]
    __se_sys_sendmsg net/socket.c:2593 [inline]
    __x64_sys_sendmsg+0x304/0x490 net/socket.c:2593
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Bytes 2856-2857 of 3500 are uninitialized
    Memory access of size 3500 starts at ffff888018d99104
    Data copied to user address 0000000020000480
    
    Fixes: d83b06036048 ("net: add fdb generic dump routine")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Link: https://lore.kernel.org/r/20230621174720.1845040-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb8e27c8fa9397b4a7b181c48fa58157dbe9902e
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jun 21 15:43:37 2023 +0000

    netlink: fix potential deadlock in netlink_set_err()
    
    [ Upstream commit 8d61f926d42045961e6b65191c09e3678d86a9cf ]
    
    syzbot reported a possible deadlock in netlink_set_err() [1]
    
    A similar issue was fixed in commit 1d482e666b8e ("netlink: disable IRQs
    for netlink_lock_table()") in netlink_lock_table()
    
    This patch adds IRQ safety to netlink_set_err() and __netlink_diag_dump()
    which were not covered by cited commit.
    
    [1]
    
    WARNING: possible irq lock inversion dependency detected
    6.4.0-rc6-syzkaller-00240-g4e9f0ec38852 #0 Not tainted
    
    syz-executor.2/23011 just changed the state of lock:
    ffffffff8e1a7a58 (nl_table_lock){.+.?}-{2:2}, at: netlink_set_err+0x2e/0x3a0 net/netlink/af_netlink.c:1612
    but this lock was taken by another, SOFTIRQ-safe lock in the past:
     (&local->queue_stop_reason_lock){..-.}-{2:2}
    
    and interrupts could create inverse lock ordering between them.
    
    other info that might help us debug this:
     Possible interrupt unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(nl_table_lock);
                                   local_irq_disable();
                                   lock(&local->queue_stop_reason_lock);
                                   lock(nl_table_lock);
      <Interrupt>
        lock(&local->queue_stop_reason_lock);
    
     *** DEADLOCK ***
    
    Fixes: 1d482e666b8e ("netlink: disable IRQs for netlink_lock_table()")
    Reported-by: syzbot+a7d200a347f912723e5c@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=a7d200a347f912723e5c
    Link: https://lore.kernel.org/netdev/000000000000e38d1605fea5747e@google.com/T/#u
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Johannes Berg <johannes.berg@intel.com>
    Link: https://lore.kernel.org/r/20230621154337.1668594-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42823e607c3d9bf7e428e8ed3100643dc31137d3
Author: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Date:   Wed Jun 21 15:55:37 2023 +0200

    net: stmmac: fix double serdes powerdown
    
    [ Upstream commit c4fc88ad2a765224a648db8ab35f125e120fe41b ]
    
    Commit 49725ffc15fc ("net: stmmac: power up/down serdes in
    stmmac_open/release") correctly added a call to the serdes_powerdown()
    callback to stmmac_release() but did not remove the one from
    stmmac_remove() which leads to a doubled call to serdes_powerdown().
    
    This can lead to all kinds of problems: in the case of the qcom ethqos
    driver, it caused an unbalanced regulator disable splat.
    
    Fixes: 49725ffc15fc ("net: stmmac: power up/down serdes in stmmac_open/release")
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Acked-by: Junxiao Chang <junxiao.chang@intel.com>
    Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
    Tested-by: Andrew Halaney <ahalaney@redhat.com>
    Link: https://lore.kernel.org/r/20230621135537.376649-1-brgl@bgdev.pl
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c665e621edcb700a680cc13d08be2e222f8cec5
Author: Jimmy Assarsson <extja@kvaser.com>
Date:   Mon May 29 15:42:38 2023 +0200

    can: kvaser_pciefd: Set hardware timestamp on transmitted packets
    
    [ Upstream commit ec681b91befa982477e24a150dd6452427fe6473 ]
    
    Set hardware timestamp on transmitted packets.
    
    Fixes: 26ad340e582d ("can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices")
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
    Link: https://lore.kernel.org/all/20230529134248.752036-5-extja@kvaser.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9926e32be6d348429bbe34e86ab79517e4adc581
Author: Jimmy Assarsson <extja@kvaser.com>
Date:   Mon May 29 15:42:37 2023 +0200

    can: kvaser_pciefd: Add function to set skb hwtstamps
    
    [ Upstream commit 2d55e9f9b4427e1ad59b974f2267767aac3788d3 ]
    
    Add new function, kvaser_pciefd_set_skb_timestamp(), to set skb hwtstamps.
    
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
    Link: https://lore.kernel.org/all/20230529134248.752036-4-extja@kvaser.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Stable-dep-of: ec681b91befa ("can: kvaser_pciefd: Set hardware timestamp on transmitted packets")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 483a06ecd8cae0a0664e08f5c0ca98d6a1127752
Author: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Date:   Sun Jun 11 11:57:26 2023 +0900

    can: length: fix bitstuffing count
    
    [ Upstream commit 9fde4c557f78ee2f3626e92b4089ce9d54a2573a ]
    
    The Stuff Bit Count is always coded on 4 bits [1]. Update the Stuff
    Bit Count size accordingly.
    
    In addition, the CRC fields of CAN FD Frames contain stuff bits at
    fixed positions called fixed stuff bits [2]. The CRC field starts with
    a fixed stuff bit and then has another fixed stuff bit after each
    fourth bit [2], which allows us to derive this formula:
    
      FSB count = 1 + round_down(len(CRC field)/4)
    
    The length of the CRC field is [1]:
    
      len(CRC field) = len(Stuff Bit Count) + len(CRC)
                     = 4 + len(CRC)
    
    with len(CRC) either 17 or 21 bits depending of the payload length.
    
    In conclusion, for CRC17:
    
      FSB count = 1 + round_down((4 + 17)/4)
                = 6
    
    and for CRC 21:
    
      FSB count = 1 + round_down((4 + 21)/4)
                = 7
    
    Add a Fixed Stuff bits (FSB) field with above values and update
    CANFD_FRAME_OVERHEAD_SFF and CANFD_FRAME_OVERHEAD_EFF accordingly.
    
    [1] ISO 11898-1:2015 section 10.4.2.6 "CRC field":
    
      The CRC field shall contain the CRC sequence followed by a recessive
      CRC delimiter. For FD Frames, the CRC field shall also contain the
      stuff count.
    
      Stuff count
    
      If FD Frames, the stuff count shall be at the beginning of the CRC
      field. It shall consist of the stuff bit count modulo 8 in a 3-bit
      gray code followed by a parity bit [...]
    
    [2] ISO 11898-1:2015 paragraph 10.5 "Frame coding":
    
      In the CRC field of FD Frames, the stuff bits shall be inserted at
      fixed positions; they are called fixed stuff bits. There shall be a
      fixed stuff bit before the first bit of the stuff count, even if the
      last bits of the preceding field are a sequence of five consecutive
      bits of identical value, there shall be only the fixed stuff bit,
      there shall not be two consecutive stuff bits. A further fixed stuff
      bit shall be inserted after each fourth bit of the CRC field [...]
    
    Fixes: 85d99c3e2a13 ("can: length: can_skb_get_frame_len(): introduce function to get data length of frame in data link layer")
    Suggested-by: Thomas Kopp <Thomas.Kopp@microchip.com>
    Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
    Reviewed-by: Thomas Kopp <Thomas.Kopp@microchip.com>
    Link: https://lore.kernel.org/all/20230611025728.450837-2-mailhol.vincent@wanadoo.fr
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b71d7ae6931b42076208fee4143489fb17f83257
Author: Gilad Sever <gilad9366@gmail.com>
Date:   Wed Jun 21 13:42:10 2023 +0300

    bpf: Fix bpf socket lookup from tc/xdp to respect socket VRF bindings
    
    [ Upstream commit 9a5cb79762e0eda17ca15c2a6eaca4622383c21c ]
    
    When calling bpf_sk_lookup_tcp(), bpf_sk_lookup_udp() or
    bpf_skc_lookup_tcp() from tc/xdp ingress, VRF socket bindings aren't
    respoected, i.e. unbound sockets are returned, and bound sockets aren't
    found.
    
    VRF binding is determined by the sdif argument to sk_lookup(), however
    when called from tc the IP SKB control block isn't initialized and thus
    inet{,6}_sdif() always returns 0.
    
    Fix by calculating sdif for the tc/xdp flows by observing the device's
    l3 enslaved state.
    
    The cg/sk_skb hooking points which are expected to support
    inet{,6}_sdif() pass sdif=-1 which makes __bpf_skc_lookup() use the
    existing logic.
    
    Fixes: 6acc9b432e67 ("bpf: Add helper to retrieve socket in BPF")
    Signed-off-by: Gilad Sever <gilad9366@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
    Reviewed-by: Eyal Birger <eyal.birger@gmail.com>
    Acked-by: Stanislav Fomichev <sdf@google.com>
    Cc: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/bpf/20230621104211.301902-4-gilad9366@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7cefc34ec2b1c51512b107b51babfdf0f1dfaf03
Author: Gilad Sever <gilad9366@gmail.com>
Date:   Wed Jun 21 13:42:09 2023 +0300

    bpf: Call __bpf_sk_lookup()/__bpf_skc_lookup() directly via TC hookpoint
    
    [ Upstream commit 97fbfeb86917bdbe9c41d5143e335a929147f405 ]
    
    skb->dev always exists in the tc flow. There is no need to use
    bpf_skc_lookup(), bpf_sk_lookup() from this code path.
    
    This change facilitates fixing the tc flow to be VRF aware.
    
    Signed-off-by: Gilad Sever <gilad9366@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
    Reviewed-by: Eyal Birger <eyal.birger@gmail.com>
    Acked-by: Stanislav Fomichev <sdf@google.com>
    Link: https://lore.kernel.org/bpf/20230621104211.301902-3-gilad9366@gmail.com
    Stable-dep-of: 9a5cb79762e0 ("bpf: Fix bpf socket lookup from tc/xdp to respect socket VRF bindings")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 642b75c4911aa6f54991c8729f7132610c37da1b
Author: Gilad Sever <gilad9366@gmail.com>
Date:   Wed Jun 21 13:42:08 2023 +0300

    bpf: Factor out socket lookup functions for the TC hookpoint.
    
    [ Upstream commit 6e98730bc0b44acaf86eccc75f823128aa9c9e79 ]
    
    Change BPF helper socket lookup functions to use TC specific variants:
    bpf_tc_sk_lookup_tcp() / bpf_tc_sk_lookup_udp() / bpf_tc_skc_lookup_tcp()
    instead of sharing implementation with the cg / sk_skb hooking points.
    This allows introducing a separate logic for the TC flow.
    
    The tc functions are identical to the original code.
    
    Signed-off-by: Gilad Sever <gilad9366@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
    Reviewed-by: Eyal Birger <eyal.birger@gmail.com>
    Acked-by: Stanislav Fomichev <sdf@google.com>
    Link: https://lore.kernel.org/bpf/20230621104211.301902-2-gilad9366@gmail.com
    Stable-dep-of: 9a5cb79762e0 ("bpf: Fix bpf socket lookup from tc/xdp to respect socket VRF bindings")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f159a9f55bad5c815fcbc5b4da96c2d72d5e087
Author: Dmitry Antipov <dmantipov@yandex.ru>
Date:   Tue Jun 13 16:46:55 2023 +0300

    wifi: ath9k: convert msecs to jiffies where needed
    
    [ Upstream commit 2aa083acea9f61be3280184384551178f510ff51 ]
    
    Since 'ieee80211_queue_delayed_work()' expects timeout in
    jiffies and not milliseconds, 'msecs_to_jiffies()' should
    be used in 'ath_restart_work()' and '__ath9k_flush()'.
    
    Fixes: d63ffc45c5d3 ("ath9k: rename tx_complete_work to hw_check_work")
    Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
    Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230613134655.248728-1-dmantipov@yandex.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13c8335852c3f53f842b8d880c1b48abc4a7086c
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jun 20 13:04:01 2023 +0300

    wifi: iwlwifi: mvm: indicate HW decrypt for beacon protection
    
    [ Upstream commit 2db72b8a700943aa54dce0aabe6ff1b72b615162 ]
    
    We've already done the 'decryption' here, so tell
    mac80211 it need not do it again.
    
    Fixes: b1fdc2505abc ("iwlwifi: mvm: advertise BIGTK client support if available")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230620125813.a50cf68fbf2e.Ieceacbe3789d81ea02ae085ad8d1f8813a33c31b@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3cc662a8d7df3b50fd06928220c839295a77f516
Author: Marek Vasut <marex@denx.de>
Date:   Tue Jun 20 12:27:13 2023 +0200

    mmc: Add MMC_QUIRK_BROKEN_SD_CACHE for Kingston Canvas Go Plus from 11/2019
    
    [ Upstream commit c467c8f081859d4f4ca4eee4fba54bb5d85d6c97 ]
    
    This microSD card never clears Flush Cache bit after cache flush has
    been started in sd_flush_cache(). This leads e.g. to failure to mount
    file system. Add a quirk which disables the SD cache for this specific
    card from specific manufacturing date of 11/2019, since on newer dated
    cards from 05/2023 the cache flush works correctly.
    
    Fixes: 08ebf903af57 ("mmc: core: Fixup support for writeback-cache for eMMC and SD")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Link: https://lore.kernel.org/r/20230620102713.7701-1-marex@denx.de
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8539b9ac4c44280fb85d1c03fca87b0e55b4377c
Author: Ilan Peer <ilan.peer@intel.com>
Date:   Sun Jun 18 21:49:45 2023 +0300

    wifi: ieee80211: Fix the common size calculation for reconfiguration ML
    
    [ Upstream commit ce6e1f600b0cfc563a7d607de702262a58cd835d ]
    
    The common information length is found in the first octet of the common
    information.
    
    Fixes: 0f48b8b88aa9 ("wifi: ieee80211: add definitions for multi-link element")
    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230618214435.3c7ed4817338.I42ef706cb827b4dade6e4ffbb6e7f341eaccd398@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf353116d1bf2e59146ee8f1aeed572496735710
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Jun 16 22:28:45 2023 +0200

    wifi: cfg80211: fix regulatory disconnect with OCB/NAN
    
    [ Upstream commit e8c2af660ba0790afd14d5cbc2fd05c6dc85e207 ]
    
    Since regulatory disconnect was added, OCB and NAN interface
    types were added, which made it completely unusable for any
    driver that allowed OCB/NAN. Add OCB/NAN (though NAN doesn't
    do anything, we don't have any info) and also remove all the
    logic that opts out, so it won't be broken again if/when new
    interface types are added.
    
    Fixes: 6e0bd6c35b02 ("cfg80211: 802.11p OCB mode handling")
    Fixes: cb3b7d87652a ("cfg80211: add start / stop NAN commands")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Link: https://lore.kernel.org/r/20230616222844.2794d1625a26.I8e78a3789a29e6149447b3139df724a6f1b46fc3@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4938edd0312e31a9f81caf99af3fcf791b5f19a
Author: Benjamin Berg <benjamin.berg@intel.com>
Date:   Fri Jun 16 09:54:04 2023 +0300

    wifi: cfg80211: drop incorrect nontransmitted BSS update code
    
    [ Upstream commit 39432f8a3752a87a53fd8d5e51824a43aaae5cab ]
    
    The removed code ran for any BSS that was not included in the MBSSID
    element in order to update it. However, instead of using the correct
    inheritance rules, it would simply copy the elements from the
    transmitting AP. The result is that we would report incorrect elements
    in this case.
    
    After some discussions, it seems that there are likely not even APs
    actually using this feature. Either way, removing the code decreases
    complexity and makes the cfg80211 behaviour more correct.
    
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230616094949.cfd6d8db1f26.Ia1044902b86cd7d366400a4bfb93691b8f05d68c@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ec96bf10d8037ecb8680957e7e7f8eb98c671da
Author: Benjamin Berg <benjamin.berg@intel.com>
Date:   Fri Jun 16 09:54:03 2023 +0300

    wifi: cfg80211: rewrite merging of inherited elements
    
    [ Upstream commit dfd9aa3e7a456d57b18021d66472ab7ff8373ab7 ]
    
    The cfg80211_gen_new_ie function merges the IEs using inheritance rules.
    Rewrite this function to fix issues around inheritance rules. In
    particular, vendor elements do not require any special handling, as they
    are either all inherited or overridden by the subprofile.
    Also, add fragmentation handling as this may be needed in some cases.
    
    This also changes the function to not require making a copy. The new
    version could be optimized a bit by explicitly tracking which IEs have
    been handled already rather than looking that up again every time.
    
    Note that a small behavioural change is the removal of the SSID special
    handling. This should be fine for the MBSSID element, as the SSID must
    be included in the subelement.
    
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230616094949.bc6152e146db.I2b5f3bc45085e1901e5b5192a674436adaf94748@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0b4b68aecfcb5f44d8be45d340b0ee5bd3c4e77
Author: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Date:   Wed Jun 14 15:26:48 2023 +0200

    wifi: mac80211: Remove "Missing iftype sband data/EHT cap" spam
    
    [ Upstream commit 6e21e7b8cd897193cee3c2649640efceb3004ba5 ]
    
    In mesh mode, ieee80211_chandef_he_6ghz_oper() is called by
    mesh_matches_local() for every received mesh beacon.
    
    On a 6 GHz mesh of a HE-only phy, this spams that the hardware does not
    have EHT capabilities, even if the received mesh beacon does not have an
    EHT element.
    
    Unlike HE, not supporting EHT in the 6 GHz band is not an error so do
    not print anything in this case.
    
    Fixes: 5dca295dd767 ("mac80211: Add initial support for EHT and 320 MHz channels")
    
    Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Link: https://lore.kernel.org/r/20230614132648.28995-1-nicolas.cavallari@green-communications.fr
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 390e44efcf4d390b5053ad112553155d2d097c73
Author: Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Date:   Wed Jun 14 12:41:32 2023 +0300

    wifi: iwlwifi: pcie: fix NULL pointer dereference in iwl_pcie_irq_rx_msix_handler()
    
    [ Upstream commit 1902f1953b8ba100ee8705cb8a6f1a9795550eca ]
    
    rxq can be NULL only when trans_pcie->rxq is NULL and entry->entry
    is zero. For the case when entry->entry is not equal to 0, rxq
    won't be NULL even if trans_pcie->rxq is NULL. Modify checker to
    check for trans_pcie->rxq.
    
    Fixes: abc599efa67b ("iwlwifi: pcie: don't crash when rx queues aren't allocated in interrupt")
    Signed-off-by: Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230614123446.5a5eb3889a4a.I375a1d58f16b48cd2044e7b7caddae512d7c86fd@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 379c1fdce83e07c509e05b031f41491cc445857f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Jun 14 12:41:22 2023 +0300

    wifi: iwlwifi: pull from TXQs with softirqs disabled
    
    [ Upstream commit 96fb6f47db24a712d650b0a9b9074873f273fb0e ]
    
    In mac80211, it's required that we pull from TXQs by calling
    ieee80211_tx_dequeue() only with softirqs disabled. However,
    in iwl_mvm_queue_state_change() we're often called with them
    enabled, e.g. from flush if anything was flushed, triggering
    a mac80211 warning.
    
    Fix that by disabling the softirqs across the TX call.
    
    Fixes: cfbc6c4c5b91 ("iwlwifi: mvm: support mac80211 TXQs model")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230614123446.0feef7fa81db.I4dd62542d955b40dd8f0af34fa4accb9d0d17c7e@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1992d72a359732f143cc962917104d193705da7
Author: Ziyang Huang <hzyitc@outlook.com>
Date:   Thu Jun 15 14:41:48 2023 +0300

    wifi: ath11k: Add missing hw_ops->get_ring_selector() for IPQ5018
    
    [ Upstream commit ce282d8de71f07f0056ea319541141152c65f552 ]
    
    During sending data after clients connected, hw_ops->get_ring_selector()
    will be called. But for IPQ5018, this member isn't set, and the
    following NULL pointer exception will be occurred:
    
            [   38.840478] 8<--- cut here ---
            [   38.840517] Unable to handle kernel NULL pointer dereference at virtual address 00000000
            ...
            [   38.923161] PC is at 0x0
            [   38.927930] LR is at ath11k_dp_tx+0x70/0x730 [ath11k]
            ...
            [   39.063264] Process hostapd (pid: 1034, stack limit = 0x801ceb3d)
            [   39.068994] Stack: (0x856a9a68 to 0x856aa000)
            ...
            [   39.438467] [<7f323804>] (ath11k_dp_tx [ath11k]) from [<7f314e6c>] (ath11k_mac_op_tx+0x80/0x190 [ath11k])
            [   39.446607] [<7f314e6c>] (ath11k_mac_op_tx [ath11k]) from [<7f17dbe0>] (ieee80211_handle_wake_tx_queue+0x7c/0xc0 [mac80211])
            [   39.456162] [<7f17dbe0>] (ieee80211_handle_wake_tx_queue [mac80211]) from [<7f174450>] (ieee80211_probereq_get+0x584/0x704 [mac80211])
            [   39.467443] [<7f174450>] (ieee80211_probereq_get [mac80211]) from [<7f178c40>] (ieee80211_tx_prepare_skb+0x1f8/0x248 [mac80211])
            [   39.479334] [<7f178c40>] (ieee80211_tx_prepare_skb [mac80211]) from [<7f179e28>] (__ieee80211_subif_start_xmit+0x32c/0x3d4 [mac80211])
            [   39.491053] [<7f179e28>] (__ieee80211_subif_start_xmit [mac80211]) from [<7f17af08>] (ieee80211_tx_control_port+0x19c/0x288 [mac80211])
            [   39.502946] [<7f17af08>] (ieee80211_tx_control_port [mac80211]) from [<7f0fc704>] (nl80211_tx_control_port+0x174/0x1d4 [cfg80211])
            [   39.515017] [<7f0fc704>] (nl80211_tx_control_port [cfg80211]) from [<808ceac4>] (genl_rcv_msg+0x154/0x340)
            [   39.526814] [<808ceac4>] (genl_rcv_msg) from [<808cdb74>] (netlink_rcv_skb+0xb8/0x11c)
            [   39.536446] [<808cdb74>] (netlink_rcv_skb) from [<808ce1d0>] (genl_rcv+0x28/0x34)
            [   39.544344] [<808ce1d0>] (genl_rcv) from [<808cd234>] (netlink_unicast+0x174/0x274)
            [   39.551895] [<808cd234>] (netlink_unicast) from [<808cd510>] (netlink_sendmsg+0x1dc/0x440)
            [   39.559362] [<808cd510>] (netlink_sendmsg) from [<808596e0>] (____sys_sendmsg+0x1a8/0x1fc)
            [   39.567697] [<808596e0>] (____sys_sendmsg) from [<8085b1a8>] (___sys_sendmsg+0xa4/0xdc)
            [   39.575941] [<8085b1a8>] (___sys_sendmsg) from [<8085b310>] (sys_sendmsg+0x44/0x74)
            [   39.583841] [<8085b310>] (sys_sendmsg) from [<80300060>] (ret_fast_syscall+0x0/0x40)
            ...
            [   39.620734] Code: bad PC value
            [   39.625869] ---[ end trace 8aef983ad3cbc032 ]---
    
    Fixes: ba60f2793d3a ("wifi: ath11k: initialize hw_ops for IPQ5018")
    Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/TYZPR01MB5556D6E3F63EAB5129D11420C953A@TYZPR01MB5556.apcprd01.prod.exchangelabs.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 83fcd100fbec43ea06b7fb33dd899e78c9f28ba0
Author: Ziyang Huang <hzyitc@outlook.com>
Date:   Thu Jun 15 14:41:48 2023 +0300

    wifi: ath11k: Restart firmware after cold boot calibration for IPQ5018
    
    [ Upstream commit 80c5390e1f5e5b16d820512265530ef26073d8e0 ]
    
    Restart is required after cold boot calibration on IPQ5018. Otherwise,
    we get the following exception:
    
            [   14.412829] qcom-q6-mpd cd00000.remoteproc: fatal error received: err_smem_ver.2.1:
            [   14.412829] QC Image Version : QC_IMAGE_VERSION_STRING=WLAN.HK.2.6.0.1-00974-QCAHKSWPL_SILICONZ-1
            [   14.412829] Image Variant : IMAGE_VARIANT_STRING=5018.wlanfw2.map_spr_spr_evalQ
            [   14.412829] DALSysLogEvent.c:174 Assertion 0 failed param0 :zero,param1 :zero,param2 :zero
            [   14.412829] Thread ID : 0x00000048 Thread name : WLAN RT0 Process ID : 0x00000001 Process name :wlan0
            [   14.412829]
            [   14.412829] Registers:
            [   14.412829] SP : 0x4c81c120
            [   14.412829] FP : 0x4c81c138
            [   14.412829] PC : 0xb022c590
            [   14.412829] SSR : 0x00000000
            [   14.412829] BADVA : 0x00000000
            [   14.412829] LR : 0xb0008490
            [   14.412829]
            [   14.412829] StackDump
            [   14.412829] from:0x4c81c120
            [   14.412829] to: 0x00000000:
            [   14.412829]
            [   14.463006] remoteproc remoteproc0: crash detected in cd00000.remoteproc: type fatal error
    
    Fixes: 8dfe875aa24a ("wifi: ath11k: update hw params for IPQ5018")
    Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/TYZPR01MB55566969818BD4B49E770445C953A@TYZPR01MB5556.apcprd01.prod.exchangelabs.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 91cfa21faa7c583613aa5bf5c3693bbe18f15ad1
Author: Ziyang Huang <hzyitc@outlook.com>
Date:   Thu Jun 15 14:41:47 2023 +0300

    wifi: ath11k: Add missing ops config for IPQ5018 in ath11k_ahb_probe()
    
    [ Upstream commit 469ddb20cae61cad9c4f208a4c8682305905a511 ]
    
    Without this patch, the IPQ5018 WiFi will fail and print the following
    logs:
    
            [   11.033179] ath11k c000000.wifi: unsupported device type 7
            [   11.033223] ath11k: probe of c000000.wifi failed with error -95
    
    Fixes: 25edca7bb18a ("wifi: ath11k: add ipq5018 device support")
    Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/TYZPR01MB5556D7AA10ABEDDDD2D8F39EC953A@TYZPR01MB5556.apcprd01.prod.exchangelabs.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29857d811a8321ee2abc664c5eb842d31f76327e
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Tue Jun 13 12:19:40 2023 +0300

    wifi: ath11k: Add missing check for ioremap
    
    [ Upstream commit 16e0077e14a73866e9b0f4a6bf4ad3d4a5cb0f2a ]
    
    Add check for ioremap() and return the error if it fails in order to
    guarantee the success of ioremap(), same as in
    ath11k_qmi_load_file_target_mem().
    
    Fixes: 6ac04bdc5edb ("ath11k: Use reserved host DDR addresses from DT for PCI devices")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230608022858.27405-1-jiasheng@iscas.ac.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fd49d96069f82c83937f3cd1f7e3219b2d4204f
Author: Edwin Peer <edwin.peer@broadcom.com>
Date:   Sun Jun 11 13:51:08 2023 +0300

    rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO
    
    [ Upstream commit fa0e21fa44438a0e856d42224bfa24641d37b979 ]
    
    This filter already exists for excluding IPv6 SNMP stats. Extend its
    definition to also exclude IFLA_VF_INFO stats in RTM_GETLINK.
    
    This patch constitutes a partial fix for a netlink attribute nesting
    overflow bug in IFLA_VFINFO_LIST. By excluding the stats when the
    requester doesn't need them, the truncation of the VF list is avoided.
    
    While it was technically only the stats added in commit c5a9f6f0ab40
    ("net/core: Add drop counters to VF statistics") breaking the camel's
    back, the appreciable size of the stats data should never have been
    included without due consideration for the maximum number of VFs
    supported by PCI.
    
    Fixes: 3b766cd83232 ("net/core: Add reading VF statistics through the PF netdevice")
    Fixes: c5a9f6f0ab40 ("net/core: Add drop counters to VF statistics")
    Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
    Cc: Edwin Peer <espeer@gmail.com>
    Signed-off-by: Gal Pressman <gal@nvidia.com>
    Link: https://lore.kernel.org/r/20230611105108.122586-1-gal@nvidia.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ec045085af72ab57b1c52e2f4a82a62fab70a55
Author: Ilan Peer <ilan.peer@intel.com>
Date:   Sun Jun 11 12:14:28 2023 +0300

    wifi: mac80211: Fix permissions for valid_links debugfs entry
    
    [ Upstream commit 4cacadc0dbd8013e6161aa8843d8e9d8ad435b47 ]
    
    The entry should be a read only one and not a write only one. Fix it.
    
    Fixes: 3d9011029227 ("wifi: mac80211: implement link switching")
    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230611121219.c75316990411.I1565a7fcba8a37f83efffb0cc6b71c572b896e94@changeid
    [remove x16 change since it doesn't work yet]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b700de68719b0bb7f11c6c650c2673fef915784
Author: Remi Pommarel <repk@triplefau.lt>
Date:   Fri Jun 9 11:37:44 2023 +0200

    wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key()
    
    [ Upstream commit 75086cc6dee046e3fbb3dba148b376d8802f83bc ]
    
    On EDMA capable hardware, ath9k_txq_list_has_key() can enter infinite
    loop if it is called while all txq_fifos have packets that use different
    key that the one we are looking for. Fix it by exiting the loop if all
    txq_fifos have been checked already.
    
    Because this loop is called under spin_lock_bh() (see ath_txq_lock) it
    causes the following rcu stall:
    
    rcu: INFO: rcu_sched self-detected stall on CPU
    ath10k_pci 0000:01:00.0: failed to read temperature -11
    rcu:    1-....: (5254 ticks this GP) idle=189/1/0x4000000000000002 softirq=8442983/8442984 fqs=2579
            (t=5257 jiffies g=17983297 q=334)
    Task dump for CPU 1:
    task:hostapd         state:R  running task     stack:    0 pid:  297 ppid:   289 flags:0x0000000a
    Call trace:
     dump_backtrace+0x0/0x170
     show_stack+0x1c/0x24
     sched_show_task+0x140/0x170
     dump_cpu_task+0x48/0x54
     rcu_dump_cpu_stacks+0xf0/0x134
     rcu_sched_clock_irq+0x8d8/0x9fc
     update_process_times+0xa0/0xec
     tick_sched_timer+0x5c/0xd0
     __hrtimer_run_queues+0x154/0x320
     hrtimer_interrupt+0x120/0x2f0
     arch_timer_handler_virt+0x38/0x44
     handle_percpu_devid_irq+0x9c/0x1e0
     handle_domain_irq+0x64/0x90
     gic_handle_irq+0x78/0xb0
     call_on_irq_stack+0x28/0x38
     do_interrupt_handler+0x54/0x5c
     el1_interrupt+0x2c/0x4c
     el1h_64_irq_handler+0x14/0x1c
     el1h_64_irq+0x74/0x78
     ath9k_txq_has_key+0x1bc/0x250 [ath9k]
     ath9k_set_key+0x1cc/0x3dc [ath9k]
     drv_set_key+0x78/0x170
     ieee80211_key_replace+0x564/0x6cc
     ieee80211_key_link+0x174/0x220
     ieee80211_add_key+0x11c/0x300
     nl80211_new_key+0x12c/0x330
     genl_family_rcv_msg_doit+0xbc/0x11c
     genl_rcv_msg+0xd8/0x1c4
     netlink_rcv_skb+0x40/0x100
     genl_rcv+0x3c/0x50
     netlink_unicast+0x1ec/0x2c0
     netlink_sendmsg+0x198/0x3c0
     ____sys_sendmsg+0x210/0x250
     ___sys_sendmsg+0x78/0xc4
     __sys_sendmsg+0x4c/0x90
     __arm64_sys_sendmsg+0x28/0x30
     invoke_syscall.constprop.0+0x60/0x100
     do_el0_svc+0x48/0xd0
     el0_svc+0x14/0x50
     el0t_64_sync_handler+0xa8/0xb0
     el0t_64_sync+0x158/0x15c
    
    This rcu stall is hard to reproduce as is, but changing ATH_TXFIFO_DEPTH
    from 8 to 2 makes it reasonably easy to reproduce.
    
    Fixes: ca2848022c12 ("ath9k: Postpone key cache entry deletion for TXQ frames reference it")
    Signed-off-by: Remi Pommarel <repk@triplefau.lt>
    Tested-by: Nicolas Escande <nico.escande@gmail.com>
    Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230609093744.1985-1-repk@triplefau.lt
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f94ab32211e25191c00fac4baef16fb2be023b53
Author: Eduard Zingerman <eddyz87@gmail.com>
Date:   Sat Jun 10 01:16:37 2023 +0300

    selftests/bpf: Fix invalid pointer check in get_xlated_program()
    
    [ Upstream commit b23ed4d74c4d583b5f621ee4c776699442833554 ]
    
    Dan Carpenter reported invalid check for calloc() result in
    test_verifier.c:get_xlated_program():
    
      ./tools/testing/selftests/bpf/test_verifier.c:1365 get_xlated_program()
      warn: variable dereferenced before check 'buf' (see line 1364)
    
      ./tools/testing/selftests/bpf/test_verifier.c
        1363                *cnt = xlated_prog_len / buf_element_size;
        1364                *buf = calloc(*cnt, buf_element_size);
        1365                if (!buf) {
    
      This should be if (!*buf) {
    
        1366                        perror("can't allocate xlated program buffer");
        1367                        return -ENOMEM;
    
    This commit refactors the get_xlated_program() to avoid using double
    pointer type.
    
    Fixes: 933ff53191eb ("selftests/bpf: specify expected instructions in test_verifier tests")
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Closes: https://lore.kernel.org/bpf/ZH7u0hEGVB4MjGZq@moroto/
    Link: https://lore.kernel.org/bpf/20230609221637.2631800-1-eddyz87@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38b5c35088546b92449caa840293a09a3828efe7
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 16 22:27:04 2023 +0200

    memstick r592: make memstick_debug_get_tpc_name() static
    
    [ Upstream commit 434587df9f7fd68575f99a889cc5f2efc2eaee5e ]
    
    There are no other files referencing this function, apparently
    it was left global to avoid an 'unused function' warning when
    the only caller is left out. With a 'W=1' build, it causes
    a 'missing prototype' warning though:
    
    drivers/memstick/host/r592.c:47:13: error: no previous prototype for 'memstick_debug_get_tpc_name' [-Werror=missing-prototypes]
    
    Annotate the function as 'static __maybe_unused' to avoid both
    problems.
    
    Fixes: 926341250102 ("memstick: add driver for Ricoh R5C592 card reader")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20230516202714.560929-1-arnd@kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34258564905d1a2d9d0f4081c05042f65bb91865
Author: Douglas Anderson <dianders@chromium.org>
Date:   Wed May 10 06:44:54 2023 -0700

    mmc: mediatek: Avoid ugly error message when SDIO wakeup IRQ isn't used
    
    [ Upstream commit a3332b7aad346b14770797e03ddd02ebdb14db41 ]
    
    When I boot a kukui-kodama board, I see an ugly warning in my kernel
    log:
      mtk-msdc 11240000.mmc: error -ENXIO: IRQ sdio_wakeup not found
    
    It's pretty normal not to have an "sdio_wakeup" IRQ defined. In fact,
    no device trees in mainline seem to have it. Let's use the
    platform_get_irq_byname_optional() to avoid the error message.
    
    Fixes: 527f36f5efa4 ("mmc: mediatek: add support for SDIO eint wakup IRQ")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
    Link: https://lore.kernel.org/r/20230510064434.1.I935404c5396e6bf952e99bb7ffb744c6f7fd430b@changeid
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 45fa5b0381e6add772ed49bf3bc72da67d4a9a32
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 27 20:34:34 2023 +0800

    kexec: fix a memory leak in crash_shrink_memory()
    
    [ Upstream commit 1cba6c4309f03de570202c46f03df3f73a0d4c82 ]
    
    Patch series "kexec: enable kexec_crash_size to support two crash kernel
    regions".
    
    When crashkernel=X fails to reserve region under 4G, it will fall back to
    reserve region above 4G and a region of the default size will also be
    reserved under 4G.  Unfortunately, /sys/kernel/kexec_crash_size only
    supports one crash kernel region now, the user cannot sense the low memory
    reserved by reading /sys/kernel/kexec_crash_size.  Also, low memory cannot
    be freed by writing this file.
    
    For example:
    resource_size(crashk_res) = 512M
    resource_size(crashk_low_res) = 256M
    
    The result of 'cat /sys/kernel/kexec_crash_size' is 512M, but it should be
    768M.  When we execute 'echo 0 > /sys/kernel/kexec_crash_size', the size
    of crashk_res becomes 0 and resource_size(crashk_low_res) is still 256 MB,
    which is incorrect.
    
    Since crashk_res manages the memory with high address and crashk_low_res
    manages the memory with low address, crashk_low_res is shrunken only when
    all crashk_res is shrunken.  And because when there is only one crash
    kernel region, crashk_res is always used.  Therefore, if all crashk_res is
    shrunken and crashk_low_res still exists, swap them.
    
    This patch (of 6):
    
    If the value of parameter 'new_size' is in the semi-open and semi-closed
    interval (crashk_res.end - KEXEC_CRASH_MEM_ALIGN + 1, crashk_res.end], the
    calculation result of ram_res is:
    
            ram_res->start = crashk_res.end + 1
            ram_res->end   = crashk_res.end
    
    The operation of insert_resource() fails, and ram_res is not added to
    iomem_resource.  As a result, the memory of the control block ram_res is
    leaked.
    
    In fact, on all architectures, the start address and size of crashk_res
    are already aligned by KEXEC_CRASH_MEM_ALIGN.  Therefore, we do not need
    to round up crashk_res.start again.  Instead, we should round up
    'new_size' in advance.
    
    Link: https://lkml.kernel.org/r/20230527123439.772-1-thunder.leizhen@huawei.com
    Link: https://lkml.kernel.org/r/20230527123439.772-2-thunder.leizhen@huawei.com
    Fixes: 6480e5a09237 ("kdump: add missing RAM resource in crash_shrink_memory()")
    Fixes: 06a7f711246b ("kexec: premit reduction of the reserved memory size")
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Acked-by: Baoquan He <bhe@redhat.com>
    Cc: Cong Wang <amwang@redhat.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e640900956684fcc6bbcaf8c4177553982d5c4f
Author: Douglas Anderson <dianders@chromium.org>
Date:   Fri May 19 10:18:26 2023 -0700

    watchdog/perf: more properly prevent false positives with turbo modes
    
    [ Upstream commit 4379e59fe5665cfda737e45b8bf2f05321ef049c ]
    
    Currently, in the watchdog_overflow_callback() we first check to see if
    the watchdog had been touched and _then_ we handle the workaround for
    turbo mode.  This order should be reversed.
    
    Specifically, "touching" the hardlockup detector's watchdog should avoid
    lockups being detected for one period that should be roughly the same
    regardless of whether we're running turbo or not.  That means that we
    should do the extra accounting for turbo _before_ we look at (and clear)
    the global indicating that we've been touched.
    
    NOTE: this fix is made based on code inspection.  I am not aware of any
    reports where the old code would have generated false positives.  That
    being said, this order seems more correct and also makes it easier down
    the line to share code with the "buddy" hardlockup detector.
    
    Link: https://lkml.kernel.org/r/20230519101840.v5.2.I843b0d1de3e096ba111a179f3adb16d576bef5c7@changeid
    Fixes: 7edaeb6841df ("kernel/watchdog: Prevent false positives with turbo modes")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Chen-Yu Tsai <wens@csie.org>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Colin Cross <ccross@android.com>
    Cc: Daniel Thompson <daniel.thompson@linaro.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Guenter Roeck <groeck@chromium.org>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Masayoshi Mizuma <msys.mizuma@gmail.com>
    Cc: Matthias Kaehlcke <mka@chromium.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Pingfan Liu <kernelfans@gmail.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: "Ravi V. Shankar" <ravi.v.shankar@intel.com>
    Cc: Ricardo Neri <ricardo.neri@intel.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Stephen Boyd <swboyd@chromium.org>
    Cc: Sumit Garg <sumit.garg@linaro.org>
    Cc: Tzung-Bi Shih <tzungbi@chromium.org>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce1710a3b6691157ad26b65964d845668efacf74
Author: Douglas Anderson <dianders@chromium.org>
Date:   Fri May 19 10:18:25 2023 -0700

    watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config
    
    [ Upstream commit 5e008df11c55228a86a1bae692cc2002503572c9 ]
    
    Patch series "watchdog/hardlockup: Add the buddy hardlockup detector", v5.
    
    This patch series adds the "buddy" hardlockup detector.  In brief, the
    buddy hardlockup detector can detect hardlockups without arch-level
    support by having CPUs checkup on a "buddy" CPU periodically.
    
    Given the new design of this patch series, testing all combinations is
    fairly difficult. I've attempted to make sure that all combinations of
    CONFIG_ options are good, but it wouldn't surprise me if I missed
    something. I apologize in advance and I'll do my best to fix any
    problems that are found.
    
    This patch (of 18):
    
    The real watchdog_update_hrtimer_threshold() is defined in
    kernel/watchdog_hld.c.  That file is included if
    CONFIG_HARDLOCKUP_DETECTOR_PERF and the function is defined in that file
    if CONFIG_HARDLOCKUP_CHECK_TIMESTAMP.
    
    The dummy version of the function in "nmi.h" didn't get that quite right.
    While this doesn't appear to be a huge deal, it's nice to make it
    consistent.
    
    It doesn't break builds because CHECK_TIMESTAMP is only defined by x86 so
    others don't get a double definition, and x86 uses perf lockup detector,
    so it gets the out of line version.
    
    Link: https://lkml.kernel.org/r/20230519101840.v5.18.Ia44852044cdcb074f387e80df6b45e892965d4a1@changeid
    Link: https://lkml.kernel.org/r/20230519101840.v5.1.I8cbb2f4fa740528fcfade4f5439b6cdcdd059251@changeid
    Fixes: 7edaeb6841df ("kernel/watchdog: Prevent false positives with turbo modes")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Chen-Yu Tsai <wens@csie.org>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Daniel Thompson <daniel.thompson@linaro.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Guenter Roeck <groeck@chromium.org>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Masayoshi Mizuma <msys.mizuma@gmail.com>
    Cc: Matthias Kaehlcke <mka@chromium.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Pingfan Liu <kernelfans@gmail.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: "Ravi V. Shankar" <ravi.v.shankar@intel.com>
    Cc: Ricardo Neri <ricardo.neri@intel.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Stephen Boyd <swboyd@chromium.org>
    Cc: Sumit Garg <sumit.garg@linaro.org>
    Cc: Tzung-Bi Shih <tzungbi@chromium.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Colin Cross <ccross@android.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 664579c7fb8a9cd9867396468b69e4d085838ea4
Author: Haifeng Xu <haifeng.xu@shopee.com>
Date:   Mon May 22 09:52:33 2023 +0000

    selftests: cgroup: fix unexpected failure on test_memcg_low
    
    [ Upstream commit 19ab365762c6cc39dfdee9e13ab0d12fe4b5540d ]
    
    Since commit f079a020ba95 ("selftests: memcg: factor out common parts of
    memory.{low,min} tests"), the value used in second alloc_anon has changed
    from 148M to 170M.  Because memory.low allows reclaiming page cache in
    child cgroups, so the memory.current is close to 30M instead of 50M.
    Therefore, adjust the expected value of parent cgroup.
    
    Link: https://lkml.kernel.org/r/20230522095233.4246-2-haifeng.xu@shopee.com
    Fixes: f079a020ba95 ("selftests: memcg: factor out common parts of memory.{low,min} tests")
    Signed-off-by: Haifeng Xu <haifeng.xu@shopee.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Shakeel Butt <shakeelb@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2920fd96f53f1c4597b083e6acdd8d762b28aa6e
Author: Karol Kolacinski <karol.kolacinski@intel.com>
Date:   Thu Jun 1 14:15:03 2023 -0700

    ice: handle extts in the miscellaneous interrupt thread
    
    [ Upstream commit 6e8b2c88fc8cf95ed09de25946b20b7536c88cd5 ]
    
    The ice_ptp_extts_work() and ice_ptp_periodic_work() functions are both
    scheduled on the same kthread worker, pf.ptp.kworker. The
    ice_ptp_periodic_work() function sends to the firmware to interact with the
    PHY, and must block to wait for responses.
    
    This can cause delay in responding to the PFINT_OICR_TSYN_EVNT interrupt
    cause, ultimately resulting in disruption to processing an input signal of
    the frequency is high enough. In our testing, even 100 Hz signals get
    disrupted.
    
    Fix this by instead processing the signal inside the miscellaneous
    interrupt thread prior to handling Tx timestamps.
    
    Use atomic bits in a new pf->misc_thread bitmap in order to safely
    communicate which tasks require processing within the
    ice_misc_intr_thread_fn(). This ensures the communication of desired tasks
    from the ice_misc_intr() are correctly processed without racing even in the
    event that the interrupt triggers again before the thread function exits.
    
    Fixes: 172db5f91d5f ("ice: add support for auxiliary input/output pins")
    Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
    Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
    Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c333e7da7304b1d9ae1b02a429889ba1d1af12b
Author: Marek Vasut <marex@denx.de>
Date:   Sun May 28 00:28:59 2023 +0200

    wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown
    
    [ Upstream commit e74f562328b03fbe9cf438f958464dff3a644dfc ]
    
    It makes no sense to set MMC_PM_KEEP_POWER in shutdown. The flag
    indicates to the MMC subsystem to keep the slot powered on during
    suspend, but in shutdown the slot should actually be powered off.
    Drop this call.
    
    Fixes: 063848c3e155 ("rsi: sdio: Add WOWLAN support for S5 shutdown state")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230527222859.273768-1-marex@denx.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1b51236aa49a0564280bd45c94118cab6d9b0fbd
Author: Marek Vasut <marex@denx.de>
Date:   Sun May 28 00:28:33 2023 +0200

    wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled
    
    [ Upstream commit b241e260820b68c09586e8a0ae0fc23c0e3215bd ]
    
    In case WoWlan was never configured during the operation of the system,
    the hw->wiphy->wowlan_config will be NULL. rsi_config_wowlan() checks
    whether wowlan_config is non-NULL and if it is not, then WARNs about it.
    The warning is valid, as during normal operation the rsi_config_wowlan()
    should only ever be called with non-NULL wowlan_config. In shutdown this
    rsi_config_wowlan() should only ever be called if WoWlan was configured
    before by the user.
    
    Add checks for non-NULL wowlan_config into the shutdown hook. While at it,
    check whether the wiphy is also non-NULL before accessing wowlan_config .
    Drop the single-use wowlan_config variable, just inline it into function
    call.
    
    Fixes: 16bbc3eb8372 ("rsi: fix null pointer dereference during rsi_shutdown()")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230527222833.273741-1-marex@denx.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4b1db7aa31d66c400f274fabc4331e767ef596f
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Tue Jun 6 13:30:47 2023 +0200

    selftests/bpf: Fix check_mtu using wrong variable type
    
    [ Upstream commit 095641817e1bf6aa2560e025e47575188ee3edaf ]
    
    Dan Carpenter found via Smatch static checker, that unsigned 'mtu_lo' is
    never less than zero.
    
    Variable mtu_lo should have been an 'int', because read_mtu_device_lo()
    uses minus as error indications.
    
    Fixes: b62eba563229 ("selftests/bpf: Tests using bpf_check_mtu BPF-helper")
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Link: https://lore.kernel.org/bpf/168605104733.3636467.17945947801753092590.stgit@firesoul
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e17fdb2e80bb64b66899fe1dfeeb58a196d97f33
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sun Jun 4 12:11:20 2023 +0300

    wifi: mac80211: recalc min chandef for new STA links
    
    [ Upstream commit ba7af2654e3b7b810c750b3c6106f6f20b81cc88 ]
    
    When adding a new link to a station, this needs to cause a
    recalculation of the minimum chandef since otherwise we can
    have a higher bandwidth station connected on that link than
    the link is operating at. Do the appropriate recalc.
    
    Fixes: cb71f1d136a6 ("wifi: mac80211: add sta link addition/removal")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230604120651.377adf3c789a.I91bf28f399e16e6ac1f83bacd1029a698b4e6685@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4de2d90f88677069f030011c884e53a8d966adcf
Author: Viktor Malik <vmalik@redhat.com>
Date:   Tue May 30 14:33:52 2023 +0200

    tools/resolve_btfids: Fix setting HOSTCFLAGS
    
    [ Upstream commit edd75c802855271c8610f58a2fc9e54aefc49ce5 ]
    
    Building BPF selftests with custom HOSTCFLAGS yields an error:
    
        # make HOSTCFLAGS="-O2"
        [...]
          HOSTCC  ./tools/testing/selftests/bpf/tools/build/resolve_btfids/main.o
        main.c:73:10: fatal error: linux/rbtree.h: No such file or directory
           73 | #include <linux/rbtree.h>
              |          ^~~~~~~~~~~~~~~~
    
    The reason is that tools/bpf/resolve_btfids/Makefile passes header
    include paths by extending HOSTCFLAGS which is overridden by setting
    HOSTCFLAGS in the make command (because of Makefile rules [1]).
    
    This patch fixes the above problem by passing the include paths via
    `HOSTCFLAGS_resolve_btfids` which is used by tools/build/Build.include
    and can be combined with overridding HOSTCFLAGS.
    
    [1] https://www.gnu.org/software/make/manual/html_node/Overriding.html
    
    Fixes: 56a2df7615fa ("tools/resolve_btfids: Compile resolve_btfids as host program")
    Signed-off-by: Viktor Malik <vmalik@redhat.com>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Link: https://lore.kernel.org/bpf/20230530123352.1308488-1-vmalik@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42c2ca95ec7c614d522b8f68c64ede1c7f4a310e
Author: Youghandhar Chintala <quic_youghand@quicinc.com>
Date:   Fri May 26 12:41:08 2023 +0300

    wifi: ath10k: Trigger STA disconnect after reconfig complete on hardware restart
    
    [ Upstream commit 75bd32f5ce94bc365ba0b9b68bcf9de84a391d37 ]
    
    Currently, on WCN3990, the station disconnect after hardware recovery is
    not working as expected. This is because of setting the
    IEEE80211_SDATA_DISCONNECT_HW_RESTART flag very early in the hardware
    recovery process even before the driver invokes ieee80211_hw_restart().
    On the contrary, mac80211 expects this flag to be set after
    ieee80211_hw_restart() is invoked for it to trigger station disconnect.
    
    Set the IEEE80211_SDATA_DISCONNECT_HW_RESTART flag in
    ath10k_reconfig_complete() instead to fix this.
    
    The other targets are not affected by this change, since the hardware
    params flag is not set.
    
    Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2.c10-00754-QCAHLSWMTPL-1
    
    Fixes: 2c3fc50591ff ("ath10k: Trigger sta disconnect on hardware restart")
    Signed-off-by: Youghandhar Chintala <quic_youghand@quicinc.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230518101515.3820-1-quic_youghand@quicinc.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d7235888d42eea8df1e350de2293d6a6ee269e2
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Tue May 30 16:30:41 2023 +0200

    samples/bpf: xdp1 and xdp2 reduce XDPBUFSIZE to 60
    
    [ Upstream commit 60548b825b082cedf89b275c21c28b1e1d030e50 ]
    
    Default samples/pktgen scripts send 60 byte packets as hardware adds
    4-bytes FCS checksum, which fulfils minimum Ethernet 64 bytes frame
    size.
    
    XDP layer will not necessary have access to the 4-bytes FCS checksum.
    
    This leads to bpf_xdp_load_bytes() failing as it tries to copy 64-bytes
    from an XDP packet that only have 60-bytes available.
    
    Fixes: 772251742262 ("samples/bpf: fixup some tools to be able to support xdp multibuffer")
    Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://lore.kernel.org/bpf/168545704139.2996228.2516528552939485216.stgit@firesoul
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22909742080e1f1af508941744e613c8f8101a01
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Wed May 24 12:39:34 2023 +0200

    wifi: rtw88: usb: silence log flooding error message
    
    [ Upstream commit 1f1784a59caf3eefd127908a1a3cf224017ff9c7 ]
    
    When receiving more rx packets than the kernel can handle the driver
    drops the packets and issues an error message. This is bad for two
    reasons. The logs are flooded with myriads of messages, but then time
    consumed for printing messages in that critical code path brings down
    the device. After some time of excessive rx load the driver responds
    with:
    
    rtw_8822cu 1-1:1.2: failed to get tx report from firmware
    rtw_8822cu 1-1:1.2: firmware failed to report density after scan
    rtw_8822cu 1-1:1.2: firmware failed to report density after scan
    
    The device stops working until being replugged.
    
    Fix this by lowering the priority to debug level and also by
    ratelimiting it.
    
    Fixes: a82dfd33d1237 ("wifi: rtw88: Add common USB chip support")
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230524103934.1019096-1-s.hauer@pengutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6a444dffb75238c47d2d852f12cf53f12ad2cba8
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Wed May 17 18:03:17 2023 +0300

    wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
    
    [ Upstream commit 061b0cb9327b80d7a0f63a33e7c3e2a91a71f142 ]
    
    A bad USB device is able to construct a service connection response
    message with target endpoint being ENDPOINT0 which is reserved for
    HTC_CTRL_RSVD_SVC and should not be modified to be used for any other
    services.
    
    Reject such service connection responses.
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Fixes: fb9987d0f748 ("ath9k_htc: Support for AR9271 chipset.")
    Reported-by: syzbot+b68fbebe56d8362907e8@syzkaller.appspotmail.com
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230516150427.79469-1-pchelkin@ispras.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c24d76273d1edf20d215e955e59de1d4ee422d1d
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 20 10:13:22 2023 +0200

    wifi: ray_cs: Fix an error handling path in ray_probe()
    
    [ Upstream commit 4f8d66a9fb2edcd05c1e563456a55a08910bfb37 ]
    
    Should ray_config() fail, some resources need to be released as already
    done in the remove function.
    
    While at it, remove a useless and erroneous comment. The probe is
    ray_probe(), not ray_attach().
    
    Fixes: 15b99ac17295 ("[PATCH] pcmcia: add return value to _config() functions")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/8c544d18084f8b37dd108e844f7e79e85ff708ff.1684570373.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23474ba8935fb25dee6b72c55d07859bb2f2cc39
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 20 10:05:08 2023 +0200

    wifi: wl3501_cs: Fix an error handling path in wl3501_probe()
    
    [ Upstream commit 391af06a02e7642039ac5f6c4b2c034ab0992b5d ]
    
    Should wl3501_config() fail, some resources need to be released as already
    done in the remove function.
    
    Fixes: 15b99ac17295 ("[PATCH] pcmcia: add return value to _config() functions")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/7cc9c9316489b7d69b36aeb0edd3123538500b41.1684569865.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e63205b114ecfcde9e4e9443d7a67883743145eb
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 20 09:53:14 2023 +0200

    wifi: atmel: Fix an error handling path in atmel_probe()
    
    [ Upstream commit 6b92e4351a29af52c285fe235e6e4d1a75de04b2 ]
    
    Should atmel_config() fail, some resources need to be released as already
    done in the remove function.
    
    While at it, remove a useless and erroneous comment. The probe is
    atmel_probe(), not atmel_attach().
    
    Fixes: 15b99ac17295 ("[PATCH] pcmcia: add return value to _config() functions")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/1e65f174607a83348034197fa7d603bab10ba4a9.1684569156.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 752f0a8cfeee8f91d6301b9fe78a717b545f53bd
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 20 09:38:22 2023 +0200

    wifi: orinoco: Fix an error handling path in orinoco_cs_probe()
    
    [ Upstream commit 67a81d911c01225f426cc6bee2373df044c1a9b7 ]
    
    Should orinoco_cs_config() fail, some resources need to be released as
    already done in the remove function.
    
    While at it, remove a useless and erroneous comment. The probe is
    orinoco_cs_probe(), not orinoco_cs_attach().
    
    Fixes: 15b99ac17295 ("[PATCH] pcmcia: add return value to _config() functions")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/e24735ce4d82901d5f7ea08419eea53bfdde3d65.1684568286.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1428efb12c5303bf9a8d0c4b4cdba504389ad324
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 20 09:29:46 2023 +0200

    wifi: orinoco: Fix an error handling path in spectrum_cs_probe()
    
    [ Upstream commit 925244325159824385209e3e0e3f91fa6bf0646c ]
    
    Should spectrum_cs_config() fail, some resources need to be released as
    already done in the remove function.
    
    While at it, remove a useless and erroneous comment. The probe is
    spectrum_cs_probe(), not spectrum_cs_attach().
    
    Fixes: 15b99ac17295 ("[PATCH] pcmcia: add return value to _config() functions")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/c0bc0c21c58ca477fc5521607615bafbf2aef8eb.1684567733.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ab000dad83e7163d7b4a91b31480ee3b1c6666a0
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu May 25 13:13:59 2023 +0200

    regulator: core: Streamline debugfs operations
    
    [ Upstream commit 08880713ceec023dd94d634f1e8902728c385939 ]
    
    If CONFIG_DEBUG_FS is not set:
    
        regulator: Failed to create debugfs directory
        ...
        regulator-dummy: Failed to create debugfs directory
    
    As per the comments for debugfs_create_dir(), errors returned by this
    function should be expected, and ignored:
    
     * If debugfs is not enabled in the kernel, the value -%ENODEV will be
     * returned.
     *
     * NOTE: it's expected that most callers should _ignore_ the errors returned
     * by this function. Other debugfs functions handle the fact that the "dentry"
     * passed to them could be an error and they don't crash in that case.
     * Drivers should generally work fine even if debugfs fails to init anyway.
    
    Adhere to the debugfs spirit, and streamline all operations by:
      1. Demoting the importance of the printed error messages to debug
         level, like is already done in create_regulator(),
      2. Further ignoring any returned errors, as by design, all debugfs
         functions are no-ops when passed an error pointer.
    
    Fixes: 2bf1c45be3b8f3a3 ("regulator: Fix error checking for debugfs_create_dir")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/2f8bb6e113359ddfab7b59e4d4274bd4c06d6d0a.1685013051.git.geert+renesas@glider.be
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2761eb1278976de58d2ab73f6f79df2224448ac4
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu May 25 13:13:58 2023 +0200

    regulator: core: Fix more error checking for debugfs_create_dir()
    
    [ Upstream commit 2715bb11cfff964aa33946847f9527cfbd4874f5 ]
    
    In case of failure, debugfs_create_dir() does not return NULL, but an
    error pointer.  Most incorrect error checks were fixed, but the one in
    create_regulator() was forgotten.
    
    Fix the remaining error check.
    
    Fixes: 2bf1c45be3b8f3a3 ("regulator: Fix error checking for debugfs_create_dir")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/ee980a108b5854dd8ce3630f8f673e784e057d17.1685013051.git.geert+renesas@glider.be
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2cc34bb57d6e19143b338387917807f0537c642
Author: Alexey Gladkov <legion@kernel.org>
Date:   Wed May 17 11:49:46 2023 +0200

    selftests/bpf: Do not use sign-file as testcase
    
    [ Upstream commit f04a32b2c5b539e3c097cb5c7c1df12a8f4a0cf0 ]
    
    The sign-file utility (from scripts/) is used in prog_tests/verify_pkcs7_sig.c,
    but the utility should not be called as a test. Executing this utility produces
    the following error:
    
      selftests: /linux/tools/testing/selftests/bpf: urandom_read
      ok 16 selftests: /linux/tools/testing/selftests/bpf: urandom_read
    
      selftests: /linux/tools/testing/selftests/bpf: sign-file
      not ok 17 selftests: /linux/tools/testing/selftests/bpf: sign-file # exit=2
    
    Also, urandom_read is mistakenly used as a test. It does not lead to an error,
    but should be moved over to TEST_GEN_FILES as well. The empty TEST_CUSTOM_PROGS
    can then be removed.
    
    Fixes: fc97590668ae ("selftests/bpf: Add test for bpf_verify_pkcs7_signature() kfunc")
    Signed-off-by: Alexey Gladkov <legion@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Roberto Sassu <roberto.sassu@huawei.com>
    Acked-by: Stanislav Fomichev <sdf@google.com>
    Link: https://lore.kernel.org/bpf/ZEuWFk3QyML9y5QQ@example.org
    Link: https://lore.kernel.org/bpf/88e3ab23029d726a2703adcf6af8356f7a2d3483.1684316821.git.legion@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f72c67d1a82dada7d6d504c806e111e913721a30
Author: Yafang Shao <laoar.shao@gmail.com>
Date:   Mon May 15 13:08:47 2023 +0000

    bpf: Fix memleak due to fentry attach failure
    
    [ Upstream commit 108598c39eefbedc9882273ac0df96127a629220 ]
    
    If it fails to attach fentry, the allocated bpf trampoline image will be
    left in the system. That can be verified by checking /proc/kallsyms.
    
    This meamleak can be verified by a simple bpf program as follows:
    
      SEC("fentry/trap_init")
      int fentry_run()
      {
          return 0;
      }
    
    It will fail to attach trap_init because this function is freed after
    kernel init, and then we can find the trampoline image is left in the
    system by checking /proc/kallsyms.
    
      $ tail /proc/kallsyms
      ffffffffc0613000 t bpf_trampoline_6442453466_1  [bpf]
      ffffffffc06c3000 t bpf_trampoline_6442453466_1  [bpf]
    
      $ bpftool btf dump file /sys/kernel/btf/vmlinux | grep "FUNC 'trap_init'"
      [2522] FUNC 'trap_init' type_id=119 linkage=static
    
      $ echo $((6442453466 & 0x7fffffff))
      2522
    
    Note that there are two left bpf trampoline images, that is because the
    libbpf will fallback to raw tracepoint if -EINVAL is returned.
    
    Fixes: e21aa341785c ("bpf: Fix fexit trampoline.")
    Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Song Liu <song@kernel.org>
    Cc: Jiri Olsa <olsajiri@gmail.com>
    Link: https://lore.kernel.org/bpf/20230515130849.57502-2-laoar.shao@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6905619384c263514c45e9c78cf8e9384c00d3ac
Author: Yafang Shao <laoar.shao@gmail.com>
Date:   Mon May 15 13:08:48 2023 +0000

    bpf: Remove bpf trampoline selector
    
    [ Upstream commit 47e79cbeea4b3891ad476047f4c68543eb51c8e0 ]
    
    After commit e21aa341785c ("bpf: Fix fexit trampoline."), the selector is only
    used to indicate how many times the bpf trampoline image are updated and been
    displayed in the trampoline ksym name. After the trampoline is freed, the
    selector will start from 0 again. So the selector is a useless value to the
    user. We can remove it.
    
    If the user want to check whether the bpf trampoline image has been updated
    or not, the user can compare the address. Each time the trampoline image is
    updated, the address will change consequently. Jiri also pointed out another
    issue that perf is still using the old name "bpf_trampoline_%lu", so this
    change can fix the issue in perf.
    
    Fixes: e21aa341785c ("bpf: Fix fexit trampoline.")
    Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Song Liu <song@kernel.org>
    Cc: Jiri Olsa <olsajiri@gmail.com>
    Link: https://lore.kernel.org/bpf/ZFvOOlrmHiY9AgXE@krava
    Link: https://lore.kernel.org/bpf/20230515130849.57502-3-laoar.shao@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b948de91bcd7ddfd36f48a13fb743bce098d592
Author: Alan Maguire <alan.maguire@oracle.com>
Date:   Fri May 12 12:31:34 2023 +0100

    bpftool: JIT limited misreported as negative value on aarch64
    
    [ Upstream commit 04cb8453a91c7c22f60ddadb6cef0d19abb33bb5 ]
    
    On aarch64, "bpftool feature" reports an incorrect BPF JIT limit:
    
    $ sudo /sbin/bpftool feature
    Scanning system configuration...
    bpf() syscall restricted to privileged users
    JIT compiler is enabled
    JIT compiler hardening is disabled
    JIT compiler kallsyms exports are enabled for root
    skipping kernel config, can't open file: No such file or directory
    Global memory limit for JIT compiler for unprivileged users is -201326592 bytes
    
    This is because /proc/sys/net/core/bpf_jit_limit reports
    
    $ sudo cat /proc/sys/net/core/bpf_jit_limit
    68169519595520
    
    ...and an int is assumed in read_procfs().  Change read_procfs()
    to return a long to avoid negative value reporting.
    
    Fixes: 7a4522bbef0c ("tools: bpftool: add probes for /proc/ eBPF parameters")
    Reported-by: Nicky Veitch <nicky.veitch@oracle.com>
    Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Acked-by: Quentin Monnet <quentin@isovalent.com>
    Link: https://lore.kernel.org/bpf/20230512113134.58996-1-alan.maguire@oracle.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff0d54a4a38c8ff0298619251e1432d3e6e0486b
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sat May 13 13:52:04 2023 +0200

    nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect()
    
    [ Upstream commit 0d9b41daa5907756a31772d8af8ac5ff25cf17c1 ]
    
    If sock->service_name is NULL, the local variable
    service_name_tlv_length will not be assigned by nfc_llcp_build_tlv(),
    later leading to using value frmo the stack.  Smatch warning:
    
      net/nfc/llcp_commands.c:442 nfc_llcp_send_connect() error: uninitialized symbol 'service_name_tlv_length'.
    
    Fixes: de9e5aeb4f40 ("NFC: llcp: Fix usage of llcp_add_tlv()")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95a3b64443cfad3cbd7b0ec43683c0eff76cd9db
Author: Joy Chakraborty <joychakr@google.com>
Date:   Fri May 12 10:47:45 2023 +0000

    spi: dw: Round of n_bytes to power of 2
    
    [ Upstream commit 9f34baf67e4d08908fd94ff29c825bb673295336 ]
    
    n_bytes variable in the driver represents the number of bytes per word
    that needs to be sent/copied to fifo. Bits/word can be between 8 and 32
    bits from the client but in memory they are a power of 2, same is mentioned
    in spi.h header:
    "
     * @bits_per_word: Data transfers involve one or more words; word sizes
     *      like eight or 12 bits are common.  In-memory wordsizes are
     *      powers of two bytes (e.g. 20 bit samples use 32 bits).
     *      This may be changed by the device's driver, or left at the
     *      default (0) indicating protocol words are eight bit bytes.
     *      The spi_transfer.bits_per_word can override this for each transfer.
    "
    
    Hence, round of n_bytes to a power of 2 to avoid values like 3 which
    would generate unalligned/odd accesses to memory/fifo.
    
    * tested on Baikal-T1 based system with DW SPI-looped back interface
    transferring a chunk of data with DFS:8,12,16.
    
    Fixes: a51acc2400d4 ("spi: dw: Add support for 32-bits max xfer size")
    Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com
    Signed-off-by: Joy Chakraborty <joychakr@google.com
    Reviewed-by: Serge Semin <fancer.lancer@gmail.com
    Tested-by: Serge Semin <fancer.lancer@gmail.com
    Link: https://lore.kernel.org/r/20230512104746.1797865-4-joychakr@google.com
    Signed-off-by: Mark Brown <broonie@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1b4a82c292c7260baf515c45a25cb2f345ccb25d
Author: Stanislav Fomichev <sdf@google.com>
Date:   Thu May 11 10:04:53 2023 -0700

    bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen
    
    [ Upstream commit 29ebbba7d46136cba324264e513a1e964ca16c0a ]
    
    With the way the hooks implemented right now, we have a special
    condition: optval larger than PAGE_SIZE will expose only first 4k into
    BPF; any modifications to the optval are ignored. If the BPF program
    doesn't handle this condition by resetting optlen to 0,
    the userspace will get EFAULT.
    
    The intention of the EFAULT was to make it apparent to the
    developers that the program is doing something wrong.
    However, this inadvertently might affect production workloads
    with the BPF programs that are not too careful (i.e., returning EFAULT
    for perfectly valid setsockopt/getsockopt calls).
    
    Let's try to minimize the chance of BPF program screwing up userspace
    by ignoring the output of those BPF programs (instead of returning
    EFAULT to the userspace). pr_info_once those cases to
    the dmesg to help with figuring out what's going wrong.
    
    Fixes: 0d01da6afc54 ("bpf: implement getsockopt and setsockopt hooks")
    Suggested-by: Martin KaFai Lau <martin.lau@kernel.org>
    Signed-off-by: Stanislav Fomichev <sdf@google.com>
    Link: https://lore.kernel.org/r/20230511170456.1759459-2-sdf@google.com
    Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e0a58d591b6def284b53b5e3c3b2fed97473d1c
Author: Andrii Nakryiko <andrii@kernel.org>
Date:   Mon May 8 23:55:02 2023 -0700

    libbpf: fix offsetof() and container_of() to work with CO-RE
    
    [ Upstream commit bdeeed3498c7871c17465bb4f11d1bc67f9098af ]
    
    It seems like __builtin_offset() doesn't preserve CO-RE field
    relocations properly. So if offsetof() macro is defined through
    __builtin_offset(), CO-RE-enabled BPF code using container_of() will be
    subtly and silently broken.
    
    To avoid this problem, redefine offsetof() and container_of() in the
    form that works with CO-RE relocations more reliably.
    
    Fixes: 5fbc220862fc ("tools/libpf: Add offsetof/container_of macro in bpf_helpers.h")
    Reported-by: Lennart Poettering <lennart@poettering.net>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/r/20230509065502.2306180-1-andrii@kernel.org
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4938f4a4b1384e615f3dbf4e86904bcc87620d15
Author: Alexander Mikhalitsyn <alexander@mihalicyn.com>
Date:   Thu May 11 15:25:06 2023 +0200

    sctp: add bpf_bypass_getsockopt proto callback
    
    [ Upstream commit 2598619e012cee5273a2821441b9a051ad931249 ]
    
    Implement ->bpf_bypass_getsockopt proto callback and filter out
    SCTP_SOCKOPT_PEELOFF, SCTP_SOCKOPT_PEELOFF_FLAGS and SCTP_SOCKOPT_CONNECTX3
    socket options from running eBPF hook on them.
    
    SCTP_SOCKOPT_PEELOFF and SCTP_SOCKOPT_PEELOFF_FLAGS options do fd_install(),
    and if BPF_CGROUP_RUN_PROG_GETSOCKOPT hook returns an error after success of
    the original handler sctp_getsockopt(...), userspace will receive an error
    from getsockopt syscall and will be not aware that fd was successfully
    installed into a fdtable.
    
    As pointed by Marcelo Ricardo Leitner it seems reasonable to skip
    bpf getsockopt hook for SCTP_SOCKOPT_CONNECTX3 sockopt too.
    Because internaly, it triggers connect() and if error is masked
    then userspace will be confused.
    
    This patch was born as a result of discussion around a new SCM_PIDFD interface:
    https://lore.kernel.org/all/20230413133355.350571-3-aleksandr.mikhalitsyn@canonical.com/
    
    Fixes: 0d01da6afc54 ("bpf: implement getsockopt and setsockopt hooks")
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Stanislav Fomichev <sdf@google.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Cc: Xin Long <lucien.xin@gmail.com>
    Cc: linux-sctp@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Suggested-by: Stanislav Fomichev <sdf@google.com>
    Acked-by: Stanislav Fomichev <sdf@google.com>
    Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
    Acked-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 24d47ae334021f345feda2cd54129469f0bb7750
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 6 15:53:15 2023 +0200

    wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan()
    
    [ Upstream commit d9aef04fcfa81ee4fb2804a21a3712b7bbd936af ]
    
    The type of "mwifiex_adapter->nd_info" is "struct cfg80211_wowlan_nd_info",
    not "struct cfg80211_wowlan_nd_match".
    
    Use struct_size() to ease the computation of the needed size.
    
    The current code over-allocates some memory, so is safe.
    But it wastes 32 bytes.
    
    Fixes: 7d7f07d8c5d3 ("mwifiex: add wowlan net-detect support")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/7a6074fb056d2181e058a3cc6048d8155c20aec7.1683371982.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f602275841f518b61e0452fea84490fcdadf372
Author: Amisha Patel <amisha.patel@microchip.com>
Date:   Fri Apr 21 18:10:20 2023 +0000

    wifi: wilc1000: fix for absent RSN capabilities WFA testcase
    
    [ Upstream commit 9ce4bb09123e9754996e358bd808d39f5d112899 ]
    
    Mandatory WFA testcase
    CT_Security_WPA2Personal_STA_RSNEBoundsVerification-AbsentRSNCap,
    performs bounds verfication on Beacon and/or Probe response frames. It
    failed and observed the reason to be absence of cipher suite and AKM
    suite in RSN information. To fix this, enable the RSN flag before extracting RSN
    capabilities.
    
    Fixes: cd21d99e595e ("wifi: wilc1000: validate pairwise and authentication suite offsets")
    Signed-off-by: Amisha Patel <amisha.patel@microchip.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230421181005.4865-1-amisha.patel@microchip.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11f2a1367d4a1fbd9093070550ac21d533a5c3c7
Author: Vijaya Krishna Nivarthi <quic_vnivarth@quicinc.com>
Date:   Tue Apr 25 14:12:08 2023 +0530

    spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG
    
    [ Upstream commit 5fd7c99ecf45c8ee8a9b1268f0ffc91cc6271da2 ]
    
    The CS_TOGGLE bit when set is supposed to instruct FW to
    toggle CS line between words. The driver with intent of
    disabling this behaviour has been unsetting BIT(0). This has
    not caused any trouble so far because the original BIT(1)
    is untouched and BIT(0) likely wasn't being used.
    
    Correct this to prevent a potential future bug.
    
    Signed-off-by: Vijaya Krishna Nivarthi <quic_vnivarth@quicinc.com
    Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org
    Fixes: 561de45f72bd ("spi: spi-geni-qcom: Add SPI driver support for GENI based QUP")
    Reviewed-by: Douglas Anderson <dianders@chromium.org
    Link: https://lore.kernel.org/r/1682412128-1913-1-git-send-email-quic_vnivarth@quicinc.com
    Signed-off-by: Mark Brown <broonie@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dfc004688518d24159606289c74d0c4e123e6436
Author: Pengcheng Yang <yangpc@wangsu.com>
Date:   Fri May 5 16:50:58 2023 +0800

    samples/bpf: Fix buffer overflow in tcp_basertt
    
    [ Upstream commit f4dea9689c5fea3d07170c2cb0703e216f1a0922 ]
    
    Using sizeof(nv) or strlen(nv)+1 is correct.
    
    Fixes: c890063e4404 ("bpf: sample BPF_SOCKET_OPS_BASE_RTT program")
    Signed-off-by: Pengcheng Yang <yangpc@wangsu.com>
    Link: https://lore.kernel.org/r/1683276658-2860-1-git-send-email-yangpc@wangsu.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b728d993cbee21b3336ef33622629a96bd399cf8
Author: Martin KaFai Lau <martin.lau@kernel.org>
Date:   Thu Apr 27 18:36:38 2023 -0700

    libbpf: btf_dump_type_data_check_overflow needs to consider BTF_MEMBER_BITFIELD_SIZE
    
    [ Upstream commit c39028b333f3a3a765c5c0b9726b8e38aedf0ba1 ]
    
    The btf_dump/struct_data selftest is failing with:
    
      [...]
      test_btf_dump_struct_data:FAIL:unexpected return value dumping fs_context unexpected unexpected return value dumping fs_context: actual -7 != expected 264
      [...]
    
    The reason is in btf_dump_type_data_check_overflow(). It does not use
    BTF_MEMBER_BITFIELD_SIZE from the struct's member (btf_member). Instead,
    it is using the enum size which is 4. It had been working till the recent
    commit 4e04143c869c ("fs_context: drop the unused lsm_flags member")
    removed an integer member which also removed the 4 bytes padding at the
    end of the fs_context. Missing this 4 bytes padding exposed this bug. In
    particular, when btf_dump_type_data_check_overflow() reaches the member
    'phase', -E2BIG is returned.
    
    The fix is to pass bit_sz to btf_dump_type_data_check_overflow(). In
    btf_dump_type_data_check_overflow(), it does a different size check when
    bit_sz is not zero.
    
    The current fs_context:
    
    [3600] ENUM 'fs_context_purpose' encoding=UNSIGNED size=4 vlen=3
            'FS_CONTEXT_FOR_MOUNT' val=0
            'FS_CONTEXT_FOR_SUBMOUNT' val=1
            'FS_CONTEXT_FOR_RECONFIGURE' val=2
    [3601] ENUM 'fs_context_phase' encoding=UNSIGNED size=4 vlen=7
            'FS_CONTEXT_CREATE_PARAMS' val=0
            'FS_CONTEXT_CREATING' val=1
            'FS_CONTEXT_AWAITING_MOUNT' val=2
            'FS_CONTEXT_AWAITING_RECONF' val=3
            'FS_CONTEXT_RECONF_PARAMS' val=4
            'FS_CONTEXT_RECONFIGURING' val=5
            'FS_CONTEXT_FAILED' val=6
    [3602] STRUCT 'fs_context' size=264 vlen=21
            'ops' type_id=3603 bits_offset=0
            'uapi_mutex' type_id=235 bits_offset=64
            'fs_type' type_id=872 bits_offset=1216
            'fs_private' type_id=21 bits_offset=1280
            'sget_key' type_id=21 bits_offset=1344
            'root' type_id=781 bits_offset=1408
            'user_ns' type_id=251 bits_offset=1472
            'net_ns' type_id=984 bits_offset=1536
            'cred' type_id=1785 bits_offset=1600
            'log' type_id=3621 bits_offset=1664
            'source' type_id=42 bits_offset=1792
            'security' type_id=21 bits_offset=1856
            's_fs_info' type_id=21 bits_offset=1920
            'sb_flags' type_id=20 bits_offset=1984
            'sb_flags_mask' type_id=20 bits_offset=2016
            's_iflags' type_id=20 bits_offset=2048
            'purpose' type_id=3600 bits_offset=2080 bitfield_size=8
            'phase' type_id=3601 bits_offset=2088 bitfield_size=8
            'need_free' type_id=67 bits_offset=2096 bitfield_size=1
            'global' type_id=67 bits_offset=2097 bitfield_size=1
            'oldapi' type_id=67 bits_offset=2098 bitfield_size=1
    
    Fixes: 920d16af9b42 ("libbpf: BTF dumper support for typed data")
    Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/bpf/20230428013638.1581263-1-martin.lau@linux.dev
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ed572e52714593b209e3aa352406aff84481179
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Wed Apr 26 17:35:01 2023 +0300

    wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
    
    [ Upstream commit f24292e827088bba8de7158501ac25a59b064953 ]
    
    For the reasons also described in commit b383e8abed41 ("wifi: ath9k: avoid
    uninit memory read in ath9k_htc_rx_msg()"), ath9k_htc_rx_msg() should
    validate pkt_len before accessing the SKB.
    
    For example, the obtained SKB may have been badly constructed with
    pkt_len = 8. In this case, the SKB can only contain a valid htc_frame_hdr
    but after being processed in ath9k_htc_rx_msg() and passed to
    ath9k_wmi_ctrl_rx() endpoint RX handler, it is expected to have a WMI
    command header which should be located inside its data payload.
    
    Implement sanity checking inside ath9k_wmi_ctrl_rx(). Otherwise, uninit
    memory can be referenced.
    
    Tested on Qualcomm Atheros Communications AR9271 802.11n .
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Fixes: fb9987d0f748 ("ath9k_htc: Support for AR9271 chipset.")
    Reported-and-tested-by: syzbot+f2cb6e0ffdb961921e4d@syzkaller.appspotmail.com
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230424183348.111355-1-pchelkin@ispras.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 790930c2022e7aa3c62fa6b4b06ec0120a2a5fc5
Author: Peter Seiderer <ps.report@gmx.net>
Date:   Wed Apr 26 17:35:00 2023 +0300

    wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation
    
    [ Upstream commit 3e56c80931c7615250fe4bf83f93b57881969266 ]
    
    Fix ath9k_hw_verify_hang()/ar9003_hw_detect_mac_hang() register offset
    calculation (do not overflow the shift for the second register/queues
    above five, use the register layout described in the comments above
    ath9k_hw_verify_hang() instead).
    
    Fixes: 222e04830ff0 ("ath9k: Fix MAC HW hang check for AR9003")
    
    Reported-by: Gregg Wonderly <greggwonderly@seqtechllc.com>
    Link: https://lore.kernel.org/linux-wireless/E3A9C354-0CB7-420C-ADEF-F0177FB722F4@seqtechllc.com/
    Signed-off-by: Peter Seiderer <ps.report@gmx.net>
    Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230422212423.26065-1-ps.report@gmx.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 932bc9439ca31f4edbfeb21a7a65b1398976597a
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Tue Apr 18 15:30:42 2023 +0200

    igc: Enable and fix RX hash usage by netstack
    
    [ Upstream commit 84214ab4689f962b4bfc47fc9a5838d25ac4274d ]
    
    When function igc_rx_hash() was introduced in v4.20 via commit 0507ef8a0372
    ("igc: Add transmit and receive fastpath and interrupt handlers"), the
    hardware wasn't configured to provide RSS hash, thus it made sense to not
    enable net_device NETIF_F_RXHASH feature bit.
    
    The NIC hardware was configured to enable RSS hash info in v5.2 via commit
    2121c2712f82 ("igc: Add multiple receive queues control supporting"), but
    forgot to set the NETIF_F_RXHASH feature bit.
    
    The original implementation of igc_rx_hash() didn't extract the associated
    pkt_hash_type, but statically set PKT_HASH_TYPE_L3. The largest portions of
    this patch are about extracting the RSS Type from the hardware and mapping
    this to enum pkt_hash_types. This was based on Foxville i225 software user
    manual rev-1.3.1 and tested on Intel Ethernet Controller I225-LM (rev 03).
    
    For UDP it's worth noting that RSS (type) hashing have been disabled both for
    IPv4 and IPv6 (see IGC_MRQC_RSS_FIELD_IPV4_UDP + IGC_MRQC_RSS_FIELD_IPV6_UDP)
    because hardware RSS doesn't handle fragmented pkts well when enabled (can
    cause out-of-order). This results in PKT_HASH_TYPE_L3 for UDP packets, and
    hash value doesn't include UDP port numbers. Not being PKT_HASH_TYPE_L4, have
    the effect that netstack will do a software based hash calc calling into
    flow_dissect, but only when code calls skb_get_hash(), which doesn't
    necessary happen for local delivery.
    
    For QA verification testing I wrote a small bpftrace prog:
     [0] https://github.com/xdp-project/xdp-project/blob/master/areas/hints/monitor_skb_hash_on_dev.bt
    
    Fixes: 2121c2712f82 ("igc: Add multiple receive queues control supporting")
    Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Song Yoong Siang <yoong.siang.song@intel.com>
    Link: https://lore.kernel.org/bpf/168182464270.616355.11391652654430626584.stgit@firesoul
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 83fbbb46ad7d043ed8293222b001cb0b31086ca0
Author: Hao Jia <jiahao.os@bytedance.com>
Date:   Tue Jun 13 16:20:11 2023 +0800

    sched/core: Avoid multiple calling update_rq_clock() in __cfsb_csd_unthrottle()
    
    [ Upstream commit ebb83d84e49b54369b0db67136a5fe1087124dcc ]
    
    After commit 8ad075c2eb1f ("sched: Async unthrottling for cfs
    bandwidth"), we may update the rq clock multiple times in the loop of
    __cfsb_csd_unthrottle().
    
    A prior (although less common) instance of this problem exists in
    unthrottle_offline_cfs_rqs().
    
    Cure both by ensuring update_rq_clock() is called before the loop and
    setting RQCF_ACT_SKIP during the loop, to supress further updates.
    The alternative would be pulling update_rq_clock() out of
    unthrottle_cfs_rq(), but that gives an even bigger mess.
    
    Fixes: 8ad075c2eb1f ("sched: Async unthrottling for cfs bandwidth")
    Reviewed-By: Ben Segall <bsegall@google.com>
    Suggested-by: Vincent Guittot <vincent.guittot@linaro.org>
    Signed-off-by: Hao Jia <jiahao.os@bytedance.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
    Link: https://lkml.kernel.org/r/20230613082012.49615-4-jiahao.os@bytedance.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a764a2facd9dd88a69777200f65dfd0182765dc
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Wed Jun 14 17:37:33 2023 +0800

    pstore/ram: Add check for kstrdup
    
    [ Upstream commit d97038d5ec2062733c1e016caf9baaf68cf64ea1 ]
    
    Add check for the return value of kstrdup() and return the error
    if it fails in order to avoid NULL pointer dereference.
    
    Fixes: e163fdb3f7f8 ("pstore/ram: Regularize prz label allocation lifetime")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20230614093733.36048-1-jiasheng@iscas.ac.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1225affc6cdb08e99f77e9e26c0aeb035a91af3
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Tue Jun 6 09:41:13 2023 +0200

    ima: Fix build warnings
    
    [ Upstream commit 95526d13038c2bbddd567a4d8e39fac42484e182 ]
    
    Fix build warnings (function parameters description) for
    ima_collect_modsig(), ima_match_policy() and ima_parse_add_rule().
    
    Fixes: 15588227e086 ("ima: Collect modsig") # v5.4+
    Fixes: 2fe5d6def167 ("ima: integrity appraisal extension") # v5.14+
    Fixes: 4af4662fa4a9 ("integrity: IMA policy") # v3.2+
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3694a4ce250296b17293f15001eeeed42000a02f
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Tue Jun 6 09:41:12 2023 +0200

    evm: Fix build warnings
    
    [ Upstream commit 996e0a97ebd7b11cb785794e2a83c20c1add9d92 ]
    
    Fix build warnings (function parameters description) for
    evm_read_protected_xattrs(), evm_set_key() and evm_verifyxattr().
    
    Fixes: 7626676320f3 ("evm: provide a function to set the EVM key from the kernel") # v4.5+
    Fixes: 8314b6732ae4 ("ima: Define new template fields xattrnames, xattrlengths and xattrvalues") # v5.14+
    Fixes: 2960e6cb5f7c ("evm: additional parameter to pass integrity cache entry 'iint'") # v3.2+
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5736b1b66334db00ec0d33f19d96c9613c3cb2d2
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Mon Mar 6 11:40:36 2023 +0100

    evm: Complete description of evm_inode_setattr()
    
    [ Upstream commit b1de86d4248b273cb12c4cd7d20c08d459519f7d ]
    
    Add the description for missing parameters of evm_inode_setattr() to
    avoid the warning arising with W=n compile option.
    
    Fixes: 817b54aa45db ("evm: add evm_inode_setattr to prevent updating an invalid security.evm") # v3.2+
    Fixes: c1632a0f1120 ("fs: port ->setattr() to pass mnt_idmap") # v6.3+
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18ac0da526a6328b35f1fdd4f8ff5f9fc5f83d51
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Mon Jun 5 08:00:58 2023 +0100

    locking/atomic: arm: fix sync ops
    
    [ Upstream commit dda5f312bb09e56e7a1c3e3851f2000eb2e9c879 ]
    
    The sync_*() ops on arch/arm are defined in terms of the regular bitops
    with no special handling. This is not correct, as UP kernels elide
    barriers for the fully-ordered operations, and so the required ordering
    is lost when such UP kernels are run under a hypervsior on an SMP
    system.
    
    Fix this by defining sync ops with the required barriers.
    
    Note: On 32-bit arm, the sync_*() ops are currently only used by Xen,
    which requires ARMv7, but the semantics can be implemented for ARMv6+.
    
    Fixes: e54d2f61528165bb ("xen/arm: sync_bitops")
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20230605070124.3741859-2-mark.rutland@arm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c64ebc7793d1f48ba898091ed1d5b8718170b8c6
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Mar 6 13:32:59 2023 +0100

    x86/mm: Fix __swp_entry_to_pte() for Xen PV guests
    
    [ Upstream commit 0f88130e8a6fd185b0aeb5d8e286083735f2585a ]
    
    Normally __swp_entry_to_pte() is never called with a value translating
    to a valid PTE. The only known exception is pte_swap_tests(), resulting
    in a WARN splat in Xen PV guests, as __pte_to_swp_entry() did
    translate the PFN of the valid PTE to a guest local PFN, while
    __swp_entry_to_pte() doesn't do the opposite translation.
    
    Fix that by using __pte() in __swp_entry_to_pte() instead of open
    coding the native variant of it.
    
    For correctness do the similar conversion for __swp_entry_to_pmd().
    
    Fixes: 05289402d717 ("mm/debug_vm_pgtable: add tests validating arch helpers for core MM features")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/r/20230306123259.12461-1-jgross@suse.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1bd5218fe5b875ee5c313102ff5b769d21057431
Author: Ravi Bangoria <ravi.bangoria@amd.com>
Date:   Thu May 4 16:30:01 2023 +0530

    perf/ibs: Fix interface via core pmu events
    
    [ Upstream commit 2fad201fe38ff9a692acedb1990ece2c52a29f95 ]
    
    Although, IBS pmus can be invoked via their own interface, indirect
    IBS invocation via core pmu events is also supported with fixed set
    of events: cpu-cycles:p, r076:p (same as cpu-cycles:p) and r0C1:p
    (micro-ops) for user convenience.
    
    This indirect IBS invocation is broken since commit 66d258c5b048
    ("perf/core: Optimize perf_init_event()"), which added RAW pmu under
    'pmu_idr' list and thus if event_init() fails with RAW pmu, it started
    returning error instead of trying other pmus.
    
    Forward precise events from core pmu to IBS by overwriting 'type' and
    'config' in the kernel copy of perf_event_attr. Overwriting will cause
    perf_init_event() to retry with updated 'type' and 'config', which will
    automatically forward event to IBS pmu.
    
    Without patch:
      $ sudo ./perf record -C 0 -e r076:p -- sleep 1
      Error:
      The r076:p event is not supported.
    
    With patch:
      $ sudo ./perf record -C 0 -e r076:p -- sleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.341 MB perf.data (37 samples) ]
    
    Fixes: 66d258c5b048 ("perf/core: Optimize perf_init_event()")
    Reported-by: Stephane Eranian <eranian@google.com>
    Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20230504110003.2548-3-ravi.bangoria@amd.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6200d75b9534c26e15130f0d2786572a100dfa0c
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Mon Apr 17 11:47:43 2023 +0100

    kselftest: vDSO: Fix accumulation of uninitialized ret when CLOCK_REALTIME is undefined
    
    [ Upstream commit 375b9ff53cb6f9c042817b75f2be0a650626dc4f ]
    
    In the unlikely case that CLOCK_REALTIME is not defined, variable ret is
    not initialized and further accumulation of return values to ret can leave
    ret in an undefined state. Fix this by initialized ret to zero and changing
    the assignment of ret to an accumulation for the CLOCK_REALTIME case.
    
    Fixes: 03f55c7952c9 ("kselftest: Extend vDSO selftest to clock_getres")
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 028c29e786da1abb7db2c5a758b422a3e998d7be
Author: Juergen Gross <jgross@suse.com>
Date:   Tue May 2 14:09:20 2023 +0200

    x86/xen: Set MTRR state when running as Xen PV initial domain
    
    [ Upstream commit a153f254e5cdf8fa3a1df90a6ffed3063fede154 ]
    
    When running as Xen PV initial domain (aka dom0), MTRRs are disabled
    by the hypervisor, but the system should nevertheless use correct
    cache memory types. This has always kind of worked, as disabled MTRRs
    resulted in disabled PAT, too, so that the kernel avoided code paths
    resulting in inconsistencies. This bypassed all of the sanity checks
    the kernel is doing with enabled MTRRs in order to avoid memory
    mappings with conflicting memory types.
    
    This has been changed recently, leading to PAT being accepted to be
    enabled, while MTRRs stayed disabled. The result is that
    mtrr_type_lookup() no longer is accepting all memory type requests,
    but started to return WB even if UC- was requested. This led to
    driver failures during initialization of some devices.
    
    In reality MTRRs are still in effect, but they are under complete
    control of the Xen hypervisor. It is possible, however, to retrieve
    the MTRR settings from the hypervisor.
    
    In order to fix those problems, overwrite the MTRR state via
    mtrr_overwrite_state() with the MTRR data from the hypervisor, if the
    system is running as a Xen dom0.
    
    Fixes: 72cbc8f04fe2 ("x86/PAT: Have pat_enabled() properly reflect state when running on Xen")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Tested-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/r/20230502120931.20719-6-jgross@suse.com
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 237be8079a984aa527ce13e867576cbada05a0fd
Author: Juergen Gross <jgross@suse.com>
Date:   Tue May 2 14:09:18 2023 +0200

    x86/mtrr: Support setting MTRR state for software defined MTRRs
    
    [ Upstream commit 29055dc74287467bd7a053d60b4afe753832960d ]
    
    When running virtualized, MTRR access can be reduced (e.g. in Xen PV
    guests or when running as a SEV-SNP guest under Hyper-V). Typically, the
    hypervisor will not advertize the MTRR feature in CPUID data, resulting
    in no MTRR memory type information being available for the kernel.
    
    This has turned out to result in problems (Link tags below):
    
    - Hyper-V SEV-SNP guests using uncached mappings where they shouldn't
    - Xen PV dom0 mapping memory as WB which should be UC- instead
    
    Solve those problems by allowing an MTRR static state override,
    overwriting the empty state used today. In case such a state has been
    set, don't call get_mtrr_state() in mtrr_bp_init().
    
    The set state will only be used by mtrr_type_lookup(), as in all other
    cases mtrr_enabled() is being checked, which will return false. Accept
    the overwrite call only for selected cases when running as a guest.
    Disable X86_FEATURE_MTRR in order to avoid any MTRR modifications by
    just refusing them.
    
      [ bp: Massage. ]
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Tested-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/all/4fe9541e-4d4c-2b2a-f8c8-2d34a7284930@nerdbynature.de/
    Link: https://lore.kernel.org/lkml/BYAPR21MB16883ABC186566BD4D2A1451D7FE9@BYAPR21MB1688.namprd21.prod.outlook.com
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Stable-dep-of: a153f254e5cd ("x86/xen: Set MTRR state when running as Xen PV initial domain")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18ca757898cf0576659fc05c214a9c1adf8af468
Author: Juergen Gross <jgross@suse.com>
Date:   Tue May 2 14:09:17 2023 +0200

    x86/mtrr: Replace size_or_mask and size_and_mask with a much easier concept
    
    [ Upstream commit d053b481a5f16dbd4f020c6b3ebdf9173fdef0e2 ]
    
    Replace size_or_mask and size_and_mask with the much easier concept of
    high reserved bits.
    
    While at it, instead of using constants in the MTRR code, use some new
    
      [ bp:
       - Drop mtrr_set_mask()
       - Unbreak long lines
       - Move struct mtrr_state_type out of the uapi header as it doesn't
         belong there. It also fixes a HDRTEST breakage "unknown type name ‘bool’"
         as Reported-by: kernel test robot <lkp@intel.com>
       - Massage.
      ]
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/r/20230502120931.20719-3-jgross@suse.com
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Stable-dep-of: a153f254e5cd ("x86/xen: Set MTRR state when running as Xen PV initial domain")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5cd8bdb6526b1ae931a485e23ee27cefaffee472
Author: Juergen Gross <jgross@suse.com>
Date:   Tue May 2 14:09:16 2023 +0200

    x86/mtrr: Remove physical address size calculation
    
    [ Upstream commit f6b980646b93a8c585b4ed991b8a34e8fc6ef847 ]
    
    The physical address width calculation in mtrr_bp_init() can easily be
    replaced with using the already available value x86_phys_bits from
    struct cpuinfo_x86.
    
    The same information source can be used in mtrr/cleanup.c, removing the
    need to pass that value on to mtrr_cleanup().
    
    In print_mtrr_state() use x86_phys_bits instead of recalculating it
    from size_or_mask.
    
    Move setting of size_or_mask and size_and_mask into a dedicated new
    function in mtrr/generic.c, enabling to make those 2 variables static,
    as they are used in generic.c only now.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Tested-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/r/20230502120931.20719-2-jgross@suse.com
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Stable-dep-of: a153f254e5cd ("x86/xen: Set MTRR state when running as Xen PV initial domain")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1dd7547c7610723b2b6afe1a3c4ddb2bde63387c
Author: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Date:   Wed Mar 22 19:42:41 2023 +0800

    rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
    
    [ Upstream commit 23fc8df26dead16687ae6eb47b0561a4a832e2f6 ]
    
    Running the 'kfree_rcu_test' test case [1] results in a splat [2].
    The root cause is the kfree_scale_thread thread(s) continue running
    after unloading the rcuscale module.  This commit fixes that isue by
    invoking kfree_scale_cleanup() from rcu_scale_cleanup() when removing
    the rcuscale module.
    
    [1] modprobe rcuscale kfree_rcu_test=1
        // After some time
        rmmod rcuscale
        rmmod torture
    
    [2] BUG: unable to handle page fault for address: ffffffffc0601a87
        #PF: supervisor instruction fetch in kernel mode
        #PF: error_code(0x0010) - not-present page
        PGD 11de4f067 P4D 11de4f067 PUD 11de51067 PMD 112f4d067 PTE 0
        Oops: 0010 [#1] PREEMPT SMP NOPTI
        CPU: 1 PID: 1798 Comm: kfree_scale_thr Not tainted 6.3.0-rc1-rcu+ #1
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015
        RIP: 0010:0xffffffffc0601a87
        Code: Unable to access opcode bytes at 0xffffffffc0601a5d.
        RSP: 0018:ffffb25bc2e57e18 EFLAGS: 00010297
        RAX: 0000000000000000 RBX: ffffffffc061f0b6 RCX: 0000000000000000
        RDX: 0000000000000000 RSI: ffffffff962fd0de RDI: ffffffff962fd0de
        RBP: ffffb25bc2e57ea8 R08: 0000000000000000 R09: 0000000000000000
        R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
        R13: 0000000000000000 R14: 000000000000000a R15: 00000000001c1dbe
        FS:  0000000000000000(0000) GS:ffff921fa2200000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: ffffffffc0601a5d CR3: 000000011de4c006 CR4: 0000000000370ee0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
        Call Trace:
         <TASK>
         ? kvfree_call_rcu+0xf0/0x3a0
         ? kthread+0xf3/0x120
         ? kthread_complete_and_exit+0x20/0x20
         ? ret_from_fork+0x1f/0x30
         </TASK>
        Modules linked in: rfkill sunrpc ... [last unloaded: torture]
        CR2: ffffffffc0601a87
        ---[ end trace 0000000000000000 ]---
    
    Fixes: e6e78b004fa7 ("rcuperf: Add kfree_rcu() performance Tests")
    Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd5e3278d39ddf73632771ecc49fab703b05a1fd
Author: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Date:   Wed Mar 22 19:42:40 2023 +0800

    rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup()
    
    [ Upstream commit bf5ddd736509a7d9077c0b6793e6f0852214dbea ]
    
    This code-movement-only commit moves the rcu_scale_cleanup() and
    rcu_scale_shutdown() functions to follow kfree_scale_cleanup().
    This is code movement is in preparation for a bug-fix patch that invokes
    kfree_scale_cleanup() from rcu_scale_cleanup().
    
    Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Stable-dep-of: 23fc8df26dea ("rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ca6bb80127b28d27bfdf5a49849134eb653578d
Author: Paul E. McKenney <paulmck@kernel.org>
Date:   Tue Jan 31 12:08:54 2023 -0800

    rcuscale: Move shutdown from wait_event() to wait_event_idle()
    
    [ Upstream commit ef1ef3d47677dc191b88650a9f7f91413452cc1b ]
    
    The rcu_scale_shutdown() and kfree_scale_shutdown() kthreads/functions
    use wait_event() to wait for the rcuscale test to complete.  However,
    each updater thread in such a test waits for at least 100 grace periods.
    If each grace period takes more than 1.2 seconds, which is long, but
    not insanely so, this can trigger the hung-task timeout.
    
    This commit therefore replaces those wait_event() calls with calls to
    wait_event_idle(), which do not trigger the hung-task timeout.
    
    Reported-by: kernel test robot <yujie.liu@intel.com>
    Reported-by: Liam Howlett <liam.howlett@oracle.com>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Tested-by: Yujie Liu <yujie.liu@intel.com>
    Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
    Stable-dep-of: 23fc8df26dea ("rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f87cccb7de75d9eb37319b7cc97082449d60906f
Author: Paul E. McKenney <paulmck@kernel.org>
Date:   Tue Mar 21 16:40:08 2023 -0700

    rcutorture: Correct name of use_softirq module parameter
    
    [ Upstream commit b409afe0268faeb77267f028ea85f2d93438fced ]
    
    The BUSTED-BOOST and TREE03 scenarios specify a mythical tree.use_softirq
    module parameter, which means a failure to get full test coverage.  This
    commit therefore corrects the name to rcutree.use_softirq.
    
    Fixes: e2b949d54392 ("rcutorture: Make TREE03 use real-time tree.use_softirq setting")
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a1d493339e60f83341ecd95709ae542d7c59eda
Author: Paul E. McKenney <paulmck@kernel.org>
Date:   Wed Apr 26 11:11:29 2023 -0700

    rcu-tasks: Stop rcu_tasks_invoke_cbs() from using never-onlined CPUs
    
    [ Upstream commit 401b0de3ae4fa49d1014c8941e26d9a25f37e7cf ]
    
    The rcu_tasks_invoke_cbs() function relies on queue_work_on() to silently
    fall back to WORK_CPU_UNBOUND when the specified CPU is offline.  However,
    the queue_work_on() function's silent fallback mechanism relies on that
    CPU having been online at some time in the past.  When queue_work_on()
    is passed a CPU that has never been online, workqueue lockups ensue,
    which can be bad for your kernel's general health and well-being.
    
    This commit therefore checks whether a given CPU has ever been online,
    and, if not substitutes WORK_CPU_UNBOUND in the subsequent call to
    queue_work_on().  Why not simply omit the queue_work_on() call entirely?
    Because this function is flooding callback-invocation notifications
    to all CPUs, and must deal with possibilities that include a sparse
    cpu_possible_mask.
    
    This commit also moves the setting of the rcu_data structure's
    ->beenonline field to rcu_cpu_starting(), which executes on the
    incoming CPU before that CPU has ever enabled interrupts.  This ensures
    that the required workqueues are present.  In addition, because the
    incoming CPU has not yet enabled its interrupts, there cannot yet have
    been any softirq handlers running on this CPU, which means that the
    WARN_ON_ONCE(!rdp->beenonline) within the RCU_SOFTIRQ handler cannot
    have triggered yet.
    
    Fixes: d363f833c6d88 ("rcu-tasks: Use workqueues for multiple rcu_tasks_invoke_cbs() invocations")
    Reported-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1a3bbd825c7242f704447c4117a87c9c238c7da
Author: Paul E. McKenney <paulmck@kernel.org>
Date:   Thu Apr 27 10:50:47 2023 -0700

    rcu: Make rcu_cpu_starting() rely on interrupts being disabled
    
    [ Upstream commit 15d44dfa40305da1648de4bf001e91cc63148725 ]
    
    Currently, rcu_cpu_starting() is written so that it might be invoked
    with interrupts enabled.  However, it is always called when interrupts
    are disabled, either by rcu_init(), notify_cpu_starting(), or from a
    call point prior to the call to notify_cpu_starting().
    
    But why bother requiring that interrupts be disabled?  The purpose is
    to allow the rcu_data structure's ->beenonline flag to be set after all
    early processing has completed for the incoming CPU, thus allowing this
    flag to be used to determine when workqueues have been set up for the
    incoming CPU, while still allowing this flag to be used as a diagnostic
    within rcu_core().
    
    This commit therefore makes rcu_cpu_starting() rely on interrupts being
    disabled.
    
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Stable-dep-of: 401b0de3ae4f ("rcu-tasks: Stop rcu_tasks_invoke_cbs() from using never-onlined CPUs")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5aa45866422da7f0fef9cb4eb35d9087304b7451
Author: Peng Fan <peng.fan@nxp.com>
Date:   Tue May 16 16:37:45 2023 +0800

    thermal/drivers/qoriq: Only enable supported sensors
    
    [ Upstream commit 9301575df2509ecf8bd66f601046afaff606b1d5 ]
    
    There are MAX 16 sensors, but not all of them supported. Such as
    i.MX8MQ, there are only 3 sensors. Enabling all 16 sensors will
    touch reserved bits from i.MX8MQ reference mannual, and TMU will stuck,
    temperature will not update anymore.
    
    Fixes: 45038e03d633 ("thermal: qoriq: Enable all sensors before registering them")
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20230516083746.63436-3-peng.fan@oss.nxp.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fb5ee9d9174b4d74dbfe3a4a35cf885839d8e07
Author: Daniel Lezcano <daniel.lezcano@linaro.org>
Date:   Wed Mar 1 21:14:36 2023 +0100

    thermal/hwmon: Use the right device for devm_thermal_add_hwmon_sysfs()
    
    [ Upstream commit 4a16c190f761cb3a87dcbbf355f91c71ce1f8c0b ]
    
    The devres variant of thermal_add_hwmon_sysfs() only takes the thermal
    zone structure pointer as parameter.
    
    Actually, it uses the tz->device to add it in the devres list.
    
    It is preferable to use the device registering the thermal zone
    instead of the thermal zone device itself. That prevents the driver
    accessing the thermal zone structure internals and it is from my POV
    more correct regarding how devm_ is used.
    
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> #amlogic_thermal
    Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> #sun8i_thermal
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> #MediaTek auxadc
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Stable-dep-of: 9301575df250 ("thermal/drivers/qoriq: Only enable supported sensors")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a962e0545e357bfd9c3909796a740bb3302ed1de
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun May 14 20:46:05 2023 +0200

    thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe()
    
    [ Upstream commit 89382022b370dfd34eaae9c863baa123fcd4d132 ]
    
    Should an error occur after calling sun8i_ths_resource_init() in the probe
    function, some resources need to be released, as already done in the
    .remove() function.
    
    Switch to the devm_clk_get_enabled() helper and add a new devm_action to
    turn sun8i_ths_resource_init() into a fully managed function.
    
    Move the place where reset_control_deassert() is called so that the
    recommended order of reset release/clock enable steps is kept.
    A64 manual states that:
    
            3.3.6.4. Gating and reset
    
            Make sure that the reset signal has been released before the release of
            module clock gating;
    
    This fixes the issue and removes some LoC at the same time.
    
    Fixes: dccc5c3b6f30 ("thermal/drivers/sun8i: Add thermal driver for H6/H5/H3/A64/A83T/R40")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Acked-by: Maxime Ripard <maxime@cerno.tech>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/a8ae84bd2dc4b55fe428f8e20f31438bf8bb6762.1684089931.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21da5a26ea1e17da5f35572efd3ad1a7cc735d1c
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Wed Jun 7 12:47:46 2023 +0200

    thermal/drivers/qcom/tsens-v0_1: Add mdm9607 correction offsets
    
    [ Upstream commit b6f739da0070c36655118618a173a59fa14c7adc ]
    
    According to the msm-3.18 vendor kernel from Qualcomm, mdm9607 needs
    "correction factors" to adjust for additional offsets observed after the
    factory calibration values in the fuses [1, 2].
    
    The fixed offsets should be applied unless there is a special
    calibration mode value that indicates that no offsets are needed [3].
    
    Note that the new calibration mode values are called differently in this
    patch compared to the vendor kernel:
      - TSENS_TWO_POINT_CALIB_N_WA        -> ONE_PT_CALIB2_NO_OFFSET
      - TSENS_TWO_POINT_CALIB_N_OFFSET_WA -> TWO_PT_CALIB_NO_OFFSET
    This is because close inspection of the calibration function [3] reveals
    that TSENS_TWO_POINT_CALIB_N_WA is actually a "one point" calibration
    because the if statements skip all "point2" related code for it.
    
    [1]: https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/commit/d9d2db1b82bf3f72f5de0803d55e6849eb5b671e
    [2]: https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/commit/d75aef53a760e8ff7bac54049d00c8b2ee1b193e
    [3]: https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LE.UM.4.3.2.r1-04200-9x07/drivers/thermal/msm-tsens.c#L2987-3136
    
    Fixes: a2149ab815fc ("thermal/drivers/qcom/tsens-v0_1: Add support for MDM9607")
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20230508-msm8909-tsens-v5-3-5eb632235ba7@kernkonzept.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30e18dab79dc68247de87722007528d790061527
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Wed Jun 7 12:47:45 2023 +0200

    thermal/drivers/qcom/tsens-v0_1: Fix mdm9607 slope values
    
    [ Upstream commit 6812d1dfbca99cd5032683354bf50e0002b2aa02 ]
    
    According to the msm-3.18 vendor kernel from Qualcomm [1], mdm9607 uses
    a non-standard slope value of 3000 (instead of 3200) for all sensors.
    Fill it properly similar to the 8939 code added recently.
    
    [1]: https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LE.UM.4.3.2.r1-04200-9x07/arch/arm/boot/dts/qcom/mdm9607.dtsi#L875
    
    Fixes: a2149ab815fc ("thermal/drivers/qcom/tsens-v0_1: Add support for MDM9607")
    Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20230508-msm8909-tsens-v5-2-5eb632235ba7@kernkonzept.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed7a642b19668b4988fced909b2743f6ecd5102c
Author: Matti Lehtimäki <matti.lehtimaki@gmail.com>
Date:   Sun May 7 23:12:21 2023 +0300

    thermal/drivers/qcom/tsens-v0_1: Add support for MSM8226
    
    [ Upstream commit 598e1afca47fdbb302ce8d288b06bcc8728efc6c ]
    
    The MSM8226 TSENS IP has 6 thermal sensors in a TSENS v0.1 block.
    The thermal sensors use non-standard slope values.
    
    Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Luca Weiss <luca@z3ntu.xyz>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20230507201225.89694-4-matti.lehtimaki@gmail.com
    Stable-dep-of: 6812d1dfbca9 ("thermal/drivers/qcom/tsens-v0_1: Fix mdm9607 slope values")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 811ed5a3f60528176602d51cd04d500ae2a6cfcb
Author: Tero Kristo <tero.kristo@linux.intel.com>
Date:   Wed Jun 21 09:58:39 2023 +0300

    cpufreq: intel_pstate: Fix energy_performance_preference for passive
    
    [ Upstream commit 03f44ffb3d5be2fceda375d92c70ab6de4df7081 ]
    
    If the intel_pstate driver is set to passive mode, then writing the
    same value to the energy_performance_preference sysfs twice will fail.
    This is caused by the wrong return value used (index of the matched
    energy_perf_string), instead of the length of the passed in parameter.
    Fix by forcing the internal return value to zero when the same
    preference is passed in by user. This same issue is not present when
    active mode is used for the driver.
    
    Fixes: f6ebbcf08f37 ("cpufreq: intel_pstate: Implement passive mode with HWP enabled")
    Reported-by: Niklas Neronin <niklas.neronin@intel.com>
    Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c4592ed8d10cca1366ea5db39ef61a19441ada9
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Jun 2 19:28:42 2023 +0100

    ARM: 9303/1: kprobes: avoid missing-declaration warnings
    
    [ Upstream commit 1b9c3ddcec6a55e15d3e38e7405e2d078db02020 ]
    
    checker_stack_use_t32strd() and kprobe_handler() can be made static since
    they are not used from other files, while coverage_start_registers()
    and __kprobes_test_case() are used from assembler code, and just need
    a declaration to avoid a warning with the global definition.
    
    arch/arm/probes/kprobes/checkers-common.c:43:18: error: no previous prototype for 'checker_stack_use_t32strd'
    arch/arm/probes/kprobes/core.c:236:16: error: no previous prototype for 'kprobe_handler'
    arch/arm/probes/kprobes/test-core.c:723:10: error: no previous prototype for 'coverage_start_registers'
    arch/arm/probes/kprobes/test-core.c:918:14: error: no previous prototype for '__kprobes_test_case_start'
    arch/arm/probes/kprobes/test-core.c:952:14: error: no previous prototype for '__kprobes_test_case_end_16'
    arch/arm/probes/kprobes/test-core.c:967:14: error: no previous prototype for '__kprobes_test_case_end_32'
    
    Fixes: 6624cf651f1a ("ARM: kprobes: collects stack consumption for store instructions")
    Fixes: 454f3e132d05 ("ARM/kprobes: Remove jprobe arm implementation")
    Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2fec4b18cef5c65874d42c33c3b8d8e24ce3224d
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Tue May 30 11:55:36 2023 +0200

    PM: domains: Move the verification of in-params from genpd_add_device()
    
    [ Upstream commit 4384a70c8813e8573d1841fd94eee873f80a7e1a ]
    
    Commit f38d1a6d0025 ("PM: domains: Allocate governor data dynamically
    based on a genpd governor") started to use the in-parameters in
    genpd_add_device(), without first doing a verification of them.
    
    This isn't really a big problem, as most callers do a verification already.
    
    Therefore, let's drop the verification from genpd_add_device() and make
    sure all the callers take care of it instead.
    
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Fixes: f38d1a6d0025 ("PM: domains: Allocate governor data dynamically based on a genpd governor")
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dcfebfdf5997f92f62346758cac686653fa89929
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Tue Jun 6 22:00:00 2023 +0800

    powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
    
    [ Upstream commit 4658fe81b3f8afe8adf37734ec5fe595d90415c6 ]
    
    After commit 3382388d7148 ("intel_rapl: abstract RAPL common code"),
    accessing to IOSF_MBI interface is done in the RAPL common code.
    
    Thus it is the CONFIG_INTEL_RAPL_CORE that has dependency of
    CONFIG_IOSF_MBI, while CONFIG_INTEL_RAPL_MSR does not.
    
    This problem was not exposed previously because all the previous RAPL
    common code users, aka, the RAPL MSR and MMIO I/F drivers, have
    CONFIG_IOSF_MBI selected.
    
    Fix the CONFIG_IOSF_MBI dependency in RAPL code. This also fixes a build
    time failure when the RAPL TPMI I/F driver is introduced without
    selecting CONFIG_IOSF_MBI.
    
    x86_64-linux-ld: vmlinux.o: in function `set_floor_freq_atom':
    intel_rapl_common.c:(.text+0x2dac9b8): undefined reference to `iosf_mbi_write'
    x86_64-linux-ld: intel_rapl_common.c:(.text+0x2daca66): undefined reference to `iosf_mbi_read'
    
    Reference to iosf_mbi.h is also removed from the RAPL MSR I/F driver.
    
    Fixes: 3382388d7148 ("intel_rapl: abstract RAPL common code")
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/all/20230601213246.3271412-1-arnd@kernel.org
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0eafa02fddf877b706ab796849a7ba7a9f2a34b5
Author: Sumeet Pawnikar <sumeet.r.pawnikar@intel.com>
Date:   Thu Jun 8 08:00:06 2023 +0530

    powercap: RAPL: fix invalid initialization for pl4_supported field
    
    [ Upstream commit d05b5e0baf424c8c4b4709ac11f66ab726c8deaf ]
    
    The current initialization of the struct x86_cpu_id via
    pl4_support_ids[] is partial and wrong. It is initializing
    "stepping" field with "X86_FEATURE_ANY" instead of "feature" field.
    
    Use X86_MATCH_INTEL_FAM6_MODEL macro instead of initializing
    each field of the struct x86_cpu_id for pl4_supported list of CPUs.
    This X86_MATCH_INTEL_FAM6_MODEL macro internally uses another macro
    X86_MATCH_VENDOR_FAM_MODEL_FEATURE for X86 based CPU matching with
    appropriate initialized values.
    
    Reported-by: Dave Hansen <dave.hansen@intel.com>
    Link: https://lore.kernel.org/lkml/28ead36b-2d9e-1a36-6f4e-04684e420260@intel.com
    Fixes: eb52bc2ae5b8 ("powercap: RAPL: Add Power Limit4 support for Meteor Lake SoC")
    Fixes: b08b95cf30f5 ("powercap: RAPL: Add Power Limit4 support for Alder Lake-N and Raptor Lake-P")
    Fixes: 515755906921 ("powercap: RAPL: Add Power Limit4 support for RaptorLake")
    Fixes: 1cc5b9a411e4 ("powercap: Add Power Limit4 support for Alder Lake SoC")
    Fixes: 8365a898fe53 ("powercap: Add Power Limit4 support")
    Signed-off-by: Sumeet Pawnikar <sumeet.r.pawnikar@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34f251a654ec1d4dda33ec5657378d8fd5fc9fb3
Author: Li Yang <leoyang.li@nxp.com>
Date:   Fri May 19 15:12:49 2023 -0500

    APEI: GHES: correctly return NULL for ghes_get_devices()
    
    [ Upstream commit 9368aa1882ac7178adcd936cee5f0899dbf76dc4 ]
    
    Since 315bada690e0 ("EDAC: Check for GHES preference in the
    chipset-specific EDAC drivers"), vendor specific EDAC driver will not
    probe correctly when CONFIG_ACPI_APEI_GHES is enabled but no GHES device
    is present.  Make ghes_get_devices() return NULL when the GHES device
    list is empty to fix the problem.
    
    Fixes: 9057a3f7ac36 ("EDAC/ghes: Prepare to make ghes_edac a proper module")
    Signed-off-by: Li Yang <leoyang.li@nxp.com>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e068d5b7c51474eede346c786b5316328236b39f
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Mon Jun 5 18:01:31 2023 +0100

    perf/arm_cspmu: Fix event attribute type
    
    [ Upstream commit 71e0cb32d5fc61468e83ed962379af71bba8237e ]
    
    ARM_CSPMU_EVENT_ATTR() defines a struct perf_pmu_events_attr, so
    arm_cspmu_sysfs_event_show() should not be interpreting it as struct
    dev_ext_attribute.
    
    Fixes: e37dfd65731d ("perf: arm_cspmu: Add support for ARM CoreSight PMU driver")
    Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Reviewed-and-tested-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Link: https://lore.kernel.org/r/27c0804af64007b2400abbc40278f642ee6a0a29.1685983270.git.robin.murphy@arm.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef0a178643a4a6f8b663228ee3d733e317bd3ef6
Author: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Date:   Thu Jun 8 13:37:42 2023 -0700

    perf: arm_cspmu: Set irq affinitiy only if overflow interrupt is used
    
    [ Upstream commit 225d757012e0afa673d8c862e6fb39ed2f429b4d ]
    
    Don't try to set irq affinity if PMU doesn't have an overflow interrupt.
    
    Fixes: e37dfd65731d ("perf: arm_cspmu: Add support for ARM CoreSight PMU driver")
    Signed-off-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
    Link: https://lore.kernel.org/r/20230608203742.3503486-1-ilkka@os.amperecomputing.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f564e543a43d0f1cabac791672c8a6fc78ce12d0
Author: Junhao He <hejunhao3@huawei.com>
Date:   Thu Jun 8 19:43:26 2023 +0800

    drivers/perf: hisi: Don't migrate perf to the CPU going to teardown
    
    [ Upstream commit 7a6a9f1c5a0a875a421db798d4b2ee022dc1ee1a ]
    
    The driver needs to migrate the perf context if the current using CPU going
    to teardown. By the time calling the cpuhp::teardown() callback the
    cpu_online_mask() hasn't updated yet and still includes the CPU going to
    teardown. In current driver's implementation we may migrate the context
    to the teardown CPU and leads to the below calltrace:
    
    ...
    [  368.104662][  T932] task:cpuhp/0         state:D stack:    0 pid:   15 ppid:     2 flags:0x00000008
    [  368.113699][  T932] Call trace:
    [  368.116834][  T932]  __switch_to+0x7c/0xbc
    [  368.120924][  T932]  __schedule+0x338/0x6f0
    [  368.125098][  T932]  schedule+0x50/0xe0
    [  368.128926][  T932]  schedule_preempt_disabled+0x18/0x24
    [  368.134229][  T932]  __mutex_lock.constprop.0+0x1d4/0x5dc
    [  368.139617][  T932]  __mutex_lock_slowpath+0x1c/0x30
    [  368.144573][  T932]  mutex_lock+0x50/0x60
    [  368.148579][  T932]  perf_pmu_migrate_context+0x84/0x2b0
    [  368.153884][  T932]  hisi_pcie_pmu_offline_cpu+0x90/0xe0 [hisi_pcie_pmu]
    [  368.160579][  T932]  cpuhp_invoke_callback+0x2a0/0x650
    [  368.165707][  T932]  cpuhp_thread_fun+0xe4/0x190
    [  368.170316][  T932]  smpboot_thread_fn+0x15c/0x1a0
    [  368.175099][  T932]  kthread+0x108/0x13c
    [  368.179012][  T932]  ret_from_fork+0x10/0x18
    ...
    
    Use function cpumask_any_but() to find one correct active cpu to fixes
    this issue.
    
    Fixes: 8404b0fbc7fb ("drivers/perf: hisi: Add driver for HiSilicon PCIe PMU")
    Signed-off-by: Junhao He <hejunhao3@huawei.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Yicong Yang <yangyicong@hisilicon.com>
    Acked-by: Mark Rutland <mark.rutland@arm.com>
    Link: https://lore.kernel.org/r/20230608114326.27649-1-hejunhao3@huawei.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e39c07978e28c137d13a6a2a702e8e261c10050
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Tue Jun 6 12:56:21 2023 +0300

    x86/tdx: Fix race between set_memory_encrypted() and load_unaligned_zeropad()
    
    [ Upstream commit 195edce08b63d293377f615f4f7f086715d2d212 ]
    
    tl;dr: There is a race in the TDX private<=>shared conversion code
           which could kill the TDX guest.  Fix it by changing conversion
           ordering to eliminate the window.
    
    TDX hardware maintains metadata to track which pages are private and
    shared. Additionally, TDX guests use the guest x86 page tables to
    specify whether a given mapping is intended to be private or shared.
    Bad things happen when the intent and metadata do not match.
    
    So there are two thing in play:
     1. "the page" -- the physical TDX page metadata
     2. "the mapping" -- the guest-controlled x86 page table intent
    
    For instance, an unrecoverable exit to VMM occurs if a guest touches a
    private mapping that points to a shared physical page.
    
    In summary:
            * Private mapping => Private Page == OK (obviously)
            * Shared mapping  => Shared Page  == OK (obviously)
            * Private mapping => Shared Page  == BIG BOOM!
            * Shared mapping  => Private Page == OK-ish
              (It will read generate a recoverable #VE via handle_mmio())
    
    Enter load_unaligned_zeropad(). It can touch memory that is adjacent but
    otherwise unrelated to the memory it needs to touch. It will cause one
    of those unrecoverable exits (aka. BIG BOOM) if it blunders into a
    shared mapping pointing to a private page.
    
    This is a problem when __set_memory_enc_pgtable() converts pages from
    shared to private. It first changes the mapping and second modifies
    the TDX page metadata.  It's moving from:
    
            * Shared mapping  => Shared Page  == OK
    to:
            * Private mapping => Shared Page  == BIG BOOM!
    
    This means that there is a window with a shared mapping pointing to a
    private page where load_unaligned_zeropad() can strike.
    
    Add a TDX handler for guest.enc_status_change_prepare(). This converts
    the page from shared to private *before* the page becomes private.  This
    ensures that there is never a private mapping to a shared page.
    
    Leave a guest.enc_status_change_finish() in place but only use it for
    private=>shared conversions.  This will delay updating the TDX metadata
    marking the page private until *after* the mapping matches the metadata.
    This also ensures that there is never a private mapping to a shared page.
    
    [ dhansen: rewrite changelog ]
    
    Fixes: 7dbde7631629 ("x86/mm/cpa: Add support for TDX shared memory")
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    Link: https://lore.kernel.org/all/20230606095622.1939-3-kirill.shutemov%40linux.intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc849d3e8f3a20d104a373926e6e82e932429d8b
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Tue Jun 6 12:56:20 2023 +0300

    x86/mm: Allow guest.enc_status_change_prepare() to fail
    
    [ Upstream commit 3f6819dd192ef4f0c568ec3e9d6d408b3fa1ad3d ]
    
    TDX code is going to provide guest.enc_status_change_prepare() that is
    able to fail. TDX will use the call to convert the GPA range from shared
    to private. This operation can fail.
    
    Add a way to return an error from the callback.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    Link: https://lore.kernel.org/all/20230606095622.1939-2-kirill.shutemov%40linux.intel.com
    Stable-dep-of: 195edce08b63 ("x86/tdx: Fix race between set_memory_encrypted() and load_unaligned_zeropad()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1060cc1152025c060c97a0769f63ecf3cec6b50b
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Wed May 24 17:44:32 2023 +0100

    perf/arm-cmn: Fix DTC reset
    
    [ Upstream commit 71746c995cac92fcf6a65661b51211cf2009d7f0 ]
    
    It turns out that my naive DTC reset logic fails to work as intended,
    since, after checking with the hardware designers, the PMU actually
    needs to be fully enabled in order to correctly clear any pending
    overflows. Therefore, invert the sequence to start with turning on both
    enables so that we can reliably get the DTCs into a known state, then
    moving to our normal counters-stopped state from there. Since all the
    DTM counters have already been unpaired during the initial discovery
    pass, we just need to additionally reset the cycle counters to ensure
    that no other unexpected overflows occur during this period.
    
    Fixes: 0ba64770a2f2 ("perf: Add Arm CMN-600 PMU driver")
    Reported-by: Geoff Blake <blakgeof@amazon.com>
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Link: https://lore.kernel.org/r/0ea4559261ea394f827c9aee5168c77a60aaee03.1684946389.git.robin.murphy@arm.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 837458ee085af8af141a0a22c52c44b73c798989
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Tue Apr 18 06:07:43 2023 -0700

    PM: domains: fix integer overflow issues in genpd_parse_state()
    
    [ Upstream commit e5d1c8722083f0332dcd3c85fa1273d85fb6bed8 ]
    
    Currently, while calculating residency and latency values, right
    operands may overflow if resulting values are big enough.
    
    To prevent this, albeit unlikely case, play it safe and convert
    right operands to left ones' type s64.
    
    Found by Linux Verification Center (linuxtesting.org) with static
    analysis tool SVACE.
    
    Fixes: 30f604283e05 ("PM / Domains: Allow domain power states to be read from DT")
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67d7eebbc424935dec61fb352d1ccae5d16cf429
Author: Feng Mingxi <m202271825@hust.edu.cn>
Date:   Tue Apr 25 06:56:11 2023 +0000

    clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
    
    [ Upstream commit 8b5bf64c89c7100c921bd807ba39b2eb003061ab ]
    
    Smatch reports:
    drivers/clocksource/timer-cadence-ttc.c:529 ttc_timer_probe()
    warn: 'timer_baseaddr' from of_iomap() not released on lines: 498,508,516.
    
    timer_baseaddr may have the problem of not being released after use,
    I replaced it with the devm_of_iomap() function and added the clk_put()
    function to cleanup the "clk_ce" and "clk_cs".
    
    Fixes: e932900a3279 ("arm: zynq: Use standard timer binding")
    Fixes: 70504f311d4b ("clocksource/drivers/cadence_ttc: Convert init function to return error")
    Signed-off-by: Feng Mingxi <m202271825@hust.edu.cn>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Acked-by: Michal Simek <michal.simek@amd.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20230425065611.702917-1-m202271825@hust.edu.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d62835bafe2141d300fe836c4acec905f97b31ed
Author: Christoph Hellwig <hch@lst.de>
Date:   Wed May 31 09:53:54 2023 +0200

    btrfs: fix file_offset for REQ_BTRFS_ONE_ORDERED bios that get split
    
    [ Upstream commit c731cd0b6d255e4855a7cac9f276864032ab2387 ]
    
    If a bio gets split, it needs to have a proper file_offset for checksum
    validation and repair to work properly.
    
    Based on feedback from Josef, commit 852eee62d31a ("btrfs: allow
    btrfs_submit_bio to split bios") skipped this adjustment for ONE_ORDERED
    bios.  But if we actually ever need to split a ONE_ORDERED read bio, this
    will lead to a wrong file offset in the repair code.  Right now the only
    user of the file_offset is logging of an error message so this is mostly
    harmless, but the wrong offset might be more problematic for additional
    users in the future.
    
    Fixes: 852eee62d31a ("btrfs: allow btrfs_submit_bio to split bios")
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15d7102ee2d32181d9ed857c3454488c08ba1405
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Mar 7 17:39:45 2023 +0100

    btrfs: make btrfs_split_bio work on struct btrfs_bio
    
    [ Upstream commit 2cef0c79bb81d8bae1dbc45195771a824ca45e76 ]
    
    btrfs_split_bio expects a btrfs_bio as argument and always allocates one.
    Type both the orig_bio argument and the return value as struct btrfs_bio
    to improve type safety.
    
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Stable-dep-of: c731cd0b6d25 ("btrfs: fix file_offset for REQ_BTRFS_ONE_ORDERED bios that get split")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d9bc628b61ee457195657c8e707dcbebcc5dbfe
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Tue Apr 18 16:38:54 2023 +0200

    tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
    
    [ Upstream commit 2951580ba6adb082bb6b7154a5ecb24e7c1f7569 ]
    
    The trace output for the HRTIMER_MODE_.*_HARD modes is seen as a number
    since these modes are not decoded. The author was not aware of the fancy
    decoding function which makes the life easier.
    
    Extend decode_hrtimer_mode() with the additional HRTIMER_MODE_.*_HARD
    modes.
    
    Fixes: ae6683d815895 ("hrtimer: Introduce HARD expiry mode")
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com>
    Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Link: https://lore.kernel.org/r/20230418143854.8vHWQKLM@linutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 14c05764241cf4c66ff7462cb2617e82bb1cce58
Author: Wen Yang <wenyang.linux@foxmail.com>
Date:   Fri May 5 00:12:53 2023 +0800

    tick/rcu: Fix bogus ratelimit condition
    
    [ Upstream commit a7e282c77785c7eabf98836431b1f029481085ad ]
    
    The ratelimit logic in report_idle_softirq() is broken because the
    exit condition is always true:
    
            static int ratelimit;
    
            if (ratelimit < 10)
                    return false;  ---> always returns here
    
            ratelimit++;           ---> no chance to run
    
    Make it check for >= 10 instead.
    
    Fixes: 0345691b24c0 ("tick/rcu: Stop allowing RCU_SOFTIRQ in idle")
    Signed-off-by: Wen Yang <wenyang.linux@foxmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/tencent_5AAA3EEAB42095C9B7740BE62FBF9A67E007@qq.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f9bd298e3e4d3fd6e19f017789a42d0f332cd555
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Jun 1 22:16:34 2023 +0200

    posix-timers: Prevent RT livelock in itimer_delete()
    
    [ Upstream commit 9d9e522010eb5685d8b53e8a24320653d9d4cbbf ]
    
    itimer_delete() has a retry loop when the timer is concurrently expired. On
    non-RT kernels this just spin-waits until the timer callback has completed,
    except for posix CPU timers which have HAVE_POSIX_CPU_TIMERS_TASK_WORK
    enabled.
    
    In that case and on RT kernels the existing task could live lock when
    preempting the task which does the timer delivery.
    
    Replace spin_unlock() with an invocation of timer_wait_running() to handle
    it the same way as the other retry loops in the posix timer code.
    
    Fixes: ec8f954a40da ("posix-timers: Use a callback for cancel synchronization on PREEMPT_RT")
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
    Link: https://lore.kernel.org/r/87v8g7c50d.ffs@tglx
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33f713e5380bfdf44d4ef0e2882ac8ac85649911
Author: Gao Xiang <xiang@kernel.org>
Date:   Thu Jun 1 19:23:41 2023 +0800

    erofs: fix compact 4B support for 16k block size
    
    [ Upstream commit 001b8ccd0650727e54ec16ef72bf1b8eeab7168e ]
    
    In compact 4B, two adjacent lclusters are packed together as a unit to
    form on-disk indexes for effective random access, as below:
    
    (amortized = 4, vcnt = 2)
           _____________________________________________
          |___@_____ encoded bits __________|_ blkaddr _|
          0        .                                    amortized * vcnt = 8
          .             .
          .                  .              amortized * vcnt - 4 = 4
          .                        .
          .____________________________.
          |_type (2 bits)_|_clusterofs_|
    
    Therefore, encoded bits for each pack are 32 bits (4 bytes). IOWs,
    since each lcluster can get 16 bits for its type and clusterofs, the
    maximum supported lclustersize for compact 4B format is 16k (14 bits).
    
    Fix this to enable compact 4B format for 16k lclusters (blocks), which
    is tested on an arm64 server with 16k page size.
    
    Fixes: 152a333a5895 ("staging: erofs: add compacted compression indexes support")
    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
    Link: https://lore.kernel.org/r/20230601112341.56960-1-hsiangkao@linux.alibaba.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 83dd3e9c24b0c59eacdb4c161174351203c43932
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Mon Jun 12 10:10:20 2023 -0400

    svcrdma: Prevent page release when nothing was received
    
    [ Upstream commit baf6d18b116b7dc84ed5e212c3a89f17cdc3f28c ]
    
    I noticed that svc_rqst_release_pages() was still unnecessarily
    releasing a page when svc_rdma_recvfrom() returns zero.
    
    Fixes: a53d5cb0646a ("svcrdma: Avoid releasing a page in svc_xprt_release()")
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 423593ffdef9605ffbad67232d4386572e796ac6
Author: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date:   Wed May 10 18:33:42 2023 +0200

    irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
    
    [ Upstream commit 4848229494a323eeaab62eee5574ef9f7de80374 ]
    
    The initialization function for the J-Core AIC aic_irq_of_init() is
    currently missing the call to irq_alloc_descs() which allocates and
    initializes all the IRQ descriptors. Add missing function call and
    return the error code from irq_alloc_descs() in case the allocation
    fails.
    
    Fixes: 981b58f66cfc ("irqchip/jcore-aic: Add J-Core AIC driver")
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Tested-by: Rob Landley <rob@landley.net>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230510163343.43090-1-glaubitz@physik.fu-berlin.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c62caf215d9adf770639c9c41ad9c774d6015cbf
Author: Antonio Borneo <antonio.borneo@foss.st.com>
Date:   Thu Jun 1 17:56:14 2023 +0200

    irqchip/stm32-exti: Fix warning on initialized field overwritten
    
    [ Upstream commit 48f31e496488a25f443c0df52464da446fb1d10c ]
    
    While compiling with W=1, both gcc and clang complain about a
    tricky way to initialize an array by filling it with a non-zero
    value and then overrride some of the array elements.
    In this case the override is intentional, so just disable the
    specific warning for only this part of the code.
    
    Note: the flag "-Woverride-init" is recognized by both compilers,
    but the warning msg from clang reports "-Winitializer-overrides".
    The doc of clang clarifies that the two flags are synonyms, so use
    here only the flag name common on both compilers.
    
    Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
    Fixes: c297493336b7 ("irqchip/stm32-exti: Simplify irq description table")
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230601155614.34490-1-antonio.borneo@foss.st.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c210e1af33376e52076338cfaeec55ab9b23cdd1
Author: Christoph Hellwig <hch@lst.de>
Date:   Wed Jun 14 16:03:38 2023 +0200

    splice: don't call file_accessed in copy_splice_read
    
    [ Upstream commit 0b24be4691c9e6ea13ca70050d42a9f9032fa788 ]
    
    copy_splice_read calls into ->read_iter to read the data, which already
    calls file_accessed.
    
    Fixes: 33b3b041543e ("splice: Add a func to do a splice from an O_DIRECT file without ITER_PIPE")
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Christian Brauner <brauner@kernel.org>
    Reviewed-by: David Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/20230614140341.521331-2-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 812652a3212a204ba975d35360be2e004a89980a
Author: Jianmin Lv <lvjianmin@loongson.cn>
Date:   Wed Jun 14 19:59:36 2023 +0800

    irqchip/loongson-eiointc: Fix irq affinity setting during resume
    
    [ Upstream commit fb07b8f83441febeb0daf199b5f18c6de9bbab03 ]
    
    The hierarchy of PCH PIC, PCH PCI MSI and EIONTC is as following:
    
            PCH PIC ------->|
                            |---->EIOINTC
            PCH PCI MSI --->|
    
    so the irq_data list of irq_desc for IRQs on PCH PIC and PCH PCI MSI
    is like this:
    
    irq_desc->irq_data(domain: PCH PIC)->parent_data(domain: EIOINTC)
    irq_desc->irq_data(domain: PCH PCI MSI)->parent_data(domain: EIOINTC)
    
    In eiointc_resume(), the irq_data passed into eiointc_set_irq_affinity()
    should be matched to EIOINTC domain instead of PCH PIC or PCH PCI MSI
    domain, so fix it.
    
    Fixes: a90335c2dfb4 ("irqchip/loongson-eiointc: Add suspend/resume support")
    
    Reported-by: yangqiming <yangqiming@loongson.cn>
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230614115936.5950-6-lvjianmin@loongson.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7149e57cf01184fba175589f8fbe9fbf33be02e1
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Sat Jun 10 10:20:03 2023 +0800

    block: fix blktrace debugfs entries leakage
    
    [ Upstream commit dd7de3704af9989b780693d51eaea49a665bd9c2 ]
    
    Commit 99d055b4fd4b ("block: remove per-disk debugfs files in
    blk_unregister_queue") moves blk_trace_shutdown() from
    blk_release_queue() to blk_unregister_queue(), this is safe if blktrace
    is created through sysfs, however, there is a regression in corner
    case.
    
    blktrace can still be enabled after del_gendisk() through ioctl if
    the disk is opened before del_gendisk(), and if blktrace is not shutdown
    through ioctl before closing the disk, debugfs entries will be leaked.
    
    Fix this problem by shutdown blktrace in disk_release(), this is safe
    because blk_trace_remove() is reentrant.
    
    Fixes: 99d055b4fd4b ("block: remove per-disk debugfs files in blk_unregister_queue")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20230610022003.2557284-4-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7766449b1261f2e96d8a9b6e31f5534dc94ed13
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Mon May 29 21:11:03 2023 +0800

    md/raid1-10: submit write io directly if bitmap is not enabled
    
    [ Upstream commit 7db922bae3abdf0a1db81ef7228cc0b996a0c1e3 ]
    
    Commit 6cce3b23f6f8 ("[PATCH] md: write intent bitmap support for raid10")
    add bitmap support, and it changed that write io is submitted through
    daemon thread because bitmap need to be updated before write io. And
    later, plug is used to fix performance regression because all the write io
    will go to demon thread, which means io can't be issued concurrently.
    
    However, if bitmap is not enabled, the write io should not go to daemon
    thread in the first place, and plug is not needed as well.
    
    Fixes: 6cce3b23f6f8 ("[PATCH] md: write intent bitmap support for raid10")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230529131106.2123367-5-yukuai1@huaweicloud.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 532cb71d6cc2a2f27b51494197520bdce697838f
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Mon May 29 21:11:02 2023 +0800

    md/raid1-10: factor out a helper to submit normal write
    
    [ Upstream commit 8295efbe68c080047e98d9c0eb5cb933b238a8cb ]
    
    There are multiple places to do the same thing, factor out a helper to
    prevent redundant code, and the helper will be used in following patch
    as well.
    
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230529131106.2123367-4-yukuai1@huaweicloud.com
    Stable-dep-of: 7db922bae3ab ("md/raid1-10: submit write io directly if bitmap is not enabled")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0b7395850ae3bb310c454133bead888e351dffc
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Mon May 29 21:11:01 2023 +0800

    md/raid1-10: factor out a helper to add bio to plug
    
    [ Upstream commit 5ec6ca140a034682e421e2e808ef5ddfdfd65242 ]
    
    The code in raid1 and raid10 is identical, prepare to limit the number
    of plugged bios.
    
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230529131106.2123367-3-yukuai1@huaweicloud.com
    Stable-dep-of: 7db922bae3ab ("md/raid1-10: submit write io directly if bitmap is not enabled")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c66a886c0e1cf2eca255d0d91aebb434b4b3a1c6
Author: Li Nan <linan122@huawei.com>
Date:   Fri Jun 2 17:18:39 2023 +0800

    md/raid10: fix io loss while replacement replace rdev
    
    [ Upstream commit 2ae6aaf76912bae53c74b191569d2ab484f24bf3 ]
    
    When removing a disk with replacement, the replacement will be used to
    replace rdev. During this process, there is a brief window in which both
    rdev and replacement are read as NULL in raid10_write_request(). This
    will result in io not being submitted but it should be.
    
      //remove                              //write
      raid10_remove_disk                    raid10_write_request
       mirror->rdev = NULL
                                             read rdev -> NULL
       mirror->rdev = mirror->replacement
       mirror->replacement = NULL
                                             read replacement -> NULL
    
    Fix it by reading replacement first and rdev later, meanwhile, use smp_mb()
    to prevent memory reordering.
    
    Fixes: 475b0321a4df ("md/raid10: writes should get directed to replacement as well as original.")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Reviewed-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230602091839.743798-3-linan666@huaweicloud.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5015b97adda6a24dd3e713c63e521ecbeff25c6
Author: Li Nan <linan122@huawei.com>
Date:   Sat May 27 15:22:15 2023 +0800

    md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request
    
    [ Upstream commit 34817a2441747b48e444cb0e05d84e14bc9443da ]
    
    There are two check of 'mreplace' in raid10_sync_request(). In the first
    check, 'need_replace' will be set and 'mreplace' will be used later if
    no-Faulty 'mreplace' exists, In the second check, 'mreplace' will be
    set to NULL if it is Faulty, but 'need_replace' will not be changed
    accordingly. null-ptr-deref occurs if Faulty is set between two check.
    
    Fix it by merging two checks into one. And replace 'need_replace' with
    'mreplace' because their values are always the same.
    
    Fixes: ee37d7314a32 ("md/raid10: Fix raid10 replace hang when new added disk faulty")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Reviewed-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230527072218.2365857-2-linan666@huaweicloud.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aef6e98eb772594edd4399625e4e1bbe45971fa1
Author: Li Nan <linan122@huawei.com>
Date:   Mon May 22 15:25:34 2023 +0800

    md/raid10: fix wrong setting of max_corr_read_errors
    
    [ Upstream commit f8b20a405428803bd9881881d8242c9d72c6b2b2 ]
    
    There is no input check when echo md/max_read_errors and overflow might
    occur. Add check of input number.
    
    Fixes: 1e50915fe0bb ("raid: improve MD/raid10 handling of correctable read errors.")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Reviewed-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230522072535.1523740-3-linan666@huaweicloud.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 77c546887e9c37878ca643815321c732fff8d29b
Author: Li Nan <linan122@huawei.com>
Date:   Mon May 22 15:25:33 2023 +0800

    md/raid10: fix overflow of md/safe_mode_delay
    
    [ Upstream commit 6beb489b2eed25978523f379a605073f99240c50 ]
    
    There is no input check when echo md/safe_mode_delay in safe_delay_store().
    And msec might also overflow when HZ < 1000 in safe_delay_show(), Fix it by
    checking overflow in safe_delay_store() and use unsigned long conversion in
    safe_delay_show().
    
    Fixes: 72e02075a33f ("md: factor out parsing of fixed-point numbers")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230522072535.1523740-2-linan666@huaweicloud.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 152bb26796ff054af50b2ee1b3ca56e364e4f61b
Author: Li Nan <linan122@huawei.com>
Date:   Mon May 15 21:48:05 2023 +0800

    md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
    
    [ Upstream commit 301867b1c16805aebbc306aafa6ecdc68b73c7e5 ]
    
    If we write a large number to md/bitmap_set_bits, md_bitmap_checkpage()
    will return -EINVAL because 'page >= bitmap->pages', but the return value
    was not checked immediately in md_bitmap_get_counter() in order to set
    *blocks value and slab-out-of-bounds occurs.
    
    Move check of 'page >= bitmap->pages' to md_bitmap_get_counter() and
    return directly if true.
    
    Fixes: ef4256733506 ("md/bitmap: optimise scanning of empty bitmaps.")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Reviewed-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230515134808.3936750-2-linan666@huaweicloud.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7237c26431cc78e5ec3259f4350f3dd58f6a4319
Author: Chaitanya Kulkarni <kch@nvidia.com>
Date:   Fri Apr 28 00:31:15 2023 -0700

    nvme-core: fix dev_pm_qos memleak
    
    [ Upstream commit 7ed5cf8e6d9bfb6a78d0471317edff14f0f2b4dd ]
    
    Call dev_pm_qos_hide_latency_tolerance() in the error unwind patch to
    avoid following kmemleak:-
    
    blktests (master) # kmemleak-clear; ./check nvme/044;
    blktests (master) # kmemleak-scan ; kmemleak-show
    nvme/044 (Test bi-directional authentication)                [passed]
        runtime  2.111s  ...  2.124s
    unreferenced object 0xffff888110c46240 (size 96):
      comm "nvme", pid 33461, jiffies 4345365353 (age 75.586s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<0000000069ac2cec>] kmalloc_trace+0x25/0x90
        [<000000006acc66d5>] dev_pm_qos_update_user_latency_tolerance+0x6f/0x100
        [<00000000cc376ea7>] nvme_init_ctrl+0x38e/0x410 [nvme_core]
        [<000000007df61b4b>] 0xffffffffc05e88b3
        [<00000000d152b985>] 0xffffffffc05744cb
        [<00000000f04a4041>] vfs_write+0xc5/0x3c0
        [<00000000f9491baf>] ksys_write+0x5f/0xe0
        [<000000001c46513d>] do_syscall_64+0x3b/0x90
        [<00000000ecf348fe>] entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Link: https://lore.kernel.org/linux-nvme/CAHj4cs-nDaKzMx2txO4dbE+Mz9ePwLtU0e3egz+StmzOUgWUrA@mail.gmail.com/
    Fixes: f50fff73d620 ("nvme: implement In-Band authentication")
    Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
    Tested-by: Yi Zhang <yi.zhang@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7eb72436e7e26797d320dfb8aaa8164a36f2680
Author: Chaitanya Kulkarni <kch@nvidia.com>
Date:   Fri Apr 28 00:31:14 2023 -0700

    nvme-core: add missing fault-injection cleanup
    
    [ Upstream commit 3a12a0b868a512fcada564699d00f5e652c0998c ]
    
    Add missing fault-injection cleanup in nvme_init_ctrl() in the error
    unwind path that also fixes following message for blktests:-
    
    linux-block (for-next) # grep debugfs debugfs-err.log
    [  147.853464] debugfs: Directory 'nvme1' with parent '/' already present!
    [  147.853973] nvme1: failed to create debugfs attr
    [  148.802490] debugfs: Directory 'nvme1' with parent '/' already present!
    [  148.803244] nvme1: failed to create debugfs attr
    [  148.877304] debugfs: Directory 'nvme1' with parent '/' already present!
    [  148.877775] nvme1: failed to create debugfs attr
    [  149.816652] debugfs: Directory 'nvme1' with parent '/' already present!
    [  149.818011] nvme1: failed to create debugfs attr
    
    Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
    Tested-by: Yi Zhang <yi.zhang@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Stable-dep-of: 7ed5cf8e6d9b ("nvme-core: fix dev_pm_qos memleak")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39b90fc75943406d2bd60fd1ea041aca2559cc5f
Author: Chaitanya Kulkarni <kch@nvidia.com>
Date:   Fri Apr 28 00:31:13 2023 -0700

    nvme-core: fix memory leak in dhchap_ctrl_secret
    
    [ Upstream commit 99c2dcc8ffc24e210a3aa05c204d92f3ef460b05 ]
    
    Free dhchap_secret in nvme_ctrl_dhchap_ctrl_secret_store() before we
    return when nvme_auth_generate_key() returns error.
    
    Fixes: f50fff73d620 ("nvme: implement In-Band authentication")
    Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c41ac086d2abaf7527a5685f9c0a1c209ab7e0aa
Author: Chaitanya Kulkarni <kch@nvidia.com>
Date:   Fri Apr 28 00:31:12 2023 -0700

    nvme-core: fix memory leak in dhchap_secret_store
    
    [ Upstream commit a836ca33c5b07d34dd5347af9f64d25651d12674 ]
    
    Free dhchap_secret in nvme_ctrl_dhchap_secret_store() before we return
    fix following kmemleack:-
    
    unreferenced object 0xffff8886376ea800 (size 64):
      comm "check", pid 22048, jiffies 4344316705 (age 92.199s)
      hex dump (first 32 bytes):
        44 48 48 43 2d 31 3a 30 30 3a 6e 78 72 35 4b 67  DHHC-1:00:nxr5Kg
        75 58 34 75 6f 41 78 73 4a 61 34 63 2f 68 75 4c  uX4uoAxsJa4c/huL
      backtrace:
        [<0000000030ce5d4b>] __kmalloc+0x4b/0x130
        [<000000009be1cdc1>] nvme_ctrl_dhchap_secret_store+0x8f/0x160 [nvme_core]
        [<00000000ac06c96a>] kernfs_fop_write_iter+0x12b/0x1c0
        [<00000000437e7ced>] vfs_write+0x2ba/0x3c0
        [<00000000f9491baf>] ksys_write+0x5f/0xe0
        [<000000001c46513d>] do_syscall_64+0x3b/0x90
        [<00000000ecf348fe>] entry_SYSCALL_64_after_hwframe+0x72/0xdc
    unreferenced object 0xffff8886376eaf00 (size 64):
      comm "check", pid 22048, jiffies 4344316736 (age 92.168s)
      hex dump (first 32 bytes):
        44 48 48 43 2d 31 3a 30 30 3a 6e 78 72 35 4b 67  DHHC-1:00:nxr5Kg
        75 58 34 75 6f 41 78 73 4a 61 34 63 2f 68 75 4c  uX4uoAxsJa4c/huL
      backtrace:
        [<0000000030ce5d4b>] __kmalloc+0x4b/0x130
        [<000000009be1cdc1>] nvme_ctrl_dhchap_secret_store+0x8f/0x160 [nvme_core]
        [<00000000ac06c96a>] kernfs_fop_write_iter+0x12b/0x1c0
        [<00000000437e7ced>] vfs_write+0x2ba/0x3c0
        [<00000000f9491baf>] ksys_write+0x5f/0xe0
        [<000000001c46513d>] do_syscall_64+0x3b/0x90
        [<00000000ecf348fe>] entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Fixes: f50fff73d620 ("nvme: implement In-Band authentication")
    Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
    Tested-by: Yi Zhang <yi.zhang@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 89aac0345e5deeec0d6fdfdaab005dd65844e2e6
Author: NeilBrown <neilb@suse.de>
Date:   Sat Jun 3 07:14:14 2023 +1000

    lockd: drop inappropriate svc_get() from locked_get()
    
    [ Upstream commit 665e89ab7c5af1f2d260834c861a74b01a30f95f ]
    
    The below-mentioned patch was intended to simplify refcounting on the
    svc_serv used by locked.  The goal was to only ever have a single
    reference from the single thread.  To that end we dropped a call to
    lockd_start_svc() (except when creating thread) which would take a
    reference, and dropped the svc_put(serv) that would drop that reference.
    
    Unfortunately we didn't also remove the svc_get() from
    lockd_create_svc() in the case where the svc_serv already existed.
    So after the patch:
     - on the first call the svc_serv was allocated and the one reference
       was given to the thread, so there are no extra references
     - on subsequent calls svc_get() was called so there is now an extra
       reference.
    This is clearly not consistent.
    
    The inconsistency is also clear in the current code in lockd_get()
    takes *two* references, one on nlmsvc_serv and one by incrementing
    nlmsvc_users.   This clearly does not match lockd_put().
    
    So: drop that svc_get() from lockd_get() (which used to be in
    lockd_create_svc().
    
    Reported-by: Ido Schimmel <idosch@idosch.org>
    Closes: https://lore.kernel.org/linux-nfs/ZHsI%2FH16VX9kJQX1@shredder/T/#u
    Fixes: b73a2972041b ("lockd: move lockd_start_svc() call into lockd_create_svc()")
    Signed-off-by: NeilBrown <neilb@suse.de>
    Tested-by: Ido Schimmel <idosch@nvidia.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 140421842d778a2935e172b6e06d02dd2adb7420
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Sat Jun 10 10:30:43 2023 +0800

    blk-mq: fix potential io hang by wrong 'wake_batch'
    
    [ Upstream commit 4f1731df60f9033669f024d06ae26a6301260b55 ]
    
    In __blk_mq_tag_busy/idle(), updating 'active_queues' and calculating
    'wake_batch' is not atomic:
    
    t1:                     t2:
    _blk_mq_tag_busy        blk_mq_tag_busy
    inc active_queues
    // assume 1->2
                            inc active_queues
                            // 2 -> 3
                            blk_mq_update_wake_batch
                            // calculate based on 3
    blk_mq_update_wake_batch
    /* calculate based on 2, while active_queues is actually 3. */
    
    Fix this problem by protecting them wih 'tags->lock', this is not a hot
    path, so performance should not be concerned. And now that all writers
    are inside the lock, switch 'actives_queues' from atomic to unsigned
    int.
    
    Fixes: 180dccb0dba4 ("blk-mq: fix tag_get wait task can't be awakened")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20230610023043.2559121-1-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e4f98ba352998fe59093baefff9230036ecfdba
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Jan 17 18:13:56 2023 +0100

    virt: sevguest: Add CONFIG_CRYPTO dependency
    
    [ Upstream commit 84b9b44b99780d35fe72ac63c4724f158771e898 ]
    
    This driver fails to link when CRYPTO is disabled, or in a loadable
    module:
    
      WARNING: unmet direct dependencies detected for CRYPTO_GCM
      WARNING: unmet direct dependencies detected for CRYPTO_AEAD2
        Depends on [m]: CRYPTO [=m]
        Selected by [y]:
        - SEV_GUEST [=y] && VIRT_DRIVERS [=y] && AMD_MEM_ENCRYPT [=y]
    
    x86_64-linux-ld: crypto/aead.o: in function `crypto_register_aeads':
    
    Fixes: fce96cf04430 ("virt: Add SEV-SNP guest driver")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/r/20230117171416.2715125-1-arnd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0d26283af612b9e0cc3188b0b88ad7fdea447e8
Author: Waiman Long <longman@redhat.com>
Date:   Tue Jun 6 14:07:24 2023 -0400

    blk-cgroup: Reinit blkg_iostat_set after clearing in blkcg_reset_stats()
    
    [ Upstream commit 3d2af77e31ade05ff7ccc3658c3635ec1bea0979 ]
    
    When blkg_alloc() is called to allocate a blkcg_gq structure
    with the associated blkg_iostat_set's, there are 2 fields within
    blkg_iostat_set that requires proper initialization - blkg & sync.
    The former field was introduced by commit 3b8cc6298724 ("blk-cgroup:
    Optimize blkcg_rstat_flush()") while the later one was introduced by
    commit f73316482977 ("blk-cgroup: reimplement basic IO stats using
    cgroup rstat").
    
    Unfortunately those fields in the blkg_iostat_set's are not properly
    re-initialized when they are cleared in v1's blkcg_reset_stats(). This
    can lead to a kernel panic due to NULL pointer access of the blkg
    pointer. The missing initialization of sync is less problematic and
    can be a problem in a debug kernel due to missing lockdep initialization.
    
    Fix these problems by re-initializing them after memory clearing.
    
    Fixes: 3b8cc6298724 ("blk-cgroup: Optimize blkcg_rstat_flush()")
    Fixes: f73316482977 ("blk-cgroup: reimplement basic IO stats using cgroup rstat")
    Signed-off-by: Waiman Long <longman@redhat.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Link: https://lore.kernel.org/r/20230606180724.2455066-1-longman@redhat.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b6579a08fe1416c8f3ef716ce7c9e9e58270e3d
Author: Tom Lendacky <thomas.lendacky@amd.com>
Date:   Tue Jun 6 09:51:22 2023 -0500

    x86/sev: Fix calculation of end address based on number of pages
    
    [ Upstream commit 5dee19b6b2b194216919b99a1f5af2949a754016 ]
    
    When calculating an end address based on an unsigned int number of pages,
    any value greater than or equal to 0x100000 that is shift PAGE_SHIFT bits
    results in a 0 value, resulting in an invalid end address. Change the
    number of pages variable in various routines from an unsigned int to an
    unsigned long to calculate the end address correctly.
    
    Fixes: 5e5ccff60a29 ("x86/sev: Add helper for validating pages in early enc attribute changes")
    Fixes: dc3f3d2474b8 ("x86/mm: Validate memory when changing the C-bit")
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/r/6a6e4eea0e1414402bac747744984fa4e9c01bb6.1686063086.git.thomas.lendacky@amd.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9279a1b74ad98039d5d44d26b9e7a9cfe655b6d3
Author: Li Nan <linan122@huawei.com>
Date:   Sat May 27 17:19:04 2023 +0800

    blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost
    
    [ Upstream commit 8d211554679d0b23702bd32ba04aeac0c1c4f660 ]
    
    adjust_inuse_and_calc_cost() use spin_lock_irq() and IRQ will be enabled
    when unlock. DEADLOCK might happen if we have held other locks and disabled
    IRQ before invoking it.
    
    Fix it by using spin_lock_irqsave() instead, which can keep IRQ state
    consistent with before when unlock.
    
      ================================
      WARNING: inconsistent lock state
      5.10.0-02758-g8e5f91fd772f #26 Not tainted
      --------------------------------
      inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
      kworker/2:3/388 [HC0[0]:SC0[0]:HE0:SE1] takes:
      ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: spin_lock_irq
      ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: bfq_bio_merge+0x141/0x390
      {IN-HARDIRQ-W} state was registered at:
        __lock_acquire+0x3d7/0x1070
        lock_acquire+0x197/0x4a0
        __raw_spin_lock_irqsave
        _raw_spin_lock_irqsave+0x3b/0x60
        bfq_idle_slice_timer_body
        bfq_idle_slice_timer+0x53/0x1d0
        __run_hrtimer+0x477/0xa70
        __hrtimer_run_queues+0x1c6/0x2d0
        hrtimer_interrupt+0x302/0x9e0
        local_apic_timer_interrupt
        __sysvec_apic_timer_interrupt+0xfd/0x420
        run_sysvec_on_irqstack_cond
        sysvec_apic_timer_interrupt+0x46/0xa0
        asm_sysvec_apic_timer_interrupt+0x12/0x20
      irq event stamp: 837522
      hardirqs last  enabled at (837521): [<ffffffff84b9419d>] __raw_spin_unlock_irqrestore
      hardirqs last  enabled at (837521): [<ffffffff84b9419d>] _raw_spin_unlock_irqrestore+0x3d/0x40
      hardirqs last disabled at (837522): [<ffffffff84b93fa3>] __raw_spin_lock_irq
      hardirqs last disabled at (837522): [<ffffffff84b93fa3>] _raw_spin_lock_irq+0x43/0x50
      softirqs last  enabled at (835852): [<ffffffff84e00558>] __do_softirq+0x558/0x8ec
      softirqs last disabled at (835845): [<ffffffff84c010ff>] asm_call_irq_on_stack+0xf/0x20
    
      other info that might help us debug this:
       Possible unsafe locking scenario:
    
             CPU0
             ----
        lock(&bfqd->lock);
        <Interrupt>
          lock(&bfqd->lock);
    
       *** DEADLOCK ***
    
      3 locks held by kworker/2:3/388:
       #0: ffff888107af0f38 ((wq_completion)kthrotld){+.+.}-{0:0}, at: process_one_work+0x742/0x13f0
       #1: ffff8881176bfdd8 ((work_completion)(&td->dispatch_work)){+.+.}-{0:0}, at: process_one_work+0x777/0x13f0
       #2: ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: spin_lock_irq
       #2: ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: bfq_bio_merge+0x141/0x390
    
      stack backtrace:
      CPU: 2 PID: 388 Comm: kworker/2:3 Not tainted 5.10.0-02758-g8e5f91fd772f #26
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
      Workqueue: kthrotld blk_throtl_dispatch_work_fn
      Call Trace:
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0x107/0x167
       print_usage_bug
       valid_state
       mark_lock_irq.cold+0x32/0x3a
       mark_lock+0x693/0xbc0
       mark_held_locks+0x9e/0xe0
       __trace_hardirqs_on_caller
       lockdep_hardirqs_on_prepare.part.0+0x151/0x360
       trace_hardirqs_on+0x5b/0x180
       __raw_spin_unlock_irq
       _raw_spin_unlock_irq+0x24/0x40
       spin_unlock_irq
       adjust_inuse_and_calc_cost+0x4fb/0x970
       ioc_rqos_merge+0x277/0x740
       __rq_qos_merge+0x62/0xb0
       rq_qos_merge
       bio_attempt_back_merge+0x12c/0x4a0
       blk_mq_sched_try_merge+0x1b6/0x4d0
       bfq_bio_merge+0x24a/0x390
       __blk_mq_sched_bio_merge+0xa6/0x460
       blk_mq_sched_bio_merge
       blk_mq_submit_bio+0x2e7/0x1ee0
       __submit_bio_noacct_mq+0x175/0x3b0
       submit_bio_noacct+0x1fb/0x270
       blk_throtl_dispatch_work_fn+0x1ef/0x2b0
       process_one_work+0x83e/0x13f0
       process_scheduled_works
       worker_thread+0x7e3/0xd80
       kthread+0x353/0x470
       ret_from_fork+0x1f/0x30
    
    Fixes: b0853ab4a238 ("blk-iocost: revamp in-period donation snapbacks")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Reviewed-by: Yu Kuai <yukuai3@huawei.com>
    Link: https://lore.kernel.org/r/20230527091904.3001833-1-linan666@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dceb668daac227d2799d78c31a24787fff7fd986
Author: Shawn Wang <shawnwang@linux.alibaba.com>
Date:   Mon May 15 14:04:48 2023 +0800

    x86/resctrl: Only show tasks' pid in current pid namespace
    
    [ Upstream commit 2997d94b5dd0e8b10076f5e0b6f18410c73e28bd ]
    
    When writing a task id to the "tasks" file in an rdtgroup,
    rdtgroup_tasks_write() treats the pid as a number in the current pid
    namespace. But when reading the "tasks" file, rdtgroup_tasks_show() shows
    the list of global pids from the init namespace, which is confusing and
    incorrect.
    
    To be more robust, let the "tasks" file only show pids in the current pid
    namespace.
    
    Fixes: e02737d5b826 ("x86/intel_rdt: Add tasks files")
    Signed-off-by: Shawn Wang <shawnwang@linux.alibaba.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Acked-by: Reinette Chatre <reinette.chatre@intel.com>
    Acked-by: Fenghua Yu <fenghua.yu@intel.com>
    Tested-by: Reinette Chatre <reinette.chatre@intel.com>
    Link: https://lore.kernel.org/all/20230116071246.97717-1-shawnwang@linux.alibaba.com/
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2
Author: Gao Xiang <xiang@kernel.org>
Date:   Sat May 27 04:14:56 2023 +0800

    erofs: kill hooked chains to avoid loops on deduplicated compressed images
    
    [ Upstream commit 967c28b23f6c89bb8eef6a046ea88afe0d7c1029 ]
    
    After heavily stressing EROFS with several images which include a
    hand-crafted image of repeated patterns for more than 46 days, I found
    two chains could be linked with each other almost simultaneously and
    form a loop so that the entire loop won't be submitted.  As a
    consequence, the corresponding file pages will remain locked forever.
    
    It can be _only_ observed on data-deduplicated compressed images.
    For example, consider two chains with five pclusters in total:
            Chain 1:  2->3->4->5    -- The tail pcluster is 5;
            Chain 2:  5->1->2       -- The tail pcluster is 2.
    
    Chain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link
    to Chain 2 at the same time with pcluster 2.
    
    Since hooked chains are all linked locklessly now, I have no idea how
    to simply avoid the race.  Instead, let's avoid hooked chains completely
    until I could work out a proper way to fix this and end users finally
    tell us that it's needed to add it back.
    
    Actually, this optimization can be found with multi-threaded workloads
    (especially even more often on deduplicated compressed images), yet I'm
    not sure about the overall system impacts of not having this compared
    with implementation complexity.
    
    Fixes: 267f2492c8f7 ("erofs: introduce multi-reference pclusters (fully-referenced)")
    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
    Reviewed-by: Yue Hu <huyue2@coolpad.com>
    Link: https://lore.kernel.org/r/20230526201459.128169-4-hsiangkao@linux.alibaba.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19b073064f35bbd4b847da23d2011bda3221b2ed
Author: David Howells <dhowells@redhat.com>
Date:   Mon May 22 14:49:48 2023 +0100

    splice: Fix filemap_splice_read() to use the correct inode
    
    [ Upstream commit c37222082f23c456664d1c3182a714670ab8f9a4 ]
    
    Fix filemap_splice_read() to use file->f_mapping->host, not file->f_inode,
    as the source of the file size because in the case of a block device,
    file->f_inode points to the block-special file (which is typically 0
    length) and not the backing store.
    
    Fixes: 07073eb01c5f ("splice: Add a func to do a splice from a buffered file without ITER_PIPE")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Christian Brauner <brauner@kernel.org>
    cc: Steve French <stfrench@microsoft.com>
    cc: Jens Axboe <axboe@kernel.dk>
    cc: Al Viro <viro@zeniv.linux.org.uk>
    cc: David Hildenbrand <david@redhat.com>
    cc: John Hubbard <jhubbard@nvidia.com>
    cc: linux-mm@kvack.org
    cc: linux-block@vger.kernel.org
    cc: linux-fsdevel@vger.kernel.org
    Link: https://lore.kernel.org/r/20230522135018.2742245-2-dhowells@redhat.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c1756fd2de03d8cc8a155f875fd6416621cfe89
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed May 17 10:42:21 2023 -0700

    block: Fix the type of the second bdev_op_is_zoned_write() argument
    
    [ Upstream commit 3ddbe2a7e0d4a155a805f69c906c9beed30d4cc4 ]
    
    Change the type of the second argument of bdev_op_is_zoned_write() from
    blk_opf_t into enum req_op because this function expects an operation
    without flags as second argument.
    
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Pankaj Raghav <p.raghav@samsung.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Cc: Ming Lei <ming.lei@redhat.com>
    Fixes: 8cafdb5ab94c ("block: adapt blk_mq_plug() to not plug for writes that require a zone lock")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20230517174230.897144-4-bvanassche@acm.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d215175a3a6e890ea43ec80e5984b7c7100e0a58
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 16 21:56:12 2023 +0200

    fs: pipe: reveal missing function protoypes
    
    [ Upstream commit 247c8d2f9837a3e29e3b6b7a4aa9c36c37659dd4 ]
    
    A couple of functions from fs/pipe.c are used both internally
    and for the watch queue code, but the declaration is only
    visible when the latter is enabled:
    
    fs/pipe.c:1254:5: error: no previous prototype for 'pipe_resize_ring'
    fs/pipe.c:758:15: error: no previous prototype for 'account_pipe_buffers'
    fs/pipe.c:764:6: error: no previous prototype for 'too_many_pipe_buffers_soft'
    fs/pipe.c:771:6: error: no previous prototype for 'too_many_pipe_buffers_hard'
    fs/pipe.c:777:6: error: no previous prototype for 'pipe_is_unprivileged_user'
    
    Make the visible unconditionally to avoid these warnings.
    
    Fixes: c73be61cede5 ("pipe: Add general notification queue support")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Message-Id: <20230516195629.551602-1-arnd@kernel.org>
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2b2621f74dfbd2ec90d86b4bb8755a34e7537f6d
Author: Jeff Layton <jlayton@kernel.org>
Date:   Wed Apr 19 07:24:46 2023 -0400

    drm: use mgr->dev in drm_dbg_kms in drm_dp_add_payload_part2
    
    commit 54d217406afe250d7a768783baaa79a035f21d38 upstream.
    
    I've been experiencing some intermittent crashes down in the display
    driver code. The symptoms are ususally a line like this in dmesg:
    
        amdgpu 0000:30:00.0: [drm] Failed to create MST payload for port 000000006d3a3885: -5
    
    ...followed by an Oops due to a NULL pointer dereference.
    
    Switch to using mgr->dev instead of state->dev since "state" can be
    NULL in some cases.
    
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2184855
    Suggested-by: Jani Nikula <jani.nikula@linux.intel.com>
    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230419112447.18471-1-jlayton@kernel.org
    Cc: "Limonciello, Mario" <mario.limonciello@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68db7391a6c74ded2318f9590ee12014faecd159
Author: Peter Collingbourne <pcc@google.com>
Date:   Mon May 22 17:43:08 2023 -0700

    mm: call arch_swap_restore() from do_swap_page()
    
    commit 6dca4ac6fc91fd41ea4d6c4511838d37f4e0eab2 upstream.
    
    Commit c145e0b47c77 ("mm: streamline COW logic in do_swap_page()") moved
    the call to swap_free() before the call to set_pte_at(), which meant that
    the MTE tags could end up being freed before set_pte_at() had a chance to
    restore them.  Fix it by adding a call to the arch_swap_restore() hook
    before the call to swap_free().
    
    Link: https://lkml.kernel.org/r/20230523004312.1807357-2-pcc@google.com
    Link: https://linux-review.googlesource.com/id/I6470efa669e8bd2f841049b8c61020c510678965
    Fixes: c145e0b47c77 ("mm: streamline COW logic in do_swap_page()")
    Signed-off-by: Peter Collingbourne <pcc@google.com>
    Reported-by: Qun-wei Lin <Qun-wei.Lin@mediatek.com>
    Closes: https://lore.kernel.org/all/5050805753ac469e8d727c797c2218a9d780d434.camel@mediatek.com/
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: "Huang, Ying" <ying.huang@intel.com>
    Reviewed-by: Steven Price <steven.price@arm.com>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Cc: <stable@vger.kernel.org>    [6.1+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>