Changelog in Linux kernel 7.1.2

 
agp/amd64: Fix broken error propagation in agp_amd64_probe() [+ + +]
Author: Mingyu Wang <[email protected]>
Date:   Mon May 4 15:48:23 2026 +0800

    agp/amd64: Fix broken error propagation in agp_amd64_probe()
    
    commit b08472db93b1ccff84a7adec5779d47f0e9d3a30 upstream.
    
    A NULL pointer dereference was observed in the AMD64 AGP driver when
    running in a virtualized environment (e.g. qemu/kvm) without a physical
    AMD northbridge. The crash occurs in amd64_fetch_size() when attempting
    to dereference the pointer returned by node_to_amd_nb(0).
    
    The root cause of this crash is broken error propagation in
    agp_amd64_probe(): When no AMD northbridges are found, cache_nbs()
    correctly returns -ENODEV. However, the probe function erroneously
    checks the return value against exactly -1, rather than < 0.
    
    As a result, the hardware absence error is masked, allowing the driver
    to improperly proceed with initialization. It eventually calls
    agp_add_bridge(), which invokes amd64_fetch_size(). Since the hardware
    does not exist, node_to_amd_nb(0) returns NULL, leading to a General
    Protection Fault (GPF) when accessing its ->misc member.
    
    Fix the issue by correcting the error check in agp_amd64_probe() to
    abort properly when cache_nbs() returns any negative error code. This
    prevents the driver from erroneously proceeding without hardware, thereby
    avoiding the subsequent NULL pointer dereference at its source.
    
    Fixes: a32073bffc65 ("[PATCH] x86_64: Clean and enhance up K8 northbridge access code")
    Signed-off-by: Mingyu Wang <[email protected]>
    Signed-off-by: Lukas Wunner <[email protected]>
    Reviewed-by: Lukas Wunner <[email protected]>
    Cc: [email protected] # v2.6.18+
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
crypto: qat - remove unused character device and IOCTLs [+ + +]
Author: Giovanni Cabiddu <[email protected]>
Date:   Mon May 11 11:04:08 2026 +0100

    crypto: qat - remove unused character device and IOCTLs
    
    commit d237230728c567297f2f98b425d63156ab2ed17f upstream.
    
    The QAT driver exposes a character device (qat_adf_ctl) with IOCTLs
    for device configuration, start, stop, status query and enumeration.
    These IOCTLs are not part of any public uAPI header and have no known
    in-tree or out-of-tree users. Device lifecycle is already managed via
    sysfs.
    
    The ioctl interface also increases the attack surface and is the
    subject of a number of bug reports.
    
    Remove the character device, the IOCTL definitions, and the related
    data structures (adf_dev_status_info, adf_user_cfg_key_val,
    adf_user_cfg_section, adf_user_cfg_ctl_data). Drop the now-unused
    adf_cfg_user.h header and strip adf_ctl_drv.c down to the minimal
    module_init/module_exit hooks for workqueue, AER, and crypto/compression
    algorithm registration.
    
    Clean up leftover dead code that was only reachable from the removed
    IOCTL paths: adf_cfg_del_all(), adf_devmgr_verify_id(),
    adf_devmgr_get_num_dev(), adf_devmgr_get_dev_by_id(),
    adf_get_vf_real_id() and the unused ADF_CFG macros.
    
    Additionally, drop the entry associated to QAT IOCTLs in
    ioctl-number.rst.
    
    Cc: [email protected]
    Fixes: d8cba25d2c68 ("crypto: qat - Intel(R) QAT driver framework")
    Reported-by: Zhi Wang <[email protected]>
    Reported-by: Bin Yu <[email protected]>
    Reported-by: MingYu Wang <[email protected]>
    Closes: https://lore.kernel.org/all/[email protected]/
    Link: https://lore.kernel.org/all/[email protected]/
    Link: https://lore.kernel.org/all/[email protected]/
    Link: https://lore.kernel.org/all/[email protected]/
    Signed-off-by: Giovanni Cabiddu <[email protected]>
    Reviewed-by: Ahsan Atta <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drivers/base/memory: set mem->altmap after successful device registration [+ + +]
