Skip to content
  1. Jun 22, 2025
    • Linus Torvalds's avatar
      Linux 6.16-rc3 · 86731a2a
      Linus Torvalds authored
      v6.16-rc3
      86731a2a
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · b67ec639
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
      
       - subsystem: convert drivers to use recent callbacks of struct
         i2c_algorithm A typical after-rc1 cleanup, which I couldn't send in
         time for rc2
      
       - tegra: fix YAML conversion of device tree bindings
      
       - k1: re-add a check which got lost during upstreaming
      
      * tag 'i2c-for-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: k1: check for transfer error
        i2c: use inclusive callbacks in struct i2c_algorithm
        dt-bindings: i2c: nvidia,tegra20-i2c: Specify the required properties
      b67ec639
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5c00eca9
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Make sure the array tracking which kernel text positions need to be
         alternatives-patched doesn't get mishandled by out-of-order
         modifications, leading to it overflowing and causing page faults when
         patching
      
       - Avoid an infinite loop when early code does a ranged TLB invalidation
         before the broadcast TLB invalidation count of how many pages it can
         flush, has been read from CPUID
      
       - Fix a CONFIG_MODULES typo
      
       - Disable broadcast TLB invalidation when PTI is enabled to avoid an
         overflow of the bitmap tracking dynamic ASIDs which need to be
         flushed when the kernel switches between the user and kernel address
         space
      
       - Handle the case of a CPU going offline and thus reporting zeroes when
         reading top-level events in the resctrl code
      
      * tag 'x86_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/alternatives: Fix int3 handling failure from broken text_poke array
        x86/mm: Fix early boot use of INVPLGB
        x86/its: Fix an ifdef typo in its_alloc()
        x86/mm: Disable INVLPGB when PTI is enabled
        x86,fs/resctrl: Remove inappropriate references to cacheinfo in the resctrl subsystem
      5c00eca9
    • Linus Torvalds's avatar
      Merge tag 'irq_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 33efa7db
      Linus Torvalds authored
      Pull irq fixes from Borislav Petkov:
      
       - Fix missing prototypes warnings
      
       - Properly initialize work context when allocating it
      
       - Remove a method tracking when managed interrupts are suspended during
         hotplug, in favor of the code using a IRQ disable depth tracking now,
         and have interrupts get properly enabled again on restore
      
       - Make sure multiple CPUs getting hotplugged don't cause wrong tracking
         of the managed IRQ disable depth
      
      * tag 'irq_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/ath79-misc: Fix missing prototypes warnings
        genirq/irq_sim: Initialize work context pointers properly
        genirq/cpuhotplug: Restore affinity even for suspended IRQ
        genirq/cpuhotplug: Rebalance managed interrupts across multi-CPU hotplug
      33efa7db
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 17ef32ae
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - Avoid a crash on a heterogeneous machine where not all cores support
         the same hw events features
      
       - Avoid a deadlock when throttling events
      
       - Document the perf event states more
      
       - Make sure a number of perf paths switching off or rescheduling events
         call perf_cgroup_event_disable()
      
       - Make sure perf does task sampling before its userspace mapping is
         torn down, and not after
      
      * tag 'perf_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Fix crash in icl_update_topdown_event()
        perf: Fix the throttle error of some clock events
        perf: Add comment to enum perf_event_state
        perf/core: Fix WARN in perf_cgroup_switch()
        perf: Fix dangling cgroup pointer in cpuctx
        perf: Fix cgroup state vs ERROR
        perf: Fix sample vs do_exit()
      17ef32ae
    • Linus Torvalds's avatar
      Merge tag 'locking_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aff2a7e2
      Linus Torvalds authored
      Pull locking fixes from Borislav Petkov:
      
       - Make sure the switch to the global hash is requested always under a
         lock so that two threads requesting that simultaneously cannot get to
         inconsistent state
      
       - Reject negative NUMA nodes earlier in the futex NUMA interface
         handling code
      
       - Selftests fixes
      
      * tag 'locking_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Verify under the lock if hash can be replaced
        futex: Handle invalid node numbers supplied by user
        selftests/futex: Set the home_node in futex_numa_mpol
        selftests/futex: getopt() requires int as return value.
      aff2a7e2
    • Linus Torvalds's avatar
      Merge tag 'edac_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 73543bad
      Linus Torvalds authored
      Pull EDAC fixes from Borislav Petkov:
      
       - amd64: Correct the number of memory controllers on some AMD Zen
         clients
      
       - igen6: Handle firmware-disabled memory controllers properly
      
      * tag 'edac_urgent_for_v6.16_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/igen6: Fix NULL pointer dereference
        EDAC/amd64: Correct number of UMCs for family 19h models 70h-7fh
      73543bad
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · e669e322
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "ARM:
      
         - Fix another set of FP/SIMD/SVE bugs affecting NV, and plugging some
           missing synchronisation
      
         - A small fix for the irqbypass hook fixes, tightening the check and
           ensuring that we only deal with MSI for both the old and the new
           route entry
      
         - Rework the way the shadow LRs are addressed in a nesting
           configuration, plugging an embarrassing bug as well as simplifying
           the whole process
      
         - Add yet another fix for the dreaded arch_timer_edge_cases selftest
      
        RISC-V:
      
         - Fix the size parameter check in SBI SFENCE calls
      
         - Don't treat SBI HFENCE calls as NOPs
      
        x86 TDX:
      
         - Complete API for handling complex TDVMCALLs in userspace.
      
           This was delayed because the spec lacked a way for userspace to
           deny supporting these calls; the new exit code is now approved"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: TDX: Exit to userspace for GetTdVmCallInfo
        KVM: TDX: Handle TDG.VP.VMCALL<GetQuote>
        KVM: TDX: Add new TDVMCALL status code for unsupported subfuncs
        KVM: arm64: VHE: Centralize ISBs when returning to host
        KVM: arm64: Remove cpacr_clear_set()
        KVM: arm64: Remove ad-hoc CPTR manipulation from kvm_hyp_handle_fpsimd()
        KVM: arm64: Remove ad-hoc CPTR manipulation from fpsimd_sve_sync()
        KVM: arm64: Reorganise CPTR trap manipulation
        KVM: arm64: VHE: Synchronize CPTR trap deactivation
        KVM: arm64: VHE: Synchronize restore of host debug registers
        KVM: arm64: selftests: Close the GIC FD in arch_timer_edge_cases
        KVM: arm64: Explicitly treat routing entry type changes as changes
        KVM: arm64: nv: Fix tracking of shadow list registers
        RISC-V: KVM: Don't treat SBI HFENCE calls as NOPs
        RISC-V: KVM: Fix the size parameter check in SBI SFENCE calls
      e669e322
    • Linus Torvalds's avatar
      Merge tag 'v6.16-rc2-smb3-client-fixes-v2' of git://git.samba.org/sfrench/cifs-2.6 · 75f99f8c
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - Multichannel channel allocation fix for Kerberos mounts
      
       - Two reconnect fixes
      
       - Fix netfs_writepages crash with smbdirect/RDMA
      
       - Directory caching fix
      
       - Three minor cleanup fixes
      
       - Log error when close cached dirs fails
      
      * tag 'v6.16-rc2-smb3-client-fixes-v2' of git://git.samba.org/sfrench/cifs-2.6:
        smb: minor fix to use SMB2_NTLMV2_SESSKEY_SIZE for auth_key size
        smb: minor fix to use sizeof to initialize flags_string buffer
        smb: Use loff_t for directory position in cached_dirents
        smb: Log an error when close_all_cached_dirs fails
        cifs: Fix prepare_write to negotiate wsize if needed
        smb: client: fix max_sge overflow in smb_extract_folioq_to_rdma()
        smb: client: fix first command failure during re-negotiation
        cifs: Remove duplicate fattr->cf_dtype assignment from wsl_to_fattr() function
        smb: fix secondary channel creation issue with kerberos by populating hostname when adding channels
      75f99f8c
  2. Jun 21, 2025
    • Alex Elder's avatar
      i2c: k1: check for transfer error · a6c23dac
      Alex Elder authored
      
      
      If spacemit_i2c_xfer_msg() times out waiting for a message transfer to
      complete, or if the hardware reports an error, it returns a negative
      error code (-ETIMEDOUT, -EAGAIN, -ENXIO. or -EIO).
      
      The sole caller of spacemit_i2c_xfer_msg() is spacemit_i2c_xfer(),
      which is the i2c_algorithm->xfer callback function.  It currently
      does not save the value returned by spacemit_i2c_xfer_msg().
      
      The result is that transfer errors go unreported, and a caller
      has no indication anything is wrong.
      
      When this code was out for review, the return value *was* checked
      in early versions.  But for some reason, that assignment got dropped
      between versions 5 and 6 of the series, perhaps related to reworking
      the code to merge spacemit_i2c_xfer_core() into spacemit_i2c_xfer().
      
      Simply assigning the value returned to "ret" fixes the problem.
      
      Fixes: 5ea55847 ("i2c: spacemit: add support for SpacemiT K1 SoC")
      Signed-off-by: default avatarAlex Elder <elder@riscstar.com>
      Cc: <stable@vger.kernel.org> # v6.15+
      Reviewed-by: default avatarTroy Mitchell <troymitchell988@gmail.com>
      Link: https://lore.kernel.org/r/20250616125137.1555453-1-elder@riscstar.com
      
      
      Signed-off-by: default avatarAndi Shyti <andi@smida.it>
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      a6c23dac
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 739a6c93
      Linus Torvalds authored
      Pull nfsd fixes from Chuck Lever:
      
       - Two fixes for commits in the nfsd-6.16 merge
      
       - One fix for the recently-added NFSD netlink facility
      
       - One fix for a remote SunRPC crasher
      
      * tag 'nfsd-6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        sunrpc: handle SVC_GARBAGE during svc auth processing as auth error
        nfsd: use threads array as-is in netlink interface
        SUNRPC: Cleanup/fix initial rq_pages allocation
        NFSD: Avoid corruption of a referring call list
      739a6c93
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.16-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 1f9378d4
      Linus Torvalds authored
      Pull erofs fixes from Gao Xiang:
      
       - Use the mounter’s credentials for file-backed mounts to resolve
         Android SELinux permission issues
      
       - Remove the unused trace event `erofs_destroy_inode`
      
       - Error out on crafted out-of-file-range encoded extents
      
       - Remove an incorrect check for encoded extents
      
      * tag 'erofs-for-6.16-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: remove a superfluous check for encoded extents
        erofs: refuse crafted out-of-file-range encoded extents
        erofs: remove unused trace event erofs_destroy_inode
        erofs: impersonate the opener's credentials when accessing backing file
      1f9378d4
    • Bharath SM's avatar
      smb: minor fix to use SMB2_NTLMV2_SESSKEY_SIZE for auth_key size · 27e9d5d0
      Bharath SM authored
      
      
      Replaced hardcoded value 16 with SMB2_NTLMV2_SESSKEY_SIZE
      in the auth_key definition and memcpy call.
      
      Reviewed-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.org>
      Signed-off-by: default avatarBharath SM <bharathsm@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      27e9d5d0
    • Bharath SM's avatar
      smb: minor fix to use sizeof to initialize flags_string buffer · 4d360cfe
      Bharath SM authored
      
      
      Replaced hardcoded length with sizeof(flags_string).
      
      Reviewed-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.org>
      Signed-off-by: default avatarBharath SM <bharathsm@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      4d360cfe
    • Bharath SM's avatar
      smb: Use loff_t for directory position in cached_dirents · 4eb11a34
      Bharath SM authored
      
      
      Change the pos field in struct cached_dirents from int to loff_t
      to support large directory offsets. This avoids overflow and
      matches kernel conventions for directory positions.
      
      Reviewed-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.org>
      Signed-off-by: default avatarBharath SM <bharathsm@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      4eb11a34
    • Paul Aurich's avatar
      smb: Log an error when close_all_cached_dirs fails · a2182743
      Paul Aurich authored
      
      
      Under low-memory conditions, close_all_cached_dirs() can't move the
      dentries to a separate list to dput() them once the locks are dropped.
      This will result in a "Dentry still in use" error, so add an error
      message that makes it clear this is what happened:
      
      [  495.281119] CIFS: VFS: \\otters.example.com\share Out of memory while dropping dentries
      [  495.281595] ------------[ cut here ]------------
      [  495.281887] BUG: Dentry ffff888115531138{i=78,n=/}  still in use (2) [unmount of cifs cifs]
      [  495.282391] WARNING: CPU: 1 PID: 2329 at fs/dcache.c:1536 umount_check+0xc8/0xf0
      
      Also, bail out of looping through all tcons as soon as a single
      allocation fails, since we're already in trouble, and kmalloc() attempts
      for subseqeuent tcons are likely to fail just like the first one did.
      
      Signed-off-by: default avatarPaul Aurich <paul@darkrain42.org>
      Acked-by: default avatarBharath SM <bharathsm@microsoft.com>
      Suggested-by: default avatarRuben Devos <rdevos@oxya.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      a2182743
    • David Howells's avatar
      cifs: Fix prepare_write to negotiate wsize if needed · 2c4fd3d1
      David Howells authored
      
      
      Fix cifs_prepare_write() to negotiate the wsize if it is unset.
      
      Reviewed-by: default avatarShyam Prasad N <nspmangalore@gmail.com>
      Reviewed-by: default avatarBharath SM <bharathsm@microsoft.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Paulo Alcantara <pc@manguebit.org>
      cc: netfs@lists.linux.dev
      cc: linux-fsdevel@vger.kernel.org
      cc: linux-cifs@vger.kernel.org
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      2c4fd3d1
    • Stefan Metzmacher's avatar
      smb: client: fix max_sge overflow in smb_extract_folioq_to_rdma() · a379a8a2
      Stefan Metzmacher authored
      
      
      This fixes the following problem:
      
      [  749.901015] [   T8673] run fstests cifs/001 at 2025-06-17 09:40:30
      [  750.346409] [   T9870] ==================================================================
      [  750.346814] [   T9870] BUG: KASAN: slab-out-of-bounds in smb_set_sge+0x2cc/0x3b0 [cifs]
      [  750.347330] [   T9870] Write of size 8 at addr ffff888011082890 by task xfs_io/9870
      [  750.347705] [   T9870]
      [  750.348077] [   T9870] CPU: 0 UID: 0 PID: 9870 Comm: xfs_io Kdump: loaded Not tainted 6.16.0-rc2-metze.02+ #1 PREEMPT(voluntary)
      [  750.348082] [   T9870] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
      [  750.348085] [   T9870] Call Trace:
      [  750.348086] [   T9870]  <TASK>
      [  750.348088] [   T9870]  dump_stack_lvl+0x76/0xa0
      [  750.348106] [   T9870]  print_report+0xd1/0x640
      [  750.348116] [   T9870]  ? __pfx__raw_spin_lock_irqsave+0x10/0x10
      [  750.348120] [   T9870]  ? kasan_complete_mode_report_info+0x26/0x210
      [  750.348124] [   T9870]  kasan_report+0xe7/0x130
      [  750.348128] [   T9870]  ? smb_set_sge+0x2cc/0x3b0 [cifs]
      [  750.348262] [   T9870]  ? smb_set_sge+0x2cc/0x3b0 [cifs]
      [  750.348377] [   T9870]  __asan_report_store8_noabort+0x17/0x30
      [  750.348381] [   T9870]  smb_set_sge+0x2cc/0x3b0 [cifs]
      [  750.348496] [   T9870]  smbd_post_send_iter+0x1990/0x3070 [cifs]
      [  750.348625] [   T9870]  ? __pfx_smbd_post_send_iter+0x10/0x10 [cifs]
      [  750.348741] [   T9870]  ? update_stack_state+0x2a0/0x670
      [  750.348749] [   T9870]  ? cifs_flush+0x153/0x320 [cifs]
      [  750.348870] [   T9870]  ? cifs_flush+0x153/0x320 [cifs]
      [  750.348990] [   T9870]  ? update_stack_state+0x2a0/0x670
      [  750.348995] [   T9870]  smbd_send+0x58c/0x9c0 [cifs]
      [  750.349117] [   T9870]  ? __pfx_smbd_send+0x10/0x10 [cifs]
      [  750.349231] [   T9870]  ? unwind_get_return_address+0x65/0xb0
      [  750.349235] [   T9870]  ? __pfx_stack_trace_consume_entry+0x10/0x10
      [  750.349242] [   T9870]  ? arch_stack_walk+0xa7/0x100
      [  750.349250] [   T9870]  ? stack_trace_save+0x92/0xd0
      [  750.349254] [   T9870]  __smb_send_rqst+0x931/0xec0 [cifs]
      [  750.349374] [   T9870]  ? kernel_text_address+0x173/0x190
      [  750.349379] [   T9870]  ? kasan_save_stack+0x39/0x70
      [  750.349382] [   T9870]  ? kasan_save_track+0x18/0x70
      [  750.349385] [   T9870]  ? __kasan_slab_alloc+0x9d/0xa0
      [  750.349389] [   T9870]  ? __pfx___smb_send_rqst+0x10/0x10 [cifs]
      [  750.349508] [   T9870]  ? smb2_mid_entry_alloc+0xb4/0x7e0 [cifs]
      [  750.349626] [   T9870]  ? cifs_call_async+0x277/0xb00 [cifs]
      [  750.349746] [   T9870]  ? cifs_issue_write+0x256/0x610 [cifs]
      [  750.349867] [   T9870]  ? netfs_do_issue_write+0xc2/0x340 [netfs]
      [  750.349900] [   T9870]  ? netfs_advance_write+0x45b/0x1270 [netfs]
      [  750.349929] [   T9870]  ? netfs_write_folio+0xd6c/0x1be0 [netfs]
      [  750.349958] [   T9870]  ? netfs_writepages+0x2e9/0xa80 [netfs]
      [  750.349987] [   T9870]  ? do_writepages+0x21f/0x590
      [  750.349993] [   T9870]  ? filemap_fdatawrite_wbc+0xe1/0x140
      [  750.349997] [   T9870]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.350002] [   T9870]  smb_send_rqst+0x22e/0x2f0 [cifs]
      [  750.350131] [   T9870]  ? __pfx_smb_send_rqst+0x10/0x10 [cifs]
      [  750.350255] [   T9870]  ? local_clock_noinstr+0xe/0xd0
      [  750.350261] [   T9870]  ? kasan_save_alloc_info+0x37/0x60
      [  750.350268] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.350271] [   T9870]  ? _raw_spin_lock+0x81/0xf0
      [  750.350275] [   T9870]  ? __pfx__raw_spin_lock+0x10/0x10
      [  750.350278] [   T9870]  ? smb2_setup_async_request+0x293/0x580 [cifs]
      [  750.350398] [   T9870]  cifs_call_async+0x477/0xb00 [cifs]
      [  750.350518] [   T9870]  ? __pfx_smb2_writev_callback+0x10/0x10 [cifs]
      [  750.350636] [   T9870]  ? __pfx_cifs_call_async+0x10/0x10 [cifs]
      [  750.350756] [   T9870]  ? __pfx__raw_spin_lock+0x10/0x10
      [  750.350760] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.350763] [   T9870]  ? __smb2_plain_req_init+0x933/0x1090 [cifs]
      [  750.350891] [   T9870]  smb2_async_writev+0x15ff/0x2460 [cifs]
      [  750.351008] [   T9870]  ? sched_clock_noinstr+0x9/0x10
      [  750.351012] [   T9870]  ? local_clock_noinstr+0xe/0xd0
      [  750.351018] [   T9870]  ? __pfx_smb2_async_writev+0x10/0x10 [cifs]
      [  750.351144] [   T9870]  ? __pfx__raw_spin_lock_irqsave+0x10/0x10
      [  750.351150] [   T9870]  ? _raw_spin_unlock+0xe/0x40
      [  750.351154] [   T9870]  ? cifs_pick_channel+0x242/0x370 [cifs]
      [  750.351275] [   T9870]  cifs_issue_write+0x256/0x610 [cifs]
      [  750.351554] [   T9870]  ? cifs_issue_write+0x256/0x610 [cifs]
      [  750.351677] [   T9870]  netfs_do_issue_write+0xc2/0x340 [netfs]
      [  750.351710] [   T9870]  netfs_advance_write+0x45b/0x1270 [netfs]
      [  750.351740] [   T9870]  ? rolling_buffer_append+0x12d/0x440 [netfs]
      [  750.351769] [   T9870]  netfs_write_folio+0xd6c/0x1be0 [netfs]
      [  750.351798] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.351804] [   T9870]  netfs_writepages+0x2e9/0xa80 [netfs]
      [  750.351835] [   T9870]  ? __pfx_netfs_writepages+0x10/0x10 [netfs]
      [  750.351864] [   T9870]  ? exit_files+0xab/0xe0
      [  750.351867] [   T9870]  ? do_exit+0x148f/0x2980
      [  750.351871] [   T9870]  ? do_group_exit+0xb5/0x250
      [  750.351874] [   T9870]  ? arch_do_signal_or_restart+0x92/0x630
      [  750.351879] [   T9870]  ? exit_to_user_mode_loop+0x98/0x170
      [  750.351882] [   T9870]  ? do_syscall_64+0x2cf/0xd80
      [  750.351886] [   T9870]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.351890] [   T9870]  do_writepages+0x21f/0x590
      [  750.351894] [   T9870]  ? __pfx_do_writepages+0x10/0x10
      [  750.351897] [   T9870]  filemap_fdatawrite_wbc+0xe1/0x140
      [  750.351901] [   T9870]  __filemap_fdatawrite_range+0xba/0x100
      [  750.351904] [   T9870]  ? __pfx___filemap_fdatawrite_range+0x10/0x10
      [  750.351912] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.351916] [   T9870]  filemap_write_and_wait_range+0x7d/0xf0
      [  750.351920] [   T9870]  cifs_flush+0x153/0x320 [cifs]
      [  750.352042] [   T9870]  filp_flush+0x107/0x1a0
      [  750.352046] [   T9870]  filp_close+0x14/0x30
      [  750.352049] [   T9870]  put_files_struct.part.0+0x126/0x2a0
      [  750.352053] [   T9870]  ? __pfx__raw_spin_lock+0x10/0x10
      [  750.352058] [   T9870]  exit_files+0xab/0xe0
      [  750.352061] [   T9870]  do_exit+0x148f/0x2980
      [  750.352065] [   T9870]  ? __pfx_do_exit+0x10/0x10
      [  750.352069] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.352072] [   T9870]  ? _raw_spin_lock_irq+0x8a/0xf0
      [  750.352076] [   T9870]  do_group_exit+0xb5/0x250
      [  750.352080] [   T9870]  get_signal+0x22d3/0x22e0
      [  750.352086] [   T9870]  ? __pfx_get_signal+0x10/0x10
      [  750.352089] [   T9870]  ? fpregs_assert_state_consistent+0x68/0x100
      [  750.352101] [   T9870]  ? folio_add_lru+0xda/0x120
      [  750.352105] [   T9870]  arch_do_signal_or_restart+0x92/0x630
      [  750.352109] [   T9870]  ? __pfx_arch_do_signal_or_restart+0x10/0x10
      [  750.352115] [   T9870]  exit_to_user_mode_loop+0x98/0x170
      [  750.352118] [   T9870]  do_syscall_64+0x2cf/0xd80
      [  750.352123] [   T9870]  ? __kasan_check_read+0x11/0x20
      [  750.352126] [   T9870]  ? count_memcg_events+0x1b4/0x420
      [  750.352132] [   T9870]  ? handle_mm_fault+0x148/0x690
      [  750.352136] [   T9870]  ? _raw_spin_lock_irq+0x8a/0xf0
      [  750.352140] [   T9870]  ? __kasan_check_read+0x11/0x20
      [  750.352143] [   T9870]  ? fpregs_assert_state_consistent+0x68/0x100
      [  750.352146] [   T9870]  ? irqentry_exit_to_user_mode+0x2e/0x250
      [  750.352151] [   T9870]  ? irqentry_exit+0x43/0x50
      [  750.352154] [   T9870]  ? exc_page_fault+0x75/0xe0
      [  750.352160] [   T9870]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.352163] [   T9870] RIP: 0033:0x7858c94ab6e2
      [  750.352167] [   T9870] Code: Unable to access opcode bytes at 0x7858c94ab6b8.
      [  750.352175] [   T9870] RSP: 002b:00007858c9248ce8 EFLAGS: 00000246 ORIG_RAX: 0000000000000022
      [  750.352179] [   T9870] RAX: fffffffffffffdfe RBX: 00007858c92496c0 RCX: 00007858c94ab6e2
      [  750.352182] [   T9870] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
      [  750.352184] [   T9870] RBP: 00007858c9248d10 R08: 0000000000000000 R09: 0000000000000000
      [  750.352185] [   T9870] R10: 0000000000000000 R11: 0000000000000246 R12: fffffffffffffde0
      [  750.352187] [   T9870] R13: 0000000000000020 R14: 0000000000000002 R15: 00007ffc072d2230
      [  750.352191] [   T9870]  </TASK>
      [  750.352195] [   T9870]
      [  750.395206] [   T9870] Allocated by task 9870 on cpu 0 at 750.346406s:
      [  750.395523] [   T9870]  kasan_save_stack+0x39/0x70
      [  750.395532] [   T9870]  kasan_save_track+0x18/0x70
      [  750.395536] [   T9870]  kasan_save_alloc_info+0x37/0x60
      [  750.395539] [   T9870]  __kasan_slab_alloc+0x9d/0xa0
      [  750.395543] [   T9870]  kmem_cache_alloc_noprof+0x13c/0x3f0
      [  750.395548] [   T9870]  mempool_alloc_slab+0x15/0x20
      [  750.395553] [   T9870]  mempool_alloc_noprof+0x135/0x340
      [  750.395557] [   T9870]  smbd_post_send_iter+0x63e/0x3070 [cifs]
      [  750.395694] [   T9870]  smbd_send+0x58c/0x9c0 [cifs]
      [  750.395819] [   T9870]  __smb_send_rqst+0x931/0xec0 [cifs]
      [  750.395950] [   T9870]  smb_send_rqst+0x22e/0x2f0 [cifs]
      [  750.396081] [   T9870]  cifs_call_async+0x477/0xb00 [cifs]
      [  750.396232] [   T9870]  smb2_async_writev+0x15ff/0x2460 [cifs]
      [  750.396359] [   T9870]  cifs_issue_write+0x256/0x610 [cifs]
      [  750.396492] [   T9870]  netfs_do_issue_write+0xc2/0x340 [netfs]
      [  750.396544] [   T9870]  netfs_advance_write+0x45b/0x1270 [netfs]
      [  750.396576] [   T9870]  netfs_write_folio+0xd6c/0x1be0 [netfs]
      [  750.396608] [   T9870]  netfs_writepages+0x2e9/0xa80 [netfs]
      [  750.396639] [   T9870]  do_writepages+0x21f/0x590
      [  750.396643] [   T9870]  filemap_fdatawrite_wbc+0xe1/0x140
      [  750.396647] [   T9870]  __filemap_fdatawrite_range+0xba/0x100
      [  750.396651] [   T9870]  filemap_write_and_wait_range+0x7d/0xf0
      [  750.396656] [   T9870]  cifs_flush+0x153/0x320 [cifs]
      [  750.396787] [   T9870]  filp_flush+0x107/0x1a0
      [  750.396791] [   T9870]  filp_close+0x14/0x30
      [  750.396795] [   T9870]  put_files_struct.part.0+0x126/0x2a0
      [  750.396800] [   T9870]  exit_files+0xab/0xe0
      [  750.396803] [   T9870]  do_exit+0x148f/0x2980
      [  750.396808] [   T9870]  do_group_exit+0xb5/0x250
      [  750.396813] [   T9870]  get_signal+0x22d3/0x22e0
      [  750.396817] [   T9870]  arch_do_signal_or_restart+0x92/0x630
      [  750.396822] [   T9870]  exit_to_user_mode_loop+0x98/0x170
      [  750.396827] [   T9870]  do_syscall_64+0x2cf/0xd80
      [  750.396832] [   T9870]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.396836] [   T9870]
      [  750.397150] [   T9870] The buggy address belongs to the object at ffff888011082800
                                 which belongs to the cache smbd_request_0000000008f3bd7b of size 144
      [  750.397798] [   T9870] The buggy address is located 0 bytes to the right of
                                 allocated 144-byte region [ffff888011082800, ffff888011082890)
      [  750.398469] [   T9870]
      [  750.398800] [   T9870] The buggy address belongs to the physical page:
      [  750.399141] [   T9870] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x11082
      [  750.399148] [   T9870] flags: 0xfffffc0000000(node=0|zone=1|lastcpupid=0x1fffff)
      [  750.399155] [   T9870] page_type: f5(slab)
      [  750.399161] [   T9870] raw: 000fffffc0000000 ffff888022d65640 dead000000000122 0000000000000000
      [  750.399165] [   T9870] raw: 0000000000000000 0000000080100010 00000000f5000000 0000000000000000
      [  750.399169] [   T9870] page dumped because: kasan: bad access detected
      [  750.399172] [   T9870]
      [  750.399505] [   T9870] Memory state around the buggy address:
      [  750.399863] [   T9870]  ffff888011082780: fb fb fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  750.400247] [   T9870]  ffff888011082800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      [  750.400618] [   T9870] >ffff888011082880: 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  750.400982] [   T9870]                          ^
      [  750.401370] [   T9870]  ffff888011082900: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  750.401774] [   T9870]  ffff888011082980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  750.402171] [   T9870] ==================================================================
      [  750.402696] [   T9870] Disabling lock debugging due to kernel taint
      [  750.403202] [   T9870] BUG: unable to handle page fault for address: ffff8880110a2000
      [  750.403797] [   T9870] #PF: supervisor write access in kernel mode
      [  750.404204] [   T9870] #PF: error_code(0x0003) - permissions violation
      [  750.404581] [   T9870] PGD 5ce01067 P4D 5ce01067 PUD 5ce02067 PMD 78aa063 PTE 80000000110a2021
      [  750.404969] [   T9870] Oops: Oops: 0003 [#1] SMP KASAN PTI
      [  750.405394] [   T9870] CPU: 0 UID: 0 PID: 9870 Comm: xfs_io Kdump: loaded Tainted: G    B               6.16.0-rc2-metze.02+ #1 PREEMPT(voluntary)
      [  750.406510] [   T9870] Tainted: [B]=BAD_PAGE
      [  750.406967] [   T9870] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
      [  750.407440] [   T9870] RIP: 0010:smb_set_sge+0x15c/0x3b0 [cifs]
      [  750.408065] [   T9870] Code: 48 83 f8 ff 0f 84 b0 00 00 00 48 ba 00 00 00 00 00 fc ff df 4c 89 e1 48 c1 e9 03 80 3c 11 00 0f 85 69 01 00 00 49 8d 7c 24 08 <49> 89 04 24 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 0f
      [  750.409283] [   T9870] RSP: 0018:ffffc90005e2e758 EFLAGS: 00010246
      [  750.409803] [   T9870] RAX: ffff888036c53400 RBX: ffffc90005e2e878 RCX: 1ffff11002214400
      [  750.410323] [   T9870] RDX: dffffc0000000000 RSI: dffffc0000000000 RDI: ffff8880110a2008
      [  750.411217] [   T9870] RBP: ffffc90005e2e798 R08: 0000000000000001 R09: 0000000000000400
      [  750.411770] [   T9870] R10: ffff888011082800 R11: 0000000000000000 R12: ffff8880110a2000
      [  750.412325] [   T9870] R13: 0000000000000000 R14: ffffc90005e2e888 R15: ffff88801a4b6000
      [  750.412901] [   T9870] FS:  0000000000000000(0000) GS:ffff88812bc68000(0000) knlGS:0000000000000000
      [  750.413477] [   T9870] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  750.414077] [   T9870] CR2: ffff8880110a2000 CR3: 000000005b0a6005 CR4: 00000000000726f0
      [  750.414654] [   T9870] Call Trace:
      [  750.415211] [   T9870]  <TASK>
      [  750.415748] [   T9870]  smbd_post_send_iter+0x1990/0x3070 [cifs]
      [  750.416449] [   T9870]  ? __pfx_smbd_post_send_iter+0x10/0x10 [cifs]
      [  750.417128] [   T9870]  ? update_stack_state+0x2a0/0x670
      [  750.417685] [   T9870]  ? cifs_flush+0x153/0x320 [cifs]
      [  750.418380] [   T9870]  ? cifs_flush+0x153/0x320 [cifs]
      [  750.419055] [   T9870]  ? update_stack_state+0x2a0/0x670
      [  750.419624] [   T9870]  smbd_send+0x58c/0x9c0 [cifs]
      [  750.420297] [   T9870]  ? __pfx_smbd_send+0x10/0x10 [cifs]
      [  750.420936] [   T9870]  ? unwind_get_return_address+0x65/0xb0
      [  750.421456] [   T9870]  ? __pfx_stack_trace_consume_entry+0x10/0x10
      [  750.421954] [   T9870]  ? arch_stack_walk+0xa7/0x100
      [  750.422460] [   T9870]  ? stack_trace_save+0x92/0xd0
      [  750.422948] [   T9870]  __smb_send_rqst+0x931/0xec0 [cifs]
      [  750.423579] [   T9870]  ? kernel_text_address+0x173/0x190
      [  750.424056] [   T9870]  ? kasan_save_stack+0x39/0x70
      [  750.424813] [   T9870]  ? kasan_save_track+0x18/0x70
      [  750.425323] [   T9870]  ? __kasan_slab_alloc+0x9d/0xa0
      [  750.425831] [   T9870]  ? __pfx___smb_send_rqst+0x10/0x10 [cifs]
      [  750.426548] [   T9870]  ? smb2_mid_entry_alloc+0xb4/0x7e0 [cifs]
      [  750.427231] [   T9870]  ? cifs_call_async+0x277/0xb00 [cifs]
      [  750.427882] [   T9870]  ? cifs_issue_write+0x256/0x610 [cifs]
      [  750.428909] [   T9870]  ? netfs_do_issue_write+0xc2/0x340 [netfs]
      [  750.429425] [   T9870]  ? netfs_advance_write+0x45b/0x1270 [netfs]
      [  750.429882] [   T9870]  ? netfs_write_folio+0xd6c/0x1be0 [netfs]
      [  750.430345] [   T9870]  ? netfs_writepages+0x2e9/0xa80 [netfs]
      [  750.430809] [   T9870]  ? do_writepages+0x21f/0x590
      [  750.431239] [   T9870]  ? filemap_fdatawrite_wbc+0xe1/0x140
      [  750.431652] [   T9870]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.432041] [   T9870]  smb_send_rqst+0x22e/0x2f0 [cifs]
      [  750.432586] [   T9870]  ? __pfx_smb_send_rqst+0x10/0x10 [cifs]
      [  750.433108] [   T9870]  ? local_clock_noinstr+0xe/0xd0
      [  750.433482] [   T9870]  ? kasan_save_alloc_info+0x37/0x60
      [  750.433855] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.434214] [   T9870]  ? _raw_spin_lock+0x81/0xf0
      [  750.434561] [   T9870]  ? __pfx__raw_spin_lock+0x10/0x10
      [  750.434903] [   T9870]  ? smb2_setup_async_request+0x293/0x580 [cifs]
      [  750.435394] [   T9870]  cifs_call_async+0x477/0xb00 [cifs]
      [  750.435892] [   T9870]  ? __pfx_smb2_writev_callback+0x10/0x10 [cifs]
      [  750.436388] [   T9870]  ? __pfx_cifs_call_async+0x10/0x10 [cifs]
      [  750.436881] [   T9870]  ? __pfx__raw_spin_lock+0x10/0x10
      [  750.437237] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.437579] [   T9870]  ? __smb2_plain_req_init+0x933/0x1090 [cifs]
      [  750.438062] [   T9870]  smb2_async_writev+0x15ff/0x2460 [cifs]
      [  750.438557] [   T9870]  ? sched_clock_noinstr+0x9/0x10
      [  750.438906] [   T9870]  ? local_clock_noinstr+0xe/0xd0
      [  750.439293] [   T9870]  ? __pfx_smb2_async_writev+0x10/0x10 [cifs]
      [  750.439786] [   T9870]  ? __pfx__raw_spin_lock_irqsave+0x10/0x10
      [  750.440143] [   T9870]  ? _raw_spin_unlock+0xe/0x40
      [  750.440495] [   T9870]  ? cifs_pick_channel+0x242/0x370 [cifs]
      [  750.440989] [   T9870]  cifs_issue_write+0x256/0x610 [cifs]
      [  750.441492] [   T9870]  ? cifs_issue_write+0x256/0x610 [cifs]
      [  750.441987] [   T9870]  netfs_do_issue_write+0xc2/0x340 [netfs]
      [  750.442387] [   T9870]  netfs_advance_write+0x45b/0x1270 [netfs]
      [  750.442969] [   T9870]  ? rolling_buffer_append+0x12d/0x440 [netfs]
      [  750.443376] [   T9870]  netfs_write_folio+0xd6c/0x1be0 [netfs]
      [  750.443768] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.444145] [   T9870]  netfs_writepages+0x2e9/0xa80 [netfs]
      [  750.444541] [   T9870]  ? __pfx_netfs_writepages+0x10/0x10 [netfs]
      [  750.444936] [   T9870]  ? exit_files+0xab/0xe0
      [  750.445312] [   T9870]  ? do_exit+0x148f/0x2980
      [  750.445672] [   T9870]  ? do_group_exit+0xb5/0x250
      [  750.446028] [   T9870]  ? arch_do_signal_or_restart+0x92/0x630
      [  750.446402] [   T9870]  ? exit_to_user_mode_loop+0x98/0x170
      [  750.446762] [   T9870]  ? do_syscall_64+0x2cf/0xd80
      [  750.447132] [   T9870]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.447499] [   T9870]  do_writepages+0x21f/0x590
      [  750.447859] [   T9870]  ? __pfx_do_writepages+0x10/0x10
      [  750.448236] [   T9870]  filemap_fdatawrite_wbc+0xe1/0x140
      [  750.448595] [   T9870]  __filemap_fdatawrite_range+0xba/0x100
      [  750.448953] [   T9870]  ? __pfx___filemap_fdatawrite_range+0x10/0x10
      [  750.449336] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.449697] [   T9870]  filemap_write_and_wait_range+0x7d/0xf0
      [  750.450062] [   T9870]  cifs_flush+0x153/0x320 [cifs]
      [  750.450592] [   T9870]  filp_flush+0x107/0x1a0
      [  750.450952] [   T9870]  filp_close+0x14/0x30
      [  750.451322] [   T9870]  put_files_struct.part.0+0x126/0x2a0
      [  750.451678] [   T9870]  ? __pfx__raw_spin_lock+0x10/0x10
      [  750.452033] [   T9870]  exit_files+0xab/0xe0
      [  750.452401] [   T9870]  do_exit+0x148f/0x2980
      [  750.452751] [   T9870]  ? __pfx_do_exit+0x10/0x10
      [  750.453109] [   T9870]  ? __kasan_check_write+0x14/0x30
      [  750.453459] [   T9870]  ? _raw_spin_lock_irq+0x8a/0xf0
      [  750.453787] [   T9870]  do_group_exit+0xb5/0x250
      [  750.454082] [   T9870]  get_signal+0x22d3/0x22e0
      [  750.454406] [   T9870]  ? __pfx_get_signal+0x10/0x10
      [  750.454709] [   T9870]  ? fpregs_assert_state_consistent+0x68/0x100
      [  750.455031] [   T9870]  ? folio_add_lru+0xda/0x120
      [  750.455347] [   T9870]  arch_do_signal_or_restart+0x92/0x630
      [  750.455656] [   T9870]  ? __pfx_arch_do_signal_or_restart+0x10/0x10
      [  750.455967] [   T9870]  exit_to_user_mode_loop+0x98/0x170
      [  750.456282] [   T9870]  do_syscall_64+0x2cf/0xd80
      [  750.456591] [   T9870]  ? __kasan_check_read+0x11/0x20
      [  750.456897] [   T9870]  ? count_memcg_events+0x1b4/0x420
      [  750.457280] [   T9870]  ? handle_mm_fault+0x148/0x690
      [  750.457616] [   T9870]  ? _raw_spin_lock_irq+0x8a/0xf0
      [  750.457925] [   T9870]  ? __kasan_check_read+0x11/0x20
      [  750.458297] [   T9870]  ? fpregs_assert_state_consistent+0x68/0x100
      [  750.458672] [   T9870]  ? irqentry_exit_to_user_mode+0x2e/0x250
      [  750.459191] [   T9870]  ? irqentry_exit+0x43/0x50
      [  750.459600] [   T9870]  ? exc_page_fault+0x75/0xe0
      [  750.460130] [   T9870]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  750.460570] [   T9870] RIP: 0033:0x7858c94ab6e2
      [  750.461206] [   T9870] Code: Unable to access opcode bytes at 0x7858c94ab6b8.
      [  750.461780] [   T9870] RSP: 002b:00007858c9248ce8 EFLAGS: 00000246 ORIG_RAX: 0000000000000022
      [  750.462327] [   T9870] RAX: fffffffffffffdfe RBX: 00007858c92496c0 RCX: 00007858c94ab6e2
      [  750.462653] [   T9870] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
      [  750.462969] [   T9870] RBP: 00007858c9248d10 R08: 0000000000000000 R09: 0000000000000000
      [  750.463290] [   T9870] R10: 0000000000000000 R11: 0000000000000246 R12: fffffffffffffde0
      [  750.463640] [   T9870] R13: 0000000000000020 R14: 0000000000000002 R15: 00007ffc072d2230
      [  750.463965] [   T9870]  </TASK>
      [  750.464285] [   T9870] Modules linked in: siw ib_uverbs ccm cmac nls_utf8 cifs cifs_arc4 nls_ucs2_utils rdma_cm iw_cm ib_cm ib_core cifs_md4 netfs softdog vboxsf vboxguest cpuid intel_rapl_msr intel_rapl_common intel_uncore_frequency_common intel_pmc_core pmt_telemetry pmt_class intel_pmc_ssram_telemetry intel_vsec polyval_clmulni ghash_clmulni_intel sha1_ssse3 aesni_intel rapl i2c_piix4 i2c_smbus joydev input_leds mac_hid sunrpc binfmt_misc kvm_intel kvm irqbypass sch_fq_codel efi_pstore nfnetlink vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vsock vmw_vmci dmi_sysfs ip_tables x_tables autofs4 hid_generic vboxvideo usbhid drm_vram_helper psmouse vga16fb vgastate drm_ttm_helper serio_raw hid ahci libahci ttm pata_acpi video wmi [last unloaded: vboxguest]
      [  750.467127] [   T9870] CR2: ffff8880110a2000
      
      cc: Tom Talpey <tom@talpey.com>
      cc: linux-cifs@vger.kernel.org
      Reviewed-by: default avatarDavid Howells <dhowells@redhat.com>
      Reviewed-by: default avatarTom Talpey <tom@talpey.com>
      Fixes: c45ebd63 ("cifs: Provide the capability to extract from ITER_FOLIOQ to RDMA SGEs")
      Signed-off-by: default avatarStefan Metzmacher <metze@samba.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      a379a8a2
    • zhangjian's avatar
      smb: client: fix first command failure during re-negotiation · 34331d7b
      zhangjian authored
      
      
      after fabc4ed200f9, server_unresponsive add a condition to check whether client
      need to reconnect depending on server->lstrp. When client failed to reconnect
      for some time and abort connection, server->lstrp is updated for the last time.
      In the following scene, server->lstrp is too old. This cause next command
      failure in re-negotiation rather than waiting for re-negotiation done.
      
      1. mount -t cifs -o username=Everyone,echo_internal=10 //$server_ip/export /mnt
      2. ssh $server_ip "echo b > /proc/sysrq-trigger &"
      3. ls /mnt
      4. sleep 21s
      5. ssh $server_ip "service firewalld stop"
      6. ls # return EHOSTDOWN
      
      If the interval between 5 and 6 is too small, 6 may trigger sending negotiation
      request. Before backgrounding cifsd thread try to receive negotiation response
      from server in cifs_readv_from_socket, server_unresponsive may trigger
      cifs_reconnect which cause 6 to be failed:
      
      ls thread
      ----------------
        smb2_negotiate
          server->tcpStatus = CifsInNegotiate
          compound_send_recv
            wait_for_compound_request
      
      cifsd thread
      ----------------
        cifs_readv_from_socket
          server_unresponsive
            server->tcpStatus == CifsInNegotiate && jiffies > server->lstrp + 20s
              cifs_reconnect
                cifs_abort_connection: mid_state = MID_RETRY_NEEDED
      
      ls thread
      ----------------
            cifs_sync_mid_result return EAGAIN
        smb2_negotiate return EHOSTDOWN
      
      Though server->lstrp means last server response time, it is updated in
      cifs_abort_connection and cifs_get_tcp_session. We can also update server->lstrp
      before switching into CifsInNegotiate state to avoid failure in 6.
      
      Fixes: 7ccc1465 ("smb: client: fix hang in wait_for_response() for negproto")
      Acked-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.org>
      Acked-by: default avatarMeetakshi Setiya <msetiya@microsoft.com>
      Signed-off-by: default avatarzhangjian <zhangjian496@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      34331d7b
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.16-20250621' of git://git.kernel.dk/linux · f7301f85
      Linus Torvalds authored
      Pull io_uring fix from Jens Axboe:
       "A single fix to hopefully wrap up the saga of receive bundles"
      
      * tag 'io_uring-6.16-20250621' of git://git.kernel.dk/linux:
        io_uring/net: always use current transfer count for buffer put
      f7301f85
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 26fef998
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Fix a crash in ACPICA while attempting to evaluate a control method
        that expects more arguments than are being passed to it, which was
        exposed by a defective firmware update from a prominent OEM on
        multiple systems (Rafael Wysocki)"
      
      * tag 'acpi-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPICA: Refuse to evaluate a method if arguments are missing
      26fef998
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · f0eeb5f6
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - Set up runtime PM even for devices that lack a PM Capability as we
         did before 4d4c10f7 ("PCI: Explicitly put devices into D0 when
         initializing"), which broke resume in some VFIO scenarios (Mario
         Limonciello)
      
       - Ignore pciehp Presence Detect Changed events caused by DPC, even if
         they occur after a Data Link Layer State Changed event, to fix a VFIO
         GPU passthrough regression in v6.13 (Lukas Wunner)
      
      * tag 'pci-v6.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        PCI: pciehp: Ignore belated Presence Detect Changed caused by DPC
        PCI/PM: Set up runtime PM even for devices without PCI PM
      f0eeb5f6
    • Linus Torvalds's avatar
      Merge tag 'rcu/fixes-for-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux · afa3d8b6
      Linus Torvalds authored
      Pull RCU fix from Joel Fernandes:
       "We recently got a report of a crash [1] with misuse of call_rcu().
      
        Instead of crashing the kernel, a warning and graceful return is
        better:
      
         - rcu: Return early if callback is not specified (Uladzislau Rezki)"
      
      Link: https://lore.kernel.org/all/aEnVuzK7VhGSizWj@pc636/ [1]
      
      * tag 'rcu/fixes-for-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux:
        rcu: Return early if callback is not specified
      afa3d8b6
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.16-1-2025-06-20' of... · 7c7f9dd1
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.16-1-2025-06-20' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix some file descriptor leaks that stand out with recent changes to
         'perf list'
      
       - Fix prctl include to fix building 'perf bench futex' hash with musl
         libc
      
       - Restrict 'perf test' uniquifying entry to machines with 'uncore_imc'
         PMUs
      
       - Document new output fields (op, cache, mem, dtlb, snoop) used with
         'perf mem'
      
       - Synchronize kernel header copies
      
      * tag 'perf-tools-fixes-for-v6.16-1-2025-06-20' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
        tools headers x86 cpufeatures: Sync with the kernel sources
        perf bench futex: Fix prctl include in musl libc
        perf test: Directory file descriptor leak
        perf evsel: Missed close() when probing hybrid core PMUs
        tools headers: Synchronize linux/bits.h with the kernel sources
        tools arch amd ibs: Sync ibs.h with the kernel sources
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        tools headers: Syncronize linux/build_bug.h with the kernel sources
        tools headers: Update the copy of x86's mem{cpy,set}_64.S used in 'perf bench'
        tools headers UAPI: Sync linux/kvm.h with the kernel sources
        tools headers UAPI: Sync the drm/drm.h with the kernel sources
        perf beauty: Update copy of linux/socket.h with the kernel sources
        tools headers UAPI: Sync kvm header with the kernel sources
        tools headers x86 svm: Sync svm headers with the kernel sources
        tools headers UAPI: Sync KVM's vmx.h header with the kernel sources
        tools kvm headers arm64: Update KVM header from the kernel sources
        tools headers UAPI: Sync linux/prctl.h with the kernel sources to pick FUTEX knob
        perf mem: Document new output fields (op, cache, mem, dtlb, snoop)
        tools headers: Update the fs headers with the kernel sources
        perf test: Restrict uniquifying test to machines with 'uncore_imc'
      7c7f9dd1
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 3f75bfff
      Linus Torvalds authored
      Pull mtd fixes from Miquel Raynal:
       "The main fix that really needs to get in is the revert of the patch
        adding the new mtd_master class, because it entirely fails the
        partitioning if a specific Kconfig option is set. We need to think how
        to handle that differently, so let's revert it as we need to get back
        to the pen and paper situation again.
      
        Otherwise the definition of some Winbond SPI NAND chips are receiving
        some fixes (geometry and maximum frequency, mostly).
      
        And finally a small memory leak gets also fixed"
      
      * tag 'mtd/fixes-for-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        mtd: spinand: fix memory leak of ECC engine conf
        mtd: spinand: winbond: Prevent unsupported frequencies on dual/quad I/O variants
        mtd: spinand: winbond: Increase maximum frequency on an octal operation
        mtd: spinand: winbond: Fix W35N number of planes/LUN
        Revert "mtd: core: always create master device"
      3f75bfff
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · a765b9e6
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two small and obvious driver fixes"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: elx: efct: Fix memory leak in efct_hw_parse_filter()
        scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port()
      a765b9e6
  3. Jun 20, 2025
    • Shiji Yang's avatar
      irqchip/ath79-misc: Fix missing prototypes warnings · 3085ef9d
      Shiji Yang authored
      
      
      ath79_misc_irq_init() was defined but unused since commit 51fa4f89
      ("MIPS: ath79: drop legacy IRQ code"), so it's time to drop it.
      
      The build also warns about a missing prototype of get_c0_perfcount_int().
      
      Remove the stale leftover function and add the missing include.
      
      Signed-off-by: default avatarShiji Yang <yangshiji66@outlook.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lore.kernel.org/all/OSBPR01MB167032D2017645200787AAEBBC72A@OSBPR01MB1670.jpnprd01.prod.outlook.com
      3085ef9d
    • Uladzislau Rezki (Sony)'s avatar
      rcu: Return early if callback is not specified · 33b6a1f1
      Uladzislau Rezki (Sony) authored
      
      
      Currently the call_rcu() API does not check whether a callback
      pointer is NULL. If NULL is passed, rcu_core() will try to invoke
      it, resulting in NULL pointer dereference and a kernel crash.
      
      To prevent this and improve debuggability, this patch adds a check
      for NULL and emits a kernel stack trace to help identify a faulty
      caller.
      
      Signed-off-by: default avatarUladzislau Rezki (Sony) <urezki@gmail.com>
      Reviewed-by: default avatarJoel Fernandes <joelagnelf@nvidia.com>
      Signed-off-by: default avatarJoel Fernandes <joelagnelf@nvidia.com>
      33b6a1f1
    • Binbin Wu's avatar
      KVM: TDX: Exit to userspace for GetTdVmCallInfo · 25e8b1dd
      Binbin Wu authored
      
      
      Exit to userspace for TDG.VP.VMCALL<GetTdVmCallInfo> via KVM_EXIT_TDX,
      to allow userspace to provide information about the support of
      TDVMCALLs when r12 is 1 for the TDVMCALLs beyond the GHCI base API.
      
      GHCI spec defines the GHCI base TDVMCALLs: <GetTdVmCallInfo>, <MapGPA>,
      <ReportFatalError>, <Instruction.CPUID>, <#VE.RequestMMIO>,
      <Instruction.HLT>, <Instruction.IO>, <Instruction.RDMSR> and
      <Instruction.WRMSR>. They must be supported by VMM to support TDX guests.
      
      For GetTdVmCallInfo
      - When leaf (r12) to enumerate TDVMCALL functionality is set to 0,
        successful execution indicates all GHCI base TDVMCALLs listed above are
        supported.
      
        Update the KVM TDX document with the set of the GHCI base APIs.
      
      - When leaf (r12) to enumerate TDVMCALL functionality is set to 1, it
        indicates the TDX guest is querying the supported TDVMCALLs beyond
        the GHCI base TDVMCALLs.
        Exit to userspace to let userspace set the TDVMCALL sub-function bit(s)
        accordingly to the leaf outputs.  KVM could set the TDVMCALL bit(s)
        supported by itself when the TDVMCALLs don't need support from userspace
        after returning from userspace and before entering guest. Currently, no
        such TDVMCALLs implemented, KVM just sets the values returned from
        userspace.
      
      Suggested-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarBinbin Wu <binbin.wu@linux.intel.com>
      [Adjust userspace API. - Paolo]
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      25e8b1dd
    • Binbin Wu's avatar
      KVM: TDX: Handle TDG.VP.VMCALL<GetQuote> · cf207eac
      Binbin Wu authored
      
      
      Handle TDVMCALL for GetQuote to generate a TD-Quote.
      
      GetQuote is a doorbell-like interface used by TDX guests to request VMM
      to generate a TD-Quote signed by a service hosting TD-Quoting Enclave
      operating on the host.  A TDX guest passes a TD Report (TDREPORT_STRUCT) in
      a shared-memory area as parameter.  Host VMM can access it and queue the
      operation for a service hosting TD-Quoting enclave.  When completed, the
      Quote is returned via the same shared-memory area.
      
      KVM only checks the GPA from the TDX guest has the shared-bit set and drops
      the shared-bit before exiting to userspace to avoid bleeding the shared-bit
      into KVM's exit ABI.  KVM forwards the request to userspace VMM (e.g. QEMU)
      and userspace VMM queues the operation asynchronously.  KVM sets the return
      code according to the 'ret' field set by userspace to notify the TDX guest
      whether the request has been queued successfully or not.  When the request
      has been queued successfully, the TDX guest can poll the status field in
      the shared-memory area to check whether the Quote generation is completed
      or not.  When completed, the generated Quote is returned via the same
      buffer.
      
      Add KVM_EXIT_TDX as a new exit reason to userspace. Userspace is
      required to handle the KVM exit reason as the initial support for TDX,
      by reentering KVM to ensure that the TDVMCALL is complete.  While at it,
      add a note that KVM_EXIT_HYPERCALL also requires reentry with KVM_RUN.
      
      Signed-off-by: default avatarBinbin Wu <binbin.wu@linux.intel.com>
      Tested-by: default avatarMikko Ylinen <mikko.ylinen@linux.intel.com>
      Acked-by: default avatarKai Huang <kai.huang@intel.com>
      [Adjust userspace API. - Paolo]
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      cf207eac
    • Binbin Wu's avatar
      KVM: TDX: Add new TDVMCALL status code for unsupported subfuncs · b5aafcb4
      Binbin Wu authored
      
      
      Add the new TDVMCALL status code TDVMCALL_STATUS_SUBFUNC_UNSUPPORTED and
      return it for unimplemented TDVMCALL subfunctions.
      
      Returning TDVMCALL_STATUS_INVALID_OPERAND when a subfunction is not
      implemented is vague because TDX guests can't tell the error is due to
      the subfunction is not supported or an invalid input of the subfunction.
      New GHCI spec adds TDVMCALL_STATUS_SUBFUNC_UNSUPPORTED to avoid the
      ambiguity. Use it instead of TDVMCALL_STATUS_INVALID_OPERAND.
      
      Before the change, for common guest implementations, when a TDX guest
      receives TDVMCALL_STATUS_INVALID_OPERAND, it has two cases:
      1. Some operand is invalid. It could change the operand to another value
         retry.
      2. The subfunction is not supported.
      
      For case 1, an invalid operand usually means the guest implementation bug.
      Since the TDX guest can't tell which case is, the best practice for
      handling TDVMCALL_STATUS_INVALID_OPERAND is stopping calling such leaf,
      treating the failure as fatal if the TDVMCALL is essential or ignoring
      it if the TDVMCALL is optional.
      
      With this change, TDVMCALL_STATUS_SUBFUNC_UNSUPPORTED could be sent to
      old TDX guest that do not know about it, but it is expected that the
      guest will make the same action as TDVMCALL_STATUS_INVALID_OPERAND.
      Currently, no known TDX guest checks TDVMCALL_STATUS_INVALID_OPERAND
      specifically; for example Linux just checks for success.
      
      Signed-off-by: default avatarBinbin Wu <binbin.wu@linux.intel.com>
      [Return it for untrapped KVM_HC_MAP_GPA_RANGE. - Paolo]
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      b5aafcb4
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 11313e2f
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - correct the ACPI GPIO access mode in gpio-loongson-64bit
      
       - only obtain the interrupt for a single instance of the chip
         controlled by gpio-mlxbf3
      
       - fix an invalid value return from probe() in gpio-pca953x
      
       - add missing MODULE_DEVICE_TABLE() to gpio-spacemit
      
       - update the HiSilicon GPIO driver maintainer entry
      
      * tag 'gpio-fixes-for-v6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: mlxbf3: only get IRQ for device instance 0
        gpio: pca953x: fix wrong error probe return value
        gpio: spacemit: Add missing MODULE_DEVICE_TABLE
        gpio: loongson-64bit: Correct Loongson-7A2000 ACPI GPIO access mode
        MAINTAINERS: Update HiSilicon GPIO driver maintainer
      11313e2f
    • Paolo Bonzini's avatar
      Merge tag 'kvm-riscv-fixes-6.16-1' of https://github.com/kvm-riscv/linux into HEAD · 2f3fc29a
      Paolo Bonzini authored
      KVM/riscv fixes for 6.16, take #1
      
      - Fix the size parameter check in SBI SFENCE calls
      - Don't treat SBI HFENCE calls as NOPs
      2f3fc29a
    • Paolo Bonzini's avatar
      Merge tag 'kvmarm-fixes-6.16-3' of... · a09e359d
      Paolo Bonzini authored
      Merge tag 'kvmarm-fixes-6.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      
      KVM/arm64 fixes for 6.16, take #3
      
      - Fix another set of FP/SIMD/SVE bugs affecting NV, and plugging some
        missing synchronisation
      
      - A small fix for the irqbypass hook fixes, tightening the check and
        ensuring that we only deal with MSI for both the old and the new
        route entry
      
      - Rework the way the shadow LRs are addressed in a nesting
        configuration, plugging an embarrassing bug as well as simplifying
        the whole process
      
      - Add yet another fix for the dreaded arch_timer_edge_cases selftest
      a09e359d
    • Linus Torvalds's avatar
      Merge tag 'sound-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 299f489f
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes. All changes are device-specific at this
        time:
      
         - Fixes for Cirrus codecs with SoundWire, including firmware name
           updates
      
         - Fix for i.MX8 SoC DSP
      
         - Usual HD-audio, USB-audio, and ASoC AMD quirks
      
         - Fixes for legendary SoundBlaster AWE32 ISA device (a real one, we
           still got a bug report after 25 years)
      
         - Minor build fixes"
      
      * tag 'sound-6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits)
        ALSA: hda/realtek: Enable headset Mic on Positivo P15X
        ASoC: Intel: sof-function-topology-lib: Print out the unsupported dmic count
        ASoC: doc: cs35l56: Add CS35L63 to the list of supported devices
        ASoC: SOF: imx8: add core shutdown operation for imx8/imx8x
        ALSA: hda/realtek: Add quirk for Asus GA605K
        ALSA: hda/realtek: enable headset mic on Latitude 5420 Rugged
        ASoC: amd: yc: update quirk data for HP Victus
        ASoC: apple: mca: Drop default ARCH_APPLE in Kconfig
        ALSA: usb-audio: Rename ALSA kcontrol PCM and PCM1 for the KTMicro sound card
        ASoC: amd: yc: Add quirk for MSI Bravo 17 D7VF internal mic
        ASoC: doc: cs35l56: Update to add new SoundWire firmware filename suffix
        ASoC: cs35l56: Use SoundWire address as alternate firmware suffix on L56 B0
        ASoC: cs35l56: Use SoundWire address as firmware name suffix for new silicon
        ASoC: sdw_utils: Fix potential NULL pointer deref in is_sdca_endpoint_present()
        ALSA: sb: Force to disable DMAs once when DMA mode is changed
        ALSA: sb: Don't allow changing the DMA mode during operations
        ALSA: hda/realtek: Add quirk for Asus GU605C
        ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X513EA
        ALSA: hda/realtek - Add mute LED support for HP Victus 16-s1xxx and HP Victus 15-fa1xxx
        ALSA: ctxfi: Replace deprecated strcpy() with strscpy()
        ...
      299f489f
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · d41fef1c
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "There's nothing major (even the vmalloc one is just suppressing a
        potential warning) but all worth having, nonetheless.
      
         - Suppress KASAN false positive in stack unwinding code
      
         - Drop redundant reset of the GCS state on exec()
      
         - Don't try to descend into a !present PMD when creating a huge
           vmap() entry at the PUD level
      
         - Fix a small typo in the arm64 booting Documentation"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth()
        arm64/gcs: Don't call gcs_free() during flush_gcs()
        arm64: Restrict pagetable teardown to avoid false warning
        docs: arm64: Fix ICC_SRE_EL2 register typo in booting.rst
      d41fef1c
    • Gao Xiang's avatar
      erofs: remove a superfluous check for encoded extents · 417b8af2
      Gao Xiang authored
      
      
      It is possible when an inode is split into segments for multi-threaded
      compression, and the tail extent of a segment could also be small.
      
      Fixes: 1d191b4c ("erofs: implement encoded extent metadata")
      Signed-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      Link: https://lore.kernel.org/r/20250620153108.1368029-1-hsiangkao@linux.alibaba.com
      417b8af2
    • Jens Axboe's avatar
      io_uring/net: always use current transfer count for buffer put · 51a4598a
      Jens Axboe authored
      
      
      A previous fix corrected the retry condition for when to continue a
      current bundle, but it missed that the current (not the total) transfer
      count also applies to the buffer put. If not, then for incrementally
      consumed buffer rings repeated completions on the same request may end
      up over consuming.
      
      Reported-by: default avatarRoy Tang (ErgoniaTrading) <royonia@ergonia.io>
      Cc: stable@vger.kernel.org
      Fixes: 3a089881 ("io_uring/net: only retry recv bundle for a full transfer")
      Link: https://github.com/axboe/liburing/issues/1423
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      51a4598a
    • Edson Juliano Drosdeck's avatar
      ALSA: hda/realtek: Enable headset Mic on Positivo P15X · 33bdee12
      Edson Juliano Drosdeck authored
      
      
      Positivo P15X is equipped with ALC269VC, and needs a fix to make
      the headset mic to work.
      Also must to limits the internal microphone boost.
      
      Signed-off-by: default avatarEdson Juliano Drosdeck <edson.drosdeck@gmail.com>
      Link: https://patch.msgid.link/20250619191215.17203-1-edson.drosdeck@gmail.com
      
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      33bdee12
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v6.16-rc2' of... · 72138519
      Takashi Iwai authored
      Merge tag 'asoc-fix-v6.16-rc2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v6.16
      
      A relatively large collection of fixes and updates that came in since
      the merge window.  Of note are a couple of Cirrus ones which change the
      firmware naming for some newly added devices, and a fix from Laurentiu
      for issues booting firmwares on the DSPs on i.MX8 SoCs.
      72138519
Loading