Список изменений в Linux 5.4.277

 
arm64: dts: qcom: Fix 'interrupt-map' parent address cells [+ + +]
Author: Rob Herring <[email protected]>
Date:   Tue Sep 28 14:22:09 2021 -0500

    arm64: dts: qcom: Fix 'interrupt-map' parent address cells
    
    commit 0ac10b291bee84b00bf9fb2afda444e77e7f88f4 upstream.
    
    The 'interrupt-map' in several QCom SoCs is malformed. The '#address-cells'
    size of the parent interrupt controller (the GIC) is not accounted for.
    
    Cc: Andy Gross <[email protected]>
    Cc: Bjorn Andersson <[email protected]>
    Cc: [email protected]
    Signed-off-by: Rob Herring <[email protected]>
    Signed-off-by: Bjorn Andersson <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Alex Elder <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks() [+ + +]
Author: Dominique Martinet <[email protected]>
Date:   Fri Apr 19 11:22:48 2024 +0900

    btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks()
    
    commit 9af503d91298c3f2945e73703f0e00995be08c30 upstream.
    
    The previous patch that replaced BUG_ON by error handling forgot to
    unlock the mutex in the error path.
    
    Link: https://lore.kernel.org/all/Zh%[email protected]
    Reported-by: Pavel Machek <[email protected]>
    Fixes: 7411055db5ce ("btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks()")
    CC: [email protected]
    Reviewed-by: Pavel Machek <[email protected]>
    Signed-off-by: Dominique Martinet <[email protected]>
    Reviewed-by: David Sterba <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Dominique Martinet <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
docs: kernel_include.py: Cope with docutils 0.21 [+ + +]
Author: Akira Yokosawa <[email protected]>
Date:   Wed May 1 12:16:11 2024 +0900

    docs: kernel_include.py: Cope with docutils 0.21
    
    commit d43ddd5c91802a46354fa4c4381416ef760676e2 upstream.
    
    Running "make htmldocs" on a newly installed Sphinx 7.3.7 ends up in
    a build error:
    
        Sphinx parallel build error:
        AttributeError: module 'docutils.nodes' has no attribute 'reprunicode'
    
    docutils 0.21 has removed nodes.reprunicode, quote from release note [1]:
    
      * Removed objects:
    
        docutils.nodes.reprunicode, docutils.nodes.ensure_str()
            Python 2 compatibility hacks
    
    Sphinx 7.3.0 supports docutils 0.21 [2]:
    
    kernel_include.py, whose origin is misc.py of docutils, uses reprunicode.
    
    Upstream docutils removed the offending line from the corresponding file
    (docutils/docutils/parsers/rst/directives/misc.py) in January 2022.
    Quoting the changelog [3]:
    
        Deprecate `nodes.reprunicode` and `nodes.ensure_str()`.
    
        Drop uses of the deprecated constructs (not required with Python 3).
    
    Do the same for kernel_include.py.
    
    Tested against:
      - Sphinx 2.4.5 (docutils 0.17.1)
      - Sphinx 3.4.3 (docutils 0.17.1)
      - Sphinx 5.3.0 (docutils 0.18.1)
      - Sphinx 6.2.1 (docutils 0.19)
      - Sphinx 7.2.6 (docutils 0.20.1)
      - Sphinx 7.3.7 (docutils 0.21.2)
    
    Link: http://www.docutils.org/RELEASE-NOTES.html#release-0-21-2024-04-09 [1]
    Link: https://www.sphinx-doc.org/en/master/changes.html#release-7-3-0-released-apr-16-2024 [2]
    Link: https://github.com/docutils/docutils/commit/c8471ce47a24 [3]
    Signed-off-by: Akira Yokosawa <[email protected]>
    Cc: [email protected]
    Signed-off-by: Jonathan Corbet <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drm/amdgpu: Fix possible NULL dereference in amdgpu_ras_query_error_status_helper() [+ + +]