Author: Georgi Djakov <[email protected]>
Date:   Thu May 14 02:26:57 2026 -0700

    drivers/base/memory: set mem->altmap after successful device registration
    
    commit a2b8d7827f48ee54a686cb80e4a1d0ff954ec42a upstream.
    
    If __add_memory_block() fails at xa_store() (under memory pressure for
    example), device_unregister() is called, which eventually triggers
    memory_block_release() with mem->altmap still set, causing a
    WARN_ON(mem->altmap).  This was triggered by modifying virtio-mem driver.
    
    Fix this by delaying the assignment of mem->altmap until after
    __add_memory_block() has succeeded.
    
    Link: https://lore.kernel.org/[email protected]
    Fixes: 1a8c64e11043 ("mm/memory_hotplug: embed vmem_altmap details in memory block")
    Signed-off-by: Georgi Djakov <[email protected]>
    Acked-by: Oscar Salvador (SUSE) <[email protected]>
    Cc: Vishal Verma <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Richard Cheng <[email protected]>
    Cc: David Hildenbrand <[email protected]>
    Cc: Georgi Djakov <[email protected]>
    Cc: Greg Kroah-Hartman <[email protected]>
    Cc: "Rafael J. Wysocki" <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
fuse: re-lock request before replacing page cache folio [+ + +]
Author: Joanne Koong <[email protected]>
Date:   Mon May 18 22:28:06 2026 -0700

    fuse: re-lock request before replacing page cache folio
    
    commit a078484921052d0badd827fcc2770b5cfc1d4120 upstream.
    
    fuse_try_move_folio() unlocks the request on entry but does not
    re-lock it on the success path. This means fuse_chan_abort() can end the
    request and free the fuse_io_args (eg fuse_readpages_end()) while the
    subsequent copy chain logic after fuse_try_move_folio() accesses the
    fuse_io_args, leading to use-after-free issues.
    
    Fix this by calling lock_request() before replace_page_cache_folio().
    This ensures the request is locked on the success path which will
    prevent the fuse_io_args from being freed while the later copying logic
    runs, and also ensures that the ap->folios[i]->mapping is never null
    since ap->folios[i] will always point to the newfolio after
    replace_page_cache_folio().
    
    Fixes: ce534fb05292 ("fuse: allow splice to move pages")
    Cc: [email protected]
    Reported-by: Lei Lu <[email protected]>
    Signed-off-by: Joanne Koong <[email protected]>
    Signed-off-by: Miklos Szeredi <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
iio: adc: ti-ads1298: add bounds check to pga_settings index [+ + +]
Author: Sam Daly <[email protected]>
Date:   Thu May 14 18:23:20 2026 +0200

    iio: adc: ti-ads1298: add bounds check to pga_settings index
    
    commit 95e8a48d7a85d4226934020e57815a3316d3a14b upstream.
    
    ads1298_pga_settings has 7 elements but ADS1298_MASK_CH_PGA can yield
    values 0-7. If it yields a value >= 7, this causes an out-of-bounds
    array access. Add a bounds check and return -EINVAL if the index
    is out of range.
    
    Note that the remaining value b111 is reserved so should not be seen
    in a correctly functioning system.
    
    Assisted-by: gkh_clanker_2000
    Cc: stable <[email protected]>
    Cc: Jonathan Cameron <[email protected]>
    Cc: David Lechner <[email protected]>
    Cc: "Nuno Sá" <[email protected]>
    Cc: Andy Shevchenko <[email protected]>
    Signed-off-by: Sam Daly <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Jonathan Cameron <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

