commit fa74641fb6b93a19ccb50579886ecc98320230f9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed May 17 11:54:00 2023 +0200

    Linux 6.1.29
    
    Link: https://lore.kernel.org/r/20230515161721.545370111@linuxfoundation.org
    Tested-by: Chris Paterson (CIP) <chris.paterson2@renesas.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
    Tested-by: Conor Dooley <conor.dooley@microchip.com>
    Tested-by: Markus Reichelt <lkt+2023@mareichelt.com>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49f63bd0625a790025a086e8856ee8e5b9042412
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date:   Fri Mar 24 10:42:37 2023 -0400

    drm/amd/display: Fix hang when skipping modeset
    
    commit da5e14909776edea4462672fb4a3007802d262e7 upstream.
    
    [Why&How]
    
    When skipping full modeset since the only state change was a front porch
    change, the DC commit sequence requires extra checks to handle non
    existant plane states being asked to be removed from context.
    
    Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
    Signed-off-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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f6738e003b364783f3019fdf6e7645bc8dd1643
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Sat Apr 1 19:59:48 2023 +0200

    spi: fsl-cpm: Use 16 bit mode for large transfers with even size
    
    commit fc96ec826bced75cc6b9c07a4ac44bbf651337ab upstream.
    
    On CPM, the RISC core is a lot more efficiant when doing transfers
    in 16-bits chunks than in 8-bits chunks, but unfortunately the
    words need to be byte swapped as seen in a previous commit.
    
    So, for large tranfers with an even size, allocate a temporary tx
    buffer and byte-swap data before and after transfer.
    
    This change allows setting higher speed for transfer. For instance
    on an MPC 8xx (CPM1 comms RISC processor), the documentation tells
    that transfer in byte mode at 1 kbit/s uses 0.200% of CPM load
    at 25 MHz while a word transfer at the same speed uses 0.032%
    of CPM load. This means the speed can be 6 times higher in
    word mode for the same CPM load.
    
    For the time being, only do it on CPM1 as there must be a
    trade-off between the CPM load reduction and the CPU load required
    to byte swap the data.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Link: https://lore.kernel.org/r/f2e981f20f92dd28983c3949702a09248c23845c.1680371809.git.christophe.leroy@csgroup.eu
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 441fa642995a488036f3d9e67f6774a21a3d5e74
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Sat Apr 1 19:59:47 2023 +0200

    spi: fsl-spi: Re-organise transfer bits_per_word adaptation
    
    commit 8a5299a1278eadf1e08a598a5345c376206f171e upstream.
    
    For different reasons, fsl-spi driver performs bits_per_word
    modifications for different reasons:
    - On CPU mode, to minimise amount of interrupts
    - On CPM/QE mode to work around controller byte order
    
    For CPU mode that's done in fsl_spi_prepare_message() while
    for CPM mode that's done in fsl_spi_setup_transfer().
    
    Reunify all of it in fsl_spi_prepare_message(), and catch
    impossible cases early through master's bits_per_word_mask
    instead of returning EINVAL later.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Link: https://lore.kernel.org/r/0ce96fe96e8b07cba0613e4097cfd94d09b8919a.1680371809.git.christophe.leroy@csgroup.eu
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76ce32682635fe907e0f8e64e039e773e5c7508f
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun May 14 15:46:19 2023 -0700

    x86: fix clear_user_rep_good() exception handling annotation
    
    This code no longer exists in mainline, because it was removed in
    commit d2c95f9d6802 ("x86: don't use REP_GOOD or ERMS for user memory
    clearing") upstream.
    
    However, rather than backport the full range of x86 memory clearing and
    copying cleanups, fix the exception table annotation placement for the
    final 'rep movsb' in clear_user_rep_good(): rather than pointing at the
    actual instruction that did the user space access, it pointed to the
    register move just before it.
    
    That made sense from a code flow standpoint, but not from an actual
    usage standpoint: it means that if user access takes an exception, the
    exception handler won't actually find the instruction in the exception
    tables.
    
    As a result, rather than fixing it up and returning -EFAULT, it would
    then turn it into a kernel oops report instead, something like:
    
        BUG: unable to handle page fault for address: 0000000020081000
        #PF: supervisor write access in kernel mode
        #PF: error_code(0x0002) - not-present page
        ...
        RIP: 0010:clear_user_rep_good+0x1c/0x30 arch/x86/lib/clear_page_64.S:147
        ...
        Call Trace:
          __clear_user arch/x86/include/asm/uaccess_64.h:103 [inline]
          clear_user arch/x86/include/asm/uaccess_64.h:124 [inline]
          iov_iter_zero+0x709/0x1290 lib/iov_iter.c:800
          iomap_dio_hole_iter fs/iomap/direct-io.c:389 [inline]
          iomap_dio_iter fs/iomap/direct-io.c:440 [inline]
          __iomap_dio_rw+0xe3d/0x1cd0 fs/iomap/direct-io.c:601
          iomap_dio_rw+0x40/0xa0 fs/iomap/direct-io.c:689
          ext4_dio_read_iter fs/ext4/file.c:94 [inline]
          ext4_file_read_iter+0x4be/0x690 fs/ext4/file.c:145
          call_read_iter include/linux/fs.h:2183 [inline]
          do_iter_readv_writev+0x2e0/0x3b0 fs/read_write.c:733
          do_iter_read+0x2f2/0x750 fs/read_write.c:796
          vfs_readv+0xe5/0x150 fs/read_write.c:916
          do_preadv+0x1b6/0x270 fs/read_write.c:1008
          __do_sys_preadv2 fs/read_write.c:1070 [inline]
          __se_sys_preadv2 fs/read_write.c:1061 [inline]
          __x64_sys_preadv2+0xef/0x150 fs/read_write.c:1061
          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
    
    which then looks like a filesystem bug rather than the incorrect
    exception annotation that it is.
    
    [ The alternative to this one-liner fix is to take the upstream series
      that cleans this all up:
    
        68674f94ffc9 ("x86: don't use REP_GOOD or ERMS for small memory copies")
        20f3337d350c ("x86: don't use REP_GOOD or ERMS for small memory clearing")
        adfcf4231b8c ("x86: don't use REP_GOOD or ERMS for user memory copies")
      * d2c95f9d6802 ("x86: don't use REP_GOOD or ERMS for user memory clearing")
        3639a535587d ("x86: move stac/clac from user copy routines into callers")
        577e6a7fd50d ("x86: inline the 'rep movs' in user copies for the FSRM case")
        8c9b6a88b7e2 ("x86: improve on the non-rep 'clear_user' function")
        427fda2c8a49 ("x86: improve on the non-rep 'copy_user' function")
      * e046fe5a36a9 ("x86: set FSRS automatically on AMD CPUs that have FSRM")
        e1f2750edc4a ("x86: remove 'zerorest' argument from __copy_user_nocache()")
        034ff37d3407 ("x86: rewrite '__copy_user_nocache' function")
    
      with either the whole series or at a minimum the two marked commits
      being needed to fix this issue ]
    
    Reported-by: syzbot <syzbot+401145a9a237779feb26@syzkaller.appspotmail.com>
    Link: https://syzkaller.appspot.com/bug?extid=401145a9a237779feb26
    Fixes: 0db7058e8e23 ("x86/clear_user: Make it faster")
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ae066699dc08acda2dc4549d96ac9d05ed6f0d2
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Thu Apr 27 00:33:36 2023 -0500

    x86/amd_nb: Add PCI ID for family 19h model 78h
    
    commit 23a5b8bb022c1e071ca91b1a9c10f0ad6a0966e9 upstream.
    
    Commit
    
      310e782a99c7 ("platform/x86/amd: pmc: Utilize SMN index 0 for driver probe")
    
    switched to using amd_smn_read() which relies upon the misc PCI ID used
    by DF function 3 being included in a table.  The ID for model 78h is
    missing in that table, so amd_smn_read() doesn't work.
    
    Add the missing ID into amd_nb, restoring s2idle on this system.
    
      [ bp: Simplify commit message. ]
    
    Fixes: 310e782a99c7 ("platform/x86/amd: pmc: Utilize SMN index 0 for driver probe")
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>  # pci_ids.h
    Acked-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20230427053338.16653-2-mario.limonciello@amd.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 514728ffc05b8e4ec30299c820f6186daf88b10e
Author: Chao Yu <chao@kernel.org>
Date:   Tue Feb 7 21:48:08 2023 +0800

    f2fs: inode: fix to do sanity check on extent cache correctly
    
    commit 269d119481008cd725ce32553332593c0ecfc91c upstream.
    
    In do_read_inode(), sanity check for extent cache should be called after
    f2fs_init_read_extent_tree(), fix it.
    
    Fixes: 72840cccc0a1 ("f2fs: allocate the extent_cache by default")
    Signed-off-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85eb8b61dd4cfc7a839a0e86287b92ca6193444e
Author: Chao Yu <chao@kernel.org>
Date:   Mon Jan 9 11:49:20 2023 +0800

    f2fs: fix to do sanity check on extent cache correctly
    
    commit d48a7b3a72f121655d95b5157c32c7d555e44c05 upstream.
    
    In do_read_inode(), sanity_check_inode() should be called after
    f2fs_init_read_extent_tree(), fix it.
    
    Fixes: 72840cccc0a1 ("f2fs: allocate the extent_cache by default")
    Signed-off-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18ecffd03626ba57c4c899e0b7953479b463372d
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Thu Apr 6 16:46:15 2023 +0300

    drm/dsc: fix DP_DSC_MAX_BPP_DELTA_* macro values
    
    commit 0d68683838f2850dd8ff31f1121e05bfb7a2def0 upstream.
    
    The macro values just don't match the specs. Fix them.
    
    Fixes: 1482ec00be4a ("drm: Add missing DP DSC extended capability definitions.")
    Cc: Vinod Govindapillai <vinod.govindapillai@intel.com>
    Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230406134615.1422509-2-jani.nikula@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5fa4eedddd1c8342ce533cb401c0e693e55b4e3
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sun Apr 30 03:04:13 2023 -0400

    ext4: fix invalid free tracking in ext4_xattr_move_to_block()
    
    commit b87c7cdf2bed4928b899e1ce91ef0d147017ba45 upstream.
    
    In ext4_xattr_move_to_block(), the value of the extended attribute
    which we need to move to an external block may be allocated by
    kvmalloc() if the value is stored in an external inode.  So at the end
    of the function the code tried to check if this was the case by
    testing entry->e_value_inum.
    
    However, at this point, the pointer to the xattr entry is no longer
    valid, because it was removed from the original location where it had
    been stored.  So we could end up calling kvfree() on a pointer which
    was not allocated by kvmalloc(); or we could also potentially leak
    memory by not freeing the buffer when it should be freed.  Fix this by
    storing whether it should be freed in a separate variable.
    
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20230430160426.581366-1-tytso@mit.edu
    Link: https://syzkaller.appspot.com/bug?id=5c2aee8256e30b55ccf57312c16d88417adbd5e1
    Link: https://syzkaller.appspot.com/bug?id=41a6b5d4917c0412eb3b3c3c604965bed7d7420b
    Reported-by: syzbot+64b645917ce07d89bde5@syzkaller.appspotmail.com
    Reported-by: syzbot+0d042627c4f2ad332195@syzkaller.appspotmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d87a4e4094c9879fc8acdff8ce59fdffa979c8e0
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Apr 29 16:14:46 2023 -0400

    ext4: remove a BUG_ON in ext4_mb_release_group_pa()
    
    commit 463808f237cf73e98a1a45ff7460c2406a150a0b upstream.
    
    If a malicious fuzzer overwrites the ext4 superblock while it is
    mounted such that the s_first_data_block is set to a very large
    number, the calculation of the block group can underflow, and trigger
    a BUG_ON check.  Change this to be an ext4_warning so that we don't
    crash the kernel.
    
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20230430154311.579720-3-tytso@mit.edu
    Reported-by: syzbot+e2efa3efc15a1c9e95c3@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=69b28112e098b070f639efb356393af3ffec4220
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19fb73b8eaefccc48918c2f915d021bd4a5572a7
Author: Jan Kara <jack@suse.cz>
Date:   Tue Apr 11 14:10:19 2023 +0200

    ext4: fix lockdep warning when enabling MMP
    
    commit 949f95ff39bf188e594e7ecd8e29b82eb108f5bf upstream.
    
    When we enable MMP in ext4_multi_mount_protect() during mount or
    remount, we end up calling sb_start_write() from write_mmp_block(). This
    triggers lockdep warning because freeze protection ranks above s_umount
    semaphore we are holding during mount / remount. The problem is harmless
    because we are guaranteed the filesystem is not frozen during mount /
    remount but still let's fix the warning by not grabbing freeze
    protection from ext4_multi_mount_protect().
    
    Cc: stable@kernel.org
    Reported-by: syzbot+6b7df7d5506b32467149@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=ab7e5b6f400b7778d46f01841422e5718fb81843
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Christian Brauner <brauner@kernel.org>
    Link: https://lore.kernel.org/r/20230411121019.21940-1-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e7a97628f2766bbbe099426b63044c8c57ea502
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Fri May 12 15:16:27 2023 -0400

    ext4: bail out of ext4_xattr_ibody_get() fails for any reason
    
    commit 2a534e1d0d1591e951f9ece2fb460b2ff92edabd upstream.
    
    In ext4_update_inline_data(), if ext4_xattr_ibody_get() fails for any
    reason, it's best if we just fail as opposed to stumbling on,
    especially if the failure is EFSCORRUPTED.
    
    Cc: stable@kernel.org
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d2caddbeeee56fbbc36b428c5b909c3ad88eb7f
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Fri May 12 15:11:02 2023 -0400

    ext4: add bounds checking in get_max_inline_xattr_value_size()
    
    commit 2220eaf90992c11d888fe771055d4de330385f01 upstream.
    
    Normally the extended attributes in the inode body would have been
    checked when the inode is first opened, but if someone is writing to
    the block device while the file system is mounted, it's possible for
    the inode table to get corrupted.  Add bounds checking to avoid
    reading beyond the end of allocated memory if this happens.
    
    Reported-by: syzbot+1966db24521e5f6e23f7@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=1966db24521e5f6e23f7
    Cc: stable@kernel.org
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 665cc3ba50330049524c1d275bc840a8f28dde73
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat May 6 21:04:01 2023 -0400

    ext4: fix deadlock when converting an inline directory in nojournal mode
    
    commit f4ce24f54d9cca4f09a395f3eecce20d6bec4663 upstream.
    
    In no journal mode, ext4_finish_convert_inline_dir() can self-deadlock
    by calling ext4_handle_dirty_dirblock() when it already has taken the
    directory lock.  There is a similar self-deadlock in
    ext4_incvert_inline_data_nolock() for data files which we'll fix at
    the same time.
    
    A simple reproducer demonstrating the problem:
    
        mke2fs -Fq -t ext2 -O inline_data -b 4k /dev/vdc 64
        mount -t ext4 -o dirsync /dev/vdc /vdc
        cd /vdc
        mkdir file0
        cd file0
        touch file0
        touch file1
        attr -s BurnSpaceInEA -V abcde .
        touch supercalifragilisticexpialidocious
    
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20230507021608.1290720-1-tytso@mit.edu
    Reported-by: syzbot+91dccab7c64e2850a4e5@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=ba84cc80a9491d65416bc7877e1650c87530fe8a
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f68876aeef96ef8b708ab10b9cb47ce0a5adb424
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat May 6 11:59:13 2023 -0400

    ext4: improve error handling from ext4_dirhash()
    
    commit 4b3cb1d108bfc2aebb0d7c8a52261a53cf7f5786 upstream.
    
    The ext4_dirhash() will *almost* never fail, especially when the hash
    tree feature was first introduced.  However, with the addition of
    support of encrypted, casefolded file names, that function can most
    certainly fail today.
    
    So make sure the callers of ext4_dirhash() properly check for
    failures, and reflect the errors back up to their callers.
    
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20230506142419.984260-1-tytso@mit.edu
    Reported-by: syzbot+394aa8a792cb99dbc837@syzkaller.appspotmail.com
    Reported-by: syzbot+344aaa8697ebd232bfc8@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=db56459ea4ac4a676ae4b4678f633e55da005a9b
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25c9fca7b71c5045d6dc537430af5b2e79598fa1
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Fri May 5 22:20:29 2023 -0400

    ext4: improve error recovery code paths in __ext4_remount()
    
    commit 4c0b4818b1f636bc96359f7817a2d8bab6370162 upstream.
    
    If there are failures while changing the mount options in
    __ext4_remount(), we need to restore the old mount options.
    
    This commit fixes two problem.  The first is there is a chance that we
    will free the old quota file names before a potential failure leading
    to a use-after-free.  The second problem addressed in this commit is
    if there is a failed read/write to read-only transition, if the quota
    has already been suspended, we need to renable quota handling.
    
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20230506142419.984260-2-tytso@mit.edu
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 748e4bb27d2e3cb455ed2b75afd6cceee876b378
Author: Baokun Li <libaokun1@huawei.com>
Date:   Fri May 5 21:24:29 2023 +0800

    ext4: check iomap type only if ext4_iomap_begin() does not fail
    
    commit fa83c34e3e56b3c672af38059e066242655271b1 upstream.
    
    When ext4_iomap_overwrite_begin() calls ext4_iomap_begin() map blocks may
    fail for some reason (e.g. memory allocation failure, bare disk write), and
    later because "iomap->type ! = IOMAP_MAPPED" triggers WARN_ON(). When ext4
    iomap_begin() returns an error, it is normal that the type of iomap->type
    may not match the expectation. Therefore, we only determine if iomap->type
    is as expected when ext4_iomap_begin() is executed successfully.
    
    Cc: stable@kernel.org
    Reported-by: syzbot+08106c4b7d60702dbc14@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/all/00000000000015760b05f9b4eee9@google.com
    Signed-off-by: Baokun Li <libaokun1@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20230505132429.714648-1-libaokun1@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b006e2228503f8b5ce368f55fe4d72d9abcddebf
Author: Jan Kara <jack@suse.cz>
Date:   Thu May 4 14:55:24 2023 +0200

    ext4: fix data races when using cached status extents
    
    commit 492888df0c7b42fc0843631168b0021bc4caee84 upstream.
    
    When using cached extent stored in extent status tree in tree->cache_es
    another process holding ei->i_es_lock for reading can be racing with us
    setting new value of tree->cache_es. If the compiler would decide to
    refetch tree->cache_es at an unfortunate moment, it could result in a
    bogus in_range() check. Fix the possible race by using READ_ONCE() when
    using tree->cache_es only under ei->i_es_lock for reading.
    
    Cc: stable@kernel.org
    Reported-by: syzbot+4a03518df1e31b537066@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/all/000000000000d3b33905fa0fd4a6@google.com
    Suggested-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20230504125524.10802-1-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1fffe4750500148f3e744ed77cf233db8342603f
Author: Tudor Ambarus <tudor.ambarus@linaro.org>
Date:   Thu May 4 12:15:25 2023 +0000

    ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
    
    commit 4f04351888a83e595571de672e0a4a8b74f4fb31 upstream.
    
    When modifying the block device while it is mounted by the filesystem,
    syzbot reported the following:
    
    BUG: KASAN: slab-out-of-bounds in crc16+0x206/0x280 lib/crc16.c:58
    Read of size 1 at addr ffff888075f5c0a8 by task syz-executor.2/15586
    
    CPU: 1 PID: 15586 Comm: syz-executor.2 Not tainted 6.2.0-rc5-syzkaller-00205-gc96618275234 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/12/2023
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0x1b1/0x290 lib/dump_stack.c:106
     print_address_description+0x74/0x340 mm/kasan/report.c:306
     print_report+0x107/0x1f0 mm/kasan/report.c:417
     kasan_report+0xcd/0x100 mm/kasan/report.c:517
     crc16+0x206/0x280 lib/crc16.c:58
     ext4_group_desc_csum+0x81b/0xb20 fs/ext4/super.c:3187
     ext4_group_desc_csum_set+0x195/0x230 fs/ext4/super.c:3210
     ext4_mb_clear_bb fs/ext4/mballoc.c:6027 [inline]
     ext4_free_blocks+0x191a/0x2810 fs/ext4/mballoc.c:6173
     ext4_remove_blocks fs/ext4/extents.c:2527 [inline]
     ext4_ext_rm_leaf fs/ext4/extents.c:2710 [inline]
     ext4_ext_remove_space+0x24ef/0x46a0 fs/ext4/extents.c:2958
     ext4_ext_truncate+0x177/0x220 fs/ext4/extents.c:4416
     ext4_truncate+0xa6a/0xea0 fs/ext4/inode.c:4342
     ext4_setattr+0x10c8/0x1930 fs/ext4/inode.c:5622
     notify_change+0xe50/0x1100 fs/attr.c:482
     do_truncate+0x200/0x2f0 fs/open.c:65
     handle_truncate fs/namei.c:3216 [inline]
     do_open fs/namei.c:3561 [inline]
     path_openat+0x272b/0x2dd0 fs/namei.c:3714
     do_filp_open+0x264/0x4f0 fs/namei.c:3741
     do_sys_openat2+0x124/0x4e0 fs/open.c:1310
     do_sys_open fs/open.c:1326 [inline]
     __do_sys_creat fs/open.c:1402 [inline]
     __se_sys_creat fs/open.c:1396 [inline]
     __x64_sys_creat+0x11f/0x160 fs/open.c:1396
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7f72f8a8c0c9
    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:00007f72f97e3168 EFLAGS: 00000246 ORIG_RAX: 0000000000000055
    RAX: ffffffffffffffda RBX: 00007f72f8bac050 RCX: 00007f72f8a8c0c9
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000280
    RBP: 00007f72f8ae7ae9 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 00007ffd165348bf R14: 00007f72f97e3300 R15: 0000000000022000
    
    Replace
            le16_to_cpu(sbi->s_es->s_desc_size)
    with
            sbi->s_desc_size
    
    It reduces ext4's compiled text size, and makes the code more efficient
    (we remove an extra indirect reference and a potential byte
    swap on big endian systems), and there is no downside. It also avoids the
    potential KASAN / syzkaller failure, as a bonus.
    
    Reported-by: syzbot+fc51227e7100c9294894@syzkaller.appspotmail.com
    Reported-by: syzbot+8785e41224a3afd04321@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=70d28d11ab14bd7938f3e088365252aa923cff42
    Link: https://syzkaller.appspot.com/bug?id=b85721b38583ecc6b5e72ff524c67302abbc30f3
    Link: https://lore.kernel.org/all/000000000000ece18705f3b20934@google.com/
    Fixes: 717d50e4971b ("Ext4: Uninitialized Block Groups")
    Cc: stable@vger.kernel.org
    Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Link: https://lore.kernel.org/r/20230504121525.3275886-1-tudor.ambarus@linaro.org
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dba62fa84a8eac44a53a2862de8a40e5bdfa0ae3
Author: Ye Bin <yebin10@huawei.com>
Date:   Mon Jan 16 10:00:15 2023 +0800

    ext4: fix WARNING in mb_find_extent
    
    commit fa08a7b61dff8a4df11ff1e84abfc214b487caf7 upstream.
    
    Syzbot found the following issue:
    
    EXT4-fs: Warning: mounting with data=journal disables delayed allocation, dioread_nolock, O_DIRECT and fast_commit support!
    EXT4-fs (loop0): orphan cleanup on readonly fs
    ------------[ cut here ]------------
    WARNING: CPU: 1 PID: 5067 at fs/ext4/mballoc.c:1869 mb_find_extent+0x8a1/0xe30
    Modules linked in:
    CPU: 1 PID: 5067 Comm: syz-executor307 Not tainted 6.2.0-rc1-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
    RIP: 0010:mb_find_extent+0x8a1/0xe30 fs/ext4/mballoc.c:1869
    RSP: 0018:ffffc90003c9e098 EFLAGS: 00010293
    RAX: ffffffff82405731 RBX: 0000000000000041 RCX: ffff8880783457c0
    RDX: 0000000000000000 RSI: 0000000000000041 RDI: 0000000000000040
    RBP: 0000000000000040 R08: ffffffff82405723 R09: ffffed10053c9402
    R10: ffffed10053c9402 R11: 1ffff110053c9401 R12: 0000000000000000
    R13: ffffc90003c9e538 R14: dffffc0000000000 R15: ffffc90003c9e2cc
    FS:  0000555556665300(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000056312f6796f8 CR3: 0000000022437000 CR4: 00000000003506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     ext4_mb_complex_scan_group+0x353/0x1100 fs/ext4/mballoc.c:2307
     ext4_mb_regular_allocator+0x1533/0x3860 fs/ext4/mballoc.c:2735
     ext4_mb_new_blocks+0xddf/0x3db0 fs/ext4/mballoc.c:5605
     ext4_ext_map_blocks+0x1868/0x6880 fs/ext4/extents.c:4286
     ext4_map_blocks+0xa49/0x1cc0 fs/ext4/inode.c:651
     ext4_getblk+0x1b9/0x770 fs/ext4/inode.c:864
     ext4_bread+0x2a/0x170 fs/ext4/inode.c:920
     ext4_quota_write+0x225/0x570 fs/ext4/super.c:7105
     write_blk fs/quota/quota_tree.c:64 [inline]
     get_free_dqblk+0x34a/0x6d0 fs/quota/quota_tree.c:130
     do_insert_tree+0x26b/0x1aa0 fs/quota/quota_tree.c:340
     do_insert_tree+0x722/0x1aa0 fs/quota/quota_tree.c:375
     do_insert_tree+0x722/0x1aa0 fs/quota/quota_tree.c:375
     do_insert_tree+0x722/0x1aa0 fs/quota/quota_tree.c:375
     dq_insert_tree fs/quota/quota_tree.c:401 [inline]
     qtree_write_dquot+0x3b6/0x530 fs/quota/quota_tree.c:420
     v2_write_dquot+0x11b/0x190 fs/quota/quota_v2.c:358
     dquot_acquire+0x348/0x670 fs/quota/dquot.c:444
     ext4_acquire_dquot+0x2dc/0x400 fs/ext4/super.c:6740
     dqget+0x999/0xdc0 fs/quota/dquot.c:914
     __dquot_initialize+0x3d0/0xcf0 fs/quota/dquot.c:1492
     ext4_process_orphan+0x57/0x2d0 fs/ext4/orphan.c:329
     ext4_orphan_cleanup+0xb60/0x1340 fs/ext4/orphan.c:474
     __ext4_fill_super fs/ext4/super.c:5516 [inline]
     ext4_fill_super+0x81cd/0x8700 fs/ext4/super.c:5644
     get_tree_bdev+0x400/0x620 fs/super.c:1282
     vfs_get_tree+0x88/0x270 fs/super.c:1489
     do_new_mount+0x289/0xad0 fs/namespace.c:3145
     do_mount fs/namespace.c:3488 [inline]
     __do_sys_mount fs/namespace.c:3697 [inline]
     __se_sys_mount+0x2d3/0x3c0 fs/namespace.c:3674
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Add some debug information:
    mb_find_extent: mb_find_extent block=41, order=0 needed=64 next=0 ex=0/41/1@3735929054 64 64 7
    block_bitmap: ff 3f 0c 00 fc 01 00 00 d2 3d 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    
    Acctually, blocks per group is 64, but block bitmap indicate at least has
    128 blocks. Now, ext4_validate_block_bitmap() didn't check invalid block's
    bitmap if set.
    To resolve above issue, add check like fsck "Padding at end of block bitmap is
    not set".
    
    Cc: stable@kernel.org
    Reported-by: syzbot+68223fe9f6c95ad43bed@syzkaller.appspotmail.com
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20230116020015.1506120-1-yebin@huaweicloud.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b9c92432fdf809c2bffa58fd86ace3c48371f7e
Author: John Stultz <jstultz@google.com>
Date:   Wed May 3 02:33:51 2023 +0000

    locking/rwsem: Add __always_inline annotation to __down_read_common() and inlined callers
    
    commit 92cc5d00a431e96e5a49c0b97e5ad4fa7536bd4b upstream.
    
    Apparently despite it being marked inline, the compiler
    may not inline __down_read_common() which makes it difficult
    to identify the cause of lock contention, as the blocked
    function in traceevents will always be listed as
    __down_read_common().
    
    So this patch adds __always_inline annotation to the common
    function (as well as the inlined helper callers) to force it to
    be inlined so the blocking function will be listed (via Wchan)
    in traceevents.
    
    Fixes: c995e638ccbb ("locking/rwsem: Fold __down_{read,write}*()")
    Reported-by: Tim Murray <timmurray@google.com>
    Signed-off-by: John Stultz <jstultz@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Waiman Long <longman@redhat.com>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20230503023351.2832796-1-jstultz@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98643c9910575bd3a63ac8c587565cc7f3fc329b
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Thu Apr 6 16:46:14 2023 +0300

    drm/dsc: fix drm_edp_dsc_sink_output_bpp() DPCD high byte usage
    
    [ Upstream commit 13525645e2246ebc8a21bd656248d86022a6ee8f ]
    
    The operator precedence between << and & is wrong, leading to the high
    byte being completely ignored. For example, with the 6.4 format, 32
    becomes 0 and 24 becomes 8. Fix it, and remove the slightly confusing
    and unnecessary DP_DSC_MAX_BITS_PER_PIXEL_HI_SHIFT macro while at it.
    
    Fixes: 0575650077ea ("drm/dp: DRM DP helper/macros to get DP sink DSC parameters")
    Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Cc: Manasi Navare <navaremanasi@google.com>
    Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
    Cc: <stable@vger.kernel.org> # v5.0+
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230406134615.1422509-1-jani.nikula@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f95a60099dfd8e728ecc700a714c8cd5ae1c923b
Author: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Date:   Tue Nov 1 11:42:17 2022 +0200

    drm: Add missing DP DSC extended capability definitions.
    
    [ Upstream commit 1482ec00be4a3634aeffbcc799791a723df69339 ]
    
    Adding DP DSC register definitions, we might need for further
    DSC implementation, supporting MST and DP branch pass-through mode.
    
    v2: - Fixed checkpatch comment warning
    v3: - Removed function which is not yet used(Jani Nikula)
    
    Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
    Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221101094222.22091-2-stanislav.lisovskiy@intel.com
    Stable-dep-of: 13525645e224 ("drm/dsc: fix drm_edp_dsc_sink_output_bpp() DPCD high byte usage")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4aba9ab6a007e41182454f84f95c0bddf7d6d7e1
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Wed May 3 14:03:40 2023 +0900

    ksmbd: fix racy issue from smb2 close and logoff with multichannel
    
    [ Upstream commit abcc506a9a71976a8b4c9bf3ee6efd13229c1e19 ]
    
    When smb client send concurrent smb2 close and logoff request
    with multichannel connection, It can cause racy issue. logoff request
    free tcon and can cause UAF issues in smb2 close. When receiving logoff
    request with multichannel, ksmbd should wait until all remaning requests
    complete as well as ones in the current connection, and then make
    session expired.
    
    Cc: stable@vger.kernel.org
    Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20796 ZDI-CAN-20595
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 502cf9709036d9305495876fa8c33c8a52541b15
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Wed May 3 08:43:30 2023 +0900

    ksmbd: block asynchronous requests when making a delay on session setup
    
    [ Upstream commit b096d97f47326b1e2dbdef1c91fab69ffda54d17 ]
    
    ksmbd make a delay of 5 seconds on session setup to avoid dictionary
    attacks. But the 5 seconds delay can be bypassed by using asynchronous
    requests. This patch block all requests on current connection when
    making a delay on sesstion setup failure.
    
    Cc: stable@vger.kernel.org
    Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20482
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fc8a2b14ef5223f8e0b95faba2ee0a6e4d0f99d
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Wed May 3 08:42:21 2023 +0900

    ksmbd: destroy expired sessions
    
    [ Upstream commit ea174a91893956450510945a0c5d1a10b5323656 ]
    
    client can indefinitely send smb2 session setup requests with
    the SessionId set to 0, thus indefinitely spawning new sessions,
    and causing indefinite memory usage. This patch limit to the number
    of sessions using expired timeout and session state.
    
    Cc: stable@vger.kernel.org
    Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20478
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f623f627ad2b1dc215ab3b0df53fb05cfd3a1c3b
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Wed May 3 16:45:00 2023 +0900

    ksmbd: fix racy issue from session setup and logoff
    
    [ Upstream commit f5c779b7ddbda30866cf2a27c63e34158f858c73 ]
    
    This racy issue is triggered by sending concurrent session setup and
    logoff requests. This patch does not set connection status as
    KSMBD_SESS_GOOD if state is KSMBD_SESS_NEED_RECONNECT in session setup.
    And relookup session to validate if session is deleted in logoff.
    
    Cc: stable@vger.kernel.org
    Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20481, ZDI-CAN-20590, ZDI-CAN-20596
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 91bbf9cb2387a0d76322e9a343bc6bc160f66b3f
Author: Dawei Li <set_pte_at@outlook.com>
Date:   Sun Jan 15 18:32:04 2023 +0800

    ksmbd: Implements sess->ksmbd_chann_list as xarray
    
    [ Upstream commit 1d9c4172110e645b383ff13eee759728d74f1a5d ]
    
    For some ops on channel:
    1. lookup_chann_list(), possibly on high frequency.
    2. ksmbd_chann_del().
    
    Connection is used as indexing key to lookup channel, in that case,
    linear search based on list may suffer a bit for performance.
    
    Implements sess->ksmbd_chann_list as xarray.
    
    Signed-off-by: Dawei Li <set_pte_at@outlook.com>
    Acked-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Stable-dep-of: f5c779b7ddbd ("ksmbd: fix racy issue from session setup and logoff")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3db734e4d95a70ba45f06053221e710cc26b5eb2
Author: Leo Chen <sancchen@amd.com>
Date:   Thu Apr 13 17:34:24 2023 -0400

    drm/amd/display: Change default Z8 watermark values
    
    [ Upstream commit 8f586cc16c1fc3c2202c9d54563db8c7ed365f82 ]
    
    [Why & How]
    Previous Z8 watermark values were causing flickering and OTC underflow.
    Updating Z8 watermark values based on the measurement.
    
    Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Acked-by: Alan Liu <HaoPing.Liu@amd.com>
    Signed-off-by: Leo Chen <sancchen@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a009acf687177ec88ce7cd5eedde7ad069b39cc5
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Wed Feb 1 13:38:05 2023 -0500

    drm/amd/display: Update Z8 SR exit/enter latencies
    
    [ Upstream commit 9b0f51e8449f6f76170fda6a8dd9c417a43ce270 ]
    
    [Why]
    Request from HW team to update the latencies to the new measured values.
    
    [How]
    Update the values in the bounding box.
    
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@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>
    Stable-dep-of: 8f586cc16c1f ("drm/amd/display: Change default Z8 watermark values")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e22ef1561085fcd2c13ac2e501f31ebfa7a8e8cd
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Mon Nov 7 11:35:25 2022 -0500

    drm/amd/display: Update Z8 watermarks for DCN314
    
    [ Upstream commit fa24e116f1ce3dcc55474f0b6ab0cac4e3ee34e1 ]
    
    [Why & How]
    Update from HW, need to lower watermarks for enter/enter+exit latency.
    
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Brian Chang <Brian.Chang@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>
    Stable-dep-of: 8f586cc16c1f ("drm/amd/display: Change default Z8 watermark values")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf49b2ff253feab87d9218f0b8759f93c66a9f1b
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Wed May 3 16:41:02 2023 +0200

    ASoC: codecs: wcd938x: fix accessing regmap on unattached devices
    
    [ Upstream commit 84822215acd15bd86a7759a835271e63bba83a7b ]
    
    The WCD938x comes with three devices on two Linux drivers:
    1. RX Soundwire device (wcd938x-sdw.c driver),
    2. TX Soundwire device, which is used to access devices via regmap (also
       wcd938x-sdw.c driver),
    3. platform device (wcd938x.c driver) - glue and component master,
       actually having most of the code using TX Soundwire device regmap.
    
    When RX and TX Soundwire devices probe, the component master (platform
    device) bind tries to write micbias configuration via TX Soundwire
    regmap.  This might happen before TX Soundwire enumerates, so the regmap
    access fails.  On Qualcomm SM8550 board with WCD9385:
    
      qcom-soundwire 6d30000.soundwire-controller: Qualcomm Soundwire controller v2.0.0 Registered
      wcd938x_codec audio-codec: bound sdw:0:0217:010d:00:4 (ops wcd938x_sdw_component_ops)
      wcd938x_codec audio-codec: bound sdw:0:0217:010d:00:3 (ops wcd938x_sdw_component_ops)
      qcom-soundwire 6ad0000.soundwire-controller: swrm_wait_for_wr_fifo_avail err write overflow
    
    Fix the issue by:
    1. Moving the regmap creation from platform device to TX Soundwire
       device.  The regmap settings are moved as-is with one difference:
       making the wcd938x_regmap_config const.
    2. Using regmap in cache only mode till the actual TX Soundwire device
       enumerates and then sync the regmap cache.
    
    Cc: <stable@vger.kernel.org> # v3.14+
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Message-Id: <20230503144102.242240-1-krzysztof.kozlowski@linaro.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 400950f66a8a457696cf9d7a9531377b9c9e7612
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Tue Jan 24 17:39:51 2023 +0100

    ASoC: codecs: constify static sdw_slave_ops struct
    
    [ Upstream commit 65b7b869da9bd3bd0b9fa60e6fe557bfbc0a75e8 ]
    
    The struct sdw_slave_ops is not modified and sdw_driver takes pointer to
    const, so make it a const for code safety.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20230124163953.345949-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 84822215acd1 ("ASoC: codecs: wcd938x: fix accessing regmap on unattached devices")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5279ab199cbdb49c8b8a88af4e7c44968e5e8a00
Author: Shuming Fan <shumingf@realtek.com>
Date:   Tue Nov 8 17:27:27 2022 +0800

    ASoC: rt1318: Add RT1318 SDCA vendor-specific driver
    
    [ Upstream commit 6ad73a2b42ea6d43fc5bf32033e8f6b21df3109e ]
    
    This is the initial amplifier driver for rt1318 SDCA version.
    
    Signed-off-by: Shuming Fan <shumingf@realtek.com>
    Link: https://lore.kernel.org/r/20221108092727.13011-1-shumingf@realtek.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 84822215acd1 ("ASoC: codecs: wcd938x: fix accessing regmap on unattached devices")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d383f9d6527d92b65d2e48afa6200370fc06380
Author: Leo Chen <sancchen@amd.com>
Date:   Tue Apr 11 10:49:38 2023 -0400

    drm/amd/display: Lowering min Z8 residency time
    
    [ Upstream commit d893f39320e1248d1c97fde0d6e51e5ea008a76b ]
    
    [Why & How]
    Per HW team request, we're lowering the minimum Z8
    residency time to 2000us. This enables Z8 support for additional
    modes we were previously blocking like 2k>60hz
    
    Cc: stable@vger.kernel.org
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
    Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Leo Chen <sancchen@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e6332695d48434582f1d8e02350a45c8a390dc13
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Tue Feb 21 10:27:10 2023 -0500

    drm/amd/display: Update minimum stutter residency for DCN314 Z8
    
    [ Upstream commit 0215ce9057edf69aff9c1a32f4254e1ec297db31 ]
    
    [Why]
    Block periods that are too short as they have the potential to
    currently cause hangs in other firmware components on the system.
    
    [How]
    Update the threshold, mostly targeting a block of 4k and downscaling.
    
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@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>
    Stable-dep-of: d893f39320e1 ("drm/amd/display: Lowering min Z8 residency time")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25f603624246062fd473812e6ebda98e3c387017
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Fri Feb 17 11:17:50 2023 -0500

    drm/amd/display: Add minimum Z8 residency debug option
    
    [ Upstream commit 0db13eae41fcc67f408dbb3dfda59633c4fa03fb ]
    
    [Why]
    Allows finer control and tuning for debug and profiling.
    
    [How]
    Add the debug option into DC. The default remains the same as before
    for now.
    
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@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>
    Stable-dep-of: d893f39320e1 ("drm/amd/display: Lowering min Z8 residency time")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 97b3d8eed09785212900e9ccdc9ff1e0a86fef15
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Mon Jan 16 09:49:32 2023 -0500

    drm/amd/display: Fix Z8 support configurations
    
    [ Upstream commit 73dd4ca4b5a01235607231839bd351bbef75a1d2 ]
    
    [Why]
    It's not supported in multi-display, but it is supported in 2nd eDP
    screen only.
    
    [How]
    Remove multi display support, restrict number of planes for all
    z-states support, but still allow Z8 if we're not using PWRSEQ0.
    
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Alex Hung <alex.hung@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>
    Stable-dep-of: d893f39320e1 ("drm/amd/display: Lowering min Z8 residency time")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18225134088453e386b7aade107b3026d7aca76d
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Fri Nov 25 11:30:38 2022 -0500

    drm/amd/display: Add debug option to skip PSR CRTC disable
    
    [ Upstream commit 00812bfc7bcb02faf127ee05f6ac27a5581eb701 ]
    
    [Why]
    It's currently tied to Z10 support, and is required for Z10, but
    we can still support Z10 display off without PSR.
    
    We currently need to skip the PSR CRTC disable to prevent stuttering
    and underflow from occuring during PSR-SU.
    
    [How]
    Add a debug option to allow specifying this separately.
    
    Reviewed-by: Robin Chen <robin.chen@amd.com>
    Acked-by: Stylon Wang <stylon.wang@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>
    Stable-dep-of: d893f39320e1 ("drm/amd/display: Lowering min Z8 residency time")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bcde2c8779932e21c42cf1797bef92651e9aa567
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Mon Nov 7 11:37:25 2022 -0500

    drm/amd/display: Add Z8 allow states to z-state support list
    
    [ Upstream commit 80676936805e46c79c38008e5142a77a1b2f2dc7 ]
    
    [Why]
    Even if we block Z9 based on crossover threshold it's possible to
    allow for Z8.
    
    [How]
    There's support for this on DCN314, so update the support types to
    include a z8 only and z8_z10 only state.
    
    Update the decide_zstate_support function to allow for specifying
    these modes based on the Z8 threshold.
    
    DCN31 has z-state disabled, but still update the legacy code to
    map z8_only = disallow and z10_z8_only = z10_only to keep the support
    the same.
    
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Brian Chang <Brian.Chang@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>
    Stable-dep-of: d893f39320e1 ("drm/amd/display: Lowering min Z8 residency time")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 83468820168a470a489e6ad6f7759d19687d1623
Author: Ian Chen <ian.chen@amd.com>
Date:   Thu Oct 20 11:46:36 2022 -0400

    drm/amd/display: Refactor eDP PSR codes
    
    [ Upstream commit bd829d5707730072fecc3267016a675a4789905b ]
    
    We split out PSR config from "global" to "per-panel" config settings.
    
    Tested-by: Mark Broadworth <mark.broadworth@amd.com>
    Reviewed-by: Robin Chen <robin.chen@amd.com>
    Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Ian Chen <ian.chen@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Stable-dep-of: d893f39320e1 ("drm/amd/display: Lowering min Z8 residency time")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 74a03d3c8d895a7d137bb4be8e40cae886f5d973
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Tue Apr 18 20:55:14 2023 +0300

    drm/i915: Check pipe source size when using skl+ scalers
    
    [ Upstream commit d944eafed618a8507270b324ad9d5405bb7f0b3e ]
    
    The skl+ scalers only sample 12 bits of PIPESRC so we can't
    do any plane scaling at all when the pipe source size is >4k.
    
    Make sure the pipe source size is also below the scaler's src
    size limits. Might not be 100% accurate, but should at least be
    safe. We can refine the limits later if we discover that recent
    hw is less restricted.
    
    Cc: stable@vger.kernel.org
    Tested-by: Ross Zwisler <zwisler@google.com>
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8357
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230418175528.13117-2-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    (cherry picked from commit 691248d4135fe3fae64b4ee0676bc96a7fd6950c)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 549ce5199d991eba81c477d5d05e988e2688abf7
Author: Animesh Manna <animesh.manna@intel.com>
Date:   Fri Dec 23 15:05:09 2022 +0200

    drm/i915/mtl: update scaler source and destination limits for MTL
    
    [ Upstream commit f840834a8b60ffd305f03a53007605ba4dfbbc4b ]
    
    The max source and destination limits for scalers in MTL have changed.
    Use the new values accordingly.
    
    Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
    Signed-off-by: Animesh Manna <animesh.manna@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221223130509.43245-3-luciano.coelho@intel.com
    Stable-dep-of: d944eafed618 ("drm/i915: Check pipe source size when using skl+ scalers")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20a1064a759851f1447a7a41566809f77036dcd5
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Mon Apr 17 16:03:56 2023 +0200

    wifi: rtw88: rtw8821c: Fix rfe_option field width
    
    [ Upstream commit 14705f969d98187a1cc2682e0c9bd2e230b8098f ]
    
    On my RTW8821CU chipset rfe_option reads as 0x22. Looking at the
    vendor driver suggests that the field width of rfe_option is 5 bit,
    so rfe_option should be masked with 0x1f.
    
    Without this the rfe_option comparisons with 2 further down the
    driver evaluate as false when they should really evaluate as true.
    The effect is that 2G channels do not work.
    
    rfe_option is also used as an array index into rtw8821c_rfe_defs[].
    rtw8821c_rfe_defs[34] (0x22) was added as part of adding USB support,
    likely because rfe_option reads as 0x22. As this now becomes 0x2,
    rtw8821c_rfe_defs[34] is no longer used and can be removed.
    
    Note that this might not be the whole truth. In the vendor driver
    there are indeed places where the unmasked rfe_option value is used.
    However, the driver has several places where rfe_option is tested
    with the pattern if (rfe_option == 2 || rfe_option == 0x22) or
    if (rfe_option == 4 || rfe_option == 0x24), so that rfe_option BIT(5)
    has no influence on the code path taken. We therefore mask BIT(5)
    out from rfe_option entirely until this assumption is proved wrong
    by some chip variant we do not know yet.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Tested-by: Alexandru gagniuc <mr.nuke.me@gmail.com>
    Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
    Tested-by: ValdikSS <iam@valdikss.org.ru>
    Cc: stable@vger.kernel.org
    Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230417140358.2240429-3-s.hauer@pengutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6578ae84e9adbd6c8193e888b82a24317d9cf984
Author: Jianmin Lv <lvjianmin@loongson.cn>
Date:   Fri Apr 7 16:34:51 2023 +0800

    irqchip/loongson-eiointc: Fix registration of syscore_ops
    
    [ Upstream commit bdd60211eebb43ba1c4c14704965f4d4b628b931 ]
    
    When support suspend/resume for loongson-eiointc, the syscore_ops
    is registered twice in dual-bridges machines where there are two
    eiointc IRQ domains. Repeated registration of an same syscore_ops
    broke syscore_ops_list. Also, cpuhp_setup_state_nocalls is only
    needed to call for once. So the patch will corret them.
    
    Fixes: a90335c2dfb4 ("irqchip/loongson-eiointc: Add suspend/resume support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230407083453.6305-4-lvjianmin@loongson.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa29d577e2fc46842fe70b02747651ca3e5893b5
Author: Jianmin Lv <lvjianmin@loongson.cn>
Date:   Fri Apr 7 16:34:50 2023 +0800

    irqchip/loongson-eiointc: Fix incorrect use of acpi_get_vec_parent
    
    [ Upstream commit 64cc451e45e146b2140211b4f45f278b93b24ac0 ]
    
    In eiointc_acpi_init(), a *eiointc* node is passed into
    acpi_get_vec_parent() instead of a required *NUMA* node (on some chip
    like 3C5000L, a *NUMA* node means a *eiointc* node, but on some chip
    like 3C5000, a *NUMA* node contains 4 *eiointc* nodes), and node in
    struct acpi_vector_group is essentially a *NUMA* node, which will
    lead to no parent matched for passed *eiointc* node. so the patch
    adjusts code to use *NUMA* node for parameter node of
    acpi_set_vec_parent/acpi_get_vec_parent.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230407083453.6305-3-lvjianmin@loongson.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e7f788dd74a45bc6c744c0c416cd3c691ced684
Author: Huacai Chen <chenhuacai@kernel.org>
Date:   Thu Oct 20 22:25:14 2022 +0800

    irqchip/loongarch: Adjust acpi_cascade_irqdomain_init() and sub-routines
    
    [ Upstream commit 3d12938dbc048ecb193fec69898d95f6b4813a4b ]
    
    1, Adjust the return of acpi_cascade_irqdomain_init() and check its
       return value.
    2, Combine unnecessary short lines to one long line.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20221020142514.1725514-1-chenhuacai@loongson.cn
    Stable-dep-of: 64cc451e45e1 ("irqchip/loongson-eiointc: Fix incorrect use of acpi_get_vec_parent")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c5111be8737615045313b6fbf46aa9311e5c7934
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Mar 6 11:07:19 2023 +0100

    drm/msm: fix missing wq allocation error handling
    
    [ Upstream commit ca090c837b430752038b24e56dd182010d77f6f6 ]
    
    Add the missing sanity check to handle workqueue allocation failures.
    
    Fixes: c8afe684c95c ("drm/msm: basic KMS driver for snapdragon")
    Cc: stable@vger.kernel.org      # 3.12
    Cc: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/525102/
    Link: https://lore.kernel.org/r/20230306100722.28485-8-johan+linaro@kernel.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 46062a1c0a0133d712dfccfaaa17c2a003f582d8
Author: Rob Clark <robdclark@chromium.org>
Date:   Mon Nov 14 11:30:41 2022 -0800

    drm/msm: Hangcheck progress detection
    
    [ Upstream commit d73b1d02de0858b96f743e1e8b767fb092ae4c1b ]
    
    If the hangcheck timer expires, check if the fw's position in the
    cmdstream has advanced (changed) since last timer expiration, and
    allow it up to three additional "extensions" to it's alotted time.
    The intention is to continue to catch "shader stuck in a loop" type
    hangs quickly, but allow more time for things that are actually
    making forward progress.
    
    Because we need to sample the CP state twice to detect if there has
    not been progress, this also cuts the the timer's duration in half.
    
    v2: Fix typo (REG_A6XX_CP_CSQ_IB2_STAT), add comment
    v3: Only halve hangcheck timer duration for generations which
        support progress detection (hdanton); removed unused a5xx
        progress (without knowing how to adjust for data buffered
        in ROQ it is too likely to report a false negative)
    v4: Comment updates to better describe the total hangcheck
        duration when progress detection is applied
    
    Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
    Tested-by: Chia-I Wu <olvaffe@gmail.com> # dEQP-GLES2.functional.flush_finish.wait
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/511584/
    Link: https://lore.kernel.org/r/20221114193049.1533391-3-robdclark@gmail.com
    Stable-dep-of: ca090c837b43 ("drm/msm: fix missing wq allocation error handling")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7fdb37d93bc56a79dbdb0e5a13bccc2b02a7e65
Author: Rob Clark <robdclark@chromium.org>
Date:   Mon Nov 14 11:30:40 2022 -0800

    drm/msm/adreno: Simplify read64/write64 helpers
    
    [ Upstream commit cade05b2a88558847984287dd389fae0c7de31d6 ]
    
    The _HI reg is always following the _LO reg, so no need to pass these
    offsets seprately.
    
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/511581/
    Link: https://lore.kernel.org/r/20221114193049.1533391-2-robdclark@gmail.com
    Stable-dep-of: ca090c837b43 ("drm/msm: fix missing wq allocation error handling")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cba285695872730418479bc4391d24fd69f94f9d
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Fri Mar 10 10:04:26 2023 -0800

    f2fs: factor out victim_entry usage from general rb_tree use
    
    [ Upstream commit 043d2d00b44310f84c0593c63e51fae88c829cdd ]
    
    Let's reduce the complexity of mixed use of rb_tree in victim_entry from
    extent_cache and discard_cmd.
    
    This should fix arm32 memory alignment issue caused by shared rb_entry.
    
    [struct victim_entry]              [struct rb_entry]
    [0] struct rb_node rb_node;        [0] struct rb_node rb_node;
                                           union {
                                             struct {
                                               unsigned int ofs;
                                               unsigned int len;
                                             };
    [16] unsigned long long mtime;     [12] unsigned long long key;
                                           } __packed;
    
    Cc: <stable@vger.kernel.org>
    Fixes: 093749e296e2 ("f2fs: support age threshold based garbage collection")
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4377b1d3b19e1369d094a94596211a9815ddbb04
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Fri Dec 2 13:51:09 2022 -0800

    f2fs: allocate the extent_cache by default
    
    [ Upstream commit 72840cccc0a1a0a0dc1bb27b669a9111be6d0f6a ]
    
    Let's allocate it to remove the runtime complexity.
    
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Stable-dep-of: 043d2d00b443 ("f2fs: factor out victim_entry usage from general rb_tree use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33112a0a17ef87bdb3d38d4267cd287a6eeb1061
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Wed Nov 30 09:26:29 2022 -0800

    f2fs: refactor extent_cache to support for read and more
    
    [ Upstream commit e7547daccd6a37522f0af74ec4b5a3036f3dd328 ]
    
    This patch prepares extent_cache to be ready for addition.
    
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Stable-dep-of: 043d2d00b443 ("f2fs: factor out victim_entry usage from general rb_tree use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3af09dee7f9b3b50ce98387c8fa7ccaac8f54037
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Wed Nov 30 10:01:18 2022 -0800

    f2fs: remove unnecessary __init_extent_tree
    
    [ Upstream commit 749d543c0d451fff31e8f7a3e0a031ffcbf1ebb1 ]
    
    Added into the caller.
    
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Stable-dep-of: 043d2d00b443 ("f2fs: factor out victim_entry usage from general rb_tree use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 91b1554e66bc0deea77623c1e684f7cdda93815b
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Wed Nov 30 09:44:58 2022 -0800

    f2fs: move internal functions into extent_cache.c
    
    [ Upstream commit 3bac20a8f011b8ed4012b43f4f33010432b3c647 ]
    
    No functional change.
    
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Stable-dep-of: 043d2d00b443 ("f2fs: factor out victim_entry usage from general rb_tree use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 155ff41cf28c12f02645b55d1de4314f42b2ddfb
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Wed Nov 30 09:36:43 2022 -0800

    f2fs: specify extent cache for read explicitly
    
    [ Upstream commit 12607c1ba7637e750402f555b6695c50fce77a2b ]
    
    Let's descrbie it's read extent cache.
    
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Stable-dep-of: 043d2d00b443 ("f2fs: factor out victim_entry usage from general rb_tree use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 77d2651cc8b53f3ffb692d6dd844ef63c1000197
Author: Konrad Dybcio <konrad.dybcio@linaro.org>
Date:   Fri Mar 31 01:15:16 2023 +0200

    drm/msm/adreno: adreno_gpu: Use suspend() instead of idle() on load error
    
    commit 3eeca5e5f3100435b06a5b5d86daa3d135a8a4bd upstream.
    
    The adreno_load_gpu() path is guarded by an error check on
    adreno_load_fw(). This function is responsible for loading
    Qualcomm-only-signed binaries (e.g. SQE and GMU FW for A6XX), but it
    does not take the vendor-signed ZAP blob into account.
    
    By embedding the SQE (and GMU, if necessary) firmware into the
    initrd/kernel, we can trigger and unfortunate path that would not bail
    out early and proceed with gpu->hw_init(). That will fail, as the ZAP
    loader path will not find the firmware and return back to
    adreno_load_gpu().
    
    This error path involves pm_runtime_put_sync() which then calls idle()
    instead of suspend(). This is suboptimal, as it means that we're not
    going through the clean shutdown sequence. With at least A619_holi, this
    makes the GPU not wake up until it goes through at least one more
    start-fail-stop cycle. The pm_runtime_put_sync that appears in the error
    path actually does not guarantee that because of the earlier enabling of
    runtime autosuspend.
    
    Fix that by using pm_runtime_put_sync_suspend to force a clean shutdown.
    
    Test cases:
    1. All firmware baked into kernel
    2. error loading ZAP fw in initrd -> load from rootfs at DE start
    
    Both succeed on A619_holi (SM6375) and A630 (SDM845).
    
    Fixes: 0d997f95b70f ("drm/msm/adreno: fix runtime PM imbalance at gpu load")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
    Patchwork: https://patchwork.freedesktop.org/patch/530001/
    Link: https://lore.kernel.org/r/20230330231517.2747024-1-konrad.dybcio@linaro.org
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2bd08be1a64ec7e86fbedef700e0b9579793005
Author: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Date:   Fri Dec 30 14:58:25 2022 +0400

    fs/ntfs3: Refactoring of various minor issues
    
    commit 6827d50b2c430c329af442b64c9176d174f56521 upstream.
    
    Removed unused macro.
    Changed null pointer checking.
    Fixed inconsistent indenting.
    
    Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    Cc: Rudi Heitbaum <rudi@heitbaum.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb98336e23c11e9c8c7dd5425ec71adbbef7f773
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Feb 24 08:26:43 2023 -0800

    HID: wacom: insert timestamp to packed Bluetooth (BT) events
    
    commit 17d793f3ed53080dab6bbeabfc82de890c901001 upstream.
    
    To fully utilize the BT polling/refresh rate, a few input events
    are sent together to reduce event delay. This causes issue to the
    timestamp generated by input_sync since all the events in the same
    packet would pretty much have the same timestamp. This patch inserts
    time interval to the events by averaging the total time used for
    sending the packet.
    
    This decision was mainly based on observing the actual time interval
    between each BT polling. The interval doesn't seem to be constant,
    due to the network and system environment. So, using solutions other
    than averaging doesn't end up with valid timestamps.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb2f0c00048bcbea29c230e3ad7f3e0cf5d2bbc2
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Apr 9 09:42:29 2023 -0700

    HID: wacom: Set a default resolution for older tablets
    
    commit 08a46b4190d345544d04ce4fe2e1844b772b8535 upstream.
    
    Some older tablets may not report physical maximum for X/Y
    coordinates. Set a default to prevent undefined resolution.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
    Link: https://lore.kernel.org/r/20230409164229.29777-1-ping.cheng@wacom.com
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a0731130425562eac33c50697d3d25be283ef1f
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Tue Jan 3 14:12:37 2023 -0600

    drm/amd: Use `amdgpu_ucode_*` helpers for MES
    
    commit 11e0b0067ec0707e8e598a5f9a547ab618ae7982 upstream.
    
    The `amdgpu_ucode_request` helper will ensure that the return code for
    missing firmware is -ENODEV so that early_init can fail.
    
    The `amdgpu_ucode_release` helper provides symmetry for releasing firmware.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3e3a640d4fd9d7d40c1737e2b4373b7f4470eab
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Tue Jan 3 13:18:19 2023 -0600

    drm/amd: Add a new helper for loading/validating microcode
    
    commit 2210af50ae7f4104269dfde7bafbbfbacdbe1a2b upstream.
    
    All microcode runs a basic validation after it's been loaded. Each
    IP block as part of init will run both.
    
    Introduce a wrapper for request_firmware and amdgpu_ucode_validate.
    This wrapper will also remap any error codes from request_firmware
    to -ENODEV.  This is so that early_init will fail if firmware couldn't
    be loaded instead of the IP block being disabled.
    
    Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e1fa150e79897cc00db8348de267abf4c6c35be
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Wed Dec 28 01:28:40 2022 -0600

    drm/amd: Load MES microcode during early_init
    
    commit cc42e76e7de5190a7da5dac9d7b2bbb458e050bf upstream.
    
    Add an early_init phase to MES for fetching and validating microcode
    from the filesystem.
    
    If MES microcode is required but not available during early init, the
    firmware framebuffer will have already been released and the screen will
    freeze.
    
    Move the request for MES microcode into the early_init phase
    so that if it's not available, early_init will fail.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 369b891842228e18821e17ce5dbafc99d37d8a5d
Author: Graham Sider <Graham.Sider@amd.com>
Date:   Tue Oct 25 14:47:05 2022 -0400

    drm/amdgpu: remove deprecated MES version vars
    
    commit 6040517e4a29d3828160c571681eec9ffe10043f upstream.
    
    MES scheduler and kiq versions are stored in mes.sched_version and
    mes.kiq_version, respectively, which are read from a register after
    their queues are initialized. Remove mes.ucode_fw_version and
    mes.data_fw_version which tried to read this versioning info from the
    firmware headers (which don't contain this information).
    
    Signed-off-by: Graham Sider <Graham.Sider@amd.com>
    Reviewed-by: Jack Xiao <Jack.Xiao@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 506da05a5e0fa46e048606581dd8bf3fe0161ab2
Author: Guchun Chen <guchun.chen@amd.com>
Date:   Tue May 9 09:36:49 2023 +0800

    drm/amd/pm: avoid potential UBSAN issue on legacy asics
    
    commit 5247f05eadf1081a74b2233f291cee2efed25e3a upstream.
    
    Prevent further dpm casting on legacy asics without od_enabled in
    amdgpu_dpm_is_overdrive_supported. This can avoid UBSAN complain
    in init sequence.
    
    v2: add a macro to check legacy dpm instead of checking asic family/type
    v3: refine macro name for naming consistency
    
    Suggested-by: Evan Quan <evan.quan@amd.com>
    Signed-off-by: Guchun Chen <guchun.chen@amd.com>
    Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a179117a3b29e7136e4045c57090a05bb97f373
Author: Guchun Chen <guchun.chen@amd.com>
Date:   Sat May 6 16:52:59 2023 +0800

    drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend
    
    commit 8b229ada2669b74fdae06c83fbfda5a5a99fc253 upstream.
    
    sdma_v4_0_ip is shared on a few asics, but in sdma_v4_0_hw_fini,
    driver unconditionally disables ecc_irq which is only enabled on
    those asics enabling sdma ecc. This will introduce a warning in
    suspend cycle on those chips with sdma ip v4.0, while without
    sdma ecc. So this patch correct this.
    
    [ 7283.166354] RIP: 0010:amdgpu_irq_put+0x45/0x70 [amdgpu]
    [ 7283.167001] RSP: 0018:ffff9a5fc3967d08 EFLAGS: 00010246
    [ 7283.167019] RAX: ffff98d88afd3770 RBX: 0000000000000001 RCX: 0000000000000000
    [ 7283.167023] RDX: 0000000000000000 RSI: ffff98d89da30390 RDI: ffff98d89da20000
    [ 7283.167025] RBP: ffff98d89da20000 R08: 0000000000036838 R09: 0000000000000006
    [ 7283.167028] R10: ffffd5764243c008 R11: 0000000000000000 R12: ffff98d89da30390
    [ 7283.167030] R13: ffff98d89da38978 R14: ffffffff999ae15a R15: ffff98d880130105
    [ 7283.167032] FS:  0000000000000000(0000) GS:ffff98d996f00000(0000) knlGS:0000000000000000
    [ 7283.167036] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 7283.167039] CR2: 00000000f7a9d178 CR3: 00000001c42ea000 CR4: 00000000003506e0
    [ 7283.167041] Call Trace:
    [ 7283.167046]  <TASK>
    [ 7283.167048]  sdma_v4_0_hw_fini+0x38/0xa0 [amdgpu]
    [ 7283.167704]  amdgpu_device_ip_suspend_phase2+0x101/0x1a0 [amdgpu]
    [ 7283.168296]  amdgpu_device_suspend+0x103/0x180 [amdgpu]
    [ 7283.168875]  amdgpu_pmops_freeze+0x21/0x60 [amdgpu]
    [ 7283.169464]  pci_pm_freeze+0x54/0xc0
    
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2522
    Signed-off-by: Guchun Chen <guchun.chen@amd.com>
    Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17a69415679c6e0b55b390e86d59de82d7e53b9e
Author: Guchun Chen <guchun.chen@amd.com>
Date:   Fri May 5 13:20:11 2023 +0800

    drm/amd/pm: parse pp_handle under appropriate conditions
    
    commit 58d9b9a14b47c2a3da6effcbb01607ad7edc0275 upstream.
    
    amdgpu_dpm_is_overdrive_supported is a common API across all
    asics, so we should cast pp_handle into correct structure
    under different power frameworks.
    
    v2: using return directly to simplify code
    v3: SI asic does not carry od_enabled member in pp_handle, and update Fixes tag
    
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2541
    Fixes: eb4900aa4c49 ("drm/amdgpu: Fix kernel NULL pointer dereference in dpm functions")
    Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Guchun Chen <guchun.chen@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 348dcdf102a44ab5b389c4cd932bc1a61e210f6d
Author: Alvin Lee <Alvin.Lee2@amd.com>
Date:   Thu Apr 27 15:10:13 2023 -0400

    drm/amd/display: Enforce 60us prefetch for 200Mhz DCFCLK modes
    
    commit b504f99ccaa64da364443431e388ecf30b604e38 upstream.
    
    [Description]
    - Due to bandwidth / arbitration issues at 200Mhz DCFCLK,
      we want to enforce minimum 60us of prefetch to avoid
      intermittent underflow issues
    - Since 60us prefetch is already enforced for UCLK DPM0,
      and many DCFCLK's > 200Mhz are mapped to UCLK DPM1, in
      theory there should not be any UCLK DPM regressions by
      enforcing greater prefetch
    
    Reviewed-by: Nevenko Stupar <Nevenko.Stupar@amd.com>
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Acked-by: Alex Hung <alex.hung@amd.com>
    Signed-off-by: Alvin Lee <Alvin.Lee2@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a8248317b322d3cb56c64332062bae91460978a
Author: Lin.Cao <lincao12@amd.com>
Date:   Mon May 8 17:28:41 2023 +0800

    drm/amdgpu: Fix vram recover doesn't work after whole GPU reset (v2)
    
    commit 6c032c37ac3ef3b7df30937c785ecc4da428edc0 upstream.
    
    v1: Vmbo->shadow is used to back vram bo up when vram lost. So that we
    should set shadow as vmbo->shadow to recover vmbo->bo
    v2: Modify if(vmbo->shadow) shadow = vmbo->shadow as if(!vmbo->shadow)
    continue;
    
    Fixes: e18aaea733da ("drm/amdgpu: move shadow_list to amdgpu_bo_vm")
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Lin.Cao <lincao12@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6197fb331a6e274355bbcd04386a2631e8cf7f1c
Author: Yifan Zhang <yifan1.zhang@amd.com>
Date:   Wed May 10 16:13:48 2023 +0800

    drm/amdgpu: change gfx 11.0.4 external_id range
    
    commit 996e93a3fe74dcf9d467ae3020aea42cc3ff65e3 upstream.
    
    gfx 11.0.4 range starts from 0x80.
    
    Fixes: 311d52367d0a ("drm/amdgpu: add soc21 common ip block support for GC 11.0.4")
    Cc: stable@vger.kernel.org
    Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
    Reported-by: Yogesh Mohan Marimuthu <Yogesh.Mohanmarimuthu@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Tim Huang <Tim.Huang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28c2e072fa1382e7e4da51ff7795fb5b5774f5a7
Author: Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
Date:   Tue May 9 12:37:50 2023 +0530

    drm/amdgpu/jpeg: Remove harvest checking for JPEG3
    
    commit 5b94db73e45e2e6c2840f39c022fd71dfa47fc58 upstream.
    
    Register CC_UVD_HARVESTING is obsolete for JPEG 3.1.2
    
    Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
    Reviewed-by: Veerabadhran Gopalakrishnan <Veerabadhran.Gopalakrishnan@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org # 6.1.x
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f661ad53658a1ea35c004af1f5fbe25c4d1cdb08
Author: Guchun Chen <guchun.chen@amd.com>
Date:   Sat May 6 20:06:45 2023 +0800

    drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras
    
    commit 4a76680311330aefe5074bed8f06afa354b85c48 upstream.
    
    gfx9 cp_ecc_error_irq is only enabled when legacy gfx ras is assert.
    So in gfx_v9_0_hw_fini, interrupt disablement for cp_ecc_error_irq
    should be executed under such condition, otherwise, an amdgpu_irq_put
    calltrace will occur.
    
    [ 7283.170322] RIP: 0010:amdgpu_irq_put+0x45/0x70 [amdgpu]
    [ 7283.170964] RSP: 0018:ffff9a5fc3967d00 EFLAGS: 00010246
    [ 7283.170967] RAX: ffff98d88afd3040 RBX: ffff98d89da20000 RCX: 0000000000000000
    [ 7283.170969] RDX: 0000000000000000 RSI: ffff98d89da2bef8 RDI: ffff98d89da20000
    [ 7283.170971] RBP: ffff98d89da20000 R08: ffff98d89da2ca18 R09: 0000000000000006
    [ 7283.170973] R10: ffffd5764243c008 R11: 0000000000000000 R12: 0000000000001050
    [ 7283.170975] R13: ffff98d89da38978 R14: ffffffff999ae15a R15: ffff98d880130105
    [ 7283.170978] FS:  0000000000000000(0000) GS:ffff98d996f00000(0000) knlGS:0000000000000000
    [ 7283.170981] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 7283.170983] CR2: 00000000f7a9d178 CR3: 00000001c42ea000 CR4: 00000000003506e0
    [ 7283.170986] Call Trace:
    [ 7283.170988]  <TASK>
    [ 7283.170989]  gfx_v9_0_hw_fini+0x1c/0x6d0 [amdgpu]
    [ 7283.171655]  amdgpu_device_ip_suspend_phase2+0x101/0x1a0 [amdgpu]
    [ 7283.172245]  amdgpu_device_suspend+0x103/0x180 [amdgpu]
    [ 7283.172823]  amdgpu_pmops_freeze+0x21/0x60 [amdgpu]
    [ 7283.173412]  pci_pm_freeze+0x54/0xc0
    [ 7283.173419]  ? __pfx_pci_pm_freeze+0x10/0x10
    [ 7283.173425]  dpm_run_callback+0x98/0x200
    [ 7283.173430]  __device_suspend+0x164/0x5f0
    
    v2: drop gfx11 as it's fixed in a different solution by retiring cp_ecc_irq funcs(Hawking)
    
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2522
    Signed-off-by: Guchun Chen <guchun.chen@amd.com>
    Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02e6cb9b3aeffc6b0e3955f6e0346293e2415cbc
Author: Horatio Zhang <Hongkun.Zhang@amd.com>
Date:   Tue Apr 25 13:16:32 2023 +0800

    drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v11_0_hw_fini
    
    commit 13af556104fa93b1945c70bbf8a0a62cd2c92879 upstream.
    
    The gmc.ecc_irq is enabled by firmware per IFWI setting,
    and the host driver is not privileged to enable/disable
    the interrupt. So, it is meaningless to use the amdgpu_irq_put
    function in gmc_v11_0_hw_fini, which also leads to the call
    trace.
    
    [  102.980303] Call Trace:
    [  102.980303]  <TASK>
    [  102.980304]  gmc_v11_0_hw_fini+0x54/0x90 [amdgpu]
    [  102.980357]  gmc_v11_0_suspend+0xe/0x20 [amdgpu]
    [  102.980409]  amdgpu_device_ip_suspend_phase2+0x240/0x460 [amdgpu]
    [  102.980459]  amdgpu_device_ip_suspend+0x3d/0x80 [amdgpu]
    [  102.980520]  amdgpu_device_pre_asic_reset+0xd9/0x490 [amdgpu]
    [  102.980573]  amdgpu_device_gpu_recover.cold+0x548/0xce6 [amdgpu]
    [  102.980687]  amdgpu_debugfs_reset_work+0x4c/0x70 [amdgpu]
    [  102.980740]  process_one_work+0x21f/0x3f0
    [  102.980741]  worker_thread+0x200/0x3e0
    [  102.980742]  ? process_one_work+0x3f0/0x3f0
    [  102.980743]  kthread+0xfd/0x130
    [  102.980743]  ? kthread_complete_and_exit+0x20/0x20
    [  102.980744]  ret_from_fork+0x22/0x30
    
    Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Reviewed-by: Guchun Chen <guchun.chen@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2522
    Fixes: c8b5a95b5709 ("drm/amdgpu: Fix desktop freezed after gpu-reset")
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59cb2d46e177894c3554a25a3358b72d4bee31d3
Author: Hamza Mahfooz <hamza.mahfooz@amd.com>
Date:   Tue May 2 11:59:08 2023 -0400

    drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
    
    commit 922a76ba31adf84e72bc947267385be420c689ee upstream.
    
    As made mention of in commit 08c677cb0b43 ("drm/amdgpu: fix
    amdgpu_irq_put call trace in gmc_v10_0_hw_fini") and commit 13af556104fa
    ("drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v11_0_hw_fini"). It
    is meaningless to call amdgpu_irq_put() for gmc.ecc_irq. So, remove it
    from gmc_v9_0_hw_fini().
    
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2522
    Fixes: 3029c855d79f ("drm/amdgpu: Fix desktop freezed after gpu-reset")
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59e2439111ac2bd24ea0cecf5825cf06684b2c6c
Author: Horatio Zhang <Hongkun.Zhang@amd.com>
Date:   Tue Apr 25 10:52:28 2023 +0800

    drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v10_0_hw_fini
    
    commit 08c677cb0b436a96a836792bb35a8ec5de4999c2 upstream.
    
    The gmc.ecc_irq is enabled by firmware per IFWI setting,
    and the host driver is not privileged to enable/disable
    the interrupt. So, it is meaningless to use the amdgpu_irq_put
    function in gmc_v10_0_hw_fini, which also leads to the call
    trace.
    
    [   82.340264] Call Trace:
    [   82.340265]  <TASK>
    [   82.340269]  gmc_v10_0_hw_fini+0x83/0xa0 [amdgpu]
    [   82.340447]  gmc_v10_0_suspend+0xe/0x20 [amdgpu]
    [   82.340623]  amdgpu_device_ip_suspend_phase2+0x127/0x1c0 [amdgpu]
    [   82.340789]  amdgpu_device_ip_suspend+0x3d/0x80 [amdgpu]
    [   82.340955]  amdgpu_device_pre_asic_reset+0xdd/0x2b0 [amdgpu]
    [   82.341122]  amdgpu_device_gpu_recover.cold+0x4dd/0xbb2 [amdgpu]
    [   82.341359]  amdgpu_debugfs_reset_work+0x4c/0x70 [amdgpu]
    [   82.341529]  process_one_work+0x21d/0x3f0
    [   82.341535]  worker_thread+0x1fa/0x3c0
    [   82.341538]  ? process_one_work+0x3f0/0x3f0
    [   82.341540]  kthread+0xff/0x130
    [   82.341544]  ? kthread_complete_and_exit+0x20/0x20
    [   82.341547]  ret_from_fork+0x22/0x30
    
    Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Reviewed-by: Guchun Chen <guchun.chen@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2522
    Fixes: c8b5a95b5709 ("drm/amdgpu: Fix desktop freezed after gpu-reset")
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2e43c98042c607376479484ea8f98d3452868f5
Author: Hamza Mahfooz <hamza.mahfooz@amd.com>
Date:   Fri Apr 14 14:26:27 2023 -0400

    drm/amd/display: fix flickering caused by S/G mode
    
    commit 08da182175db4c7f80850354849d95f2670e8cd9 upstream.
    
    Currently, on a handful of ASICs. We allow the framebuffer for a given
    plane to exist in either VRAM or GTT. However, if the plane's new
    framebuffer is in a different memory domain than it's previous
    framebuffer, flipping between them can cause the screen to flicker. So,
    to fix this, don't perform an immediate flip in the aforementioned case.
    
    Cc: stable@vger.kernel.org
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2354
    Reviewed-by: Roman Li <Roman.Li@amd.com>
    Fixes: 81d0bcf99009 ("drm/amdgpu: make display pinning more flexible (v2)")
    Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c1e747ca61c6103bcc259ad7f2fc6d53acff291
Author: Samson Tam <Samson.Tam@amd.com>
Date:   Wed Apr 19 18:17:14 2023 -0400

    drm/amd/display: filter out invalid bits in pipe_fuses
    
    commit 682439fffad9fa9a38d37dd1b1318e9374232213 upstream.
    
    [Why]
    Reading pipe_fuses from register may have invalid bits set, which may
     affect the num_pipes erroneously.
    
    [How]
    Add read_pipes_fuses() call and filter bits based on expected number
     of pipes.
    
    Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com>
    Acked-by: Alan Liu <HaoPing.Liu@amd.com>
    Signed-off-by: Samson Tam <Samson.Tam@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org # 6.1.x
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2b2641ecb9aed1613976a2abf56292e206e3694
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Mon Mar 13 13:23:45 2023 -0400

    drm/amd/display: Fix 4to1 MPC black screen with DPP RCO
    
    commit bf224e00a9f54e2bf14b4d720a09c3d2f4aa4aa8 upstream.
    
    [Why]
    DPP Root clock optimization when combined with 4to1 MPC combine results
    in the screen turning black.
    
    This is because the DPPCLK is stopped during the middle of an
    optimize_bandwidth sequence during commit_minimal_transition without
    going through plane power down/power up.
    
    [How]
    The intent of a 0Hz DPP clock through update_clocks is to disable the
    DTO. This differs from the behavior of stopping the DPPCLK entirely
    (utilizing a 0Hz clock on some ASIC) so it's better to move this logic
    to reside next to plane power up/power down where we gate the HUBP/DPP
    DOMAIN.
    
    The new  sequence should be:
    Power down: PG enabled -> RCO on
    Power up: RCO off -> PG disabled
    
    Rename power_on_plane to power_on_plane_resources to reflect the
    actual operation that's occurring.
    
    Cc: stable@vger.kernel.org
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc9942840afaa3cbbb90dd41404d15125ae5d192
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date:   Sat Mar 11 09:11:29 2023 -0500

    drm/amd/display: Add NULL plane_state check for cursor disable logic
    
    commit d29fb7baab09b6a1dc484c9c67933253883e770a upstream.
    
    [Why]
    While scanning the top_pipe connections we can run into a case where
    the bottom pipe is still connected to a top_pipe but with a NULL
    plane_state.
    
    [How]
    Treat a NULL plane_state the same as the plane being invisible for
    pipe cursor disable logic.
    
    Cc: stable@vger.kernel.org
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfe56245f4f16914f2a5e4f775e5010cab01d91a
Author: James Cowgill <james.cowgill@blaize.com>
Date:   Wed Apr 12 17:35:07 2023 +0000

    drm/panel: otm8009a: Set backlight parent to panel device
    
    commit ab4f869fba6119997f7630d600049762a2b014fa upstream.
    
    This is the logical place to put the backlight device, and it also
    fixes a kernel crash if the MIPI host is removed. Previously the
    backlight device would be unregistered twice when this happened - once
    as a child of the MIPI host through `mipi_dsi_host_unregister`, and
    once when the panel device is destroyed.
    
    Fixes: 12a6cbd4f3f1 ("drm/panel: otm8009a: Use new backlight API")
    Signed-off-by: James Cowgill <james.cowgill@blaize.com>
    Cc: stable@vger.kernel.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/20230412173450.199592-1-james.cowgill@blaize.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e51d7c09d1f4970971be13c8ffebd1391aa1a29
Author: Jianmin Lv <lvjianmin@loongson.cn>
Date:   Fri Apr 7 16:34:49 2023 +0800

    irqchip/loongson-eiointc: Fix returned value on parsing MADT
    
    commit 112eaa8fec5ea75f1be003ec55760b09a86799f8 upstream.
    
    In pch_pic_parse_madt(), a NULL parent pointer will be
    returned from acpi_get_vec_parent() for second pch-pic domain
    related to second bridge while calling eiointc_acpi_init() at
    first time, where the parent of it has not been initialized
    yet, and will be initialized during second time calling
    eiointc_acpi_init(). So, it's reasonable to return zero so
    that failure of acpi_table_parse_madt() will be avoided, or else
    acpi_cascade_irqdomain_init() will return and initialization of
    followed pch_msi domain will be skipped.
    
    Although it does not matter when pch_msi_parse_madt() returns
    -EINVAL if no invalid parent is found, it's also reasonable to
    return zero for that.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230407083453.6305-2-lvjianmin@loongson.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84c64fb57887595ba33edccb69a442b667bb5ead
Author: Jianmin Lv <lvjianmin@loongson.cn>
Date:   Fri Apr 7 16:34:53 2023 +0800

    irqchip/loongson-pch-pic: Fix pch_pic_acpi_init calling
    
    commit 48ce2d722f7f108f27bedddf54bee3423a57ce57 upstream.
    
    For dual-bridges scenario, pch_pic_acpi_init() will be called
    in following path:
    
    cpuintc_acpi_init
      acpi_cascade_irqdomain_init(in cpuintc driver)
        acpi_table_parse_madt
          eiointc_parse_madt
            eiointc_acpi_init /* this will be called two times
                                 correspondingto parsing two
                                 eiointc entries in MADT under
                                 dual-bridges scenario*/
              acpi_cascade_irqdomain_init(in eiointc driver)
                acpi_table_parse_madt
                  pch_pic_parse_madt
                    pch_pic_acpi_init /* this will be called depend
                                         on valid parent IRQ domain
                                         handle for one or two times
                                         corresponding to parsing
                                         two pchpic entries in MADT
                                         druring calling
                                         eiointc_acpi_init() under
                                         dual-bridges scenario*/
    
    During the first eiointc_acpi_init() calling, the
    pch_pic_acpi_init() will be called just one time since only
    one valid parent IRQ domain handle will be found for current
    eiointc IRQ domain.
    
    During the second eiointc_acpi_init() calling, the
    pch_pic_acpi_init() will be called two times since two valid
    parent IRQ domain handles will be found. So in pch_pic_acpi_init(),
    we must have a reasonable way to prevent from creating second same
    pch_pic IRQ domain.
    
    The patch matches gsi base information in created pch_pic IRQ
    domains to check if the target domain has been created to avoid the
    bug mentioned above.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230407083453.6305-6-lvjianmin@loongson.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a0b544b7caedfbc05065b6377fd1d8bf7ef5e70
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Thu Apr 6 11:18:48 2023 -0700

    f2fs: fix potential corruption when moving a directory
    
    commit d94772154e524b329a168678836745d2773a6e02 upstream.
    
    F2FS has the same issue in ext4_rename causing crash revealed by
    xfstests/generic/707.
    
    See also commit 0813299c586b ("ext4: Fix possible corruption when moving a directory")
    
    CC: stable@vger.kernel.org
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 424f8cdc0ad29e4940be96dcc0b935ba497adeda
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Mon Apr 3 09:37:24 2023 -0700

    f2fs: fix null pointer panic in tracepoint in __replace_atomic_write_block
    
    commit da6ea0b050fa720302b56fbb59307e7c7531a342 upstream.
    
    We got a kernel panic if old_addr is NULL.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=217266
    
    BUG: kernel NULL pointer dereference, address: 0000000000000000
     Call Trace:
      <TASK>
      f2fs_commit_atomic_write+0x619/0x990 [f2fs a1b985b80f5babd6f3ea778384908880812bfa43]
      __f2fs_ioctl+0xd8e/0x4080 [f2fs a1b985b80f5babd6f3ea778384908880812bfa43]
      ? vfs_write+0x2ae/0x3f0
      ? vfs_write+0x2ae/0x3f0
      __x64_sys_ioctl+0x91/0xd0
      do_syscall_64+0x5c/0x90
      entry_SYSCALL_64_after_hwframe+0x72/0xdc
     RIP: 0033:0x7f69095fe53f
    
    Fixes: 2f3a9ae990a7 ("f2fs: introduce trace_f2fs_replace_atomic_write_block")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa0f98c5d1962b4dedec00067fc1b28a6d4f7d65
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Apr 25 21:44:41 2023 +0200

    drm/i915/dsi: Use unconditional msleep() instead of intel_dsi_msleep()
    
    commit c8c2969bfcba5fcba3a5b078315c1b586d927d9f upstream.
    
    The intel_dsi_msleep() helper skips sleeping if the MIPI-sequences have
    a version of 3 or newer and the panel is in vid-mode.
    
    This is based on the big comment around line 730 which starts with
    "Panel enable/disable sequences from the VBT spec.", where
    the "v3 video mode seq" column does not have any wait t# entries.
    
    Checking the Windows driver shows that it does always honor
    the VBT delays independent of the version of the VBT sequences.
    
    Commit 6fdb335f1c9c ("drm/i915/dsi: Use unconditional msleep for
    the panel_on_delay when there is no reset-deassert MIPI-sequence")
    switched to a direct msleep() instead of intel_dsi_msleep()
    when there is no MIPI_SEQ_DEASSERT_RESET sequence, to fix
    the panel on an Acer Aspire Switch 10 E SW3-016 not turning on.
    
    And now testing on a Nextbook Ares 8A shows that panel_on_delay
    must always be honored otherwise the panel will not turn on.
    
    Instead of only always using regular msleep() for panel_on_delay
    do as Windows does and always use regular msleep() everywhere
    were intel_dsi_msleep() is used and drop the intel_dsi_msleep()
    helper.
    
    Changes in v2:
    - Replace all intel_dsi_msleep() calls instead of just
      the intel_dsi_msleep(panel_on_delay) call
    
    Cc: stable@vger.kernel.org
    Fixes: 6fdb335f1c9c ("drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230425194441.68086-1-hdegoede@redhat.com
    (cherry picked from commit fa83c12132f71302f7d4b02758dc0d46048d3f5f)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e1476225ec02eeebc4b79f793506f80bc4bca8f
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Mar 6 11:07:20 2023 +0100

    drm/msm: fix workqueue leak on bind errors
    
    commit a75b49db6529b2af049eafd938fae888451c3685 upstream.
    
    Make sure to destroy the workqueue also in case of early errors during
    bind (e.g. a subcomponent failing to bind).
    
    Since commit c3b790ea07a1 ("drm: Manage drm_mode_config_init with
    drmm_") the mode config will be freed when the drm device is released
    also when using the legacy interface, but add an explicit cleanup for
    consistency and to facilitate backporting.
    
    Fixes: 060530f1ea67 ("drm/msm: use componentised device support")
    Cc: stable@vger.kernel.org      # 3.15
    Cc: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/525093/
    Link: https://lore.kernel.org/r/20230306100722.28485-9-johan+linaro@kernel.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 544711591a67a6da4d9f0f70ba3c805eb2548729
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Mar 6 11:07:18 2023 +0100

    drm/msm: fix vram leak on bind errors
    
    commit 60d476af96015891c7959f30838ae7a9749932bf upstream.
    
    Make sure to release the VRAM buffer also in a case a subcomponent fails
    to bind.
    
    Fixes: d863f0c7b536 ("drm/msm: Call msm_init_vram before binding the gpu")
    Cc: stable@vger.kernel.org      # 5.11
    Cc: Craig Tatlor <ctatlor97@gmail.com>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/525094/
    Link: https://lore.kernel.org/r/20230306100722.28485-7-johan+linaro@kernel.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fad173f9cf24636ee50eca60c77a0943df0f098
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Mar 6 11:07:17 2023 +0100

    drm/msm: fix drm device leak on bind errors
    
    commit 214b09db61978497df24efcb3959616814bca46b upstream.
    
    Make sure to free the DRM device also in case of early errors during
    bind().
    
    Fixes: 2027e5b3413d ("drm/msm: Initialize MDSS irq domain at probe time")
    Cc: stable@vger.kernel.org      # 5.17
    Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/525097/
    Link: https://lore.kernel.org/r/20230306100722.28485-6-johan+linaro@kernel.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd8ce825b165acf997689c5ffa45d6a7a1fc0260
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Mar 6 11:07:16 2023 +0100

    drm/msm: fix NULL-deref on irq uninstall
    
    commit cd459c005de3e2b855a8cc7768e633ce9d018e9f upstream.
    
    In case of early initialisation errors and on platforms that do not use
    the DPU controller, the deinitilisation code can be called with the kms
    pointer set to NULL.
    
    Fixes: f026e431cf86 ("drm/msm: Convert to Linux IRQ interfaces")
    Cc: stable@vger.kernel.org      # 5.14
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/525104/
    Link: https://lore.kernel.org/r/20230306100722.28485-5-johan+linaro@kernel.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16e0e6fb4511c004a5a0987d5bd75d9bcfb2b175
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Mar 6 11:07:15 2023 +0100

    drm/msm: fix NULL-deref on snapshot tear down
    
    commit a465353b9250802f87b97123e33a17f51277f0b1 upstream.
    
    In case of early initialisation errors and on platforms that do not use
    the DPU controller, the deinitilisation code can be called with the kms
    pointer set to NULL.
    
    Fixes: 98659487b845 ("drm/msm: add support to take dpu snapshot")
    Cc: stable@vger.kernel.org      # 5.14
    Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/525099/
    Link: https://lore.kernel.org/r/20230306100722.28485-4-johan+linaro@kernel.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b6b81decdf08b5171c3872e45e9e3772a274032
Author: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Date:   Thu Mar 30 20:31:04 2023 +0530

    drm/i915/color: Fix typo for Plane CSC indexes
    
    commit 2efc8e1001acfdc143cf2d25a08a4974c322e2a8 upstream.
    
    Replace _PLANE_INPUT_CSC_RY_GY_2_* with _PLANE_CSC_RY_GY_2_*
    for Plane CSC
    
    Fixes: 6eba56f64d5d ("drm/i915/pxp: black pixels on pxp disabled")
    
    Cc: <stable@vger.kernel.org>
    
    Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
    Reviewed-by: Uma Shankar <uma.shankar@intel.com>
    Signed-off-by: Animesh Manna <animesh.manna@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230330150104.2923519-1-chaitanya.kumar.borah@intel.com
    (cherry picked from commit e39c76b2160bbd005587f978d29603ef790aefcd)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b01534c8fa20fea3ae322b866fa9a0793523286
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Thu Mar 30 11:31:31 2023 +0200

    drm/bridge: lt8912b: Fix DSI Video Mode
    
    commit f435b7ef3b360d689df2ffa8326352cd07940d92 upstream.
    
    LT8912 DSI port supports only Non-Burst mode video operation with Sync
    Events and continuous clock on clock lane, correct dsi mode flags
    according to that removing MIPI_DSI_MODE_VIDEO_BURST flag.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 30e2ae943c26 ("drm/bridge: Introduce LT8912B DSI to HDMI bridge")
    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/20230330093131.424828-1-francesco@dolcini.it
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47bfe128045651cc5eee25f04a3e4083a8a46066
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Mar 3 17:48:05 2023 +0100

    drm/msm/adreno: fix runtime PM imbalance at gpu load
    
    commit 0d997f95b70f98987ae031a89677c13e0e223670 upstream.
    
    A recent commit moved enabling of runtime PM to GPU load time (first
    open()) but failed to update the error paths so that runtime PM is
    disabled if initialisation of the GPU fails. This would trigger a
    warning about the unbalanced disable count on the next open() attempt.
    
    Note that pm_runtime_put_noidle() is sufficient to balance the usage
    count when pm_runtime_put_sync() fails (and is chosen over
    pm_runtime_resume_and_get() for consistency reasons).
    
    Fixes: 4b18299b3365 ("drm/msm/adreno: Defer enabling runpm until hw_init()")
    Cc: stable@vger.kernel.org      # 6.0
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Patchwork: https://patchwork.freedesktop.org/patch/524971/
    Link: https://lore.kernel.org/r/20230303164807.13124-3-johan+linaro@kernel.org
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d0fdfefb3843c9e33612d5a62ebf3168156a305
Author: Zev Weiss <zev@bewilderbeest.net>
Date:   Thu Feb 23 16:03:58 2023 -0800

    ARM: dts: aspeed: romed8hm3: Fix GPIO polarity of system-fault LED
    
    commit a3fd10732d276d7cf372c6746a78a1c8b6aa7541 upstream.
    
    Turns out it's in fact not the same as the heartbeat LED.
    
    Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
    Cc: stable@vger.kernel.org # v5.18+
    Fixes: a9a3d60b937a ("ARM: dts: aspeed: Add ASRock ROMED8HM3 BMC")
    Link: https://lore.kernel.org/r/20230224000400.12226-2-zev@bewilderbeest.net
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f327c7443610f495aee9a402abaee4ac758d4606
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sun Feb 12 19:58:18 2023 +0100

    ARM: dts: s5pv210: correct MIPI CSIS clock name
    
    commit 665b9459bb53b8f19bd1541567e1fe9782c83c4b upstream.
    
    The Samsung S5P/Exynos MIPI CSIS bindings and Linux driver expect first
    clock name to be "csis".  Otherwise the driver fails to probe.
    
    Fixes: 94ad0f6d9278 ("ARM: dts: Add Device tree for s5pv210 SoC")
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20230212185818.43503-2-krzysztof.kozlowski@linaro.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5503ea70de6c270215f9b279ca97db283a587043
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Fri Feb 17 16:06:27 2023 +0100

    ARM: dts: exynos: fix WM8960 clock name in Itop Elite
    
    commit 6c950c20da38debf1ed531e0b972bd8b53d1c11f upstream.
    
    The WM8960 Linux driver expects the clock to be named "mclk".  Otherwise
    the clock will be ignored and not prepared/enabled by the driver.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 339b2fb36a67 ("ARM: dts: exynos: Add TOPEET itop elite based board")
    Link: https://lore.kernel.org/r/20230217150627.779764-3-krzysztof.kozlowski@linaro.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6efe88c34f5f813b6f6ef18ed3d38425118f6b25
Author: Zev Weiss <zev@bewilderbeest.net>
Date:   Thu Feb 23 16:04:00 2023 -0800

    ARM: dts: aspeed: asrock: Correct firmware flash SPI clocks
    
    commit 9dedb724446913ea7b1591b4b3d2e3e909090980 upstream.
    
    While I'm not aware of any problems that have occurred running these
    at 100 MHz, the official word from ASRock is that 50 MHz is the
    correct speed to use, so let's be safe and use that instead.
    
    Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
    Cc: stable@vger.kernel.org
    Fixes: 2b81613ce417 ("ARM: dts: aspeed: Add ASRock E3C246D4I BMC")
    Fixes: a9a3d60b937a ("ARM: dts: aspeed: Add ASRock ROMED8HM3 BMC")
    Link: https://lore.kernel.org/r/20230224000400.12226-4-zev@bewilderbeest.net
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a64910ba868c3ec71e315958fc8a6ebb2cfe74f3
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Thu Mar 2 12:28:18 2023 -0800

    sysctl: clarify register_sysctl_init() base directory order
    
    commit 228b09de936395ddd740df3522ea35ae934830d8 upstream.
    
    Relatively new docs which I added which hinted the base directories needed
    to be created before is wrong, remove that incorrect comment. This has been
    hinted before by Eric twice already [0] [1], I had just not verified that
    until now. Now that I've verified that updates the docs to relax the context
    described.
    
    [0] https://lkml.kernel.org/r/875ys0azt8.fsf@email.froward.int.ebiederm.org
    [1] https://lkml.kernel.org/r/87ftbiud6s.fsf@x220.int.ebiederm.org
    
    Cc: stable@vger.kernel.org # v5.17
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3c70209a991decbab3971c6f4d0d844b4ac8bda
Author: Mathieu Poirier <mathieu.poirier@linaro.org>
Date:   Mon Mar 20 16:18:24 2023 -0600

    remoteproc: rcar_rproc: Call of_node_put() on iteration error
    
    commit f8bae637d3d5e082b4ced71e28b16eb3ee0683c1 upstream.
    
    Function of_phandle_iterator_next() calls of_node_put() on the last
    device_node it iterated over, but when the loop exits prematurely it has
    to be called explicitly.
    
    Fixes: 285892a74f13 ("remoteproc: Add Renesas rcar driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Link: https://lore.kernel.org/r/20230320221826.2728078-4-mathieu.poirier@linaro.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 948f81dac38854ae188edd90f74e60092621f16a
Author: Mathieu Poirier <mathieu.poirier@linaro.org>
Date:   Mon Mar 20 16:18:25 2023 -0600

    remoteproc: imx_rproc: Call of_node_put() on iteration error
    
    commit 5ef074e805ecfd9a16dbb7b6b88bbfa8abad7054 upstream.
    
    Function of_phandle_iterator_next() calls of_node_put() on the last
    device_node it iterated over, but when the loop exits prematurely it has
    to be called explicitly.
    
    Fixes: b29b4249f8f0 ("remoteproc: imx_rproc: add i.MX specific parse fw hook")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reviewed-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/20230320221826.2728078-5-mathieu.poirier@linaro.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe3497c3bfcb2dd072b5eaeff00ec8654115e082
Author: Mathieu Poirier <mathieu.poirier@linaro.org>
Date:   Mon Mar 20 16:18:26 2023 -0600

    remoteproc: imx_dsp_rproc: Call of_node_put() on iteration error
    
    commit e0e01de8ee146986872e54e8365f4b4654819412 upstream.
    
    Function of_phandle_iterator_next() calls of_node_put() on the last
    device_node it iterated over, but when the loop exits prematurely it has
    to be called explicitly.
    
    Fixes: ec0e5549f358 ("remoteproc: imx_dsp_rproc: Add remoteproc driver for DSP on i.MX")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
    Link: https://lore.kernel.org/r/20230320221826.2728078-6-mathieu.poirier@linaro.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a0fc842af1cb780cdce657647cb58437ae9f263
Author: Mathieu Poirier <mathieu.poirier@linaro.org>
Date:   Mon Mar 20 16:18:23 2023 -0600

    remoteproc: st: Call of_node_put() on iteration error
    
    commit 8a74918948b40317a5b5bab9739d13dcb5de2784 upstream.
    
    Function of_phandle_iterator_next() calls of_node_put() on the last
    device_node it iterated over, but when the loop exits prematurely it has
    to be called explicitly.
    
    Fixes: 3df52ed7f269 ("remoteproc: st: add reserved memory support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
    Link: https://lore.kernel.org/r/20230320221826.2728078-3-mathieu.poirier@linaro.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d6b66657c245bacced9c0b86ffe7c99ba0788cf
Author: Mathieu Poirier <mathieu.poirier@linaro.org>
Date:   Mon Mar 20 16:18:22 2023 -0600

    remoteproc: stm32: Call of_node_put() on iteration error
    
    commit ccadca5baf5124a880f2bb50ed1ec265415f025b upstream.
    
    Function of_phandle_iterator_next() calls of_node_put() on the last
    device_node it iterated over, but when the loop exits prematurely it has
    to be called explicitly.
    
    Fixes: 13140de09cc2 ("remoteproc: stm32: add an ST stm32_rproc driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
    Link: https://lore.kernel.org/r/20230320221826.2728078-2-mathieu.poirier@linaro.org
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fde64a409bee247379f38e6b88b7e09593e4cb93
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Fri Mar 10 13:00:16 2023 -0800

    proc_sysctl: enhance documentation
    
    commit 1dc8689e4cc651e21566e10206a84c4006e81fb1 upstream.
    
    Expand documentation to clarify:
    
      o that paths don't need to exist for the new API callers
      o clarify that we *require* callers to keep the memory of
        the table around during the lifetime of the sysctls
      o annotate routines we are trying to deprecate and later remove
    
    Cc: stable@vger.kernel.org # v5.17
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4708645c14405879f0e6fbfc2ff80209167fd71
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Thu Mar 2 12:28:16 2023 -0800

    proc_sysctl: update docs for __register_sysctl_table()
    
    commit 67ff32289acad9ed338cd9f2351b44939e55163e upstream.
    
    Update the docs for __register_sysctl_table() to make it clear no child
    entries can be passed. When the child is true these are non-leaf entries
    on the ctl table and sysctl treats these as directories. The point to
    __register_sysctl_table() is to deal only with directories not part of
    the ctl table where thay may riside, to be simple and avoid recursion.
    
    While at it, hint towards using long on extra1 and extra2 later.
    
    Cc: stable@vger.kernel.org # v5.17
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c93185ffd99626b1c013876c9de7b1f78217d314
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Mar 5 20:00:32 2023 -0800

    sh: nmi_debug: fix return value of __setup handler
    
    commit d1155e4132de712a9d3066e2667ceaad39a539c5 upstream.
    
    __setup() handlers should return 1 to obsolete_checksetup() in
    init/main.c to indicate that the boot option has been handled.
    A return of 0 causes the boot option/value to be listed as an Unknown
    kernel parameter and added to init's (limited) argument or environment
    strings. Also, error return codes don't mean anything to
    obsolete_checksetup() -- only non-zero (usually 1) or zero.
    So return 1 from nmi_debug_setup().
    
    Fixes: 1e1030dccb10 ("sh: nmi_debug support.")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: Igor Zhbanov <izh1979@gmail.com>
    Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru
    Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: linux-sh@vger.kernel.org
    Cc: stable@vger.kernel.org
    Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Link: https://lore.kernel.org/r/20230306040037.20350-3-rdunlap@infradead.org
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ebd0064352e266b5f06552cd7d7c37746c8624a
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Mar 5 20:00:33 2023 -0800

    sh: init: use OF_EARLY_FLATTREE for early init
    
    commit 6cba655543c7959f8a6d2979b9d40a6a66b7ed4f upstream.
    
    When CONFIG_OF_EARLY_FLATTREE and CONFIG_SH_DEVICE_TREE are not set,
    SH3 build fails with a call to early_init_dt_scan(), so in
    arch/sh/kernel/setup.c and arch/sh/kernel/head_32.S, use
    CONFIG_OF_EARLY_FLATTREE instead of CONFIG_OF_FLATTREE.
    
    Fixes this build error:
    ../arch/sh/kernel/setup.c: In function 'sh_fdt_init':
    ../arch/sh/kernel/setup.c:262:26: error: implicit declaration of function 'early_init_dt_scan' [-Werror=implicit-function-declaration]
      262 |         if (!dt_virt || !early_init_dt_scan(dt_virt)) {
    
    Fixes: 03767daa1387 ("sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE")
    Fixes: eb6b6930a70f ("sh: fix memory corruption of unflattened device tree")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Suggested-by: Rob Herring <robh+dt@kernel.org>
    Cc: Frank Rowand <frowand.list@gmail.com>
    Cc: devicetree@vger.kernel.org
    Cc: Rich Felker <dalias@libc.org>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Cc: linux-sh@vger.kernel.org
    Cc: stable@vger.kernel.org
    Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Link: https://lore.kernel.org/r/20230306040037.20350-4-rdunlap@infradead.org
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab2221dc3c762f629f71933bfeb64c147753ddf9
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Mar 5 20:00:37 2023 -0800

    sh: mcount.S: fix build error when PRINTK is not enabled
    
    commit c2bd1e18c6f85c0027da2e5e7753b9bfd9f8e6dc upstream.
    
    Fix a build error in mcount.S when CONFIG_PRINTK is not enabled.
    Fixes this build error:
    
    sh2-linux-ld: arch/sh/lib/mcount.o: in function `stack_panic':
    (.text+0xec): undefined reference to `dump_stack'
    
    Fixes: e460ab27b6c3 ("sh: Fix up stack overflow check with ftrace disabled.")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: stable@vger.kernel.org
    Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Link: https://lore.kernel.org/r/20230306040037.20350-8-rdunlap@infradead.org
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdac282b3c17dc7cc08db0f2ef9c5a764651dff3
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Mar 5 20:00:34 2023 -0800

    sh: math-emu: fix macro redefined warning
    
    commit 58a49ad90939386a8682e842c474a0d2c00ec39c upstream.
    
    Fix a warning that was reported by the kernel test robot:
    
    In file included from ../include/math-emu/soft-fp.h:27,
                     from ../arch/sh/math-emu/math.c:22:
    ../arch/sh/include/asm/sfp-machine.h:17: warning: "__BYTE_ORDER" redefined
       17 | #define __BYTE_ORDER __BIG_ENDIAN
    In file included from ../arch/sh/math-emu/math.c:21:
    ../arch/sh/math-emu/sfp-util.h:71: note: this is the location of the previous definition
       71 | #define __BYTE_ORDER __LITTLE_ENDIAN
    
    Fixes: b929926f01f2 ("sh: define __BIG_ENDIAN for math-emu")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Link: lore.kernel.org/r/202111121827.6v6SXtVv-lkp@intel.com
    Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: linux-sh@vger.kernel.org
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Cc: stable@vger.kernel.org
    Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Link: https://lore.kernel.org/r/20230306040037.20350-5-rdunlap@infradead.org
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d103a57652216bdad66203511f7f97008e22bac
Author: Steve French <stfrench@microsoft.com>
Date:   Tue May 9 01:00:42 2023 -0500

    SMB3: force unmount was failing to close deferred close files
    
    commit 2cb6f968775a9fd60c90a6042b9550bcec3ea087 upstream.
    
    In investigating a failure with xfstest generic/392 it
    was noticed that mounts were reusing a superblock that should
    already have been freed. This turned out to be related to
    deferred close files keeping a reference count until the
    closetimeo expired.
    
    Currently the only way an fs knows that mount is beginning is
    when force unmount is called, but when this, ie umount_begin(),
    is called all deferred close files on the share (tree
    connection) should be closed immediately (unless shared by
    another mount) to avoid using excess resources on the server
    and to avoid reusing a superblock which should already be freed.
    
    In umount_begin, close all deferred close handles for that
    share if this is the last mount using that share on this
    client (ie send the SMB3 close request over the wire for those
    that have been already closed by the app but that we have
    kept a handle lease open for and have not sent closes to the
    server for yet).
    
    Reported-by: David Howells <dhowells@redhat.com>
    Acked-by: Bharath SM <bharathsm@microsoft.com>
    Cc: <stable@vger.kernel.org>
    Fixes: 78c09634f7dc ("Cifs: Fix kernel oops caused by deferred close for files.")
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb0091a5c97ab66a358450a89bb40b6b3fb48696
Author: Steve French <stfrench@microsoft.com>
Date:   Tue May 9 01:37:19 2023 -0500

    smb3: fix problem remounting a share after shutdown
    
    commit 716a3cf317456fa01d54398bb14ab354f50ed6a2 upstream.
    
    xfstests generic/392 showed a problem where even after a
    shutdown call was made on a mount, we would still attempt
    to use the (now inaccessible) superblock if another mount
    was attempted for the same share.
    
    Reported-by: David Howells <dhowells@redhat.com>
    Reviewed-by: David Howells <dhowells@redhat.com>
    Cc: <stable@vger.kernel.org>
    Fixes: 087f757b0129 ("cifs: add shutdown support")
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 145f54ea336b06cf4f92eeee996f2ffca939ea43
Author: Jan Kara <jack@suse.cz>
Date:   Mon Apr 24 18:32:19 2023 +0200

    inotify: Avoid reporting event with invalid wd
    
    commit c915d8f5918bea7c3962b09b8884ca128bfd9b0c upstream.
    
    When inotify_freeing_mark() races with inotify_handle_inode_event() it
    can happen that inotify_handle_inode_event() sees that i_mark->wd got
    already reset to -1 and reports this value to userspace which can
    confuse the inotify listener. Avoid the problem by validating that wd is
    sensible (and pretend the mark got removed before the event got
    generated otherwise).
    
    CC: stable@vger.kernel.org
    Fixes: 7e790dd5fc93 ("inotify: fix error paths in inotify_update_watch")
    Message-Id: <20230424163219.9250-1-jack@suse.cz>
    Reported-by: syzbot+4a06d4373fd52f0b2f9c@syzkaller.appspotmail.com
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d759abeb273c4750599ea06b040b46a229eefbd9
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Fri May 5 09:25:23 2023 -0400

    platform/x86: thinkpad_acpi: Add profile force ability
    
    commit 1684878952929e20a864af5df7b498941c750f45 upstream.
    
    There has been a lot of confusion around which platform profiles are
    supported on various platforms and it would be useful to have a debug
    method to be able to override the profile mode that is selected.
    
    I don't expect this to be used in anything other than debugging in
    conjunction with Lenovo engineers - but it does give a way to get a
    system working whilst we wait for either FW fixes, or a driver fix
    to land upstream, if something is wonky in the mode detection logic
    
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Link: https://lore.kernel.org/r/20230505132523.214338-2-mpearson-lenovo@squebb.ca
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66d4f7f327e424c03e85c3d5d1b1e6f6fe8a1125
Author: Andrey Avdeev <jamesstoun@gmail.com>
Date:   Sun Apr 30 11:01:10 2023 +0300

    platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i
    
    commit 4b65f95c87c35699bc6ad540d6b9dd7f950d0924 upstream.
    
    Add touchscreen info for the Dexp Ursus KX210i
    
    Signed-off-by: Andrey Avdeev <jamesstoun@gmail.com>
    Link: https://lore.kernel.org/r/ZE4gRgzRQCjXFYD0@avdeevavpc
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e614c1de9e8d57b9456efaec45e62de941ffe396
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Fri May 5 09:25:22 2023 -0400

    platform/x86: thinkpad_acpi: Fix platform profiles on T490
    
    commit 0c0cd3e25a5b64b541dd83ba6e032475a9d77432 upstream.
    
    I had incorrectly thought that PSC profiles were not usable on Intel
    platforms so had blocked them in the driver initialistion. This broke
    platform profiles on the T490.
    
    After discussion with the FW team PSC does work on Intel platforms and
    should be allowed.
    
    Note - it's possible this may impact other platforms where it is advertised
    but special driver support that only Windows has is needed. But if it does
    then they will need fixing via quirks. Please report any issues to me so I
    can get them addressed - but I haven't found any problems in testing...yet
    
    Fixes: bce6243f767f ("platform/x86: thinkpad_acpi: do not use PSC mode on Intel platforms")
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2177962
    Cc: stable@vger.kernel.org
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Link: https://lore.kernel.org/r/20230505132523.214338-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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a02d29de79a49c1659ec884a53bf63cb03e48311
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri May 5 23:03:23 2023 +0200

    platform/x86: touchscreen_dmi: Add upside-down quirk for GDIX1002 ts on the Juno Tablet
    
    commit 6abfa99ce52f61a31bcfc2aaaae09006f5665495 upstream.
    
    The Juno Computers Juno Tablet has an upside-down mounted Goodix
    touchscreen. Add a quirk to invert both axis to correct for this.
    
    Link: https://junocomputers.com/us/product/juno-tablet/
    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230505210323.43177-1-hdegoede@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61549b7414b6dbae38585df3ded1eb52494ad111
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date:   Tue Apr 18 08:32:30 2023 -0700

    platform/x86/intel-uncore-freq: Return error on write frequency
    
    commit 75e406b540c3eca67625d97bbefd4e3787eafbfe upstream.
    
    Currently when the uncore_write() returns error, it is silently
    ignored. Return error to user space when uncore_write() fails.
    
    Fixes: 49a474c7ba51 ("platform/x86: Add support for Uncore frequency control")
    Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Reviewed-by: Zhang Rui <rui.zhang@intel.com>
    Tested-by: Wendy Wang <wendy.wang@intel.com>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20230418153230.679094-1-srinivas.pandruvada@linux.intel.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b886ad6b6bfb03da2d6a27c42ff051ba8efe70f7
Author: Steve French <stfrench@microsoft.com>
Date:   Wed May 10 17:42:21 2023 -0500

    cifs: release leases for deferred close handles when freezing
    
    commit d39fc592ef8ae9a89c5e85c8d9f760937a57d5ba upstream.
    
    We should not be caching closed files when freeze is invoked on an fs
    (so we can release resources more gracefully).
    
    Fixes xfstests generic/068 generic/390 generic/491
    
    Reviewed-by: David Howells <dhowells@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 187f89cff7753614b37ab7b83a5c9d5a8e1966a0
Author: Pawel Witek <pawel.ireneusz.witek@gmail.com>
Date:   Fri May 5 17:14:59 2023 +0200

    cifs: fix pcchunk length type in smb2_copychunk_range
    
    commit d66cde50c3c868af7abddafce701bb86e4a93039 upstream.
    
    Change type of pcchunk->Length from u32 to u64 to match
    smb2_copychunk_range arguments type. Fixes the problem where performing
    server-side copy with CIFS_IOC_COPYCHUNK_FILE ioctl resulted in incomplete
    copy of large files while returning -EINVAL.
    
    Fixes: 9bf0c9cd4314 ("CIFS: Fix SMB2/SMB3 Copy offload support (refcopy) for large files")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Pawel Witek <pawel.ireneusz.witek@gmail.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5544c95ad3d2789b7d76b4716c1d654babdc9b1
Author: Naohiro Aota <Naohiro.Aota@wdc.com>
Date:   Tue May 9 18:29:15 2023 +0000

    btrfs: zoned: fix full zone super block reading on ZNS
    
    commit 02ca9e6fb5f66a031df4fac508b8e477ca69e918 upstream.
    
    When both of the superblock zones are full, we need to check which
    superblock is newer. The calculation of last superblock position is wrong
    as it does not consider zone_capacity and uses the length.
    
    Fixes: 9658b72ef300 ("btrfs: zoned: locate superblock position using zone capacity")
    CC: stable@vger.kernel.org # 6.1+
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4def3a0a8522199b11e4564c11ddfd9d7896ec4f
Author: Naohiro Aota <Naohiro.Aota@wdc.com>
Date:   Mon May 8 22:14:20 2023 +0000

    btrfs: zoned: zone finish data relocation BG with last IO
    
    commit f84353c7c20536ea7e01eca79430eccdf3cc7348 upstream.
    
    For data block groups, we zone finish a zone (or, just deactivate it) when
    seeing the last IO in btrfs_finish_ordered_io(). That is only called for
    IOs using ZONE_APPEND, but we use a regular WRITE command for data
    relocation IOs. Detect it and call btrfs_zone_finish_endio() properly.
    
    Fixes: be1a1d7a5d24 ("btrfs: zoned: finish fully written block group")
    CC: stable@vger.kernel.org # 6.1+
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e8de3223bd23ef1ac09347fc9c1e2ad8b6c26c5
Author: Filipe Manana <fdmanana@suse.com>
Date:   Thu May 4 12:04:18 2023 +0100

    btrfs: fix space cache inconsistency after error loading it from disk
    
    commit 0004ff15ea26015a0a3a6182dca3b9d1df32e2b7 upstream.
    
    When loading a free space cache from disk, at __load_free_space_cache(),
    if we fail to insert a bitmap entry, we still increment the number of
    total bitmaps in the btrfs_free_space_ctl structure, which is incorrect
    since we failed to add the bitmap entry. On error we then empty the
    cache by calling __btrfs_remove_free_space_cache(), which will result
    in getting the total bitmaps counter set to 1.
    
    A failure to load a free space cache is not critical, so if a failure
    happens we just rebuild the cache by scanning the extent tree, which
    happens at block-group.c:caching_thread(). Yet the failure will result
    in having the total bitmaps of the btrfs_free_space_ctl always bigger
    by 1 then the number of bitmap entries we have. So fix this by having
    the total bitmaps counter be incremented only if we successfully added
    the bitmap entry.
    
    Fixes: a67509c30079 ("Btrfs: add a io_ctl struct and helpers for dealing with the space cache")
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1689eabbc3d0c4d456d6cf09828393126a1f90b4
Author: Anastasia Belova <abelova@astralinux.ru>
Date:   Wed Apr 26 14:53:23 2023 +0300

    btrfs: print-tree: parent bytenr must be aligned to sector size
    
    commit c87f318e6f47696b4040b58f460d5c17ea0280e6 upstream.
    
    Check nodesize to sectorsize in alignment check in print_extent_item.
    The comment states that and this is correct, similar check is done
    elsewhere in the functions.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: ea57788eb76d ("btrfs: require only sector size alignment for parent eb bytenr")
    CC: stable@vger.kernel.org # 4.14+
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Anastasia Belova <abelova@astralinux.ru>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83ae0282f17d2a7ad7b43fe8e6b09d29753fc858
Author: Qu Wenruo <wqu@suse.com>
Date:   Fri Apr 28 14:13:05 2023 +0800

    btrfs: make clear_cache mount option to rebuild FST without disabling it
    
    commit 1d6a4fc85717677e00fefffd847a50fc5928ce69 upstream.
    
    Previously clear_cache mount option would simply disable free-space-tree
    feature temporarily then re-enable it to rebuild the whole free space
    tree.
    
    But this is problematic for block-group-tree feature, as we have an
    artificial dependency on free-space-tree feature.
    
    If we go the existing method, after clearing the free-space-tree
    feature, we would flip the filesystem to read-only mode, as we detect a
    super block write with block-group-tree but no free-space-tree feature.
    
    This patch would change the behavior by properly rebuilding the free
    space tree without disabling this feature, thus allowing clear_cache
    mount option to work with block group tree.
    
    Now we can mount a filesystem with block-group-tree feature and
    clear_mount option:
    
      $ mkfs.btrfs  -O block-group-tree /dev/test/scratch1  -f
      $ sudo mount /dev/test/scratch1 /mnt/btrfs -o clear_cache
      $ sudo dmesg -t | head -n 5
      BTRFS info (device dm-1): force clearing of disk cache
      BTRFS info (device dm-1): using free space tree
      BTRFS info (device dm-1): auto enabling async discard
      BTRFS info (device dm-1): rebuilding free space tree
      BTRFS info (device dm-1): checking UUID tree
    
    CC: stable@vger.kernel.org # 6.1+
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd5a21941f5154a4299a8e52e3eaa8caf369f4c6
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon May 8 07:58:37 2023 -0700

    btrfs: zero the buffer before marking it dirty in btrfs_redirty_list_add
    
    commit c83b56d1dd87cf67492bb770c26d6f87aee70ed6 upstream.
    
    btrfs_redirty_list_add zeroes the buffer data and sets the
    EXTENT_BUFFER_NO_CHECK to make sure writeback is fine with a bogus
    header.  But it does that after already marking the buffer dirty, which
    means that writeback could already be looking at the buffer.
    
    Switch the order of operations around so that the buffer is only marked
    dirty when we're ready to write it.
    
    Fixes: d3575156f662 ("btrfs: zoned: redirty released extent buffers")
    CC: stable@vger.kernel.org # 5.15+
    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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15e877e5923ec6d6caa5e447dcc4b79a8ff7cc53
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Tue May 2 16:00:06 2023 -0400

    btrfs: don't free qgroup space unless specified
    
    commit d246331b78cbef86237f9c22389205bc9b4e1cc1 upstream.
    
    Boris noticed in his simple quotas testing that he was getting a leak
    with Sweet Tea's change to subvol create that stopped doing a
    transaction commit.  This was just a side effect of that change.
    
    In the delayed inode code we have an optimization that will free extra
    reservations if we think we can pack a dir item into an already modified
    leaf.  Previously this wouldn't be triggered in the subvolume create
    case because we'd commit the transaction, it was still possible but
    much harder to trigger.  It could actually be triggered if we did a
    mkdir && subvol create with qgroups enabled.
    
    This occurs because in btrfs_insert_delayed_dir_index(), which gets
    called when we're adding the dir item, we do the following:
    
      btrfs_block_rsv_release(fs_info, trans->block_rsv, bytes, NULL);
    
    if we're able to skip reserving space.
    
    The problem here is that trans->block_rsv points at the temporary block
    rsv for the subvolume create, which has qgroup reservations in the block
    rsv.
    
    This is a problem because btrfs_block_rsv_release() will do the
    following:
    
      if (block_rsv->qgroup_rsv_reserved >= block_rsv->qgroup_rsv_size) {
              qgroup_to_release = block_rsv->qgroup_rsv_reserved -
                      block_rsv->qgroup_rsv_size;
              block_rsv->qgroup_rsv_reserved = block_rsv->qgroup_rsv_size;
      }
    
    The temporary block rsv just has ->qgroup_rsv_reserved set,
    ->qgroup_rsv_size == 0.  The optimization in
    btrfs_insert_delayed_dir_index() sets ->qgroup_rsv_reserved = 0.  Then
    later on when we call btrfs_subvolume_release_metadata() which has
    
      btrfs_block_rsv_release(fs_info, rsv, (u64)-1, &qgroup_to_release);
      btrfs_qgroup_convert_reserved_meta(root, qgroup_to_release);
    
    qgroup_to_release is set to 0, and we do not convert the reserved
    metadata space.
    
    The problem here is that the block rsv code has been unconditionally
    messing with ->qgroup_rsv_reserved, because the main place this is used
    is delalloc, and any time we call btrfs_block_rsv_release() we do it
    with qgroup_to_release set, and thus do the proper accounting.
    
    The subvolume code is the only other code that uses the qgroup
    reservation stuff, but it's intermingled with the above optimization,
    and thus was getting its reservation freed out from underneath it and
    thus leaking the reserved space.
    
    The solution is to simply not mess with the qgroup reservations if we
    don't have qgroup_to_release set.  This works with the existing code as
    anything that messes with the delalloc reservations always have
    qgroup_to_release set.  This fixes the leak that Boris was observing.
    
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    CC: stable@vger.kernel.org # 5.4+
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44c52544b27163cfa4193b4b544523c4dec21962
Author: Boris Burkov <boris@bur.io>
Date:   Fri Apr 28 14:02:11 2023 -0700

    btrfs: fix encoded write i_size corruption with no-holes
    
    commit e7db9e5c6b9615b287d01f0231904fbc1fbde9c5 upstream.
    
    We have observed a btrfs filesystem corruption on workloads using
    no-holes and encoded writes via send stream v2. The symptom is that a
    file appears to be truncated to the end of its last aligned extent, even
    though the final unaligned extent and even the file extent and otherwise
    correctly updated inode item have been written.
    
    So if we were writing out a 1MiB+X file via 8 128K extents and one
    extent of length X, i_size would be set to 1MiB, but the ninth extent,
    nbyte, etc. would all appear correct otherwise.
    
    The source of the race is a narrow (one line of code) window in which a
    no-holes fs has read in an updated i_size, but has not yet set a shared
    disk_i_size variable to write. Therefore, if two ordered extents run in
    parallel (par for the course for receive workloads), the following
    sequence can play out: (following "threads" a bit loosely, since there
    are callbacks involved for endio but extra threads aren't needed to
    cause the issue)
    
      ENC-WR1 (second to last)                                         ENC-WR2 (last)
      -------                                                          -------
      btrfs_do_encoded_write
        set i_size = 1M
        submit bio B1 ending at 1M
      endio B1
      btrfs_inode_safe_disk_i_size_write
        local i_size = 1M
        falls off a cliff for some reason
                                                                  btrfs_do_encoded_write
                                                                    set i_size = 1M+X
                                                                    submit bio B2 ending at 1M+X
                                                                  endio B2
                                                                  btrfs_inode_safe_disk_i_size_write
                                                                    local i_size = 1M+X
                                                                    disk_i_size = 1M+X
        disk_i_size = 1M
                                                                  btrfs_delayed_update_inode
        btrfs_delayed_update_inode
    
    And the delayed inode ends up filled with nbytes=1M+X and isize=1M, and
    writes respect i_size and present a corrupted file missing its last
    extents.
    
    Fix this by holding the inode lock in the no-holes case so that a thread
    can't sneak in a write to disk_i_size that gets overwritten with an out
    of date i_size.
    
    Fixes: 41a2ee75aab0 ("btrfs: introduce per-inode file extent tree")
    CC: stable@vger.kernel.org # 5.10+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Boris Burkov <boris@bur.io>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17eaeee4c5f24946aad0298d51f32981c3161d13
Author: xiaoshoukui <xiaoshoukui@gmail.com>
Date:   Thu Apr 13 05:55:07 2023 -0400

    btrfs: fix assertion of exclop condition when starting balance
    
    commit ac868bc9d136cde6e3eb5de77019a63d57a540ff upstream.
    
    Balance as exclusive state is compatible with paused balance and device
    add, which makes some things more complicated. The assertion of valid
    states when starting from paused balance needs to take into account two
    more states, the combinations can be hit when there are several threads
    racing to start balance and device add. This won't typically happen when
    the commands are started from command line.
    
    Scenario 1: With exclusive_operation state == BTRFS_EXCLOP_NONE.
    
    Concurrently adding multiple devices to the same mount point and
    btrfs_exclop_finish executed finishes before assertion in
    btrfs_exclop_balance, exclusive_operation will changed to
    BTRFS_EXCLOP_NONE state which lead to assertion failed:
    
      fs_info->exclusive_operation == BTRFS_EXCLOP_BALANCE ||
      fs_info->exclusive_operation == BTRFS_EXCLOP_DEV_ADD,
      in fs/btrfs/ioctl.c:456
      Call Trace:
       <TASK>
       btrfs_exclop_balance+0x13c/0x310
       ? memdup_user+0xab/0xc0
       ? PTR_ERR+0x17/0x20
       btrfs_ioctl_add_dev+0x2ee/0x320
       btrfs_ioctl+0x9d5/0x10d0
       ? btrfs_ioctl_encoded_write+0xb80/0xb80
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x3c/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Scenario 2: With exclusive_operation state == BTRFS_EXCLOP_BALANCE_PAUSED.
    
    Concurrently adding multiple devices to the same mount point and
    btrfs_exclop_balance executed finish before the latter thread execute
    assertion in btrfs_exclop_balance, exclusive_operation will changed to
    BTRFS_EXCLOP_BALANCE_PAUSED state which lead to assertion failed:
    
      fs_info->exclusive_operation == BTRFS_EXCLOP_BALANCE ||
      fs_info->exclusive_operation == BTRFS_EXCLOP_DEV_ADD ||
      fs_info->exclusive_operation == BTRFS_EXCLOP_NONE,
      fs/btrfs/ioctl.c:458
      Call Trace:
       <TASK>
       btrfs_exclop_balance+0x240/0x410
       ? memdup_user+0xab/0xc0
       ? PTR_ERR+0x17/0x20
       btrfs_ioctl_add_dev+0x2ee/0x320
       btrfs_ioctl+0x9d5/0x10d0
       ? btrfs_ioctl_encoded_write+0xb80/0xb80
       __x64_sys_ioctl+0x197/0x210
       do_syscall_64+0x3c/0xb0
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    An example of the failed assertion is below, which shows that the
    paused balance is also needed to be checked.
    
      root@syzkaller:/home/xsk# ./repro
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      [  416.611428][ T7970] BTRFS info (device loop0): fs_info exclusive_operation: 0
      Failed to add device /dev/vda, errno 14
      [  416.613973][ T7971] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.615456][ T7972] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.617528][ T7973] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.618359][ T7974] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.622589][ T7975] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.624034][ T7976] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.626420][ T7977] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.627643][ T7978] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.629006][ T7979] BTRFS info (device loop0): fs_info exclusive_operation: 3
      [  416.630298][ T7980] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      Failed to add device /dev/vda, errno 14
      [  416.632787][ T7981] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.634282][ T7982] BTRFS info (device loop0): fs_info exclusive_operation: 3
      Failed to add device /dev/vda, errno 14
      [  416.636202][ T7983] BTRFS info (device loop0): fs_info exclusive_operation: 3
      [  416.637012][ T7984] BTRFS info (device loop0): fs_info exclusive_operation: 1
      Failed to add device /dev/vda, errno 14
      [  416.637759][ T7984] assertion failed: fs_info->exclusive_operation ==
      BTRFS_EXCLOP_BALANCE || fs_info->exclusive_operation ==
      BTRFS_EXCLOP_DEV_ADD || fs_info->exclusive_operation ==
      BTRFS_EXCLOP_NONE, in fs/btrfs/ioctl.c:458
      [  416.639845][ T7984] invalid opcode: 0000 [#1] PREEMPT SMP KASAN
      [  416.640485][ T7984] CPU: 0 PID: 7984 Comm: repro Not tainted 6.2.0 #7
      [  416.641172][ T7984] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
      [  416.642090][ T7984] RIP: 0010:btrfs_assertfail+0x2c/0x2e
      [  416.644423][ T7984] RSP: 0018:ffffc90003ea7e28 EFLAGS: 00010282
      [  416.645018][ T7984] RAX: 00000000000000cc RBX: 0000000000000000 RCX: 0000000000000000
      [  416.645763][ T7984] RDX: ffff88801d030000 RSI: ffffffff81637e7c RDI: fffff520007d4fb7
      [  416.646554][ T7984] RBP: ffffffff8a533de0 R08: 00000000000000cc R09: 0000000000000000
      [  416.647299][ T7984] R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8a533da0
      [  416.648041][ T7984] R13: 00000000000001ca R14: 000000005000940a R15: 0000000000000000
      [  416.648785][ T7984] FS:  00007fa2985d4640(0000) GS:ffff88802cc00000(0000) knlGS:0000000000000000
      [  416.649616][ T7984] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  416.650238][ T7984] CR2: 0000000000000000 CR3: 0000000018e5e000 CR4: 0000000000750ef0
      [  416.650980][ T7984] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  416.651725][ T7984] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [  416.652502][ T7984] PKRU: 55555554
      [  416.652888][ T7984] Call Trace:
      [  416.653241][ T7984]  <TASK>
      [  416.653527][ T7984]  btrfs_exclop_balance+0x240/0x410
      [  416.654036][ T7984]  ? memdup_user+0xab/0xc0
      [  416.654465][ T7984]  ? PTR_ERR+0x17/0x20
      [  416.654874][ T7984]  btrfs_ioctl_add_dev+0x2ee/0x320
      [  416.655380][ T7984]  btrfs_ioctl+0x9d5/0x10d0
      [  416.655822][ T7984]  ? btrfs_ioctl_encoded_write+0xb80/0xb80
      [  416.656400][ T7984]  __x64_sys_ioctl+0x197/0x210
      [  416.656874][ T7984]  do_syscall_64+0x3c/0xb0
      [  416.657346][ T7984]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
      [  416.657922][ T7984] RIP: 0033:0x4546af
      [  416.660170][ T7984] RSP: 002b:00007fa2985d4150 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      [  416.660972][ T7984] RAX: ffffffffffffffda RBX: 00007fa2985d4640 RCX: 00000000004546af
      [  416.661714][ T7984] RDX: 0000000000000000 RSI: 000000005000940a RDI: 0000000000000003
      [  416.662449][ T7984] RBP: 00007fa2985d41d0 R08: 0000000000000000 R09: 00007ffee37a4c4f
      [  416.663195][ T7984] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fa2985d4640
      [  416.663951][ T7984] R13: 0000000000000009 R14: 000000000041b320 R15: 00007fa297dd4000
      [  416.664703][ T7984]  </TASK>
      [  416.665040][ T7984] Modules linked in:
      [  416.665590][ T7984] ---[ end trace 0000000000000000 ]---
      [  416.666176][ T7984] RIP: 0010:btrfs_assertfail+0x2c/0x2e
      [  416.668775][ T7984] RSP: 0018:ffffc90003ea7e28 EFLAGS: 00010282
      [  416.669425][ T7984] RAX: 00000000000000cc RBX: 0000000000000000 RCX: 0000000000000000
      [  416.670235][ T7984] RDX: ffff88801d030000 RSI: ffffffff81637e7c RDI: fffff520007d4fb7
      [  416.671050][ T7984] RBP: ffffffff8a533de0 R08: 00000000000000cc R09: 0000000000000000
      [  416.671867][ T7984] R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8a533da0
      [  416.672685][ T7984] R13: 00000000000001ca R14: 000000005000940a R15: 0000000000000000
      [  416.673501][ T7984] FS:  00007fa2985d4640(0000) GS:ffff88802cc00000(0000) knlGS:0000000000000000
      [  416.674425][ T7984] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  416.675114][ T7984] CR2: 0000000000000000 CR3: 0000000018e5e000 CR4: 0000000000750ef0
      [  416.675933][ T7984] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  416.676760][ T7984] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Link: https://lore.kernel.org/linux-btrfs/20230324031611.98986-1-xiaoshoukui@gmail.com/
    CC: stable@vger.kernel.org # 6.1+
    Signed-off-by: xiaoshoukui <xiaoshoukui@ruijie.com.cn>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a99cd08e236d4ac7355a5c6cb89090446c21e42
Author: Qu Wenruo <wqu@suse.com>
Date:   Thu Apr 27 09:45:32 2023 +0800

    btrfs: properly reject clear_cache and v1 cache for block-group-tree
    
    commit 64b5d5b2852661284ccbb038c697562cc56231bf upstream.
    
    [BUG]
    With block-group-tree feature enabled, mounting it with clear_cache
    would cause the following transaction abort at mount or remount:
    
      BTRFS info (device dm-4): force clearing of disk cache
      BTRFS info (device dm-4): using free space tree
      BTRFS info (device dm-4): auto enabling async discard
      BTRFS info (device dm-4): clearing free space tree
      BTRFS info (device dm-4): clearing compat-ro feature flag for FREE_SPACE_TREE (0x1)
      BTRFS info (device dm-4): clearing compat-ro feature flag for FREE_SPACE_TREE_VALID (0x2)
      BTRFS error (device dm-4): block-group-tree feature requires fres-space-tree and no-holes
      BTRFS error (device dm-4): super block corruption detected before writing it to disk
      BTRFS: error (device dm-4) in write_all_supers:4288: errno=-117 Filesystem corrupted (unexpected superblock corruption detected)
      BTRFS warning (device dm-4: state E): Skipping commit of aborted transaction.
    
    [CAUSE]
    For block-group-tree feature, we have an artificial dependency on
    free-space-tree.
    
    This means if we detect block-group-tree without v2 cache, we consider
    it a corruption and cause the problem.
    
    For clear_cache mount option, it would temporary disable v2 cache, then
    re-enable it.
    
    But unfortunately for that temporary v2 cache disabled status, we refuse
    to write a superblock with bg tree only flag, thus leads to the above
    transaction abortion.
    
    [FIX]
    For now, just reject clear_cache and v1 cache mount option for block
    group tree.  So now we got a graceful rejection other than a transaction
    abort:
    
      BTRFS info (device dm-4): force clearing of disk cache
      BTRFS error (device dm-4): cannot disable free space tree with block-group-tree feature
      BTRFS error (device dm-4): open_ctree failed
    
    CC: stable@vger.kernel.org # 6.1+
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8583cc10aad77b812196ab516bc7c4d99e9fda31
Author: Naohiro Aota <naohiro.aota@wdc.com>
Date:   Tue Apr 18 17:45:24 2023 +0900

    btrfs: zoned: fix wrong use of bitops API in btrfs_ensure_empty_zones
    
    commit 631003e2333c12cc1b52df06a707365b7363a159 upstream.
    
    find_next_bit and find_next_zero_bit take @size as the second parameter and
    @offset as the third parameter. They are specified opposite in
    btrfs_ensure_empty_zones(). Thanks to the later loop, it never failed to
    detect the empty zones. Fix them and (maybe) return the result a bit
    faster.
    
    Note: the naming is a bit confusing, size has two meanings here, bitmap
    and our range size.
    
    Fixes: 1cd6121f2a38 ("btrfs: zoned: implement zoned chunk allocator")
    CC: stable@vger.kernel.org # 5.15+
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bcd7aa2963d384034c3954e64ecfe513d986e856
Author: Filipe Manana <fdmanana@suse.com>
Date:   Wed Apr 12 11:33:09 2023 +0100

    btrfs: fix btrfs_prev_leaf() to not return the same key twice
    
    commit 6f932d4ef007d6a4ae03badcb749fbb8f49196f6 upstream.
    
    A call to btrfs_prev_leaf() may end up returning a path that points to the
    same item (key) again. This happens if while btrfs_prev_leaf(), after we
    release the path, a concurrent insertion happens, which moves items off
    from a sibling into the front of the previous leaf, and an item with the
    computed previous key does not exists.
    
    For example, suppose we have the two following leaves:
    
      Leaf A
    
      -------------------------------------------------------------
      | ...   key (300 96 10)   key (300 96 15)   key (300 96 16) |
      -------------------------------------------------------------
                  slot 20             slot 21             slot 22
    
      Leaf B
    
      -------------------------------------------------------------
      | key (300 96 20)   key (300 96 21)   key (300 96 22)   ... |
      -------------------------------------------------------------
          slot 0             slot 1             slot 2
    
    If we call btrfs_prev_leaf(), from btrfs_previous_item() for example, with
    a path pointing to leaf B and slot 0 and the following happens:
    
    1) At btrfs_prev_leaf() we compute the previous key to search as:
       (300 96 19), which is a key that does not exists in the tree;
    
    2) Then we call btrfs_release_path() at btrfs_prev_leaf();
    
    3) Some other task inserts a key at leaf A, that sorts before the key at
       slot 20, for example it has an objectid of 299. In order to make room
       for the new key, the key at slot 22 is moved to the front of leaf B.
       This happens at push_leaf_right(), called from split_leaf().
    
       After this leaf B now looks like:
    
      --------------------------------------------------------------------------------
      | key (300 96 16)    key (300 96 20)   key (300 96 21)   key (300 96 22)   ... |
      --------------------------------------------------------------------------------
           slot 0              slot 1             slot 2             slot 3
    
    4) At btrfs_prev_leaf() we call btrfs_search_slot() for the computed
       previous key: (300 96 19). Since the key does not exists,
       btrfs_search_slot() returns 1 and with a path pointing to leaf B
       and slot 1, the item with key (300 96 20);
    
    5) This makes btrfs_prev_leaf() return a path that points to slot 1 of
       leaf B, the same key as before it was called, since the key at slot 0
       of leaf B (300 96 16) is less than the computed previous key, which is
       (300 96 19);
    
    6) As a consequence btrfs_previous_item() returns a path that points again
       to the item with key (300 96 20).
    
    For some users of btrfs_prev_leaf() or btrfs_previous_item() this may not
    be functional a problem, despite not making sense to return a new path
    pointing again to the same item/key. However for a caller such as
    tree-log.c:log_dir_items(), this has a bad consequence, as it can result
    in not logging some dir index deletions in case the directory is being
    logged without holding the inode's VFS lock (logging triggered while
    logging a child inode for example) - for the example scenario above, in
    case the dir index keys 17, 18 and 19 were deleted in the current
    transaction.
    
    CC: stable@vger.kernel.org # 4.14+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 000322b29c01efac4dba4cb30ac2d78accca8d65