Author: Srinivasan Shanmugam <[email protected]>
Date:   Tue Dec 26 15:32:19 2023 +0530

    drm/amdgpu: Fix possible NULL dereference in amdgpu_ras_query_error_status_helper()
    
    commit b8d55a90fd55b767c25687747e2b24abd1ef8680 upstream.
    
    Return invalid error code -EINVAL for invalid block id.
    
    Fixes the below:
    
    drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:1183 amdgpu_ras_query_error_status_helper() error: we previously assumed 'info' could be null (see line 1176)
    
    Suggested-by: Hawking Zhang <[email protected]>
    Cc: Tao Zhou <[email protected]>
    Cc: Hawking Zhang <[email protected]>
    Cc: Christian Kц╤nig <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Signed-off-by: Srinivasan Shanmugam <[email protected]>
    Reviewed-by: Hawking Zhang <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    [Ajay: applied AMDGPU_RAS_BLOCK_COUNT condition to amdgpu_ras_error_query()
           as amdgpu_ras_query_error_status_helper() not present in v5.10, v5.4
           amdgpu_ras_query_error_status_helper() was introduced in 8cc0f5669eb6]
    Signed-off-by: Ajay Kaher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
ext4: fix bug_on in __es_tree_search [+ + +]
Author: Baokun Li <[email protected]>
Date:   Wed May 18 20:08:16 2022 +0800

    ext4: fix bug_on in __es_tree_search
    
    commit d36f6ed761b53933b0b4126486c10d3da7751e7f upstream.
    
    Hulk Robot reported a BUG_ON:
    ==================================================================
    kernel BUG at fs/ext4/extents_status.c:199!
    [...]
    RIP: 0010:ext4_es_end fs/ext4/extents_status.c:199 [inline]
    RIP: 0010:__es_tree_search+0x1e0/0x260 fs/ext4/extents_status.c:217
    [...]
    Call Trace:
     ext4_es_cache_extent+0x109/0x340 fs/ext4/extents_status.c:766
     ext4_cache_extents+0x239/0x2e0 fs/ext4/extents.c:561
     ext4_find_extent+0x6b7/0xa20 fs/ext4/extents.c:964
     ext4_ext_map_blocks+0x16b/0x4b70 fs/ext4/extents.c:4384
     ext4_map_blocks+0xe26/0x19f0 fs/ext4/inode.c:567
     ext4_getblk+0x320/0x4c0 fs/ext4/inode.c:980
     ext4_bread+0x2d/0x170 fs/ext4/inode.c:1031
     ext4_quota_read+0x248/0x320 fs/ext4/super.c:6257
     v2_read_header+0x78/0x110 fs/quota/quota_v2.c:63
     v2_check_quota_file+0x76/0x230 fs/quota/quota_v2.c:82
     vfs_load_quota_inode+0x5d1/0x1530 fs/quota/dquot.c:2368
     dquot_enable+0x28a/0x330 fs/quota/dquot.c:2490
     ext4_quota_enable fs/ext4/super.c:6137 [inline]
     ext4_enable_quotas+0x5d7/0x960 fs/ext4/super.c:6163
     ext4_fill_super+0xa7c9/0xdc00 fs/ext4/super.c:4754
     mount_bdev+0x2e9/0x3b0 fs/super.c:1158
     mount_fs+0x4b/0x1e4 fs/super.c:1261
    [...]
    ==================================================================
    
    Above issue may happen as follows:
    -------------------------------------
    ext4_fill_super
     ext4_enable_quotas
      ext4_quota_enable
       ext4_iget
        __ext4_iget
         ext4_ext_check_inode
          ext4_ext_check
           __ext4_ext_check
            ext4_valid_extent_entries
             Check for overlapping extents does't take effect
       dquot_enable
        vfs_load_quota_inode
         v2_check_quota_file
          v2_read_header
           ext4_quota_read
            ext4_bread
             ext4_getblk
              ext4_map_blocks
               ext4_ext_map_blocks
                ext4_find_extent
                 ext4_cache_extents
                  ext4_es_cache_extent
                   ext4_es_cache_extent
                    __es_tree_search
                     ext4_es_end
                      BUG_ON(es->es_lblk + es->es_len < es->es_lblk)
    
    The error ext4 extents is as follows:
    0af3 0300 0400 0000 00000000    extent_header
    00000000 0100 0000 12000000     extent1
    00000000 0100 0000 18000000     extent2
    02000000 0400 0000 14000000     extent3
    
    In the ext4_valid_extent_entries function,
    if prev is 0, no error is returned even if lblock<=prev.
    This was intended to skip the check on the first extent, but
    in the error image above, prev=0+1-1=0 when checking the second extent,
    so even though lblock<=prev, the function does not return an error.
    As a result, bug_ON occurs in __es_tree_search and the system panics.
    
    To solve this problem, we only need to check that:
    1. The lblock of the first extent is not less than 0.
    2. The lblock of the next extent  is not less than
       the next block of the previous extent.
    The same applies to extent_idx.
    
    Cc: [email protected]
    Fixes: 5946d089379a ("ext4: check for overlapping extents in ext4_valid_extent_entries()")
    Reported-by: Hulk Robot <[email protected]>
    Signed-off-by: Baokun Li <[email protected]>
    Reviewed-by: Jan Kara <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Theodore Ts'o <[email protected]>
    Reported-by: [email protected]
    [gpiccoli: Manual backport due to unrelated missing patches.]
    Signed-off-by: Guilherme G. Piccoli <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