iio: light: veml6075: add bounds check to veml6075_it_ms index [+ + +]
Author: Sam Daly <[email protected]>
Date:   Thu May 14 18:23:21 2026 +0200

    iio: light: veml6075: add bounds check to veml6075_it_ms index
    
    commit 307dc4240bd41852d9e0912921e298160db1c109 upstream.
    
    veml6075_it_ms has 5 elements but VEML6075_CONF_IT can yield values 0-7.
    If it returns a value >= 5, this causes an out-of-bounds array access.
    Add a bounds check and return -EINVAL if the index is out of range.
    
    The problem values are reserved so should never be read from the
    register. Hence this is hardening against fault device, missprogramming
    or bus corruption.
    
    Assisted-by: gkh_clanker_2000
    Cc: stable <[email protected]>
    Signed-off-by: Sam Daly <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Reviewed-by: Javier Carrasco <[email protected]>
    Signed-off-by: Jonathan Cameron <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
io_uring/net: Avoid msghdr on op_connect/op_bind async data [+ + +]
Author: Gabriel Krisman Bertazi <[email protected]>
Date:   Wed Jun 17 13:49:47 2026 -0400

    io_uring/net: Avoid msghdr on op_connect/op_bind async data
    
    [ Upstream commit 3979840cd858f30f43ea9f4e7f7f1f56de82d698 ]
    This fixes a memory leak due to the lack of the cleanup hook for the
    iovec.  The stable backport differs from upstream by dropping the
    io_connect_bpf_populate hunk, which didn't exist at the time and by
    fixing the merge conflict due to the introduction of
    io_bind_file_create.
    
    Both IORING_OP_CONNECT and IORING_OP_BIND reuse the msghdr object just
    to store the sockaddr. Beyond allocating a much larger object than
    needed, msghdr can also wrap an iovec, which will be recycled
    unnecessarily. This uses the sockaddr directly.
    
    Cc: [email protected]
    Signed-off-by: Gabriel Krisman Bertazi <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Gabriel Krisman Bertazi <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
 