Author: Borislav Petkov (AMD) <bp@alien8.de>
Date:   Fri May 12 23:12:26 2023 +0200

    x86/retbleed: Fix return thunk alignment
    
    commit 9a48d604672220545d209e9996c2a1edbb5637f6 upstream.
    
    SYM_FUNC_START_LOCAL_NOALIGN() adds an endbr leading to this layout
    (leaving only the last 2 bytes of the address):
    
      3bff <zen_untrain_ret>:
      3bff:       f3 0f 1e fa             endbr64
      3c03:       f6                      test   $0xcc,%bl
    
      3c04 <__x86_return_thunk>:
      3c04:       c3                      ret
      3c05:       cc                      int3
      3c06:       0f ae e8                lfence
    
    However, "the RET at __x86_return_thunk must be on a 64 byte boundary,
    for alignment within the BTB."
    
    Use SYM_START instead.
    
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2feac714c6818f7767cfc21a3c10fa926b7398a3
Author: Conor Dooley <conor.dooley@microchip.com>
Date:   Fri May 12 08:58:19 2023 +0100

    RISC-V: fix taking the text_mutex twice during sifive errata patching
    
    commit bf89b7ee52af5a5944fa3539e86089f72475055b upstream.
    
    Chris pointed out that some bonehead, *cough* me *cough*, added two
    mutex_locks() to the SiFive errata patching. The second was meant to
    have been a mutex_unlock().
    
    This results in errors such as
    
    Unable to handle kernel NULL pointer dereference at virtual address 0000000000000030
    Oops [#1]
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper Not tainted
    6.2.0-rc1-starlight-00079-g9493e6f3ce02 #229
    Hardware name: BeagleV Starlight Beta (DT)
    epc : __schedule+0x42/0x500
     ra : schedule+0x46/0xce
    epc : ffffffff8065957c ra : ffffffff80659a80 sp : ffffffff81203c80
     gp : ffffffff812d50a0 tp : ffffffff8120db40 t0 : ffffffff81203d68
     t1 : 0000000000000001 t2 : 4c45203a76637369 s0 : ffffffff81203cf0
     s1 : ffffffff8120db40 a0 : 0000000000000000 a1 : ffffffff81213958
     a2 : ffffffff81213958 a3 : 0000000000000000 a4 : 0000000000000000
     a5 : ffffffff80a1bd00 a6 : 0000000000000000 a7 : 0000000052464e43
     s2 : ffffffff8120db41 s3 : ffffffff80a1ad00 s4 : 0000000000000000
     s5 : 0000000000000002 s6 : ffffffff81213938 s7 : 0000000000000000
     s8 : 0000000000000000 s9 : 0000000000000001 s10: ffffffff812d7204
     s11: ffffffff80d3c920 t3 : 0000000000000001 t4 : ffffffff812e6dd7
     t5 : ffffffff812e6dd8 t6 : ffffffff81203bb8
    status: 0000000200000100 badaddr: 0000000000000030 cause: 000000000000000d
    [<ffffffff80659a80>] schedule+0x46/0xce
    [<ffffffff80659dce>] schedule_preempt_disabled+0x16/0x28
    [<ffffffff8065ae0c>] __mutex_lock.constprop.0+0x3fe/0x652
    [<ffffffff8065b138>] __mutex_lock_slowpath+0xe/0x16
    [<ffffffff8065b182>] mutex_lock+0x42/0x4c
    [<ffffffff8000ad94>] sifive_errata_patch_func+0xf6/0x18c
    [<ffffffff80002b92>] _apply_alternatives+0x74/0x76
    [<ffffffff80802ee8>] apply_boot_alternatives+0x3c/0xfa
    [<ffffffff80803cb0>] setup_arch+0x60c/0x640
    [<ffffffff80800926>] start_kernel+0x8e/0x99c
    ---[ end trace 0000000000000000 ]---
    
    Reported-by: Chris Hofstaedtler <zeha@debian.org>
    Fixes: 9493e6f3ce02 ("RISC-V: take text_mutex during alternative patching")
    Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20230302174154.970746-1-conor@kernel.org
    [Palmer: pick up Geert's bug report from the thread]
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0fad198fffdabdeb07f6471f3311a246a9b35e7c
Author: Conor Dooley <conor.dooley@microchip.com>
Date:   Fri May 12 08:58:18 2023 +0100

    RISC-V: take text_mutex during alternative patching
    
    commit 9493e6f3ce02f44c21aa19f3cbf3b9aa05479d06 upstream.
    
    Guenter reported a splat during boot, that Samuel pointed out was the
    lockdep assertion failing in patch_insn_write():
    
    WARNING: CPU: 0 PID: 0 at arch/riscv/kernel/patch.c:63 patch_insn_write+0x222/0x2f6
    epc : patch_insn_write+0x222/0x2f6
     ra : patch_insn_write+0x21e/0x2f6
    epc : ffffffff800068c6 ra : ffffffff800068c2 sp : ffffffff81803df0
     gp : ffffffff81a1ab78 tp : ffffffff81814f80 t0 : ffffffffffffe000
     t1 : 0000000000000001 t2 : 4c45203a76637369 s0 : ffffffff81803e40
     s1 : 0000000000000004 a0 : 0000000000000000 a1 : ffffffffffffffff
     a2 : 0000000000000004 a3 : 0000000000000000 a4 : 0000000000000001
     a5 : 0000000000000000 a6 : 0000000000000000 a7 : 0000000052464e43
     s2 : ffffffff80b4889c s3 : 000000000000082c s4 : ffffffff80b48828
     s5 : 0000000000000828 s6 : ffffffff8131a0a0 s7 : 0000000000000fff
     s8 : 0000000008000200 s9 : ffffffff8131a520 s10: 0000000000000018
     s11: 000000000000000b t3 : 0000000000000001 t4 : 000000000000000d
     t5 : ffffffffd8180000 t6 : ffffffff81803bc8
    status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003
    [<ffffffff800068c6>] patch_insn_write+0x222/0x2f6
    [<ffffffff80006a36>] patch_text_nosync+0xc/0x2a
    [<ffffffff80003b86>] riscv_cpufeature_patch_func+0x52/0x98
    [<ffffffff80003348>] _apply_alternatives+0x46/0x86
    [<ffffffff80c02d36>] apply_boot_alternatives+0x3c/0xfa
    [<ffffffff80c03ad8>] setup_arch+0x584/0x5b8
    [<ffffffff80c0075a>] start_kernel+0xa2/0x8f8
    
    This issue was exposed by 702e64550b12 ("riscv: fpu: switch has_fpu() to
    riscv_has_extension_likely()"), as it is the patching in has_fpu() that
    triggers the splats in Guenter's report.
    
    Take the text_mutex before doing any code patching to satisfy lockdep.
    
    Fixes: ff689fd21cb1 ("riscv: add RISC-V Svpbmt extension support")
    Fixes: a35707c3d850 ("riscv: add memory-type errata for T-Head")
    Fixes: 1a0e5dbd3723 ("riscv: sifive: Add SiFive alternative ports")
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/all/20230212154333.GA3760469@roeck-us.net/
    Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
    Reviewed-by: Samuel Holland <samuel@sholland.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20230212194735.491785-1-conor@kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13a0e212ddefa84586a458de9515a360929fec8f
Author: Dmitrii Dolgov <9erthalion6@gmail.com>
Date:   Wed Apr 12 20:23:16 2023 +0200

    perf stat: Separate bperf from bpf_profiler
    
    [ Upstream commit ecc68ee216c6c5b2f84915e1441adf436f1b019b ]
    
    It seems that perf stat -b <prog id> doesn't produce any results:
    
        $ perf stat -e cycles -b 4 -I 10000 -vvv
        Control descriptor is not initialized
        cycles: 0 0 0
                    time        counts unit      events
            10.007641640    <not supported>      cycles
    
    Looks like this happens because fentry/fexit progs are getting loaded, but the
    corresponding perf event is not enabled and not added into the events bpf map.
    I think there is some mixing up between two type of bpf support, one for bperf
    and one for bpf_profiler. Both are identified via evsel__is_bpf, based on which
    perf events are enabled, but for the latter (bpf_profiler) a perf event is
    required. Using evsel__is_bperf to check only bperf produces expected results:
    
        $ perf stat -e cycles -b 4 -I 10000 -vvv
        Control descriptor is not initialized
        ------------------------------------------------------------
        perf_event_attr:
          size                             136
          sample_type                      IDENTIFIER
          read_format                      TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING
          disabled                         1
          exclude_guest                    1
        ------------------------------------------------------------
        sys_perf_event_open: pid -1  cpu 0  group_fd -1  flags 0x8 = 3
        ------------------------------------------------------------
        [...perf_event_attr for other CPUs...]
        ------------------------------------------------------------
        cycles: 309426 169009 169009
                    time             counts unit events
            10.010091271             309426      cycles
    
    The final numbers correspond (at least in the level of magnitude) to the
    same metric obtained via bpftool.
    
    Fixes: 112cb56164bc2108 ("perf stat: Introduce config stat.bpf-counter-events")
    Reviewed-by: Song Liu <song@kernel.org>
    Signed-off-by: Dmitrii Dolgov <9erthalion6@gmail.com>
    Tested-by: Song Liu <song@kernel.org>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Song Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20230412182316.11628-1-9erthalion6@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 602603baae5fc740bb65c85e79d2f2bb9aede2f4
Author: Yang Jihong <yangjihong1@huawei.com>
Date:   Fri Apr 21 02:59:53 2023 +0000

    perf tracepoint: Fix memory leak in is_valid_tracepoint()
    
    [ Upstream commit 9b86c49710eec7b4fbb78a0232b2dd0972a2b576 ]
    
    When is_valid_tracepoint() returns 1, need to call put_events_file() to
    free `dir_path`.
    
    Fixes: 25a7d914274de386 ("perf parse-events: Use get/put_events_file()")
    Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.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>
    Link: https://lore.kernel.org/r/20230421025953.173826-1-yangjihong1@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3fb0d061dd0b7a3ab882fc26ec60a730bb8013b1
Author: Yang Jihong <yangjihong1@huawei.com>
Date:   Thu Apr 27 01:28:41 2023 +0000

    perf symbols: Fix return incorrect build_id size in elf_read_build_id()
    
    [ Upstream commit 1511e4696acb715a4fe48be89e1e691daec91c0e ]
    
    In elf_read_build_id(), if gnu build_id is found, should return the size of
    the actually copied data. If descsz is greater thanBuild_ID_SIZE,
    write_buildid data access may occur.
    
    Fixes: be96ea8ffa788dcc ("perf symbols: Fix issue with binaries using 16-bytes buildids (v2)")
    Reported-by: Will Ochowicz <Will.Ochowicz@genusplc.com>
    Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
    Tested-by: Will Ochowicz <Will.Ochowicz@genusplc.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: https://lore.kernel.org/lkml/CWLP265MB49702F7BA3D6D8F13E4B1A719C649@CWLP265MB4970.GBRP265.PROD.OUTLOOK.COM/T/
    Link: https://lore.kernel.org/r/20230427012841.231729-1-yangjihong1@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2dd641d78d440210466666f0098df8688f13082f
Author: Olivier Bacon <olivierb89@gmail.com>
Date:   Thu Apr 20 11:00:35 2023 -0400

    crypto: engine - fix crypto_queue backlog handling
    
    [ Upstream commit 4140aafcff167b5b9e8dae6a1709a6de7cac6f74 ]
    
    CRYPTO_TFM_REQ_MAY_BACKLOG tells the crypto driver that it should
    internally backlog requests until the crypto hw's queue becomes
    full. At that point, crypto_engine backlogs the request and returns
    -EBUSY. Calling driver such as dm-crypt then waits until the
    complete() function is called with a status of -EINPROGRESS before
    sending a new request.
    
    The problem lies in the call to complete() with a value of -EINPROGRESS
    that is made when a backlog item is present on the queue. The call is
    done before the successful execution of the crypto request. In the case
    that do_one_request() returns < 0 and the retry support is available,
    the request is put back in the queue. This leads upper drivers to send
    a new request even if the queue is still full.
    
    The problem can be reproduced by doing a large dd into a crypto
    dm-crypt device. This is pretty easy to see when using
    Freescale CAAM crypto driver and SWIOTLB dma. Since the actual amount
    of requests that can be hold in the queue is unlimited we get IOs error
    and dma allocation.
    
    The fix is to call complete with a value of -EINPROGRESS only if
    the request is not enqueued back in crypto_queue. This is done
    by calling complete() later in the code. In order to delay the decision,
    crypto_queue is modified to correctly set the backlog pointer
    when a request is enqueued back.
    
    Fixes: 6a89f492f8e5 ("crypto: engine - support for parallel requests based on retry mechanism")
    Co-developed-by: Sylvain Ouellet <souellet@genetec.com>
    Signed-off-by: Sylvain Ouellet <souellet@genetec.com>
    Signed-off-by: Olivier Bacon <obacon@genetec.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 14a2259317f9a33de38946f5850a286d5cd65997
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Tue Jan 31 16:02:02 2023 +0800

    crypto: engine - Use crypto_request_complete
    
    [ Upstream commit 6909823d47c17cba84e9244d04050b5db8d53789 ]
    
    Use the crypto_request_complete helper instead of calling the
    completion function directly.
    
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: 4140aafcff16 ("crypto: engine - fix crypto_queue backlog handling")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6ba620fc916461759d963423c2de6ead83129738
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Tue Jan 31 16:01:45 2023 +0800

    crypto: api - Add scaffolding to change completion function signature
    
    [ Upstream commit c35e03eaece71101ff6cbf776b86403860ac8cc3 ]
    
    The crypto completion function currently takes a pointer to a
    struct crypto_async_request object.  However, in reality the API
    does not allow the use of any part of the object apart from the
    data field.  For example, ahash/shash will create a fake object
    on the stack to pass along a different data field.
    
    This leads to potential bugs where the user may try to dereference
    or otherwise use the crypto_async_request object.
    
    This patch adds some temporary scaffolding so that the completion
    function can take a void * instead.  Once affected users have been
    converted this can be removed.
    
    The helper crypto_request_complete will remain even after the
    conversion is complete.  It should be used instead of calling
    the completion function directly.
    
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: 4140aafcff16 ("crypto: engine - fix crypto_queue backlog handling")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1055eddce77681e590d751f17027305d97cb670d
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Apr 17 22:25:09 2023 +0200

    crypto: sun8i-ss - Fix a test in sun8i_ss_setup_ivs()
    
    [ Upstream commit 8fd91151ebcb21b3f2f2bf158ac6092192550b2b ]
    
    SS_ENCRYPTION is (0 << 7 = 0), so the test can never be true.
    Use a direct comparison to SS_ENCRYPTION instead.
    
    The same king of test is already done the same way in sun8i_ss_run_task().
    
    Fixes: 359e893e8af4 ("crypto: sun8i-ss - rework handling of IV")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 267db6bff34b47d0762358a18315660e26efbe5c
Author: James Clark <james.clark@arm.com>
Date:   Mon Apr 24 14:47:41 2023 +0100

    perf cs-etm: Fix timeless decode mode detection
    
    [ Upstream commit 449067f3fc9f340da54e383738286881e6634d0b ]
    
    In this context, timeless refers to the trace data rather than the perf
    event data. But when detecting whether there are timestamps in the trace
    data or not, the presence of a timestamp flag on any perf event is used.
    
    Since commit f42c0ce573df ("perf record: Always get text_poke events
    with --kcore option") timestamps were added to a tracking event when
    --kcore is used which breaks this detection mechanism. Fix it by
    detecting if trace timestamps exist by looking at the ETM config flags.
    This would have always been a more accurate way of doing it anyway.
    
    This fixes the following error message when using --kcore with
    Coresight:
    
      $ perf record --kcore -e cs_etm// --per-thread
      $ perf report
      The perf.data/data data has no samples!
    
    Fixes: f42c0ce573df79d1 ("perf record: Always get text_poke events with --kcore option")
    Reported-by: Yang Shi <shy828301@gmail.com>
    Signed-off-by: James Clark <james.clark@arm.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: coresight@lists.linaro.org
    Cc: denik@google.com
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://lore.kernel.org/lkml/CAHbLzkrJQTrYBtPkf=jf3OpQ-yBcJe7XkvQstX9j2frz4WF-SQ@mail.gmail.com/
    Link: https://lore.kernel.org/r/20230424134748.228137-2-james.clark@arm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6671b7172a70b72f6ad13b1896a60325c67560c
Author: Markus Elfring <Markus.Elfring@web.de>
Date:   Thu Apr 13 14:46:39 2023 +0200

    perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp()
    
    [ Upstream commit c160118a90d4acf335993d8d59b02ae2147a524e ]
    
    Addresses of two data structure members were determined before
    corresponding null pointer checks in the implementation of the function
    “sort__sym_from_cmp”.
    
    Thus avoid the risk for undefined behaviour by removing extra
    initialisations for the local variables “from_l” and “from_r” (also
    because they were already reassigned with the same value behind this
    pointer check).
    
    This issue was detected by using the Coccinelle software.
    
    Fixes: 1b9e97a2a95e4941 ("perf tools: Fix report -F symbol_from for data without branch info")
    Signed-off-by: <elfring@users.sourceforge.net>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: German Gomez <german.gomez@arm.com>
    Cc: Ingo Molnar <mingo@redhat.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@kernel.org>
    Link: https://lore.kernel.org/cocci/54a21fea-64e3-de67-82ef-d61b90ffad05@web.de/
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d592598f4775831cabfd665f22da736caabfac4f
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Apr 12 10:23:35 2023 -0300

    perf pmu: zfree() expects a pointer to a pointer to zero it after freeing its contents
    
    [ Upstream commit 57f14b5ae1a97537f2abd2828ee7212cada7036e ]
    
    An audit showed just this one problem with zfree(), fix it.
    
    Fixes: 9fbc61f832ebf432 ("perf pmu: Add support for PMU capabilities")
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 36a840a86278962e2f121b9a9ac42936ebe301bf
Author: Kajol Jain <kjain@linux.ibm.com>
Date:   Tue Mar 28 16:59:08 2023 +0530

    perf vendor events power9: Remove UTF-8 characters from JSON files
    
    [ Upstream commit 5d9df8731c0941f3add30f96745a62586a0c9d52 ]
    
    Commit 3c22ba5243040c13 ("perf vendor events powerpc: Update POWER9
    events") added and updated power9 PMU JSON events. However some of the
    JSON events which are part of other.json and pipeline.json files,
    contains UTF-8 characters in their brief description.  Having UTF-8
    character could breaks the perf build on some distros.
    
    Fix this issue by removing the UTF-8 characters from other.json and
    pipeline.json files.
    
    Result without the fix:
    
      [command]# file -i pmu-events/arch/powerpc/power9/*
      pmu-events/arch/powerpc/power9/cache.json:          application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/floating-point.json: application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/frontend.json:       application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/marked.json:         application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/memory.json:         application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/metrics.json:        application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/nest_metrics.json:   application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/other.json:          application/json; charset=utf-8
      pmu-events/arch/powerpc/power9/pipeline.json:       application/json; charset=utf-8
      pmu-events/arch/powerpc/power9/pmc.json:            application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/translation.json:    application/json; charset=us-ascii
      [command]#
    
    Result with the fix:
    
      [command]# file -i pmu-events/arch/powerpc/power9/*
      pmu-events/arch/powerpc/power9/cache.json:          application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/floating-point.json: application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/frontend.json:       application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/marked.json:         application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/memory.json:         application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/metrics.json:        application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/nest_metrics.json:   application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/other.json:          application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/pipeline.json:       application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/pmc.json:            application/json; charset=us-ascii
      pmu-events/arch/powerpc/power9/translation.json:    application/json; charset=us-ascii
      [command]#
    
    Fixes: 3c22ba5243040c13 ("perf vendor events powerpc: Update POWER9 events")
    Reported-by: Arnaldo Carvalho de Melo <acme@kernel.com>
    Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Disha Goel <disgoel@linux.ibm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/lkml/ZBxP77deq7ikTxwG@kernel.org/
    Link: https://lore.kernel.org/r/20230328112908.113158-1-kjain@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0dabe1ae74e9d8ec34f6739665d54e0c14d1ae57
Author: Yang Jihong <yangjihong1@huawei.com>
Date:   Fri Mar 24 03:27:02 2023 +0000

    perf ftrace: Make system wide the default target for latency subcommand
    
    [ Upstream commit ecd4960d908e27e40b63a7046df2f942c148c6f6 ]
    
    If no target is specified for 'latency' subcommand, the execution fails
    because - 1 (invalid value) is written to set_ftrace_pid tracefs file.
    Make system wide the default target, which is the same as the default
    behavior of 'trace' subcommand.
    
    Before the fix:
    
      # perf ftrace latency -T schedule
      failed to set ftrace pid
    
    After the fix:
    
      # perf ftrace latency -T schedule
      ^C#   DURATION     |      COUNT | GRAPH                                          |
           0 - 1    us |          0 |                                                |
           1 - 2    us |          0 |                                                |
           2 - 4    us |          0 |                                                |
           4 - 8    us |       2828 | ####                                           |
           8 - 16   us |      23953 | ########################################       |
          16 - 32   us |        408 |                                                |
          32 - 64   us |        318 |                                                |
          64 - 128  us |          4 |                                                |
         128 - 256  us |          3 |                                                |
         256 - 512  us |          0 |                                                |
         512 - 1024 us |          1 |                                                |
           1 - 2    ms |          4 |                                                |
           2 - 4    ms |          0 |                                                |
           4 - 8    ms |          0 |                                                |
           8 - 16   ms |          0 |                                                |
          16 - 32   ms |          0 |                                                |
          32 - 64   ms |          0 |                                                |
          64 - 128  ms |          0 |                                                |
         128 - 256  ms |          4 |                                                |
         256 - 512  ms |          2 |                                                |
         512 - 1024 ms |          0 |                                                |
           1 - ...   s |          0 |                                                |
    
    Fixes: 53be50282269b46c ("perf ftrace: Add 'latency' subcommand")
    Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230324032702.109964-1-yangjihong1@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44060612613c10f9889c8ab19da06fd2aed98d44
Author: Patrice Duroux <patrice.duroux@gmail.com>
Date:   Fri Mar 3 20:30:58 2023 +0100

    perf tests record_offcpu.sh: Fix redirection of stderr to stdin
    
    [ Upstream commit 9835b742ac3ee16dee361e7ccda8022f99d1cd94 ]
    
    It's not 2&>1, the correct is 2>&1
    
    Fixes: ade1d0307b2fb3d9 ("perf offcpu: Update offcpu test for child process")
    Signed-off-by: Patrice Duroux <patrice.duroux@gmail.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20230303193058.21274-1-patrice.duroux@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d20672d52ef1a0939baa432af78100f8799f9cc
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Thu Mar 23 13:25:32 2023 +0100

    perf vendor events s390: Remove UTF-8 characters from JSON file
    
    [ Upstream commit eb2feb68cb7d404288493c41480843bc9f404789 ]
    
    Commit 7f76b31130680fb3 ("perf list: Add IBM z16 event description for
    s390") contains the verbal description for z16 extended counter set.
    
    However some entries of the public description contain UTF-8 characters
    which breaks the build on some distros.
    
    Fix this and remove the UTF-8 characters.
    
    Fixes: 7f76b31130680fb3 ("perf list: Add IBM z16 event description for s390")
    Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Suggested-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
    Cc: Sven Schnelle <svens@linux.ibm.com>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Link: https://lore.kernel.org/r/ZBwkl77/I31AQk12@osiris
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2b9169960421464bfbc573b560a117b6f1390d5
Author: Roman Lozko <lozko.roma@gmail.com>
Date:   Fri Mar 10 15:04:45 2023 +0000

    perf scripts intel-pt-events.py: Fix IPC output for Python 2
    
    [ Upstream commit 1f64cfdebfe0494264271e8d7a3a47faf5f58ec7 ]
    
    Integers are not converted to floats during division in Python 2 which
    results in incorrect IPC values. Fix by switching to new division
    behavior.
    
    Fixes: a483e64c0b62e93a ("perf scripting python: intel-pt-events.py: Add --insn-trace and --src-trace")
    Signed-off-by: Roman Lozko <lozko.roma@gmail.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20230310150445.2925841-1-lozko.roma@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f108cbc836418517fba37a7a94b49efeba75bbf6
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Wed Mar 1 07:04:13 2023 -0800

    perf record: Fix "read LOST count failed" msg with sample read
    
    [ Upstream commit 07d85ba9d04e1ebd282f656a29ddf08c5b7b32a2 ]
    
    Hundreds of "read LOST count failed" error messages may be displayed,
    when the below command is launched.
    
    perf record -e '{cpu/mem-loads-aux/,cpu/event=0xcd,umask=0x1/}:S' -a
    
    According to the commit 89e3106fa25fb1b6 ("libperf: Handle read format
    in perf_evsel__read()"), the PERF_FORMAT_GROUP is only available for
    the leader. However, the record__read_lost_samples() goes through every
    entry of an evlist, which includes both leader and member. The member
    event errors out and triggers the error message. Since there may be
    hundreds of CPUs on a server, the message will be printed hundreds of
    times, which is very annoying.
    
    The message itself is correct, but the pr_err is a overkill. Other error
    messages in the record__read_lost_samples() are all pr_debug. To make
    the output format consistent, change the pr_err("read LOST count
    failed\n"); to pr_debug("read LOST count failed\n");.
    User can still get the message via -v option.
    
    Fixes: e3a23261ad06d598 ("perf record: Read and inject LOST_SAMPLES events")
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230301150413.27011-1-kan.liang@linux.intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2424b456c37d6ef3febf14015abf2d213d29dfa1
Author: Wei Fang <wei.fang@nxp.com>
Date:   Thu May 4 16:03:59 2023 +0800

    net: enetc: check the index of the SFI rather than the handle
    
    [ Upstream commit 299efdc2380aac588557f4d0b2ce7bee05bd0cf2 ]
    
    We should check whether the current SFI (Stream Filter Instance) table
    is full before creating a new SFI entry. However, the previous logic
    checks the handle by mistake and might lead to unpredictable behavior.
    
    Fixes: 888ae5a3952b ("net: enetc: add tc flower psfp offload driver")
    Signed-off-by: Wei Fang <wei.fang@nxp.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d86d42e4a9b6dc237c4166d035ba5b0bd6768a84
Author: Wenliang Wang <wangwenliang.1995@bytedance.com>
Date:   Thu May 4 10:27:06 2023 +0800

    virtio_net: suppress cpu stall when free_unused_bufs
    
    [ Upstream commit f8bb5104394560e29017c25bcade4c6b7aabd108 ]
    
    For multi-queue and large ring-size use case, the following error
    occurred when free_unused_bufs:
    rcu: INFO: rcu_sched self-detected stall on CPU.
    
    Fixes: 986a4f4d452d ("virtio_net: multiqueue support")
    Signed-off-by: Wenliang Wang <wangwenliang.1995@bytedance.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a61d7965611ea29b57a19d048f3e782f7cf2a09
Author: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Date:   Wed May 3 08:39:35 2023 -0700

    ice: block LAN in case of VF to VF offload
    
    [ Upstream commit 9f699b71c2f31c51bd1483a20e1c8ddc5986a8c9 ]
    
    VF to VF traffic shouldn't go outside. To enforce it, set only the loopback
    enable bit in case of all ingress type rules added via the tc tool.
    
    Fixes: 0d08a441fb1a ("ice: ndo_setup_tc implementation for PF")
    Reported-by: Sujai Buvaneswaran <Sujai.Buvaneswaran@intel.com>
    Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Tested-by: George Kuruvinakunnel <george.kuruvinakunnel@intel.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f80efc46b737926a69db1207eb928f18fbd176a
Author: Arınç ÜNAL <arinc.unal@arinc9.com>
Date:   Wed May 3 00:09:47 2023 +0300

    net: dsa: mt7530: fix network connectivity with multiple CPU ports
    
    [ Upstream commit 120a56b01beed51ab5956a734adcfd2760307107 ]
    
    On mt753x_cpu_port_enable() there's code that enables flooding for the CPU
    port only. Since mt753x_cpu_port_enable() runs twice when both CPU ports
    are enabled, port 6 becomes the only port to forward the frames to. But
    port 5 is the active port, so no frames received from the user ports will
    be forwarded to port 5 which breaks network connectivity.
    
    Every bit of the BC_FFP, UNM_FFP, and UNU_FFP bits represents a port. Fix
    this issue by setting the bit that corresponds to the CPU port without
    overwriting the other bits.
    
    Clear the bits beforehand only for the MT7531 switch. According to the
    documents MT7621 Giga Switch Programming Guide v0.3 and MT7531 Reference
    Manual for Development Board v1.0, after reset, the BC_FFP, UNM_FFP, and
    UNU_FFP bits are set to 1 for MT7531, 0 for MT7530.
    
    The commit 5e5502e012b8 ("net: dsa: mt7530: fix roaming from DSA user
    ports") silently changed the method to set the bits on the MT7530_MFC.
    Instead of clearing the relevant bits before mt7530_cpu_port_enable()
    which runs under a for loop, the commit started doing it on
    mt7530_cpu_port_enable().
    
    Back then, this didn't really matter as only a single CPU port could be
    used since the CPU port number was hardcoded. The driver was later changed
    with commit 1f9a6abecf53 ("net: dsa: mt7530: get cpu-port via dp->cpu_dp
    instead of constant") to retrieve the CPU port via dp->cpu_dp. With that,
    this silent change became an issue for when using multiple CPU ports.
    
    Fixes: 5e5502e012b8 ("net: dsa: mt7530: fix roaming from DSA user ports")
    Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9d46edd93aa4132079970b8e155ffa7ad21bf6fa
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Mon Apr 3 02:19:02 2023 +0100

    net: dsa: mt7530: split-off common parts from mt7531_setup
    
    [ Upstream commit 7f54cc9772ced2d76ac11832f0ada43798443ac9 ]
    
    MT7988 shares a significant part of the setup function with MT7531.
    Split-off those parts into a shared function which is going to be used
    also by mt7988_setup.
    
    Signed-off-by: Daniel Golle <daniel@makrotopia.org>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 120a56b01bee ("net: dsa: mt7530: fix network connectivity with multiple CPU ports")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 98fc75c172ba4b115a4ac233cddfc852d9f9b040
Author: Arınç ÜNAL <arinc.unal@arinc9.com>
Date:   Wed May 3 00:09:46 2023 +0300

    net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
    
    [ Upstream commit 37c218d8021e36e226add4bab93d071d30fe0704 ]
    
    The multi-chip module MT7530 switch with a 40 MHz oscillator on the
    MT7621AT, MT7621DAT, and MT7621ST SoCs forwards corrupt frames using
    trgmii.
    
    This is caused by the assumption that MT7621 SoCs have got 150 MHz PLL,
    hence using the ncpo1 value, 0x0780.
    
    My testing shows this value works on Unielec U7621-06, Bartel's testing
    shows it won't work on Hi-Link HLK-MT7621A and Netgear WAC104. All devices
    tested have got 40 MHz oscillators.
    
    Using the value for 125 MHz PLL, 0x0640, works on all boards at hand. The
    definitions for 125 MHz PLL exist on the Banana Pi BPI-R2 BSP source code
    whilst 150 MHz PLL don't.
    
    Forwarding frames using trgmii on the MCM MT7530 switch with a 25 MHz
    oscillator on the said MT7621 SoCs works fine because the ncpo1 value
    defined for it is for 125 MHz PLL.
    
    Change the 150 MHz PLL comment to 125 MHz PLL, and use the 125 MHz PLL
    ncpo1 values for both oscillator frequencies.
    
    Link: https://github.com/BPI-SINOVOIP/BPI-R2-bsp/blob/81d24bbce7d99524d0771a8bdb2d6663e4eb4faa/u-boot-mt/drivers/net/rt2880_eth.c#L2195
    Fixes: 7ef6f6f8d237 ("net: dsa: mt7530: Add MT7621 TRGMII mode support")
    Tested-by: Bartel Eerdekens <bartel.eerdekens@constell8.be>
    Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c6fafaa6f20ab52bcbbefa331b0515c75b5c1043
Author: Claudio Imbrenda <imbrenda@linux.ibm.com>
Date:   Fri Apr 28 11:27:53 2023 +0200

    KVM: s390: fix race in gmap_make_secure()
    
    [ Upstream commit c148dc8e2fa403be501612ee409db866eeed35c0 ]
    
    Fix a potential race in gmap_make_secure() and remove the last user of
    follow_page() without FOLL_GET.
    
    The old code is locking something it doesn't have a reference to, and
    as explained by Jason and David in this discussion:
    https://lore.kernel.org/linux-mm/Y9J4P%2FRNvY1Ztn0Q@nvidia.com/
    it can lead to all kind of bad things, including the page getting
    unmapped (MADV_DONTNEED), freed, reallocated as a larger folio and the
    unlock_page() would target the wrong bit.
    There is also another race with the FOLL_WRITE, which could race
    between the follow_page() and the get_locked_pte().
    
    The main point is to remove the last use of follow_page() without
    FOLL_GET or FOLL_PIN, removing the races can be considered a nice
    bonus.
    
    Link: https://lore.kernel.org/linux-mm/Y9J4P%2FRNvY1Ztn0Q@nvidia.com/
    Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
    Fixes: 214d9bbcd3a6 ("s390/mm: provide memory management functions for protected KVM guests")
    Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-Id: <20230428092753.27913-2-imbrenda@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e875cf90d75fcdb3e1b516c386cc6caef418a03
Author: Ruliang Lin <u202112092@hust.edu.cn>
Date:   Thu May 4 14:50:53 2023 +0800

    ALSA: caiaq: input: Add error handling for unsupported input methods in `snd_usb_caiaq_input_init`
    
    [ Upstream commit 0d727e1856ef22dd9337199430258cb64cbbc658 ]
    
    Smatch complains that:
    snd_usb_caiaq_input_init() warn: missing error code 'ret'
    
    This patch adds a new case to handle the situation where the
    device does not support any input methods in the
    `snd_usb_caiaq_input_init` function. It returns an `-EINVAL` error code
    to indicate that no input methods are supported on the device.
    
    Fixes: 523f1dce3743 ("[ALSA] Add Native Instrument usb audio device support")
    Signed-off-by: Ruliang Lin <u202112092@hust.edu.cn>
    Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
    Acked-by: Daniel Mack <daniel@zonque.org>
    Link: https://lore.kernel.org/r/20230504065054.3309-1-u202112092@hust.edu.cn
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7887397338a55a2439ba8db6d9a93cbe4094d912
Author: Chia-I Wu <olvaffe@gmail.com>
Date:   Wed Apr 26 15:54:55 2023 -0700

    drm/amdgpu: add a missing lock for AMDGPU_SCHED
    
    [ Upstream commit 2397e3d8d2e120355201a8310b61929f5a8bd2c0 ]
    
    mgr->ctx_handles should be protected by mgr->lock.
    
    v2: improve commit message
    v3: add a Fixes tag
    
    Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Fixes: 52c6a62c64fa ("drm/amdgpu: add interface for editing a foreign process's priority v3")
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f2e8e338622b1a842374dcf85957e76b759cfdd9
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon May 1 13:28:57 2023 -0700

    af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
    
    [ Upstream commit 6a341729fb31b4c5df9f74f24b4b1c98410c9b87 ]
    
    syzkaller reported a warning below [0].
    
    We can reproduce it by sending 0-byte data from the (AF_PACKET,
    SOCK_PACKET) socket via some devices whose dev->hard_header_len
    is 0.
    
        struct sockaddr_pkt addr = {
            .spkt_family = AF_PACKET,
            .spkt_device = "tun0",
        };
        int fd;
    
        fd = socket(AF_PACKET, SOCK_PACKET, 0);
        sendto(fd, NULL, 0, 0, (struct sockaddr *)&addr, sizeof(addr));
    
    We have a similar fix for the (AF_PACKET, SOCK_RAW) socket as
    commit dc633700f00f ("net/af_packet: check len when min_header_len
    equals to 0").
    
    Let's add the same test for the SOCK_PACKET socket.
    
    [0]:
    skb_assert_len
    WARNING: CPU: 1 PID: 19945 at include/linux/skbuff.h:2552 skb_assert_len include/linux/skbuff.h:2552 [inline]
    WARNING: CPU: 1 PID: 19945 at include/linux/skbuff.h:2552 __dev_queue_xmit+0x1f26/0x31d0 net/core/dev.c:4159
    Modules linked in:
    CPU: 1 PID: 19945 Comm: syz-executor.0 Not tainted 6.3.0-rc7-02330-gca6270c12e20 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
    RIP: 0010:skb_assert_len include/linux/skbuff.h:2552 [inline]
    RIP: 0010:__dev_queue_xmit+0x1f26/0x31d0 net/core/dev.c:4159
    Code: 89 de e8 1d a2 85 fd 84 db 75 21 e8 64 a9 85 fd 48 c7 c6 80 2a 1f 86 48 c7 c7 c0 06 1f 86 c6 05 23 cf 27 04 01 e8 fa ee 56 fd <0f> 0b e8 43 a9 85 fd 0f b6 1d 0f cf 27 04 31 ff 89 de e8 e3 a1 85
    RSP: 0018:ffff8880217af6e0 EFLAGS: 00010282
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffc90001133000
    RDX: 0000000000040000 RSI: ffffffff81186922 RDI: 0000000000000001
    RBP: ffff8880217af8b0 R08: 0000000000000001 R09: 0000000000000000
    R10: 0000000000000001 R11: 0000000000000001 R12: ffff888030045640
    R13: ffff8880300456b0 R14: ffff888030045650 R15: ffff888030045718
    FS:  00007fc5864da640(0000) GS:ffff88806cd00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000020005740 CR3: 000000003f856003 CR4: 0000000000770ee0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     <TASK>
     dev_queue_xmit include/linux/netdevice.h:3085 [inline]
     packet_sendmsg_spkt+0xc4b/0x1230 net/packet/af_packet.c:2066
     sock_sendmsg_nosec net/socket.c:724 [inline]
     sock_sendmsg+0x1b4/0x200 net/socket.c:747
     ____sys_sendmsg+0x331/0x970 net/socket.c:2503
     ___sys_sendmsg+0x11d/0x1c0 net/socket.c:2557
     __sys_sendmmsg+0x18c/0x430 net/socket.c:2643
     __do_sys_sendmmsg net/socket.c:2672 [inline]
     __se_sys_sendmmsg net/socket.c:2669 [inline]
     __x64_sys_sendmmsg+0x9c/0x100 net/socket.c:2669
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3c/0x90 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    RIP: 0033:0x7fc58791de5d
    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:00007fc5864d9cc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000133
    RAX: ffffffffffffffda RBX: 00000000004bbf80 RCX: 00007fc58791de5d
    RDX: 0000000000000001 RSI: 0000000020005740 RDI: 0000000000000004
    RBP: 00000000004bbf80 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 000000000000000b R14: 00007fc58797e530 R15: 0000000000000000
     </TASK>
    ---[ end trace 0000000000000000 ]---
    skb len=0 headroom=16 headlen=0 tailroom=304
    mac=(16,0) net=(16,-1) trans=-1
    shinfo(txflags=0 nr_frags=0 gso(size=0 type=0 segs=0))
    csum(0x0 ip_summed=0 complete_sw=0 valid=0 level=0)
    hash(0x0 sw=0 l4=0) proto=0x0000 pkttype=0 iif=0
    dev name=sit0 feat=0x00000006401d7869
    sk family=17 type=10 proto=0
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d02efe7f25158c93146e3bb827bc7bb3cd5e71a
Author: Shannon Nelson <shannon.nelson@amd.com>
Date:   Tue May 2 11:35:36 2023 -0700

    ionic: catch failure from devlink_alloc
    
    [ Upstream commit 4a54903ff68ddb33b6463c94b4eb37fc584ef760 ]
    
    Add a check for NULL on the alloc return.  If devlink_alloc() fails and
    we try to use devlink_priv() on the NULL return, the kernel gets very
    unhappy and panics. With this fix, the driver load will still fail,
    but at least it won't panic the kernel.
    
    Fixes: df69ba43217d ("ionic: Add basic framework for IONIC Network device driver")
    Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 942a2a0184f7bb1c1ae4bbc556559c86c054b0d2
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Tue May 2 15:20:50 2023 +0300

    ethtool: Fix uninitialized number of lanes
    
    [ Upstream commit 9ad685dbfe7e856bbf17a7177b64676d324d6ed7 ]
    
    It is not possible to set the number of lanes when setting link modes
    using the legacy IOCTL ethtool interface. Since 'struct
    ethtool_link_ksettings' is not initialized in this path, drivers receive
    an uninitialized number of lanes in 'struct
    ethtool_link_ksettings::lanes'.
    
    When this information is later queried from drivers, it results in the
    ethtool code making decisions based on uninitialized memory, leading to
    the following KMSAN splat [1]. In practice, this most likely only
    happens with the tun driver that simply returns whatever it got in the
    set operation.
    
    As far as I can tell, this uninitialized memory is not leaked to user
    space thanks to the 'ethtool_ops->cap_link_lanes_supported' check in
    linkmodes_prepare_data().
    
    Fix by initializing the structure in the IOCTL path. Did not find any
    more call sites that pass an uninitialized structure when calling
    'ethtool_ops::set_link_ksettings()'.
    
    [1]
    BUG: KMSAN: uninit-value in ethnl_update_linkmodes net/ethtool/linkmodes.c:273 [inline]
    BUG: KMSAN: uninit-value in ethnl_set_linkmodes+0x190b/0x19d0 net/ethtool/linkmodes.c:333
     ethnl_update_linkmodes net/ethtool/linkmodes.c:273 [inline]
     ethnl_set_linkmodes+0x190b/0x19d0 net/ethtool/linkmodes.c:333
     ethnl_default_set_doit+0x88d/0xde0 net/ethtool/netlink.c:640
     genl_family_rcv_msg_doit net/netlink/genetlink.c:968 [inline]
     genl_family_rcv_msg net/netlink/genetlink.c:1048 [inline]
     genl_rcv_msg+0x141a/0x14c0 net/netlink/genetlink.c:1065
     netlink_rcv_skb+0x3f8/0x750 net/netlink/af_netlink.c:2577
     genl_rcv+0x40/0x60 net/netlink/genetlink.c:1076
     netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
     netlink_unicast+0xf41/0x1270 net/netlink/af_netlink.c:1365
     netlink_sendmsg+0x127d/0x1430 net/netlink/af_netlink.c:1942
     sock_sendmsg_nosec net/socket.c:724 [inline]
     sock_sendmsg net/socket.c:747 [inline]
     ____sys_sendmsg+0xa24/0xe40 net/socket.c:2501
     ___sys_sendmsg+0x2a1/0x3f0 net/socket.c:2555
     __sys_sendmsg net/socket.c:2584 [inline]
     __do_sys_sendmsg net/socket.c:2593 [inline]
     __se_sys_sendmsg net/socket.c:2591 [inline]
     __x64_sys_sendmsg+0x36b/0x540 net/socket.c:2591
     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:
     tun_get_link_ksettings+0x37/0x60 drivers/net/tun.c:3544
     __ethtool_get_link_ksettings+0x17b/0x260 net/ethtool/ioctl.c:441
     ethnl_set_linkmodes+0xee/0x19d0 net/ethtool/linkmodes.c:327
     ethnl_default_set_doit+0x88d/0xde0 net/ethtool/netlink.c:640
     genl_family_rcv_msg_doit net/netlink/genetlink.c:968 [inline]
     genl_family_rcv_msg net/netlink/genetlink.c:1048 [inline]
     genl_rcv_msg+0x141a/0x14c0 net/netlink/genetlink.c:1065
     netlink_rcv_skb+0x3f8/0x750 net/netlink/af_netlink.c:2577
     genl_rcv+0x40/0x60 net/netlink/genetlink.c:1076
     netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
     netlink_unicast+0xf41/0x1270 net/netlink/af_netlink.c:1365
     netlink_sendmsg+0x127d/0x1430 net/netlink/af_netlink.c:1942
     sock_sendmsg_nosec net/socket.c:724 [inline]
     sock_sendmsg net/socket.c:747 [inline]
     ____sys_sendmsg+0xa24/0xe40 net/socket.c:2501
     ___sys_sendmsg+0x2a1/0x3f0 net/socket.c:2555
     __sys_sendmsg net/socket.c:2584 [inline]
     __do_sys_sendmsg net/socket.c:2593 [inline]
     __se_sys_sendmsg net/socket.c:2591 [inline]
     __x64_sys_sendmsg+0x36b/0x540 net/socket.c:2591
     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:
     tun_set_link_ksettings+0x37/0x60 drivers/net/tun.c:3553
     ethtool_set_link_ksettings+0x600/0x690 net/ethtool/ioctl.c:609
     __dev_ethtool net/ethtool/ioctl.c:3024 [inline]
     dev_ethtool+0x1db9/0x2a70 net/ethtool/ioctl.c:3078
     dev_ioctl+0xb07/0x1270 net/core/dev_ioctl.c:524
     sock_do_ioctl+0x295/0x540 net/socket.c:1213
     sock_ioctl+0x729/0xd90 net/socket.c:1316
     vfs_ioctl fs/ioctl.c:51 [inline]
     __do_sys_ioctl fs/ioctl.c:870 [inline]
     __se_sys_ioctl+0x222/0x400 fs/ioctl.c:856
     __x64_sys_ioctl+0x96/0xe0 fs/ioctl.c:856
     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
    
    Local variable link_ksettings created at:
     ethtool_set_link_ksettings+0x54/0x690 net/ethtool/ioctl.c:577
     __dev_ethtool net/ethtool/ioctl.c:3024 [inline]
     dev_ethtool+0x1db9/0x2a70 net/ethtool/ioctl.c:3078
    
    Fixes: 012ce4dd3102 ("ethtool: Extend link modes settings uAPI with lanes")
    Reported-and-tested-by: syzbot+ef6edd9f1baaa54d6235@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/netdev/0000000000004bb41105fa70f361@google.com/
    Reviewed-by: Danielle Ratson <danieller@nvidia.com>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a05e5634c1587f0d18715ce85b0d6776a6084b54
Author: Shannon Nelson <shannon.nelson@amd.com>
Date:   Tue May 2 11:47:40 2023 -0700

    ionic: remove noise from ethtool rxnfc error msg
    
    [ Upstream commit 3711d44fac1f80ea69ecb7315fed05b3812a7401 ]
    
    It seems that ethtool is calling into .get_rxnfc more often with
    ETHTOOL_GRXCLSRLCNT which ionic doesn't know about.  We don't
    need to log a message about it, just return not supported.
    
    Fixes: aa3198819bea6 ("ionic: Add RSS support")
    Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
    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 3cad35b62eaa9f5c67d5434eaedbf7b160cd1d36
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed May 3 12:39:44 2023 +0530

    octeontx2-vf: Detach LF resources on probe cleanup
    
    [ Upstream commit 99ae1260fdb5f15beab8a3adfb93a9041c87a2c1 ]
    
    When a VF device probe fails due to error in MSIX vector allocation then
    the resources NIX and NPA LFs were not detached. Fix this by detaching
    the LFs when MSIX vector allocation fails.
    
    Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 401d11f274a52bfe23554330744fcbd0d08e337b
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed May 3 12:39:43 2023 +0530

    octeontx2-pf: Disable packet I/O for graceful exit
    
    [ Upstream commit c926252205c424c4842dbdbe02f8e3296f623204 ]
    
    At the stage of enabling packet I/O in otx2_open, If mailbox
    timeout occurs then interface ends up in down state where as
    hardware packet I/O is enabled. Hence disable packet I/O also
    before bailing out.
    
    Fixes: 1ea0166da050 ("octeontx2-pf: Fix the device state on error")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d28f6ad8b1a0c0dcb00b7ecbff945032a01ca2d0
Author: Ratheesh Kannoth <rkannoth@marvell.com>
Date:   Wed May 3 12:39:42 2023 +0530

    octeontx2-af: Skip PFs if not enabled
    
    [ Upstream commit 5eb1b7220948a69298a436148a735f32ec325289 ]
    
    Firmware enables PFs and allocate mbox resources for each of the PFs.
    Currently PF driver configures mbox resources without checking whether
    PF is enabled or not. This results in crash. This patch fixes this issue
    by skipping disabled PF's mbox initialization.
    
    Fixes: 9bdc47a6e328 ("octeontx2-af: Mbox communication support btw AF and it's VFs")
    Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac613d0bd24418b34030be38c050c6a2f6957a56
Author: Ratheesh Kannoth <rkannoth@marvell.com>
Date:   Wed May 3 12:39:41 2023 +0530

    octeontx2-af: Fix issues with NPC field hash extract
    
    [ Upstream commit f66155905959076619c9c519fb099e8ae6cb6f7b ]
    
    1. Allow field hash configuration for both source and destination IPv6.
    2. Configure hardware parser based on hash extract feature enable flag
       for IPv6.
    3. Fix IPv6 endianness issue while updating the source/destination IP
       address via ntuple rule.
    
    Fixes: 56d9f5fd2246 ("octeontx2-af: Use hashed field in MCAM key")
    Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    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 ab0742bd5b4380506b38a1148ea4bf3bba73c881
Author: Ratheesh Kannoth <rkannoth@marvell.com>
Date:   Wed May 3 12:39:40 2023 +0530

    octeontx2-af: Update/Fix NPC field hash extract feature
    
    [ Upstream commit 406bed11fb91a0b35c26fe633d8700febaec6439 ]
    
    1. As per previous implementation, mask and control parameter to
    generate the field hash value was not passed to the caller program.
    Updated the secret key mbox to share that information as well,
    as a part of the fix.
    2. Earlier implementation did not consider hash reduction of both
    source and destination IPv6 addresses. Only source IPv6 address
    was considered. This fix solves that and provides option to hash
    
    Fixes: 56d9f5fd2246 ("octeontx2-af: Use hashed field in MCAM key")
    Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    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 2b84d24d3ad19f4ca6e8a2aafd10ae62cbb12dbf
Author: Suman Ghosh <sumang@marvell.com>
Date:   Fri Nov 18 11:03:29 2022 +0530

    octeontx2-pf: Add additional checks while configuring ucast/bcast/mcast rules
    
    [ Upstream commit 674b3e164238a31f236ac63f82d5d160f7d4c201 ]
    
    1. If a profile does not support DMAC extraction then avoid installing NPC
    flow rules for unicast. Similarly, if LXMB(L2 and L3) extraction is not
    supported by the profile then avoid installing broadcast and multicast
    rules.
    2. Allow MCAM entry insertion for promiscuous mode.
    3. For the profiles where DMAC is not extracted in MKEX key default
    unicast entry installed by AF is not valid. Hence do not use action
    from the AF installed default unicast entry for such cases.
    4. Adjacent packet header fields in a packet like IP header source
    and destination addresses or UDP/TCP header source port and destination
    can be extracted together in MKEX profile. Therefore MKEX profile can be
    configured to in two ways:
            a. Total of 4 bytes from start of UDP header(src port
               + destination port)
            or
            b. Two bytes from start and two bytes from offset 2
    
    Signed-off-by: Suman Ghosh <sumang@marvell.com>
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Link: https://lore.kernel.org/r/20221118053329.2288486-1-sumang@marvell.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Stable-dep-of: 406bed11fb91 ("octeontx2-af: Update/Fix NPC field hash extract feature")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd9234da97fd5ddf98e61b836773d862335b128d
Author: Suman Ghosh <sumang@marvell.com>
Date:   Mon Oct 31 14:38:56 2022 +0530

    octeontx2-af: Allow mkex profile without DMAC and add L2M/L2B header extraction support
    
    [ Upstream commit 2cee6401c4eaa562abc1d437d5d03e80bbee79c1 ]
    
    1. It is possible to have custom mkex profiles which do not extract
    DMAC at all into the key. Hence allow mkex profiles which do not
    have DMAC to be loaded into MCAM hardware. This patch also adds
    debugging prints needed to identify profiles with wrong
    configuration.
    
    2. If a mkex profile set "l2l3mb" field for Rx interface,
    then Rx multicast and broadcast entry should be configured.
    
    Signed-off-by: Suman Ghosh <sumang@marvell.com>
    Link: https://lore.kernel.org/r/20221031090856.1404303-1-sumang@marvell.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Stable-dep-of: 406bed11fb91 ("octeontx2-af: Update/Fix NPC field hash extract feature")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 14504aaa8b55532d46c756062b9ecbbab9d921c2
Author: Ratheesh Kannoth <rkannoth@marvell.com>
Date:   Wed May 3 12:39:37 2023 +0530

    octeontx2-pf: Increase the size of dmac filter flows
    
    [ Upstream commit 2a6eecc592b4d59a04d513aa25fc0f30d52100cd ]
    
    CN10kb supports large number of dmac filter flows to be
    inserted. Increase the field size to accommodate the same
    
    Fixes: b747923afff8 ("octeontx2-af: Exact match support")
    Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    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 2376ca72b55c7d8d062ef6915b55bb011b8804c4
Author: Ratheesh Kannoth <rkannoth@marvell.com>
Date:   Wed May 3 12:39:36 2023 +0530

    octeontx2-af: Fix depth of cam and mem table.
    
    [ Upstream commit 60999cb83554ebcf6cfff8894bc2c3d99ea858ba ]
    
    In current driver, NPC cam and mem table sizes are read from wrong
    register offset. This patch fixes the register offset so that correct
    values are populated on read.
    
    Fixes: b747923afff8 ("octeontx2-af: Exact match support")
    Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    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 1c98271e0c231639adee32d24b23aece2fcea597
Author: Ratheesh Kannoth <rkannoth@marvell.com>
Date:   Wed May 3 12:39:35 2023 +0530

    octeontx2-af: Fix start and end bit for scan config
    
    [ Upstream commit c60a6b90e7890453f09e0d2163d6acadabe3415b ]
    
    In the current driver, NPC exact match feature was not getting
    enabled as configured bit was not read properly.
    for_each_set_bit_from() need end bit as one bit post
    position in the bit map to read NPC exact nibble enable
    bits properly. This patch fixes the same.
    
    Fixes: b747923afff8 ("octeontx2-af: Exact match support")
    Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e92399f527445ba244f76fbb94ff19658a2d3297
Author: Geetha sowjanya <gakula@marvell.com>
Date:   Wed May 3 12:39:34 2023 +0530

    octeontx2-af: Secure APR table update with the lock
    
    [ Upstream commit 048486f81d01db4d100af021ee2ea211d19732a0 ]
    
    APR table contains the lmtst base address of PF/VFs. These entries
    are updated by the PF/VF during the device probe. The lmtst address
    is fetched from HW using "TXN_REQ" and "ADDR_RSP_STS" registers.
    The lock tries to protect these registers from getting overwritten
    when multiple PFs invokes rvu_get_lmtaddr() simultaneously.
    
    For example, if PF1 submit the request and got permitted before it
    reads the response and PF2 got scheduled submit the request then the
    response of PF1 is overwritten by the PF2 response.
    
    Fixes: 893ae97214c3 ("octeontx2-af: cn10k: Support configurable LMTST regions")
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Sai Krishna <saikrishnag@marvell.com>
    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 419cc2c5076164331fd85d6d4772c5b3cea81d8f
Author: Jeremy Sowden <jeremy@azazel.net>
Date:   Tue Apr 25 22:11:39 2023 +0100

    selftests: netfilter: fix libmnl pkg-config usage
    
    [ Upstream commit de4773f0235acf74554f6a64ea60adc0d7b01895 ]
    
    1. Don't hard-code pkg-config
    2. Remove distro-specific default for CFLAGS
    3. Use pkg-config for LDLIBS
    
    Fixes: a50a88f026fb ("selftests: netfilter: fix a build error on openSUSE")
    Suggested-by: Jan Engelhardt <jengelh@inai.de>
    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 4b08cdd239e7d15f11d2be07e59c3af478f61b11
Author: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Date:   Thu Apr 20 15:12:47 2023 -0700

    drm/i915/mtl: Add the missing CPU transcoder mask in intel_device_info
    
    [ Upstream commit 6ece90e3665a9b7fb2637fcca26cebd42991580b ]
    
    CPU transcoder mask is used to iterate over the available
    CPU transcoders in the macro for_each_cpu_transcoder().
    
    The macro is broken on MTL and got highlighted when audio
    state was being tracked for each transcoder added in [1].
    
    Add the missing CPU transcoder mask which is similar to ADL-P
    mask but without DSI transcoders.
    
    [1]: https://patchwork.freedesktop.org/patch/523723/
    
    Fixes: 7835303982d1 ("drm/i915/mtl: Add MeteorLake PCI IDs")
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
    Acked-by: Haridhar Kalvala <haridhar.kalvala@intel.com>
    Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230420221248.2511314-1-radhakrishna.sripada@intel.com
    (cherry picked from commit bddc18913bd44adae5c828fd514d570f43ba1576)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2bb120405ad35216da7323b5f27039820540fad6
Author: Guo Ren <guoren@kernel.org>
Date:   Mon May 1 15:33:54 2023 -0700

    riscv: compat_syscall_table: Fixup compile warning
    
    [ Upstream commit f9c4bbddece7eff1155c70d48e3c9c2a01b9d778 ]
    
    ../arch/riscv/kernel/compat_syscall_table.c:12:41: warning: initialized
    field overwritten [-Woverride-init]
       12 | #define __SYSCALL(nr, call)      [nr] = (call),
          |                                         ^
    ../include/uapi/asm-generic/unistd.h:567:1: note: in expansion of macro
    '__SYSCALL'
      567 | __SYSCALL(__NR_semget, sys_semget)
    
    Fixes: 59c10c52f573 ("riscv: compat: syscall: Add compat_sys_call_table implementation")
    Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Tested-by: Jisheng Zhang <jszhang@kernel.org>
    Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
    Signed-off-by: Guo Ren <guoren@kernel.org>
    Signed-off-by: Drew Fustini <dfustini@baylibre.com>
    Link: https://lore.kernel.org/r/20230501223353.2833899-1-dfustini@baylibre.com
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40f8b3f5e679eefa59272c337196da9980f250ce
Author: David Howells <dhowells@redhat.com>
Date:   Fri Apr 28 21:27:54 2023 +0100

    rxrpc: Fix hard call timeout units
    
    [ Upstream commit 0d098d83c5d9e107b2df7f5e11f81492f56d2fe7 ]
    
    The hard call timeout is specified in the RXRPC_SET_CALL_TIMEOUT cmsg in
    seconds, so fix the point at which sendmsg() applies it to the call to
    convert to jiffies from seconds, not milliseconds.
    
    Fixes: a158bdd3247b ("rxrpc: Fix timeout of a call that hasn't yet been granted a channel")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: "David S. Miller" <davem@davemloft.net>
    cc: Eric Dumazet <edumazet@google.com>
    cc: Jakub Kicinski <kuba@kernel.org>
    cc: Paolo Abeni <pabeni@redhat.com>
    cc: linux-afs@lists.infradead.org
    cc: netdev@vger.kernel.org
    cc: linux-kernel@vger.kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ab14de49e44f93abe8f6997879c1feb0b7a17b60
Author: Andy Moreton <andy.moreton@amd.com>
Date:   Fri Apr 28 12:33:33 2023 +0100

    sfc: Fix module EEPROM reporting for QSFP modules
    
    [ Upstream commit 281900a923d4c50df109b52a22ae3cdac150159b ]
    
    The sfc driver does not report QSFP module EEPROM contents correctly
    as only the first page is fetched from hardware.
    
    Commit 0e1a2a3e6e7d ("ethtool: Add SFF-8436 and SFF-8636 max EEPROM
    length definitions") added ETH_MODULE_SFF_8436_MAX_LEN for the overall
    size of the EEPROM info, so use that to report the full EEPROM contents.
    
    Fixes: 9b17010da57a ("sfc: Add ethtool -m support for QSFP modules")
    Signed-off-by: Andy Moreton <andy.moreton@amd.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68b1614b32118c1512d0b458c2ad18c3e0616549
Author: Hayes Wang <hayeswang@realtek.com>
Date:   Fri Apr 28 16:53:31 2023 +0800

    r8152: move setting r8153b_rx_agg_chg_indicate()
    
    [ Upstream commit cce8334f4aacd9936309a002d4a4de92a07cd2c2 ]
    
    Move setting r8153b_rx_agg_chg_indicate() for 2.5G devices. The
    r8153b_rx_agg_chg_indicate() has to be called after enabling tx/rx.
    Otherwise, the coalescing settings are useless.
    
    Fixes: 195aae321c82 ("r8152: support new chips")
    Signed-off-by: Hayes Wang <hayeswang@realtek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2642d7c136cd1c396c0612c09dd170bf9cc46c9c
Author: Hayes Wang <hayeswang@realtek.com>
Date:   Fri Apr 28 16:53:30 2023 +0800

    r8152: fix the poor throughput for 2.5G devices
    
    [ Upstream commit 61b0ad6f58e2066e054c6d4839d67974d2861a7d ]
    
    Fix the poor throughput for 2.5G devices, when changing the speed from
    auto mode to force mode. This patch is used to notify the MAC when the
    mode is changed.
    
    Fixes: 195aae321c82 ("r8152: support new chips")
    Signed-off-by: Hayes Wang <hayeswang@realtek.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbdde7ef256447a03a8770eabba6705dd12f0833
Author: Hayes Wang <hayeswang@realtek.com>
Date:   Fri Apr 28 16:53:29 2023 +0800

    r8152: fix flow control issue of RTL8156A
    
    [ Upstream commit 8ceda6d5a1e5402fd852e6cc59a286ce3dc545ee ]
    
    The feature of flow control becomes abnormal, if the device sends a
    pause frame and the tx/rx is disabled before sending a release frame. It
    causes the lost of packets.
    
    Set PLA_RX_FIFO_FULL and PLA_RX_FIFO_EMPTY to zeros before disabling the
    tx/rx. And, toggle FC_PATCH_TASK before enabling tx/rx to reset the flow
    control patch and timer. Then, the hardware could clear the state and
    the flow control becomes normal after enabling tx/rx.
    
    Besides, remove inline for fc_pause_on_auto() and fc_pause_off_auto().
    
    Fixes: 195aae321c82 ("r8152: support new chips")
    Signed-off-by: Hayes Wang <hayeswang@realtek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2efb94966e7e233d450bde509a13cd7bf9c1019
Author: Victor Nogueira <victor@mojatatu.com>
Date:   Wed Apr 26 15:19:40 2023 +0000

    net/sched: act_mirred: Add carrier check
    
    [ Upstream commit 526f28bd0fbdc699cda31426928802650c1528e5 ]
    
    There are cases where the device is adminstratively UP, but operationally
    down. For example, we have a physical device (Nvidia ConnectX-6 Dx, 25Gbps)
    who's cable was pulled out, here is its ip link output:
    
    5: ens2f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
        link/ether b8:ce:f6:4b:68:35 brd ff:ff:ff:ff:ff:ff
        altname enp179s0f1np1
    
    As you can see, it's administratively UP but operationally down.
    In this case, sending a packet to this port caused a nasty kernel hang (so
    nasty that we were unable to capture it). Aborting a transmit based on
    operational status (in addition to administrative status) fixes the issue.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: Victor Nogueira <victor@mojatatu.com>
    v1->v2: Add fixes tag
    v2->v3: Remove blank line between tags + add change log, suggested by Leon
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b3537d4a026367d391c0336f95bf177e6f090d1
Author: Akhil R <akhilrajeev@nvidia.com>
Date:   Thu Apr 27 18:09:14 2023 +0530

    i2c: tegra: Fix PEC support for SMBUS block read
    
    [ Upstream commit 9f855779a3874eee70e9f6be57b5f7774f14e510 ]
    
    Update the msg->len value correctly for SMBUS block read. The discrepancy
    went unnoticed as msg->len is used in SMBUS transfers only when a PEC
    byte is added.
    
    Fixes: d7583c8a5748 ("i2c: tegra: Add SMBus block read function")
    Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
    Acked-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ffa97b59526e49ce806e3986a9c03a9971c84f0b
Author: Sia Jee Heng <jeeheng.sia@starfivetech.com>
Date:   Thu Mar 30 14:43:20 2023 +0800

    RISC-V: mm: Enable huge page support to kernel_page_present() function
    
    [ Upstream commit a15c90b67a662c75f469822a7f95c7aaa049e28f ]
    
    Currently kernel_page_present() function doesn't support huge page
    detection causes the function to mistakenly return false to the
    hibernation core.
    
    Add huge page detection to the function to solve the problem.
    
    Fixes: 9e953cda5cdf ("riscv: Introduce huge page support for 32/64bit kernel")
    Signed-off-by: Sia Jee Heng <jeeheng.sia@starfivetech.com>
    Reviewed-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
    Reviewed-by: Mason Huo <mason.huo@starfivetech.com>
    Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
    Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
    Link: https://lore.kernel.org/r/20230330064321.1008373-4-jeeheng.sia@starfivetech.com
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e8ad3e45b5d030541573b55df6f4a559d608d86
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Wed Apr 26 08:52:48 2023 +0200

    watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe()
    
    [ Upstream commit 7f5390750645756bd5da2b24fac285f2654dd922 ]
    
    The commit in Fixes has only updated the remove function and missed the
    error handling path of the probe.
    
    Add the missing reset_control_assert() call.
    
    Fixes: 65a3b6935d92 ("watchdog: dw_wdt: get reset lines from dt")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/fbb650650bbb33a8fa2fd028c23157bedeed50e1.1682491863.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c36975a654d44c71cebe5a8c0c97bbb165cae348
Author: Tao Su <tao1.su@linux.intel.com>
Date:   Fri Apr 28 12:51:49 2023 +0800

    block: Skip destroyed blkg when restart in blkg_destroy_all()
    
    [ Upstream commit 8176080d59e6d4ff9fc97ae534063073b4f7a715 ]
    
    Kernel hang in blkg_destroy_all() when total blkg greater than
    BLKG_DESTROY_BATCH_SIZE, because of not removing destroyed blkg in
    blkg_list. So the size of blkg_list is same after destroying a
    batch of blkg, and the infinite 'restart' occurs.
    
    Since blkg should stay on the queue list until blkg_free_workfn(),
    skip destroyed blkg when restart a new round, which will solve this
    kernel hang issue and satisfy the previous will to restart.
    
    Reported-by: Xiangfei Ma <xiangfeix.ma@intel.com>
    Tested-by: Xiangfei Ma <xiangfeix.ma@intel.com>
    Tested-by: Farrah Chen <farrah.chen@intel.com>
    Signed-off-by: Tao Su <tao1.su@linux.intel.com>
    Fixes: f1c006f1c685 ("blk-cgroup: synchronize pd_free_fn() from blkg_free_workfn() and blkcg_deactivate_policy()")
    Suggested-and-reviewed-by: Yu Kuai <yukuai3@huawei.com>
    Link: https://lore.kernel.org/r/20230428045149.1310073-1-tao1.su@linux.intel.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c4c6e2a40757d7697541ebbb1a8f77919abb879
Author: Maxim Korotkov <korotkov.maxim.s@gmail.com>
Date:   Thu Jan 19 13:44:43 2023 +0300

    writeback: fix call of incorrect macro
    
    [ Upstream commit 3e46c89c74f2c38e5337d2cf44b0b551adff1cb4 ]
    
     the variable 'history' is of type u16, it may be an error
     that the hweight32 macro was used for it
     I guess macro hweight16 should be used
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 2a81490811d0 ("writeback: implement foreign cgroup inode detection")
    Signed-off-by: Maxim Korotkov <korotkov.maxim.s@gmail.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20230119104443.3002-1-korotkov.maxim.s@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ac2914f67c8707c5d168fd3728bc5afc6df9798
Author: Angelo Dureghello <angelo.dureghello@timesys.com>
Date:   Wed Apr 26 22:28:15 2023 +0200

    net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu
    
    [ Upstream commit 6686317855c6997671982d4489ccdd946f644957 ]
    
    Add rsvd2cpu capability for mv88e6321 model, to allow proper bpdu
    processing.
    
    Signed-off-by: Angelo Dureghello <angelo.dureghello@timesys.com>
    Fixes: 51c901a775621 ("net: dsa: mv88e6xxx: distinguish Global 2 Rsvd2CPU")
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f274d53165b0a5c2c24a831ad72bae4c81aa5ca
Author: Antoine Tenart <atenart@kernel.org>
Date:   Thu Apr 27 11:21:59 2023 +0200

    net: ipv6: fix skb hash for some RST packets
    
    [ Upstream commit dc6456e938e938d64ffb6383a286b2ac9790a37f ]
    
    The skb hash comes from sk->sk_txhash when using TCP, except for some
    IPv6 RST packets. This is because in tcp_v6_send_reset when not in
    TIME_WAIT the hash is taken from sk->sk_hash, while it should come from
    sk->sk_txhash as those two hashes are not computed the same way.
    
    Packetdrill script to test the above,
    
       0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
      +0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
      +0 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
    
      +0 > (flowlabel 0x1) S 0:0(0) <...>
    
      // Wrong ack seq, trigger a rst.
      +0 < S. 0:0(0) ack 0 win 4000
    
      // Check the flowlabel matches prior one from SYN.
      +0 > (flowlabel 0x1) R 0:0(0) <...>
    
    Fixes: 9258b8b1be2e ("ipv6: tcp: send consistent autoflowlabel in RST packets")
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 686c70131e9399f2a1d15cb93b67e6ca3a10b199
Author: Andrea Mayer <andrea.mayer@uniroma2.it>
Date:   Thu Apr 27 11:49:23 2023 +0200

    selftests: srv6: make srv6_end_dt46_l3vpn_test more robust
    
    [ Upstream commit 46ef24c60f8ee70662968ac55325297ed4624d61 ]
    
    On some distributions, the rp_filter is automatically set (=1) by
    default on a netdev basis (also on VRFs).
    In an SRv6 End.DT46 behavior, decapsulated IPv4 packets are routed using
    the table associated with the VRF bound to that tunnel. During lookup
    operations, the rp_filter can lead to packet loss when activated on the
    VRF.
    Therefore, we chose to make this selftest more robust by explicitly
    disabling the rp_filter during tests (as it is automatically set by some
    Linux distributions).
    
    Fixes: 03a0b567a03d ("selftests: seg6: add selftest for SRv6 End.DT46 Behavior")
    Reported-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Tested-by: Hangbin Liu <liuhangbin@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a98019e96e1b778729bcdac938000f330fe71b8
Author: Cong Wang <cong.wang@bytedance.com>
Date:   Wed Apr 26 23:00:06 2023 -0700

    sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
    
    [ Upstream commit c88f8d5cd95fd039cff95d682b8e71100c001df0 ]
    
    When a tunnel device is bound with the underlying device, its
    dev->needed_headroom needs to be updated properly. IPv4 tunnels
    already do the same in ip_tunnel_bind_dev(). Otherwise we may
    not have enough header room for skb, especially after commit
    b17f709a2401 ("gue: TX support for using remote checksum offload option").
    
    Fixes: 32b8a8e59c9c ("sit: add IPv4 over IPv4 support")
    Reported-by: Palash Oswal <oswalpalash@gmail.com>
    Link: https://lore.kernel.org/netdev/CAGyP=7fDcSPKu6nttbGwt7RXzE3uyYxLjCSE97J64pRxJP8jPA@mail.gmail.com/
    Cc: Kuniyuki Iwashima <kuniyu@amazon.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55866fe3fded3ce94ac3fc1bb3dfce654282f483
Author: Vlad Buslov <vladbu@nvidia.com>
Date:   Wed Apr 26 14:31:11 2023 +0200

    net/sched: cls_api: remove block_cb from driver_list before freeing
    
    [ Upstream commit da94a7781fc3c92e7df7832bc2746f4d39bc624e ]
    
    Error handler of tcf_block_bind() frees the whole bo->cb_list on error.
    However, by that time the flow_block_cb instances are already in the driver
    list because driver ndo_setup_tc() callback is called before that up the
    call chain in tcf_block_offload_cmd(). This leaves dangling pointers to
    freed objects in the list and causes use-after-free[0]. Fix it by also
    removing flow_block_cb instances from driver_list before deallocating them.
    
    [0]:
    [  279.868433] ==================================================================
    [  279.869964] BUG: KASAN: slab-use-after-free in flow_block_cb_setup_simple+0x631/0x7c0
    [  279.871527] Read of size 8 at addr ffff888147e2bf20 by task tc/2963
    
    [  279.873151] CPU: 6 PID: 2963 Comm: tc Not tainted 6.3.0-rc6+ #4
    [  279.874273] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
    [  279.876295] Call Trace:
    [  279.876882]  <TASK>
    [  279.877413]  dump_stack_lvl+0x33/0x50
    [  279.878198]  print_report+0xc2/0x610
    [  279.878987]  ? flow_block_cb_setup_simple+0x631/0x7c0
    [  279.879994]  kasan_report+0xae/0xe0
    [  279.880750]  ? flow_block_cb_setup_simple+0x631/0x7c0
    [  279.881744]  ? mlx5e_tc_reoffload_flows_work+0x240/0x240 [mlx5_core]
    [  279.883047]  flow_block_cb_setup_simple+0x631/0x7c0
    [  279.884027]  tcf_block_offload_cmd.isra.0+0x189/0x2d0
    [  279.885037]  ? tcf_block_setup+0x6b0/0x6b0
    [  279.885901]  ? mutex_lock+0x7d/0xd0
    [  279.886669]  ? __mutex_unlock_slowpath.constprop.0+0x2d0/0x2d0
    [  279.887844]  ? ingress_init+0x1c0/0x1c0 [sch_ingress]
    [  279.888846]  tcf_block_get_ext+0x61c/0x1200
    [  279.889711]  ingress_init+0x112/0x1c0 [sch_ingress]
    [  279.890682]  ? clsact_init+0x2b0/0x2b0 [sch_ingress]
    [  279.891701]  qdisc_create+0x401/0xea0
    [  279.892485]  ? qdisc_tree_reduce_backlog+0x470/0x470
    [  279.893473]  tc_modify_qdisc+0x6f7/0x16d0
    [  279.894344]  ? tc_get_qdisc+0xac0/0xac0
    [  279.895213]  ? mutex_lock+0x7d/0xd0
    [  279.896005]  ? __mutex_lock_slowpath+0x10/0x10
    [  279.896910]  rtnetlink_rcv_msg+0x5fe/0x9d0
    [  279.897770]  ? rtnl_calcit.isra.0+0x2b0/0x2b0
    [  279.898672]  ? __sys_sendmsg+0xb5/0x140
    [  279.899494]  ? do_syscall_64+0x3d/0x90
    [  279.900302]  ? entry_SYSCALL_64_after_hwframe+0x46/0xb0
    [  279.901337]  ? kasan_save_stack+0x2e/0x40
    [  279.902177]  ? kasan_save_stack+0x1e/0x40
    [  279.903058]  ? kasan_set_track+0x21/0x30
    [  279.903913]  ? kasan_save_free_info+0x2a/0x40
    [  279.904836]  ? ____kasan_slab_free+0x11a/0x1b0
    [  279.905741]  ? kmem_cache_free+0x179/0x400
    [  279.906599]  netlink_rcv_skb+0x12c/0x360
    [  279.907450]  ? rtnl_calcit.isra.0+0x2b0/0x2b0
    [  279.908360]  ? netlink_ack+0x1550/0x1550
    [  279.909192]  ? rhashtable_walk_peek+0x170/0x170
    [  279.910135]  ? kmem_cache_alloc_node+0x1af/0x390
    [  279.911086]  ? _copy_from_iter+0x3d6/0xc70
    [  279.912031]  netlink_unicast+0x553/0x790
    [  279.912864]  ? netlink_attachskb+0x6a0/0x6a0
    [  279.913763]  ? netlink_recvmsg+0x416/0xb50
    [  279.914627]  netlink_sendmsg+0x7a1/0xcb0
    [  279.915473]  ? netlink_unicast+0x790/0x790
    [  279.916334]  ? iovec_from_user.part.0+0x4d/0x220
    [  279.917293]  ? netlink_unicast+0x790/0x790
    [  279.918159]  sock_sendmsg+0xc5/0x190
    [  279.918938]  ____sys_sendmsg+0x535/0x6b0
    [  279.919813]  ? import_iovec+0x7/0x10
    [  279.920601]  ? kernel_sendmsg+0x30/0x30
    [  279.921423]  ? __copy_msghdr+0x3c0/0x3c0
    [  279.922254]  ? import_iovec+0x7/0x10
    [  279.923041]  ___sys_sendmsg+0xeb/0x170
    [  279.923854]  ? copy_msghdr_from_user+0x110/0x110
    [  279.924797]  ? ___sys_recvmsg+0xd9/0x130
    [  279.925630]  ? __perf_event_task_sched_in+0x183/0x470
    [  279.926656]  ? ___sys_sendmsg+0x170/0x170
    [  279.927529]  ? ctx_sched_in+0x530/0x530
    [  279.928369]  ? update_curr+0x283/0x4f0
    [  279.929185]  ? perf_event_update_userpage+0x570/0x570
    [  279.930201]  ? __fget_light+0x57/0x520
    [  279.931023]  ? __switch_to+0x53d/0xe70
    [  279.931846]  ? sockfd_lookup_light+0x1a/0x140
    [  279.932761]  __sys_sendmsg+0xb5/0x140
    [  279.933560]  ? __sys_sendmsg_sock+0x20/0x20
    [  279.934436]  ? fpregs_assert_state_consistent+0x1d/0xa0
    [  279.935490]  do_syscall_64+0x3d/0x90
    [  279.936300]  entry_SYSCALL_64_after_hwframe+0x46/0xb0
    [  279.937311] RIP: 0033:0x7f21c814f887
    [  279.938085] Code: 0a 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10
    [  279.941448] RSP: 002b:00007fff11efd478 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    [  279.942964] RAX: ffffffffffffffda RBX: 0000000064401979 RCX: 00007f21c814f887
    [  279.944337] RDX: 0000000000000000 RSI: 00007fff11efd4e0 RDI: 0000000000000003
    [  279.945660] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
    [  279.947003] R10: 00007f21c8008708 R11: 0000000000000246 R12: 0000000000000001
    [  279.948345] R13: 0000000000409980 R14: 000000000047e538 R15: 0000000000485400
    [  279.949690]  </TASK>
    
    [  279.950706] Allocated by task 2960:
    [  279.951471]  kasan_save_stack+0x1e/0x40
    [  279.952338]  kasan_set_track+0x21/0x30
    [  279.953165]  __kasan_kmalloc+0x77/0x90
    [  279.954006]  flow_block_cb_setup_simple+0x3dd/0x7c0
    [  279.955001]  tcf_block_offload_cmd.isra.0+0x189/0x2d0
    [  279.956020]  tcf_block_get_ext+0x61c/0x1200
    [  279.956881]  ingress_init+0x112/0x1c0 [sch_ingress]
    [  279.957873]  qdisc_create+0x401/0xea0
    [  279.958656]  tc_modify_qdisc+0x6f7/0x16d0
    [  279.959506]  rtnetlink_rcv_msg+0x5fe/0x9d0
    [  279.960392]  netlink_rcv_skb+0x12c/0x360
    [  279.961216]  netlink_unicast+0x553/0x790
    [  279.962044]  netlink_sendmsg+0x7a1/0xcb0
    [  279.962906]  sock_sendmsg+0xc5/0x190
    [  279.963702]  ____sys_sendmsg+0x535/0x6b0
    [  279.964534]  ___sys_sendmsg+0xeb/0x170
    [  279.965343]  __sys_sendmsg+0xb5/0x140
    [  279.966132]  do_syscall_64+0x3d/0x90
    [  279.966908]  entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    [  279.968407] Freed by task 2960:
    [  279.969114]  kasan_save_stack+0x1e/0x40
    [  279.969929]  kasan_set_track+0x21/0x30
    [  279.970729]  kasan_save_free_info+0x2a/0x40
    [  279.971603]  ____kasan_slab_free+0x11a/0x1b0
    [  279.972483]  __kmem_cache_free+0x14d/0x280
    [  279.973337]  tcf_block_setup+0x29d/0x6b0
    [  279.974173]  tcf_block_offload_cmd.isra.0+0x226/0x2d0
    [  279.975186]  tcf_block_get_ext+0x61c/0x1200
    [  279.976080]  ingress_init+0x112/0x1c0 [sch_ingress]
    [  279.977065]  qdisc_create+0x401/0xea0
    [  279.977857]  tc_modify_qdisc+0x6f7/0x16d0
    [  279.978695]  rtnetlink_rcv_msg+0x5fe/0x9d0
    [  279.979562]  netlink_rcv_skb+0x12c/0x360
    [  279.980388]  netlink_unicast+0x553/0x790
    [  279.981214]  netlink_sendmsg+0x7a1/0xcb0
    [  279.982043]  sock_sendmsg+0xc5/0x190
    [  279.982827]  ____sys_sendmsg+0x535/0x6b0
    [  279.983703]  ___sys_sendmsg+0xeb/0x170
    [  279.984510]  __sys_sendmsg+0xb5/0x140
    [  279.985298]  do_syscall_64+0x3d/0x90
    [  279.986076]  entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    [  279.987532] The buggy address belongs to the object at ffff888147e2bf00
                    which belongs to the cache kmalloc-192 of size 192
    [  279.989747] The buggy address is located 32 bytes inside of
                    freed 192-byte region [ffff888147e2bf00, ffff888147e2bfc0)
    
    [  279.992367] The buggy address belongs to the physical page:
    [  279.993430] page:00000000550f405c refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x147e2a
    [  279.995182] head:00000000550f405c order:1 entire_mapcount:0 nr_pages_mapped:0 pincount:0
    [  279.996713] anon flags: 0x200000000010200(slab|head|node=0|zone=2)
    [  279.997878] raw: 0200000000010200 ffff888100042a00 0000000000000000 dead000000000001
    [  279.999384] raw: 0000000000000000 0000000000200020 00000001ffffffff 0000000000000000
    [  280.000894] page dumped because: kasan: bad access detected
    
    [  280.002386] Memory state around the buggy address:
    [  280.003338]  ffff888147e2be00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [  280.004781]  ffff888147e2be80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
    [  280.006224] >ffff888147e2bf00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [  280.007700]                                ^
    [  280.008592]  ffff888147e2bf80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
    [  280.010035]  ffff888147e2c000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [  280.011564] ==================================================================
    
    Fixes: 59094b1e5094 ("net: sched: use flow block API")
    Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
    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 7fa93e39fbb0566019c388a8038a4d58552e0910
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Apr 28 04:32:31 2023 +0000

    tcp: fix skb_copy_ubufs() vs BIG TCP
    
    [ Upstream commit 7e692df3933628d974acb9f5b334d2b3e885e2a6 ]
    
    David Ahern reported crashes in skb_copy_ubufs() caused by TCP tx zerocopy
    using hugepages, and skb length bigger than ~68 KB.
    
    skb_copy_ubufs() assumed it could copy all payload using up to
    MAX_SKB_FRAGS order-0 pages.
    
    This assumption broke when BIG TCP was able to put up to 512 KB per skb.
    
    We did not hit this bug at Google because we use CONFIG_MAX_SKB_FRAGS=45
    and limit gso_max_size to 180000.
    
    A solution is to use higher order pages if needed.
    
    v2: add missing __GFP_COMP, or we leak memory.
    
    Fixes: 7c4e983c4f3c ("net: allow gso_max_size to exceed 65536")
    Reported-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/netdev/c70000f6-baa4-4a05-46d0-4b3e0dc1ccc8@gmail.com/T/
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Xin Long <lucien.xin@gmail.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Coco Li <lixiaoyan@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 449280afaa053f74678c9dce4e9db723e1f84a32
Author: Cosmo Chou <chou.cosmo@gmail.com>
Date:   Wed Apr 26 16:13:50 2023 +0800

    net/ncsi: clear Tx enable mode when handling a Config required AEN
    
    [ Upstream commit 6f75cd166a5a3c0bc50441faa8b8304f60522fdd ]
    
    ncsi_channel_is_tx() determines whether a given channel should be
    used for Tx or not. However, when reconfiguring the channel by
    handling a Configuration Required AEN, there is a misjudgment that
    the channel Tx has already been enabled, which results in the Enable
    Channel Network Tx command not being sent.
    
    Clear the channel Tx enable flag before reconfiguring the channel to
    avoid the misjudgment.
    
    Fixes: 8d951a75d022 ("net/ncsi: Configure multi-package, multi-channel modes with failover")
    Signed-off-by: Cosmo Chou <chou.cosmo@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a78b922d118066457093a414abf39f02657841d9
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed Apr 26 11:55:28 2023 +0530

    octeontx2-pf: mcs: Do not reset PN while updating secy
    
    [ Upstream commit 3c99bace4ad08ad0264285ba8ad73117560992c2 ]
    
    After creating SecYs, SCs and SAs a SecY can be modified
    to change attributes like validation mode, protect frames
    mode etc. During this SecY update, packet number is reset to
    initial user given value by mistake. Hence do not reset
    PN when updating SecY parameters.
    
    Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd59ec145595c899a4e8480f7bd0d95dbe4fea5c
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed Apr 26 11:55:27 2023 +0530

    octeontx2-pf: mcs: Fix shared counters logic
    
    [ Upstream commit 9bdfe61054fb2b989eb58df20bf99c0cf67e3038 ]
    
    Macsec stats like InPktsLate and InPktsDelayed share
    same counter in hardware. If SecY replay_protect is true
    then counter represents InPktsLate otherwise InPktsDelayed.
    This mode change was tracked based on protect_frames
    instead of replay_protect mistakenly. Similarly InPktsUnchecked
    and InPktsOk share same counter and mode change was tracked
    based on validate_check instead of validate_disabled.
    This patch fixes those problems.
    
    Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8ddb974f014bc6e0ea56230eebc4b6e42f468f2
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed Apr 26 11:55:26 2023 +0530

    octeontx2-pf: mcs: Clear stats before freeing resource
    
    [ Upstream commit 815debbbf7b52026462c37eea3be70d6377a7a9a ]
    
    When freeing MCS hardware resources like SecY, SC and
    SA the corresponding stats needs to be cleared. Otherwise
    previous stats are shown in newly created macsec interfaces.
    
    Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c52ebecd89ae2d4724f2ec429cfefff9799220c4
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed Apr 26 11:55:25 2023 +0530

    octeontx2-pf: mcs: Match macsec ethertype along with DMAC
    
    [ Upstream commit 57d00d4364f314485092667d2a48718985515deb ]
    
    On CN10KB silicon a single hardware macsec block is
    present and offloads macsec operations for all the
    ethernet LMACs. TCAM match with macsec ethertype 0x88e5
    alone at RX side is not sufficient to distinguish all the
    macsec interfaces created on top of netdevs. Hence append
    the DMAC of the macsec interface too. Otherwise the first
    created macsec interface only receives all the macsec traffic.
    
    Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3dcc45eca017fca82ac47dbde6f41af960657e5
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed Apr 26 11:55:24 2023 +0530

    octeontx2-pf: mcs: Fix NULL pointer dereferences
    
    [ Upstream commit 699af748c61574125d269db260dabbe20436d74e ]
    
    When system is rebooted after creating macsec interface
    below NULL pointer dereference crashes occurred. This
    patch fixes those crashes by using correct order of teardown
    
    [ 3324.406942] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
    [ 3324.415726] Mem abort info:
    [ 3324.418510]   ESR = 0x96000006
    [ 3324.421557]   EC = 0x25: DABT (current EL), IL = 32 bits
    [ 3324.426865]   SET = 0, FnV = 0
    [ 3324.429913]   EA = 0, S1PTW = 0
    [ 3324.433047] Data abort info:
    [ 3324.435921]   ISV = 0, ISS = 0x00000006
    [ 3324.439748]   CM = 0, WnR = 0
    ....
    [ 3324.575915] Call trace:
    [ 3324.578353]  cn10k_mdo_del_secy+0x24/0x180
    [ 3324.582440]  macsec_common_dellink+0xec/0x120
    [ 3324.586788]  macsec_notify+0x17c/0x1c0
    [ 3324.590529]  raw_notifier_call_chain+0x50/0x70
    [ 3324.594965]  call_netdevice_notifiers_info+0x34/0x7c
    [ 3324.599921]  rollback_registered_many+0x354/0x5bc
    [ 3324.604616]  unregister_netdevice_queue+0x88/0x10c
    [ 3324.609399]  unregister_netdev+0x20/0x30
    [ 3324.613313]  otx2_remove+0x8c/0x310
    [ 3324.616794]  pci_device_shutdown+0x30/0x70
    [ 3324.620882]  device_shutdown+0x11c/0x204
    
    [  966.664930] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
    [  966.673712] Mem abort info:
    [  966.676497]   ESR = 0x96000006
    [  966.679543]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  966.684848]   SET = 0, FnV = 0
    [  966.687895]   EA = 0, S1PTW = 0
    [  966.691028] Data abort info:
    [  966.693900]   ISV = 0, ISS = 0x00000006
    [  966.697729]   CM = 0, WnR = 0
    [  966.833467] Call trace:
    [  966.835904]  cn10k_mdo_stop+0x20/0xa0
    [  966.839557]  macsec_dev_stop+0xe8/0x11c
    [  966.843384]  __dev_close_many+0xbc/0x140
    [  966.847298]  dev_close_many+0x84/0x120
    [  966.851039]  rollback_registered_many+0x114/0x5bc
    [  966.855735]  unregister_netdevice_many.part.0+0x14/0xa0
    [  966.860952]  unregister_netdevice_many+0x18/0x24
    [  966.865560]  macsec_notify+0x1ac/0x1c0
    [  966.869303]  raw_notifier_call_chain+0x50/0x70
    [  966.873738]  call_netdevice_notifiers_info+0x34/0x7c
    [  966.878694]  rollback_registered_many+0x354/0x5bc
    [  966.883390]  unregister_netdevice_queue+0x88/0x10c
    [  966.888173]  unregister_netdev+0x20/0x30
    [  966.892090]  otx2_remove+0x8c/0x310
    [  966.895571]  pci_device_shutdown+0x30/0x70
    [  966.899660]  device_shutdown+0x11c/0x204
    [  966.903574]  __do_sys_reboot+0x208/0x290
    [  966.907487]  __arm64_sys_reboot+0x20/0x30
    [  966.911489]  el0_svc_handler+0x80/0x1c0
    [  966.915316]  el0_svc+0x8/0x180
    [  966.918362] Code: f9400000 f9400a64 91220014 f94b3403 (f9400060)
    [  966.924448] ---[ end trace 341778e799c3d8d7 ]---
    
    Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ff806d07025be477580dc09e11721b1a94f2de8
Author: Geetha sowjanya <gakula@marvell.com>
Date:   Wed Apr 26 11:55:23 2023 +0530

    octeontx2-af: mcs: Fix MCS block interrupt
    
    [ Upstream commit b8aebeaaf9ffb1e99c642eb3751e28981f9be475 ]
    
    On CN10KB, MCS IP vector number, BBE and PAB interrupt mask
    got changed to support more block level interrupts.
    To address this changes, this patch fixes the bbe and pab
    interrupt handlers.
    
    Fixes: 6c635f78c474 ("octeontx2-af: cn10k: mcs: Handle MCS block interrupts")
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit add6bdb8d60392e369f3ecbdf52dc25493c4be9c
Author: Geetha sowjanya <gakula@marvell.com>
Date:   Wed Apr 26 11:55:22 2023 +0530

    octeontx2-af: mcs: Config parser to skip 8B header
    
    [ Upstream commit 65cdc2b637a5749c7dec0ce14fe2c48f1f91f671 ]
    
    When ptp timestamp is enabled in RPM, RPM will append 8B
    timestamp header for all RX traffic. MCS need to skip these
    8 bytes header while parsing the packet header, so that
    correct tcam key is created for lookup.
    This patch fixes the mcs parser configuration to skip this
    8B header for ptp packets.
    
    Fixes: ca7f49ff8846 ("octeontx2-af: cn10k: Introduce driver for macsec block.")
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39b436f0acfb2874818834d0f6f303e2e9ab5ee1
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Wed Apr 26 11:55:21 2023 +0530

    octeontx2-af: mcs: Write TCAM_DATA and TCAM_MASK registers at once
    
    [ Upstream commit b51612198603fce33d6cf57b4864e3018a1cd9b8 ]
    
    As per hardware errata on CN10KB, all the four TCAM_DATA
    and TCAM_MASK registers has to be written at once otherwise
    write to individual registers will fail. Hence write to all
    TCAM_DATA registers and then to all TCAM_MASK registers.
    
    Fixes: cfc14181d497 ("octeontx2-af: cn10k: mcs: Manage the MCS block hardware resources")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06fdaf7711f3fa36a69cbffff357035d72fef3b5
Author: Geetha sowjanya <gakula@marvell.com>
Date:   Wed Apr 26 11:55:20 2023 +0530

    octeonxt2-af: mcs: Fix per port bypass config
    
    [ Upstream commit c222b292a3568754828ffd30338d2909b14ed160 ]
    
    For each lmac port, MCS has two MCS_TOP_SLAVE_CHANNEL_CONFIGX
    registers. For CN10KB both register need to be configured for the
    port level mcs bypass to work. This patch also sets bitmap
    of flowid/secy entry reserved for default bypass so that these
    entries can be shown in debugfs.
    
    Fixes: bd69476e86fc ("octeontx2-af: cn10k: mcs: Install a default TCAM for normal traffic")
    Signed-off-by: Geetha sowjanya <gakula@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1924450175349e64f8dfc3689efcb653dba0418e
Author: John Hickey <jjh@daedalian.us>
Date:   Tue Apr 25 10:03:08 2023 -0700

    ixgbe: Fix panic during XDP_TX with > 64 CPUs
    
    [ Upstream commit c23ae5091a8b3e50fe755257df020907e7c029bb ]
    
    Commit 4fe815850bdc ("ixgbe: let the xdpdrv work with more than 64 cpus")
    adds support to allow XDP programs to run on systems with more than
    64 CPUs by locking the XDP TX rings and indexing them using cpu % 64
    (IXGBE_MAX_XDP_QS).
    
    Upon trying this out patch on a system with more than 64 cores,
    the kernel paniced with an array-index-out-of-bounds at the return in
    ixgbe_determine_xdp_ring in ixgbe.h, which means ixgbe_determine_xdp_q_idx
    was just returning the cpu instead of cpu % IXGBE_MAX_XDP_QS.  An example
    splat:
    
     ==========================================================================
     UBSAN: array-index-out-of-bounds in
     /var/lib/dkms/ixgbe/5.18.6+focal-1/build/src/ixgbe.h:1147:26
     index 65 is out of range for type 'ixgbe_ring *[64]'
     ==========================================================================
     BUG: kernel NULL pointer dereference, address: 0000000000000058
     #PF: supervisor read access in kernel mode
     #PF: error_code(0x0000) - not-present page
     PGD 0 P4D 0
     Oops: 0000 [#1] SMP NOPTI
     CPU: 65 PID: 408 Comm: ksoftirqd/65
     Tainted: G          IOE     5.15.0-48-generic #54~20.04.1-Ubuntu
     Hardware name: Dell Inc. PowerEdge R640/0W23H8, BIOS 2.5.4 01/13/2020
     RIP: 0010:ixgbe_xmit_xdp_ring+0x1b/0x1c0 [ixgbe]
     Code: 3b 52 d4 cf e9 42 f2 ff ff 66 0f 1f 44 00 00 0f 1f 44 00 00 55 b9
     00 00 00 00 48 89 e5 41 57 41 56 41 55 41 54 53 48 83 ec 08 <44> 0f b7
     47 58 0f b7 47 5a 0f b7 57 54 44 0f b7 76 08 66 41 39 c0
     RSP: 0018:ffffbc3fcd88fcb0 EFLAGS: 00010282
     RAX: ffff92a253260980 RBX: ffffbc3fe68b00a0 RCX: 0000000000000000
     RDX: ffff928b5f659000 RSI: ffff928b5f659000 RDI: 0000000000000000
     RBP: ffffbc3fcd88fce0 R08: ffff92b9dfc20580 R09: 0000000000000001
     R10: 3d3d3d3d3d3d3d3d R11: 3d3d3d3d3d3d3d3d R12: 0000000000000000
     R13: ffff928b2f0fa8c0 R14: ffff928b9be20050 R15: 000000000000003c
     FS:  0000000000000000(0000) GS:ffff92b9dfc00000(0000)
     knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000058 CR3: 000000011dd6a002 CR4: 00000000007706e0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
     PKRU: 55555554
     Call Trace:
      <TASK>
      ixgbe_poll+0x103e/0x1280 [ixgbe]
      ? sched_clock_cpu+0x12/0xe0
      __napi_poll+0x30/0x160
      net_rx_action+0x11c/0x270
      __do_softirq+0xda/0x2ee
      run_ksoftirqd+0x2f/0x50
      smpboot_thread_fn+0xb7/0x150
      ? sort_range+0x30/0x30
      kthread+0x127/0x150
      ? set_kthread_struct+0x50/0x50
      ret_from_fork+0x1f/0x30
      </TASK>
    
    I think this is how it happens:
    
    Upon loading the first XDP program on a system with more than 64 CPUs,
    ixgbe_xdp_locking_key is incremented in ixgbe_xdp_setup.  However,
    immediately after this, the rings are reconfigured by ixgbe_setup_tc.
    ixgbe_setup_tc calls ixgbe_clear_interrupt_scheme which calls
    ixgbe_free_q_vectors which calls ixgbe_free_q_vector in a loop.
    ixgbe_free_q_vector decrements ixgbe_xdp_locking_key once per call if
    it is non-zero.  Commenting out the decrement in ixgbe_free_q_vector
    stopped my system from panicing.
    
    I suspect to make the original patch work, I would need to load an XDP
    program and then replace it in order to get ixgbe_xdp_locking_key back
    above 0 since ixgbe_setup_tc is only called when transitioning between
    XDP and non-XDP ring configurations, while ixgbe_xdp_locking_key is
    incremented every time ixgbe_xdp_setup is called.
    
    Also, ixgbe_setup_tc can be called via ethtool --set-channels, so this
    becomes another path to decrement ixgbe_xdp_locking_key to 0 on systems
    with more than 64 CPUs.
    
    Since ixgbe_xdp_locking_key only protects the XDP_TX path and is tied
    to the number of CPUs present, there is no reason to disable it upon
    unloading an XDP program.  To avoid confusion, I have moved enabling
    ixgbe_xdp_locking_key into ixgbe_sw_init, which is part of the probe path.
    
    Fixes: 4fe815850bdc ("ixgbe: let the xdpdrv work with more than 64 cpus")
    Signed-off-by: John Hickey <jjh@daedalian.us>
    Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20230425170308.2522429-1-anthony.l.nguyen@intel.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80a791a19902edc7c0fc7f8d2f3d411531e6a4ca
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date:   Thu Apr 6 15:59:45 2023 -0400

    drm/amd/display: Update bounding box values for DCN321
    
    [ Upstream commit 989cd3e76a4aab76fe7dd50090ac3fa501c537f6 ]
    
    [Why&how]
    
    Update bounding box values as per hardware spec
    
    Fixes: 197485c69543 ("drm/amd/display: Create dcn321_fpu file")
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-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 7bba2e5e096e005f9ea5dba85a224caf9e80909f
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date:   Thu Apr 6 15:48:48 2023 -0400

    drm/amd/display: Do not clear GPINT register when releasing DMUB from reset
    
    [ Upstream commit 99d92eaca5d915763b240aae24669f5bf3227ecf ]
    
    [Why & How]
    There's no need to clear GPINT register for DMUB
    when releasing it from reset. Fix that.
    
    Fixes: ac2e555e0a7f ("drm/amd/display: Add DMCUB source files and changes for DCN32/321")
    Reviewed-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-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 ccb0ad946adc43d9b146323228a365aa7400fd42
Author: Cruise Hung <Cruise.Hung@amd.com>
Date:   Fri May 13 09:16:42 2022 +0800

    drm/amd/display: Reset OUTBOX0 r/w pointer on DMUB reset
    
    [ Upstream commit 425afa0ac99a05b39e6cd00704fa0e3e925cee2b ]
    
    [Why & How]
    We missed resetting OUTBOX0 mailbox r/w pointer on DMUB reset.
    Fix it.
    
    Fixes: 6ecf9773a503 ("drm/amd/display: Fix DMUB outbox trace in S4 (#4465)")
    Signed-off-by: Cruise Hung <Cruise.Hung@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 bb13726625e7d6220744fac823baec4ce9e7f563
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date:   Thu Apr 6 12:28:59 2023 -0400

    drm/amd/display: Fixes for dcn32_clk_mgr implementation
    
    [ Upstream commit d1c5c3e252b8a911a524e6ee33b82aca81397745 ]
    
    [Why&How]
    Fix CLK MGR early initialization and add logging.
    
    Fixes: 265280b99822 ("drm/amd/display: add CLKMGR changes for DCN32/321")
    Reviewed-by: Leo Li <sunpeng.li@amd.com>
    Reviewed-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
    Signed-off-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 b7ae53dd0d290b27fd4e0bdeff5849ecb3d588a3
Author: Hersen Wu <hersenxs.wu@amd.com>
Date:   Sun May 29 10:54:30 2022 -0400

    drm/amd/display: Return error code on DSC atomic check failure
    
    [ Upstream commit dd24662d9dfbad281bbf030f06d68c7938fa0c66 ]
    
    [Why&How]
    We were not returning -EINVAL on DSC atomic check fail. Add it.
    
    Fixes: 71be4b16d39a ("drm/amd/display: dsc validate fail not pass to atomic check")
    Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: Hersen Wu <hersenxs.wu@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 374f7fa01ae56bc000dc1d54e80a8f4e7f606028
Author: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Date:   Tue Apr 4 14:54:05 2023 -0600

    drm/amd/display: Add missing WA and MCLK validation
    
    [ Upstream commit 822b84ecfc646da0f87fd947fa00dc3be5e45ecc ]
    
    When the commit fff7eb56b376 ("drm/amd/display: Don't set dram clock
    change requirement for SubVP") was merged, we missed some parts
    associated with the MCLK switch. This commit adds all the missing parts.
    
    Fixes: fff7eb56b376 ("drm/amd/display: Don't set dram clock change requirement for SubVP")
    Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@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 0b47019f544fbf1667798085b71374fe4d09e611
Author: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Date:   Thu Oct 20 11:46:31 2022 -0400

    drm/amd/display: Remove FPU guards from the DML folder
    
    [ Upstream commit bbfbf09d193ac831c40db50ef4b31d11548a9eef ]
    
    As part of the programming expectation for using DML functions, DC
    requires that any DML function invoked outside DML uses:
    
     DC_FP_START();
     ... dml function ...
     DC_FP_END();
    
    Additionally, all the DML functions that can be invoked outside the DML
    folder call the function dc_assert_fp_enabled(), which is responsible
    for triggering a warning in the case that the DML function was not
    guarded by the DC_FP_START/END. For this reason, call DC_FP_START/END
    inside DML is wrong, and this commit removes all of those references.
    
    Tested-by: Mark Broadworth <mark.broadworth@amd.com>
    Reviewed-by: Nevenko Stupar <Nevenko.Stupar@amd.com>
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Stable-dep-of: 822b84ecfc64 ("drm/amd/display: Add missing WA and MCLK validation")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3738a230831e861503119ee2691c4a7dc56ed60a
Author: Zheng Wang <zyytlz.wz@163.com>
Date:   Thu Apr 13 11:34:22 2023 +0800

    scsi: qedi: Fix use after free bug in qedi_remove()
    
    [ Upstream commit c5749639f2d0a1f6cbe187d05f70c2e7c544d748 ]
    
    In qedi_probe() we call __qedi_probe() which initializes
    &qedi->recovery_work with qedi_recovery_handler() and
    &qedi->board_disable_work with qedi_board_disable_work().
    
    When qedi_schedule_recovery_handler() is called, schedule_delayed_work()
    will finally start the work.
    
    In qedi_remove(), which is called to remove the driver, the following
    sequence may be observed:
    
    Fix this by finishing the work before cleanup in qedi_remove().
    
    CPU0                  CPU1
    
                         |qedi_recovery_handler
    qedi_remove          |
      __qedi_remove      |
    iscsi_host_free      |
    scsi_host_put        |
    //free shost         |
                         |iscsi_host_for_each_session
                         |//use qedi->shost
    
    Cancel recovery_work and board_disable_work in __qedi_remove().
    
    Fixes: 4b1068f5d74b ("scsi: qedi: Add MFW error recovery process")
    Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
    Link: https://lore.kernel.org/r/20230413033422.28003-1-zyytlz.wz@163.com
    Acked-by: Manish Rangankar <mrangankar@marvell.com>
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e60e5d672248419626f684030c282da786245dcc
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Apr 21 20:37:14 2023 +0200

    ASoC: Intel: soc-acpi-byt: Fix "WM510205" match no longer working
    
    [ Upstream commit c963e2ec095cb3f855890be53f56f5a6c6fbe371 ]
    
    Commit 7e1d728a94ca ("ASoC: Intel: soc-acpi-byt: Add new WM5102 ACPI HID")
    added an extra HID to wm5102_comp_ids.codecs, but it forgot to bump
    wm5102_comp_ids.num_codecs, causing the last codec HID in the codecs list
    to no longer work.
    
    Bump wm5102_comp_ids.num_codecs to fix this.
    
    Fixes: 7e1d728a94ca ("ASoC: Intel: soc-acpi-byt: Add new WM5102 ACPI HID")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20230421183714.35186-1-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1193a36f58c638bbba3579f6076fa8bf2ae7077b
Author: Sean Christopherson <seanjc@google.com>
Date:   Mon May 8 17:46:02 2023 +0200

    KVM: x86/mmu: Refresh CR0.WP prior to checking for emulated permission faults
    
    [ Upstream commit cf9f4c0eb1699d306e348b1fd0225af7b2c282d3 ]
    
    Refresh the MMU's snapshot of the vCPU's CR0.WP prior to checking for
    permission faults when emulating a guest memory access and CR0.WP may be
    guest owned.  If the guest toggles only CR0.WP and triggers emulation of
    a supervisor write, e.g. when KVM is emulating UMIP, KVM may consume a
    stale CR0.WP, i.e. use stale protection bits metadata.
    
    Note, KVM passes through CR0.WP if and only if EPT is enabled as CR0.WP
    is part of the MMU role for legacy shadow paging, and SVM (NPT) doesn't
    support per-bit interception controls for CR0.  Don't bother checking for
    EPT vs. NPT as the "old == new" check will always be true under NPT, i.e.
    the only cost is the read of vcpu->arch.cr4 (SVM unconditionally grabs CR0
    from the VMCB on VM-Exit).
    
    Reported-by: Mathias Krause <minipli@grsecurity.net>
    Link: https://lkml.kernel.org/r/677169b4-051f-fcae-756b-9a3e1bb9f8fe%40grsecurity.net
    Fixes: fb509f76acc8 ("KVM: VMX: Make CR0.WP a guest owned bit")
    Tested-by: Mathias Krause <minipli@grsecurity.net>
    Link: https://lore.kernel.org/r/20230405002608.418442-1-seanjc@google.com
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>  # backport to v6.1.x
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 71e848bac0a4daaae2bd980a8cb2b0b4c7ef3a9d
Author: Mathias Krause <minipli@grsecurity.net>
Date:   Mon May 8 17:46:01 2023 +0200

    KVM: VMX: Make CR0.WP a guest owned bit
    
    [ Upstream commit fb509f76acc8d42bed11bca308404f81c2be856a ]
    
    Guests like grsecurity that make heavy use of CR0.WP to implement kernel
    level W^X will suffer from the implied VMEXITs.
    
    With EPT there is no need to intercept a guest change of CR0.WP, so
    simply make it a guest owned bit if we can do so.
    
    This implies that a read of a guest's CR0.WP bit might need a VMREAD.
    However, the only potentially affected user seems to be kvm_init_mmu()
    which is a heavy operation to begin with. But also most callers already
    cache the full value of CR0 anyway, so no additional VMREAD is needed.
    The only exception is nested_vmx_load_cr3().
    
    This change is VMX-specific, as SVM has no such fine grained control
    register intercept control.
    
    Suggested-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>
    Link: https://lore.kernel.org/r/20230322013731.102955-7-minipli@grsecurity.net
    Co-developed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>  # backport to v6.1.x
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27ec4cbc1d51cfc7238c398c546b38517dcaeb18
Author: Mathias Krause <minipli@grsecurity.net>
Date:   Mon May 8 17:46:00 2023 +0200

    KVM: x86: Make use of kvm_read_cr*_bits() when testing bits
    
    [ Upstream commit 74cdc836919bf34684ef66f995273f35e2189daf ]
    
    Make use of the kvm_read_cr{0,4}_bits() helper functions when we only
    want to know the state of certain bits instead of the whole register.
    
    This not only makes the intent cleaner, it also avoids a potential
    VMREAD in case the tested bits aren't guest owned.
    
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>
    Link: https://lore.kernel.org/r/20230322013731.102955-5-minipli@grsecurity.net
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 956777b2538e4137093e2c8471f911acf15231f5
Author: Mathias Krause <minipli@grsecurity.net>
Date:   Mon May 8 17:45:59 2023 +0200

    KVM: x86: Do not unload MMU roots when only toggling CR0.WP with TDP enabled
    
    [ Upstream commit 01b31714bd90be2784f7145bf93b7f78f3d081e1 ]
    
    There is no need to unload the MMU roots with TDP enabled when only
    CR0.WP has changed -- the paging structures are still valid, only the
    permission bitmap needs to be updated.
    
    One heavy user of toggling CR0.WP is grsecurity's KERNEXEC feature to
    implement kernel W^X.
    
    The optimization brings a huge performance gain for this case as the
    following micro-benchmark running 'ssdd 10 50000' from rt-tests[1] on a
    grsecurity L1 VM shows (runtime in seconds, lower is better):
    
                           legacy     TDP    shadow
    kvm-x86/next@d8708b     8.43s    9.45s    70.3s
                 +patch     5.39s    5.63s    70.2s
    
    For legacy MMU this is ~36% faster, for TDP MMU even ~40% faster. Also
    TDP and legacy MMU now both have a similar runtime which vanishes the
    need to disable TDP MMU for grsecurity.
    
    Shadow MMU sees no measurable difference and is still slow, as expected.
    
    [1] https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
    
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>
    Link: https://lore.kernel.org/r/20230322013731.102955-3-minipli@grsecurity.net
    Co-developed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d20a0195b3fec4c9ec1ffd2a1625bfa060d3150b
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Mon May 8 17:45:58 2023 +0200

    KVM: x86/mmu: Avoid indirect call for get_cr3
    
    [ Upstream commit 2fdcc1b324189b5fb20655baebd40cd82e2bdf0c ]
    
    Most of the time, calls to get_guest_pgd result in calling
    kvm_read_cr3 (the exception is only nested TDP).  Hardcode
    the default instead of using the get_cr3 function, avoiding
    a retpoline if they are enabled.
    
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>
    Link: https://lore.kernel.org/r/20230322013731.102955-2-minipli@grsecurity.net
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Mathias Krause <minipli@grsecurity.net>  # backport to v6.1.x
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28d0f85aff342921d75597bc4997f9d6e83be2ef
Author: Ryan Lin <tsung-hua.lin@amd.com>
Date:   Tue May 9 11:01:20 2023 -0500

    drm/amd/display: Ext displays with dock can't recognized after resume
    
    [ Upstream commit 1e5d4d8eb8c0f15d90c50e7abd686c980e54e42e ]
    
    [Why]
    Needs to set the default value of the LTTPR timeout after resume.
    
    [How]
    Set the default (3.2ms) timeout at resuming if the sink supports
    LTTPR
    
    Reviewed-by: Jerry Zuo <Jerry.Zuo@amd.com>
    Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
    Signed-off-by: Ryan Lin <tsung-hua.lin@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 d69d5e2a81df94534bdb468bcdd26060fcb7191a
Author: ZhangPeng <zhangpeng362@huawei.com>
Date:   Fri Nov 25 10:21:59 2022 +0000

    fs/ntfs3: Fix null-ptr-deref on inode->i_op in ntfs_lookup()
    
    [ Upstream commit 254e69f284d7270e0abdc023ee53b71401c3ba0c ]
    
    Syzbot reported a null-ptr-deref bug:
    
    ntfs3: loop0: Different NTFS' sector size (1024) and media sector size
    (512)
    ntfs3: loop0: Mark volume as dirty due to NTFS errors
    general protection fault, probably for non-canonical address
    0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN
    KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
    RIP: 0010:d_flags_for_inode fs/dcache.c:1980 [inline]
    RIP: 0010:__d_add+0x5ce/0x800 fs/dcache.c:2796
    Call Trace:
     <TASK>
     d_splice_alias+0x122/0x3b0 fs/dcache.c:3191
     lookup_open fs/namei.c:3391 [inline]
     open_last_lookups fs/namei.c:3481 [inline]
     path_openat+0x10e6/0x2df0 fs/namei.c:3688
     do_filp_open+0x264/0x4f0 fs/namei.c:3718
     do_sys_openat2+0x124/0x4e0 fs/open.c:1310
     do_sys_open fs/open.c:1326 [inline]
     __do_sys_open fs/open.c:1334 [inline]
     __se_sys_open fs/open.c:1330 [inline]
     __x64_sys_open+0x221/0x270 fs/open.c:1330
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    If the MFT record of ntfs inode is not a base record, inode->i_op can be
    NULL. And a null-ptr-deref may happen:
    
    ntfs_lookup()
        dir_search_u() # inode->i_op is set to NULL
        d_splice_alias()
            __d_add()
                d_flags_for_inode() # inode->i_op->get_link null-ptr-deref
    
    Fix this by adding a Check on inode->i_op before calling the
    d_splice_alias() function.
    
    Fixes: 4342306f0f0d ("fs/ntfs3: Add file operations and implementation")
    Reported-by: syzbot+a8f26a403c169b7593fe@syzkaller.appspotmail.com
    Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>
    Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 93eb8dd4b4c17ee0b9a6308e94b40ef7966aee5d
Author: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Date:   Thu Apr 6 15:17:45 2023 +0900

    mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s25hx SEMPER flash
    
    [ Upstream commit 4199c1719e24e73be0acc8b0146fc31ad8af9771 ]
    
    Infineon(Cypress) SEMPER NOR flash family has on-die ECC and its program
    granularity is 16-byte ECC data unit size. JFFS2 supports write buffer
    mode for ECC'd NOR flash. Provide a way to clear the MTD_BIT_WRITEABLE
    flag in order to enable JFFS2 write buffer mode support.
    
    Fixes: b6b23833fc42 ("mtd: spi-nor: spansion: Add s25hl-t/s25hs-t IDs and fixups")
    Suggested-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/a1cc128e094db4ec141f85bd380127598dfef17e.1680760742.git.Takahiro.Kuwano@infineon.com
    Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 50f54a48f6782a2ec4ba430c6feeb5c6091945e6
Author: Tanmay Shah <tanmay.shah@amd.com>
Date:   Fri Mar 10 17:24:04 2023 -0800

    mailbox: zynqmp: Fix counts of child nodes
    
    [ Upstream commit f72f805e72882c361e2a612c64a6e549f3da7152 ]
    
    If child mailbox node status is disabled it causes
    crash in interrupt handler. Fix this by assigning
    only available child node during driver probe.
    
    Fixes: 4981b82ba2ff ("mailbox: ZynqMP IPI mailbox controller")
    Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
    Acked-by: Michal Simek <michal.simek@amd.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20230311012407.1292118-2-tanmay.shah@amd.com
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e63a796b852fe72912db7ad98889a121fe19dd2c
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Nov 20 09:25:54 2022 +0100

    mailbox: zynq: Switch to flexible array to simplify code
    
    [ Upstream commit 043f85ce81cb1714e14d31c322c5646513dde3fb ]
    
    Using flexible array is more straight forward. It
      - saves 1 pointer in the 'zynqmp_ipi_pdata' structure
      - saves an indirection when using this array
      - saves some LoC and avoids some always spurious pointer arithmetic
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
    Stable-dep-of: f72f805e7288 ("mailbox: zynqmp: Fix counts of child nodes")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b12078b67a6d4f2231726ac5ad2c2404340301a6
Author: Manivannan Sadhasivam <mani@kernel.org>
Date:   Tue Mar 14 13:34:43 2023 +0530

    soc: qcom: llcc: Do not create EDAC platform device on SDM845
    
    [ Upstream commit cca94f1dd6d0a4c7e5c8190672f5747e3c00ddde ]
    
    The platforms based on SDM845 SoC locks the access to EDAC registers in the
    bootloader. So probing the EDAC driver will result in a crash. Hence,
    disable the creation of EDAC platform device on all SDM845 devices.
    
    The issue has been observed on Lenovo Yoga C630 and DB845c.
    
    While at it, also sort the members of `struct qcom_llcc_config` to avoid
    any holes in-between.
    
    Cc: <stable@vger.kernel.org> # 5.10
    Reported-by: Steev Klimaszewski <steev@kali.org>
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230314080443.64635-15-manivannan.sadhasivam@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf9712195f5e14e5514ae7686f042e5981ece16b
Author: Manivannan Sadhasivam <mani@kernel.org>
Date:   Tue Mar 14 13:34:42 2023 +0530

    qcom: llcc/edac: Support polling mode for ECC handling
    
    [ Upstream commit 721d3e91bfc93975c5e1a76c7d588dd8df5d82da ]
    
    Not all Qcom platforms support IRQ mode for ECC handling. For those
    platforms, the current EDAC driver will not be probed due to missing ECC
    IRQ in devicetree.
    
    So add support for polling mode so that the EDAC driver can be used on all
    Qcom platforms supporting LLCC.
    
    The polling delay of 5000ms is chosen based on Qcom downstream/vendor
    driver.
    
    Reported-by: Luca Weiss <luca.weiss@fairphone.com>
    Tested-by: Luca Weiss <luca.weiss@fairphone.com>
    Tested-by: Steev Klimaszewski <steev@kali.org> # Thinkpad X13s
    Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8540p-ride
    Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20230314080443.64635-14-manivannan.sadhasivam@linaro.org
    Stable-dep-of: cca94f1dd6d0 ("soc: qcom: llcc: Do not create EDAC platform device on SDM845")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fdb257b2a4c6dc1e2708ef5e00ebd78637bd20c
Author: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Date:   Thu Apr 6 15:17:44 2023 +0900

    mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash
    
    [ Upstream commit 9fd0945fe6fadfb6b54a9cd73be101c02b3e8134 ]
    
    Infineon(Cypress) SEMPER NOR flash family has on-die ECC and its program
    granularity is 16-byte ECC data unit size. JFFS2 supports write buffer
    mode for ECC'd NOR flash. Provide a way to clear the MTD_BIT_WRITEABLE
    flag in order to enable JFFS2 write buffer mode support.
    
    A new SNOR_F_ECC flag is introduced to determine if the part has on-die
    ECC and if it has, MTD_BIT_WRITEABLE is unset.
    
    In vendor specific driver, a common cypress_nor_ecc_init() helper is
    added. This helper takes care for ECC related initialization for SEMPER
    flash family by setting up params->writesize and SNOR_F_ECC.
    
    Fixes: c3266af101f2 ("mtd: spi-nor: spansion: add support for Cypress Semper flash")
    Suggested-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/d586723f6f12aaff44fbcd7b51e674b47ed554ed.1680760742.git.Takahiro.Kuwano@infineon.com
    Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8630dfcdab0d70e93dec9c96f0f5cadf1ab579ca
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date:   Tue Mar 28 17:41:03 2023 +0200

    mtd: spi-nor: Add a RWW flag
    
    [ Upstream commit 4eddee70140b3ae183398b246a609756546c51f1 ]
    
    Introduce a new (no SFDP) flag for the feature that we are about to
    support: Read While Write. This means, if the chip has several banks and
    supports RWW, once a page of data to write has been transferred into the
    chip's internal SRAM, another read operation happening on a different
    bank can be performed during the tPROG delay.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/r/20230328154105.448540-7-miquel.raynal@bootlin.com
    Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Stable-dep-of: 9fd0945fe6fa ("mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 897a40dbcf1ebf1d06fef729bea08bbadf1198d3
Author: Sudip Mukherjee <sudip.mukherjee@sifive.com>
Date:   Tue Sep 20 19:48:08 2022 +0100

    mtd: spi-nor: add SFDP fixups for Quad Page Program
    
    [ Upstream commit 1799cd8540b67b88514c82f5fae1c75b986bcbd8 ]
    
    SFDP table of some flash chips do not advertise support of Quad Input
    Page Program even though it has support. Use flags and add hardware
    cap for these chips.
    
    Signed-off-by: Sudip Mukherjee <sudip.mukherjee@sifive.com>
    [tudor.ambarus@microchip.com: move pp setting in spi_nor_init_default_params]
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Link: https://lore.kernel.org/r/20220920184808.44876-2-sudip.mukherjee@sifive.com
    Stable-dep-of: 9fd0945fe6fa ("mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de26d26f5519b1a26bd7b0d5da0eafbd914e55be
Author: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Date:   Wed Aug 31 13:59:04 2022 +0900

    mtd: spi-nor: spansion: Remove NO_SFDP_FLAGS from s28hs512t info
    
    [ Upstream commit db391efe765cc6cfc0ffc8d8ef146dc8e6816a7e ]
    
    Read, Page Program, and Sector Erase settings are done in SFDP so we can
    remove NO_SFDP_FLAGS from s28hs512t info. Since the default_init() is no
    longer called after removing NO_SFDP_FLAGS, the initialization in the
    default_init() is moved to late_init().
    
    Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Link: https://lore.kernel.org/r/12e468992f5d0cbd474abff3203100cc8163d4e5.1661915569.git.Takahiro.Kuwano@infineon.com
    Stable-dep-of: 9fd0945fe6fa ("mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b951d4924c506d79c830a58ba8dae216e2147702
Author: Sean Christopherson <seanjc@google.com>
Date:   Sat Jan 28 00:14:27 2023 +0000

    KVM: x86/pmu: Disallow legacy LBRs if architectural LBRs are available
    
    [ Upstream commit 098f4c061ea10b777033b71c10bd9fd706820ee9 ]
    
    Disallow enabling LBR support if the CPU supports architectural LBRs.
    Traditional LBR support is absent on CPU models that have architectural
    LBRs, and KVM doesn't yet support arch LBRs, i.e. KVM will pass through
    non-existent MSRs if userspace enables LBRs for the guest.
    
    Cc: stable@vger.kernel.org
    Cc: Yang Weijiang <weijiang.yang@intel.com>
    Cc: Like Xu <like.xu.linux@gmail.com>
    Reported-by: Paolo Bonzini <pbonzini@redhat.com>
    Fixes: be635e34c284 ("KVM: vmx/pmu: Expose LBR_FMT in the MSR_IA32_PERF_CAPABILITIES")
    Tested-by: Like Xu <likexu@tencent.com>
    Link: https://lore.kernel.org/r/20230128001427.2548858-1-seanjc@google.com
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 189cdd8fe7c6266ec5a220a0ef1cc4cfdd148d08
Author: Sean Christopherson <seanjc@google.com>
Date:   Thu Oct 6 00:03:11 2022 +0000

    KVM: x86: Track supported PERF_CAPABILITIES in kvm_caps
    
    [ Upstream commit bec46859fb9d797a21c983100b1f425bebe89747 ]
    
    Track KVM's supported PERF_CAPABILITIES in kvm_caps instead of computing
    the supported capabilities on the fly every time.  Using kvm_caps will
    also allow for future cleanups as the kvm_caps values can be used
    directly in common x86 code.
    
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Acked-by: Like Xu <likexu@tencent.com>
    Message-Id: <20221006000314.73240-6-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Stable-dep-of: 098f4c061ea1 ("KVM: x86/pmu: Disallow legacy LBRs if architectural LBRs are available")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0457b6d04fb7f80cb3c55057dfdf5b31848b0cc9
Author: Sean Christopherson <seanjc@google.com>
Date:   Thu Oct 6 00:03:07 2022 +0000

    perf/x86/core: Zero @lbr instead of returning -1 in x86_perf_get_lbr() stub
    
    [ Upstream commit 0b9ca98b722969660ad98b39f766a561ccb39f5f ]
    
    Drop the return value from x86_perf_get_lbr() and have the stub zero out
    the @lbr structure instead of returning -1 to indicate "no LBR support".
    KVM doesn't actually check the return value, and instead subtly relies on
    zeroing the number of LBRs in intel_pmu_init().
    
    Formalize "nr=0 means unsupported" so that KVM doesn't need to add a
    pointless check on the return value to fix KVM's benign bug.
    
    Note, the stub is necessary even though KVM x86 selects PERF_EVENTS and
    the caller exists only when CONFIG_KVM_INTEL=y.  Despite the name,
    KVM_INTEL doesn't strictly require CPU_SUP_INTEL, it can be built with
    any of INTEL || CENTAUR || ZHAOXIN CPUs.
    
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Message-Id: <20221006000314.73240-2-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Stable-dep-of: 098f4c061ea1 ("KVM: x86/pmu: Disallow legacy LBRs if architectural LBRs are available")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9239f895a85485a8e4765d1a6fd1cff6a66e4893
Author: Jeremi Piotrowski <jpiotrowski@linux.microsoft.com>
Date:   Tue Mar 28 15:16:36 2023 +0000

    crypto: ccp - Clear PSP interrupt status register before calling handler
    
    [ Upstream commit 45121ad4a1750ca47ce3f32bd434bdb0cdbf0043 ]
    
    The PSP IRQ is edge-triggered (MSI or MSI-X) in all cases supported by
    the psp module so clear the interrupt status register early in the
    handler to prevent missed interrupts. sev_irq_handler() calls wake_up()
    on a wait queue, which can result in a new command being submitted from
    a different CPU. This then races with the clearing of isr and can result
    in missed interrupts. A missed interrupt results in a command waiting
    until it times out, which results in the psp being declared dead.
    
    This is unlikely on bare metal, but has been observed when running
    virtualized. In the cases where this is observed, sev->cmdresp_reg has
    PSP_CMDRESP_RESP set which indicates that the command was processed
    correctly but no interrupt was asserted.
    
    The full sequence of events looks like this:
    
    CPU 1: submits SEV cmd #1
    CPU 1: calls wait_event_timeout()
    CPU 0: enters psp_irq_handler()
    CPU 0: calls sev_handler()->wake_up()
    CPU 1: wakes up; finishes processing cmd #1
    CPU 1: submits SEV cmd #2
    CPU 1: calls wait_event_timeout()
    PSP:   finishes processing cmd #2; interrupt status is still set; no interrupt
    CPU 0: clears intsts
    CPU 0: exits psp_irq_handler()
    CPU 1: wait_event_timeout() times out; psp_dead=true
    
    Fixes: 200664d5237f ("crypto: ccp: Add Secure Encrypted Virtualization (SEV) command support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jeremi Piotrowski <jpiotrowski@linux.microsoft.com>
    Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit add662775df4198dc9b1e6a96eafce10a6e65404
Author: Martin Krastev <krastevm@vmware.com>
Date:   Mon Mar 20 22:09:49 2023 -0400

    drm/vmwgfx: Fix Legacy Display Unit atomic drm support
    
    [ Upstream commit a37a512db3fa1b65fe9087003e5b2072cefb3667 ]
    
    Legacy Display Unit (LDU) fb dirty support used a custom fb dirty callback. Latter
    handled only the DIRTYFB IOCTL presentation path but not the ADDFB2/PAGE_FLIP/RMFB
    IOCTL path, common for Wayland compositors.
    
    Get rid of the custom callback in favor of drm_atomic_helper_dirtyfb and unify the
    handling of the presentation paths inside of vmw_ldu_primary_plane_atomic_update.
    This also homogenizes the fb dirty callbacks across all DUs: LDU, SOU and STDU.
    
    Signed-off-by: Martin Krastev <krastevm@vmware.com>
    Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com>
    Fixes: 2f5544ff0300 ("drm/vmwgfx: Use atomic helper function for dirty fb IOCTL")
    Cc: <stable@vger.kernel.org> # v5.0+
    Signed-off-by: Zack Rusin <zackr@vmware.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230321020949.335012-3-zack@kde.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3204cb3e0ad7e66db2477550a9b4b827841c3b1
Author: Zack Rusin <zackr@vmware.com>
Date:   Sat Oct 22 00:02:33 2022 -0400

    drm/vmwgfx: Remove explicit and broken vblank handling
    
    [ Upstream commit 2e10cdc6e85de5998b0b140deff01765ceb92f64 ]
    
    The explicit vblank handling was never finished. The driver never had
    the full implementation of vblank and what was there is emulated
    by DRM when the driver doesn't pretend to be implementing it itself.
    
    Let DRM handle the vblank emulation and stop pretending the driver is
    doing anything special with vblank. In the future it would make sense
    to implement helpers for full vblank handling because vkms and
    amdgpu_vkms already have that code. Exporting it to common helpers and
    having all three drivers share it would make sense (that would be largely
    just to allow more of igt to run).
    
    Signed-off-by: Zack Rusin <zackr@vmware.com>
    Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com>
    Reviewed-by: Martin Krastev <krastevm@vmware.com>
    Reviewed-by: Michael Banack <banackm@vmware.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221022040236.616490-15-zack@kde.org
    Stable-dep-of: a37a512db3fa ("drm/vmwgfx: Fix Legacy Display Unit atomic drm support")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c613c951e6869b9bdac001ffb8b6e98a039ee17b
Author: Wesley Cheng <quic_wcheng@quicinc.com>
Date:   Thu Apr 20 14:27:58 2023 -0700

    usb: dwc3: gadget: Execute gadget stop after halting the controller
    
    [ Upstream commit 39674be56fba1cd3a03bf4617f523a35f85fd2c1 ]
    
    Do not call gadget stop until the poll for controller halt is
    completed.  DEVTEN is cleared as part of gadget stop, so the intention to
    allow ep0 events to continue while waiting for controller halt is not
    happening.
    
    Fixes: c96683798e27 ("usb: dwc3: ep0: Don't prepare beyond Setup stage")
    Cc: stable@vger.kernel.org
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
    Link: https://lore.kernel.org/r/20230420212759.29429-2-quic_wcheng@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 065c3d4319c54d58861d921f422d0a4806b51fed
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Tue Apr 4 09:25:17 2023 +0200

    USB: dwc3: gadget: drop dead hibernation code
    
    [ Upstream commit bdb19d01026a5cccfa437be8adcf2df472c5889e ]
    
    The hibernation code is broken and has never been enabled in mainline
    and should thus be dropped.
    
    Remove the hibernation bits from the gadget code, which effectively
    reverts commits e1dadd3b0f27 ("usb: dwc3: workaround: bogus hibernation
    events") and 7b2a0368bbc9 ("usb: dwc3: gadget: set KEEP_CONNECT in case
    of hibernation") except for the spurious interrupt warning.
    
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20230404072524.19014-5-johan+linaro@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 39674be56fba ("usb: dwc3: gadget: Execute gadget stop after halting the controller")
    Signed-off-by: Sasha Levin <sashal@kernel.org>