firmware: arm_scmi: Harden accesses to the reset domains [+ + +]
Author: Cristian Marussi <[email protected]>
Date:   Wed Aug 17 18:27:29 2022 +0100

    firmware: arm_scmi: Harden accesses to the reset domains
    
    commit e9076ffbcaed5da6c182b144ef9f6e24554af268 upstream.
    
    Accessing reset domains descriptors by the index upon the SCMI drivers
    requests through the SCMI reset operations interface can potentially
    lead to out-of-bound violations if the SCMI driver misbehave.
    
    Add an internal consistency check before any such domains descriptors
    accesses.
    
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Cristian Marussi <[email protected]>
    Signed-off-by: Sudeep Holla <[email protected]>
    Signed-off-by: Dominique Martinet <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Linux: Linux 5.4.277 [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Sat May 25 16:17:18 2024 +0200

    Linux 5.4.277
    
    Link: https://lore.kernel.org/r/[email protected]
    Tested-by: Florian Fainelli <[email protected]>
    Tested-by: Mark Brown <[email protected]>
    Tested-by: Harshit Mogalapalli <[email protected]>
    Tested-by: Linux Kernel Functional Testing <[email protected]>
    Tested-by: Jon Hunter <[email protected]>
    Tested-by: Shuah Khan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
net: bcmgenet: keep MAC in reset until PHY is up [+ + +]
Author: Doug Berger <[email protected]>
Date:   Mon Mar 16 14:44:56 2020 -0700

    net: bcmgenet: keep MAC in reset until PHY is up
    
    commit 88f6c8bf1aaed5039923fb4c701cab4d42176275 upstream.
    
    As noted in commit 28c2d1a7a0bf ("net: bcmgenet: enable loopback
    during UniMAC sw_reset") the UniMAC must be clocked at least 5
    cycles while the sw_reset is asserted to ensure a clean reset.
    
    That commit enabled local loopback to provide an Rx clock from the
    GENET sourced Tx clk. However, when connected in MII mode the Tx
    clk is sourced by the PHY so if an EPHY is not supplying clocks
    (e.g. when the link is down) the UniMAC does not receive the
    necessary clocks.
    
    This commit extends the sw_reset window until the PHY reports that
    the link is up thereby ensuring that the clocks are being provided
    to the MAC to produce a clean reset.
    
    One consequence is that if the system attempts to enter a Wake on
    LAN suspend state when the PHY link has not been active the MAC
    may not have had a chance to initialize cleanly. In this case, we
    remove the sw_reset and enable the WoL reception path as normal
    with the hope that the PHY will provide the necessary clocks to
    drive the WoL blocks if the link becomes active after the system
    has entered suspend.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Doug Berger <[email protected]>
    Acked-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

net: bcmgenet: synchronize EXT_RGMII_OOB_CTRL access [+ + +]
Author: Doug Berger <[email protected]>
Date:   Thu Apr 25 15:27:19 2024 -0700

    net: bcmgenet: synchronize EXT_RGMII_OOB_CTRL access
    
    commit d85cf67a339685beae1d0aee27b7f61da95455be upstream.
    
    The EXT_RGMII_OOB_CTRL register can be written from different
    contexts. It is predominantly written from the adjust_link
    handler which is synchronized by the phydev->lock, but can
    also be written from a different context when configuring the
    mii in bcmgenet_mii_config().
    
    The chances of contention are quite low, but it is conceivable
    that adjust_link could occur during resume when WoL is enabled
    so use the phydev->lock synchronizer in bcmgenet_mii_config()
    to be sure.
    
    Fixes: afe3f907d20f ("net: bcmgenet: power on MII block for all MII modes")
    Cc: [email protected]
    Signed-off-by: Doug Berger <[email protected]>
    Acked-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

net: bcmgenet: synchronize UMAC_CMD access [+ + +]
Author: Doug Berger <[email protected]>
Date:   Thu Apr 25 15:27:21 2024 -0700

    net: bcmgenet: synchronize UMAC_CMD access
    
    commit 0d5e2a82232605b337972fb2c7d0cbc46898aca1 upstream.
    
    The UMAC_CMD register is written from different execution
    contexts and has insufficient synchronization protections to
    prevent possible corruption. Of particular concern are the
    acceses from the phy_device delayed work context used by the
    adjust_link call and the BH context that may be used by the
    ndo_set_rx_mode call.
    
    A spinlock is added to the driver to protect contended register
    accesses (i.e. reg_lock) and it is used to synchronize accesses
    to UMAC_CMD.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Cc: [email protected]
    Signed-off-by: Doug Berger <[email protected]>
    Acked-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

net: bcmgenet: synchronize use of bcmgenet_set_rx_mode() [+ + +]
Author: Doug Berger <[email protected]>
Date:   Thu Apr 25 15:27:20 2024 -0700

    net: bcmgenet: synchronize use of bcmgenet_set_rx_mode()
    
    commit 2dbe5f19368caae63b1f59f5bc2af78c7d522b3a upstream.
    
    The ndo_set_rx_mode function is synchronized with the
    netif_addr_lock spinlock and BHs disabled. Since this
    function is also invoked directly from the driver the
    same synchronization should be applied.
    
    Fixes: 72f96347628e ("net: bcmgenet: set Rx mode before starting netif")
    Cc: [email protected]
    Signed-off-by: Doug Berger <[email protected]>
    Acked-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
pinctrl: core: handle radix_tree_insert() errors in pinctrl_register_one_pin() [+ + +]
Author: Sergey Shtylyov <[email protected]>
Date:   Wed Jul 19 23:22:52 2023 +0300

    pinctrl: core: handle radix_tree_insert() errors in pinctrl_register_one_pin()
    
    commit ecfe9a015d3e1e46504d5b3de7eef1f2d186194a upstream.
    
    pinctrl_register_one_pin() doesn't check the result of radix_tree_insert()
    despite they both may return a negative error code.  Linus Walleij said he
    has copied the radix tree code from kernel/irq/ where the functions calling
    radix_tree_insert() are *void* themselves; I think it makes more sense to
    propagate the errors from radix_tree_insert() upstream if we can do that...
    
    Found by Linux Verification Center (linuxtesting.org) with the Svace static
    analysis tool.
    
    Signed-off-by: Sergey Shtylyov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Linus Walleij <[email protected]>
    Cc: "Hemdan, Hagar Gamal Halim" <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
 
Revert "net: bcmgenet: use RGMII loopback for MAC reset" [+ + +]
Author: Doug Berger <[email protected]>
Date:   Mon Mar 16 14:44:55 2020 -0700

    Revert "net: bcmgenet: use RGMII loopback for MAC reset"
    
    commit 612eb1c3b9e504de24136c947ed7c07bc342f3aa upstream.
    
    This reverts commit 3a55402c93877d291b0a612d25edb03d1b4b93ac.
    
    This is not a good solution when connecting to an external switch
    that may not support the isolation of the TXC signal resulting in
    output driver contention on the pin.
    
    A different solution is necessary.
    
    Signed-off-by: Doug Berger <[email protected]>
    Acked-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    [Adjusted to accommodate lack of commit 4f8d81b77e66]
    Signed-off-by: Doug Berger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems" [+ + +]
Author: Harshit Mogalapalli <[email protected]>
Date:   Mon May 6 01:50:44 2024 -0700

    Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems"
    
    This reverts commit 47c68edecca26f0e29b25d26500afd62279951b0 which is
    commit 91b80cc5b39f00399e8e2d17527cad2c7fa535e2 upstream.
    
    map_hugetlb.c:18:10: fatal error: vm_util.h: No such file or directory
       18 | #include "vm_util.h"
          |          ^~~~~~~~~~~
    compilation terminated.
    
    vm_util.h is not present in 5.4.y, as commit:642bc52aed9c ("selftests:
    vm: bring common functions to a new file") is not present in stable
    kernels <=6.1.y
    
    Signed-off-by: Harshit Mogalapalli <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
serial: kgdboc: Fix NMI-safety problems from keyboard reset code [+ + +]
Author: Daniel Thompson <[email protected]>
Date:   Wed Apr 24 15:21:41 2024 +0100

    serial: kgdboc: Fix NMI-safety problems from keyboard reset code
    
    commit b2aba15ad6f908d1a620fd97f6af5620c3639742 upstream.
    
    Currently, when kdb is compiled with keyboard support, then we will use
    schedule_work() to provoke reset of the keyboard status.  Unfortunately
    schedule_work() gets called from the kgdboc post-debug-exception
    handler.  That risks deadlock since schedule_work() is not NMI-safe and,
    even on platforms where the NMI is not directly used for debugging, the
    debug trap can have NMI-like behaviour depending on where breakpoints
    are placed.
    
    Fix this by using the irq work system, which is NMI-safe, to defer the
    call to schedule_work() to a point when it is safe to call.
    
    Reported-by: Liuye <[email protected]>
    Closes: https://lore.kernel.org/all/[email protected]/
    Cc: [email protected]
    Reviewed-by: Douglas Anderson <[email protected]>
    Acked-by: Greg Kroah-Hartman <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Daniel Thompson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
smb: client: fix potential OOBs in smb2_parse_contexts() [+ + +]
Author: Paulo Alcantara <[email protected]>
Date:   Mon Dec 11 10:26:41 2023 -0300

    smb: client: fix potential OOBs in smb2_parse_contexts()
    
    commit af1689a9b7701d9907dfc84d2a4b57c4bc907144 upstream.
    
    Validate offsets and lengths before dereferencing create contexts in
    smb2_parse_contexts().
    
    This fixes following oops when accessing invalid create contexts from
    server:
    
      BUG: unable to handle page fault for address: ffff8881178d8cc3
      #PF: supervisor read access in kernel mode
      #PF: error_code(0x0000) - not-present page
      PGD 4a01067 P4D 4a01067 PUD 0
      Oops: 0000 [#1] PREEMPT SMP NOPTI
      CPU: 3 PID: 1736 Comm: mount.cifs Not tainted 6.7.0-rc4 #1
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
      rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014
      RIP: 0010:smb2_parse_contexts+0xa0/0x3a0 [cifs]
      Code: f8 10 75 13 48 b8 93 ad 25 50 9c b4 11 e7 49 39 06 0f 84 d2 00
      00 00 8b 45 00 85 c0 74 61 41 29 c5 48 01 c5 41 83 fd 0f 76 55 <0f> b7
      7d 04 0f b7 45 06 4c 8d 74 3d 00 66 83 f8 04 75 bc ba 04 00
      RSP: 0018:ffffc900007939e0 EFLAGS: 00010216
      RAX: ffffc90000793c78 RBX: ffff8880180cc000 RCX: ffffc90000793c90
      RDX: ffffc90000793cc0 RSI: ffff8880178d8cc0 RDI: ffff8880180cc000
      RBP: ffff8881178d8cbf R08: ffffc90000793c22 R09: 0000000000000000
      R10: ffff8880180cc000 R11: 0000000000000024 R12: 0000000000000000
      R13: 0000000000000020 R14: 0000000000000000 R15: ffffc90000793c22
      FS: 00007f873753cbc0(0000) GS:ffff88806bc00000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff8881178d8cc3 CR3: 00000000181ca000 CR4: 0000000000750ef0
      PKRU: 55555554
      Call Trace:
       <TASK>
       ? __die+0x23/0x70
       ? page_fault_oops+0x181/0x480
       ? search_module_extables+0x19/0x60
       ? srso_alias_return_thunk+0x5/0xfbef5
       ? exc_page_fault+0x1b6/0x1c0
       ? asm_exc_page_fault+0x26/0x30
       ? smb2_parse_contexts+0xa0/0x3a0 [cifs]
       SMB2_open+0x38d/0x5f0 [cifs]
       ? smb2_is_path_accessible+0x138/0x260 [cifs]
       smb2_is_path_accessible+0x138/0x260 [cifs]
       cifs_is_path_remote+0x8d/0x230 [cifs]
       cifs_mount+0x7e/0x350 [cifs]
       cifs_smb3_do_mount+0x128/0x780 [cifs]
       smb3_get_tree+0xd9/0x290 [cifs]
       vfs_get_tree+0x2c/0x100
       ? capable+0x37/0x70
       path_mount+0x2d7/0xb80
       ? srso_alias_return_thunk+0x5/0xfbef5
       ? _raw_spin_unlock_irqrestore+0x44/0x60
       __x64_sys_mount+0x11a/0x150
       do_syscall_64+0x47/0xf0
       entry_SYSCALL_64_after_hwframe+0x6f/0x77
      RIP: 0033:0x7f8737657b1e
    
    Reported-by: Robert Morris <[email protected]>
    Cc: [email protected]
    Signed-off-by: Paulo Alcantara (SUSE) <[email protected]>
    Signed-off-by: Steve French <[email protected]>
    [Guru: Removed changes to cached_dir.c and checking return value
    of smb2_parse_contexts in smb2ops.c]
    Signed-off-by: Guruswamy Basavaiah <[email protected]>
    [v5.4: Fixed merge-conflicts in smb2_parse_contexts for
    missing parameter POSIX response]
    Signed-off-by: Shaoying Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
usb: typec: ucsi: displayport: Fix potential deadlock [+ + +]
Author: Heikki Krogerus <[email protected]>
Date:   Tue May 7 16:43:16 2024 +0300

    usb: typec: ucsi: displayport: Fix potential deadlock
    
    commit b791a67f68121d69108640d4a3e591d210ffe850 upstream.
    
    The function ucsi_displayport_work() does not access the
    connector, so it also must not acquire the connector lock.
    
    This fixes a potential deadlock scenario:
    
    ucsi_displayport_work() -> lock(&con->lock)
    typec_altmode_vdm()
    dp_altmode_vdm()
    dp_altmode_work()
    typec_altmode_enter()
    ucsi_displayport_enter() -> lock(&con->lock)
    
    Reported-by: Mathias Nyman <[email protected]>
    Fixes: af8622f6a585 ("usb: typec: ucsi: Support for DisplayPort alt mode")
    Cc: [email protected]
    Signed-off-by: Heikki Krogerus <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>