ksmbd: reject non-VALID session in compound request branch [+ + +]
Author: Gil Portnoy <[email protected]>
Date:   Thu Jun 11 22:59:19 2026 +0900

    ksmbd: reject non-VALID session in compound request branch
    
    commit 609ca17d869d04ba249e32cdcbf13c0b1c66f43c upstream.
    
    smb2_check_user_session() takes a shortcut for any operation that is not
    the first in a COMPOUND request: it reuses work->sess (the session bound by
    the first operation) and validates only the SessionId, then returns
    "valid". It never re-checks work->sess->state == SMB2_SESSION_VALID, and a
    SessionId of 0xFFFFFFFFFFFFFFFF (ULLONG_MAX, the MS-SMB2 related-operation
    value) skips even the id comparison. The standalone path
    (ksmbd_session_lookup_all() plus the SESSION_SETUP state machine) does
    enforce the VALID state; the compound branch bypasses all of it.
    
    A SESSION_SETUP carrying only an NTLM Type-1 (NtLmNegotiate) blob publishes
    a fresh SMB2_SESSION_IN_PROGRESS session whose sess->user is still NULL
    (->user is assigned later, by ntlm_authenticate()). Used as operation 1 of
    a COMPOUND with operation 2 = TREE_CONNECT (related, SessionId=ULLONG_MAX,
    \\host\IPC$), the tree-connect then runs on that IN_PROGRESS session and
    reaches ksmbd_ipc_tree_connect_request(), which dereferences
    user_name(sess->user) with sess->user == NULL (transport_ipc.c:687/701/704)
    -> remote NULL-pointer dereference and a kernel Oops that wedges the ksmbd
    worker for all clients.
    
    Reject any non-first compound operation that lands on a session which is
    not SMB2_SESSION_VALID, mirroring the validity the standalone lookup path
    enforces. SESSION_SETUP itself legitimately runs on an IN_PROGRESS session,
    but it is never carried as a non-first compound operation, so multi-leg
    authentication is unaffected by this check.
    
    Fixes: 5005bcb42191 ("ksmbd: validate session id and tree id in the compound request")
    Cc: [email protected]
    Signed-off-by: Gil Portnoy <[email protected]>
    Acked-by: Namjae Jeon <[email protected]>
    Signed-off-by: Steve French <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Linux: Linux 7.1.2 [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Sat Jun 27 11:08:18 2026 +0100

    Linux 7.1.2
    
    Link: https://lore.kernel.org/r/[email protected]
    Tested-by: Florian Fainelli <[email protected]>
    Tested-by: Ronald Warsow <[email protected]>
    Tested-by: Brett A C Sheffield <[email protected]>
    Tested-by: Justin M. Forbes <[email protected]>
    Tested-by: Peter Schneider <[email protected]>
    Tested-by: Shuah Khan <[email protected]>
    Tested-by: Ron Economos <[email protected]>
    Tested-by: Miguel Ojeda <[email protected]>
    Tested-by: Dileep Malepu <[email protected]>
    Tested-by: Takeshi Ogasawara <[email protected]>
    Tested-by: Mark Brown <[email protected]>
    Tested-by: Jeffrin Jose T <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
media: vidtv: fix NULL pointer dereference in vidtv_mux_push_si [+ + +]
Author: Ruslan Valiyev <[email protected]>
Date:   Tue Mar 17 17:05:44 2026 +0000

    media: vidtv: fix NULL pointer dereference in vidtv_mux_push_si
    
    commit 7d8bf3d8f91073f4db347ed3aa6302b56107499c upstream.
    
    syzbot reported a general protection fault in
    vidtv_psi_ts_psi_write_into [1].
    
    vidtv_mux_get_pid_ctx() can return NULL, but vidtv_mux_push_si() does
    not check for this before dereferencing the returned pointer to access
    the continuity counter. This leads to a general protection fault when
    accessing a near-NULL address.
    
    The root cause is that vidtv_mux_pid_ctx_init() does not check the
    return value of vidtv_mux_create_pid_ctx_once() for PMT section PIDs.
    If the allocation fails, the PID context is never created, but init
    returns success. The subsequent vidtv_mux_push_si() call then gets
    NULL from vidtv_mux_get_pid_ctx() and crashes.
    
    Fix both the root cause (add error check in vidtv_mux_pid_ctx_init
    for PMT PIDs) and add defensive NULL checks in vidtv_mux_push_si for
    all vidtv_mux_get_pid_ctx() calls.
    
    [1]
    Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN PTI
    KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
    Workqueue: events vidtv_mux_tick
    RIP: 0010:vidtv_psi_ts_psi_write_into+0x54a/0xbc0 drivers/media/test-drivers/vidtv/vidtv_psi.c:197
    Call Trace:
     <TASK>
     vidtv_psi_table_header_write_into drivers/media/test-drivers/vidtv/vidtv_psi.c:799 [inline]
     vidtv_psi_pmt_write_into+0x3b2/0xa70 drivers/media/test-drivers/vidtv/vidtv_psi.c:1231
     vidtv_mux_push_si+0x932/0xe80 drivers/media/test-drivers/vidtv/vidtv_mux.c:196
     vidtv_mux_tick+0xe9b/0x1480 drivers/media/test-drivers/vidtv/vidtv_mux.c:408
    
    Fixes: f90cf6079bf67 ("media: vidtv: add a bridge driver")
    Cc: [email protected]
    Reported-by: [email protected]
    Closes: https://syzkaller.appspot.com/bug?extid=814c351d094f4f1a1b86
    Signed-off-by: Ruslan Valiyev <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Revert "NFSD: Defer sub-object cleanup in export put callbacks" [+ + +]
Author: Yang Erkun <[email protected]>
Date:   Wed May 13 10:42:52 2026 +0800

    Revert "NFSD: Defer sub-object cleanup in export put callbacks"
    
    commit 516403d4d85607fdef3ca41d4a56b54e5566fa9a upstream.
    
    This reverts commit 48db892356d6cb80f6942885545de4a6dd8d2a29.
    
    Commit 48db892356d6 ("NFSD: Defer sub-object cleanup in export
    put callbacks") moved path_put() and auth_domain_put() out of
    svc_export_put() and expkey_put() and behind queue_rcu_work() to
    close a claimed use-after-free in e_show() and c_show() against
    ex_path and ex_client->name. Discussion in [1] shows neither
    the diagnosis nor the remedy survives review.
    
    The downstream teardown of both sub-objects is already RCU-deferred.
    auth_domain_put() reaches svcauth_unix_domain_release(), which frees
    the unix_domain and its ->name through call_rcu(). path_put()
    reaches dentry_free(), which frees the dentry through call_rcu(),
    and prepend_path() is already structured to tolerate concurrent
    dentry teardown. A reader in cache_seq_start_rcu() therefore
    observes both sub-objects through the next grace period regardless
    of whether svc_export_put() runs synchronously, so the synchronous
    form was never unsafe.
    
    The crash signature in the report cited by commit 48db892356d6
    ("NFSD: Defer sub-object cleanup in export put callbacks") has a
    different root cause: a /proc/net/rpc cache file held open across
    network-namespace exit lets cache_destroy_net() free cd->hash_table
    while a reader is still walking it. The correct fix pins cd->net for
    the open fd's lifetime and does not require any deferral inside
    svc_export_put().
    
    Meanwhile, deferring path_put() out of svc_export_put() reintroduces
    the regression that commit 69d803c40ede ("nfsd: Revert "nfsd:
    release svc_expkey/svc_export with rcu_work"") repaired: after
    "exportfs -r" drops the last cache reference, the mount reference
    held through ex_path lingers in the workqueue, so a subsequent
    umount fails with EBUSY.
    
    Restore the synchronous path_put() and auth_domain_put() in
    svc_export_put() and expkey_put() and the call_rcu()/kfree_rcu()
    free of the containing structures. The unrelated fix for
    ex_uuid/ex_stats from commit 2530766492ec ("nfsd: fix UAF when
    access ex_uuid or ex_stats") is preserved.
    
    Link: https://lore.kernel.org/all/[email protected]/ [1]
    Fixes: 48db892356d6 ("NFSD: Defer sub-object cleanup in export put callbacks")
    Cc: [email protected]
    Reviewed-by: Jeff Layton <[email protected]>
    Tested-by: Alexandr Alexandrov <[email protected]>
    Signed-off-by: Yang Erkun <[email protected]>
    Signed-off-by: Chuck Lever <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails [+ + +]
Author: Stepan Ionichev <[email protected]>
Date:   Thu May 14 19:37:45 2026 +0500

    serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails
    
    commit 10fc708b4de7f86002d2d735a2dbf3b5b7f65692 upstream.
    
    dw8250_probe() registers the 8250 port via serial8250_register_8250_port()
    and then, if the device has a clock, registers a clock notifier. If
    clk_notifier_register() fails, probe returns the error but leaves the
    8250 port registered. The matching serial8250_unregister_port() lives
    in dw8250_remove(), which is not called when probe fails, so the port
    slot stays occupied until the device is rebound or the system is
    rebooted. The devm-allocated driver data is freed while the port still
    references it (via the saved private_data and serial_in/serial_out
    callbacks), so any access to that port slot before a rebind is a
    use-after-free hazard.
    
    Unregister the port on the clk_notifier_register() error path.
    
    Fixes: cc816969d7b5 ("serial: 8250_dw: Fix common clocks usage race condition")
    Cc: [email protected]
    Signed-off-by: Stepan Ionichev <[email protected]>
    Reviewed-by: Andy Shevchenko <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

serial: qcom_geni: Fix RX DMA stall when SE_DMA_RX_LEN_IN is zero [+ + +]
Author: Viken Dadhaniya <[email protected]>
Date:   Thu May 28 22:48:07 2026 +0530

    serial: qcom_geni: Fix RX DMA stall when SE_DMA_RX_LEN_IN is zero
    
    commit b93062b6d8a1b2d9bad235cac25558a909819026 upstream.
    
    In qcom_geni_serial_handle_rx_dma(), geni_se_rx_dma_unprep() clears
    port->rx_dma_addr before SE_DMA_RX_LEN_IN is read. If the register is zero,
    for example when the RX stale counter fires on an idle line, the handler
    returns without calling geni_se_rx_dma_prep().
    
    The next RX DMA interrupt then hits the !port->rx_dma_addr guard and
    returns immediately, so the RX DMA buffer is never rearmed and later input
    is lost.
    
    Keep the handler on the rearm path when rx_in is zero. Warn about the
    unexpected zero-length DMA completion, skip received-data handling, and
    always call geni_se_rx_dma_prep().
    
    Fixes: 2aaa43c70778 ("tty: serial: qcom-geni-serial: add support for serial engine DMA")
    Cc: [email protected]
    Reviewed-by: Bartosz Golaszewski <[email protected]>
    Signed-off-by: Viken Dadhaniya <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
vc_screen: fix null-ptr-deref in vcs_notifier() during concurrent vcs_write [+ + +]
Author: Yi Yang <[email protected]>
Date:   Thu Jun 4 06:07:34 2026 +0000

    vc_screen: fix null-ptr-deref in vcs_notifier() during concurrent vcs_write
    
    commit a287620312dc6dcb9a093417a0e589bf30fcf38a upstream.
    
    A KASAN null-ptr-deref was observed in vcs_notifier():
    
    BUG: KASAN: null-ptr-deref in vcs_notifier+0x98/0x130
    Read of size 2 at addr qmp_cmd_name: qmp_capabilities, arguments: {}
    
    The issue is a race condition in vcs_write(). When the console_lock is
    temporarily dropped (to copy data from userspace), the vc_data pointer
    obtained from vcs_vc() may become stale. After re-acquiring the lock,
    vcs_vc() is called again to re-validate the pointer. If the vc has been
    deallocated in the meantime, vcs_vc() returns NULL, and the while loop
    breaks (with written > 0). However, after the loop, vcs_scr_updated(vc)
    is still called with the now-NULL vc pointer, leading to a null pointer
    dereference in the notifier chain (vcs_notifier dereferences param->vc).
    
    Fix this by adding a NULL check for vc before calling vcs_scr_updated().
    
    Fixes: 8fb9ea65c9d1 ("vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF")
    Cc: [email protected]
    Signed-off-by: Yi Yang <[email protected]>
    Reviewed-by: Jiri Slaby <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
virtiofs: fix UAF on submount umount [+ + +]
Author: Miklos Szeredi <[email protected]>
Date:   Thu May 28 10:58:24 2026 +0200

    virtiofs: fix UAF on submount umount
    
    commit 06b41351779e9289e8785694ade9042ae85e41ea upstream.
    
    iput() called from fuse_release_end() can Oops if the super block has
    already been destroyed.  Normally this is prevented by waiting for
    num_waiting to go down to zero before commencing with super block shutdown.
    
    This only works, however, for the last submount instance, as the wait
    counter is per connection, not per superblock.
    
    Revert to using synchronous release requests for the auto_submounts case,
    which is virtiofs only at this time.
    
    Reported-by: Aurélien Bombo <[email protected]>
    Reported-by: Zhihao Cheng <[email protected]>
    Cc: Greg Kurz <[email protected]>
    Closes: https://github.com/kata-containers/kata-containers/issues/12589
    Fixes: 26e5c67deb2e ("fuse: fix livelock in synchronous file put from fuseblk workers")
    Cc: [email protected]
    Reviewed-by: Greg Kurz <[email protected]>
    Signed-off-by: Miklos Szeredi <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>