Skip to content
  1. Aug 10, 2023
    • Linus Torvalds's avatar
      Merge tag '6.5-rc5-ksmbd-server' of git://git.samba.org/ksmbd · 374a7f47
      Linus Torvalds authored
      Pull smb server fixes from Steve French:
       "Two ksmbd server fixes, both also for stable:
      
         - improve buffer validation when multiple EAs returned
      
         - missing check for command payload size"
      
      * tag '6.5-rc5-ksmbd-server' of git://git.samba.org/ksmbd:
        ksmbd: fix wrong next length validation of ea buffer in smb2_set_ea()
        ksmbd: validate command request size
      374a7f47
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.5-3-2023-08-09' of... · b4f63b0f
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.5-3-2023-08-09' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Revert a patch that unconditionally resolved addresses to inlines in
         callchains, something that was done before when DWARF mode was asked
         for, but could as well be done when just frame pointers (the default)
         was selected.
      
         This enriches the callchains with inlines but the way to resolve it
         is gross right now, relying on addr2line, and even if we come up with
         an efficient way of processing all the associated DWARF info for a
         big file as vmlinux is, this has to be something people opt-in, as it
         will still result in overheads, so revert it until we get this done
         in a saner way.
      
       - Update the x86 msr-index.h header with the kernel original, no change
         in tooling output, just addresses a tools/perf build warning.
      
        - Resolve a regression where special "tool events", such as
          "duration_time" were being presented for all CPUs, when it only
          makes sense to show it for the workload, that is, just once.
      
      * tag 'perf-tools-fixes-for-v6.5-3-2023-08-09' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf stat: Don't display zero tool counts
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        Revert "perf report: Append inlines to non-DWARF callchains"
      b4f63b0f
    • Mario Limonciello's avatar
      tpm: Add a helper for checking hwrng enabled · cacc6e22
      Mario Limonciello authored
      
      
      The same checks are repeated in three places to decide whether to use
      hwrng.  Consolidate these into a helper.
      
      Also this fixes a case that one of them was missing a check in the
      cleanup path.
      
      Fixes: 554b841d ("tpm: Disable RNG for all AMD fTPMs")
      Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cacc6e22
  2. Aug 09, 2023
  3. Aug 08, 2023
  4. Aug 07, 2023
  5. Aug 06, 2023
    • Christian Brauner's avatar
      fs: rely on ->iterate_shared to determine f_pos locking · 7d84d1b9
      Christian Brauner authored
      
      
      Now that we removed ->iterate we don't need to check for either
      ->iterate or ->iterate_shared in file_needs_f_pos_lock(). Simply check
      for ->iterate_shared instead. This will tell us whether we need to
      unconditionally take the lock. Not just does it allow us to avoid
      checking f_inode's mode it also actually clearly shows that we're
      locking because of readdir.
      
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      7d84d1b9
    • Linus Torvalds's avatar
      vfs: get rid of old '->iterate' directory operation · 3e327154
      Linus Torvalds authored
      
      
      All users now just use '->iterate_shared()', which only takes the
      directory inode lock for reading.
      
      Filesystems that never got convered to shared mode now instead use a
      wrapper that drops the lock, re-takes it in write mode, calls the old
      function, and then downgrades the lock back to read mode.
      
      This way the VFS layer and other callers no longer need to care about
      filesystems that never got converted to the modern era.
      
      The filesystems that use the new wrapper are ceph, coda, exfat, jfs,
      ntfs, ocfs2, overlayfs, and vboxsf.
      
      Honestly, several of them look like they really could just iterate their
      directories in shared mode and skip the wrapper entirely, but the point
      of this change is to not change semantics or fix filesystems that
      haven't been fixed in the last 7+ years, but to finally get rid of the
      dual iterators.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      3e327154
    • Linus Torvalds's avatar
      proc: fix missing conversion to 'iterate_shared' · 0a2c2baa
      Linus Torvalds authored
      
      
      I'm looking at the directory handling due to the discussion about f_pos
      locking (see commit 79796425: "file: reinstate f_pos locking
      optimization for regular files"), and wanting to clean that up.
      
      And one source of ugliness is how we were supposed to move filesystems
      over to the '->iterate_shared()' function that only takes the inode lock
      for reading many many years ago, but several filesystems still use the
      bad old '->iterate()' that takes the inode lock for exclusive access.
      
      See commit 61922694 ("introduce a parallel variant of ->iterate()")
      that also added some documentation stating
      
            Old method is only used if the new one is absent; eventually it will
            be removed.  Switch while you still can; the old one won't stay.
      
      and that was back in April 2016.  Here we are, many years later, and the
      old version is still clearly sadly alive and well.
      
      Now, some of those old style iterators are probably just because the
      filesystem may end up having per-inode mutable data that it uses for
      iterating a directory, but at least one case is just a mistake.
      
      Al switched over most filesystems to use '->iterate_shared()' back when
      it was introduced.  In particular, the /proc filesystem was converted as
      one of the first ones in commit f50752ea ("switch all procfs
      directories ->iterate_shared()").
      
      But then later one new user of '->iterate()' was then re-introduced by
      commit 6d9c939d ("procfs: add smack subdir to attrs").
      
      And that's clearly not what we wanted, since that new case just uses the
      same 'proc_pident_readdir()' and 'proc_pident_lookup()' helper functions
      that other /proc pident directories use, and they are most definitely
      safe to use with the inode lock held shared.
      
      So just fix it.
      
      This still leaves a fair number of oddball filesystems using the
      old-style directory iterator (ceph, coda, exfat, jfs, ntfs, ocfs2,
      overlayfs, and vboxsf), but at least we don't have any remaining in the
      core filesystems.
      
      I'm going to add a wrapper function that just drops the read-lock and
      takes it as a write lock, so that we can clean up the core vfs layer and
      make all the ugly 'this filesystem needs exclusive inode locking' be
      just filesystem-internal warts.
      
      I just didn't want to make that conversion when we still had a core user
      left.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      0a2c2baa
    • Aleksa Sarai's avatar
      open: make RESOLVE_CACHED correctly test for O_TMPFILE · a0fc452a
      Aleksa Sarai authored
      
      
      O_TMPFILE is actually __O_TMPFILE|O_DIRECTORY. This means that the old
      fast-path check for RESOLVE_CACHED would reject all users passing
      O_DIRECTORY with -EAGAIN, when in fact the intended test was to check
      for __O_TMPFILE.
      
      Cc: stable@vger.kernel.org # v5.12+
      Fixes: 99668f61 ("fs: expose LOOKUP_CACHED through openat2() RESOLVE_CACHED")
      Signed-off-by: default avatarAleksa Sarai <cyphar@cyphar.com>
      Message-Id: <20230806-resolve_cached-o_tmpfile-v1-1-7ba16308465e@cyphar.com>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      a0fc452a
    • Linus Torvalds's avatar
      Merge tag 'rust-fixes-6.5-rc5' of https://github.com/Rust-for-Linux/linux · f0ab9f34
      Linus Torvalds authored
      Pull rust fixes from Miguel Ojeda:
      
       - Allocator: prevent mis-aligned allocation
      
       - Types: delete 'ForeignOwnable::borrow_mut'. A sound replacement is
         planned for the merge window
      
       - Build: fix bindgen error with UBSAN_BOUNDS_STRICT
      
      * tag 'rust-fixes-6.5-rc5' of https://github.com/Rust-for-Linux/linux:
        rust: fix bindgen build error with UBSAN_BOUNDS_STRICT
        rust: delete `ForeignOwnable::borrow_mut`
        rust: allocator: Prevent mis-aligned allocation
      f0ab9f34
    • Namjae Jeon's avatar
      ksmbd: fix wrong next length validation of ea buffer in smb2_set_ea() · 79ed288c
      Namjae Jeon authored
      
      
      There are multiple smb2_ea_info buffers in FILE_FULL_EA_INFORMATION request
      from client. ksmbd find next smb2_ea_info using ->NextEntryOffset of
      current smb2_ea_info. ksmbd need to validate buffer length Before
      accessing the next ea. ksmbd should check buffer length using buf_len,
      not next variable. next is the start offset of current ea that got from
      previous ea.
      
      Cc: stable@vger.kernel.org
      Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-21598
      Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      79ed288c
    • Long Li's avatar
      ksmbd: validate command request size · 5aa4fda5
      Long Li authored
      
      
      In commit 2b9b8f3b ("ksmbd: validate command payload size"), except
      for SMB2_OPLOCK_BREAK_HE command, the request size of other commands
      is not checked, it's not expected. Fix it by add check for request
      size of other commands.
      
      Cc: stable@vger.kernel.org
      Fixes: 2b9b8f3b ("ksmbd: validate command payload size")
      Acked-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
      Signed-off-by: default avatarLong Li <leo.lilong@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      5aa4fda5
    • Linus Torvalds's avatar
      Merge tag 'ata-6.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · fb0d9199
      Linus Torvalds authored
      Pull ata fix from Damien Le Moal:
      
       - Prevent the scsi disk driver from issuing a START STOP UNIT command
         for ATA devices during system resume as this causes various issues
         reported by multiple users.
      
      * tag 'ata-6.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        ata,scsi: do not issue START STOP UNIT on resume
      fb0d9199
    • Linus Torvalds's avatar
      Merge tag '6.5-rc4-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6 · f6a69168
      Linus Torvalds authored
      Pull smb client fix from Steve French:
      
       - Fix DFS interlink problem (different namespace)
      
      * tag '6.5-rc4-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6:
        smb: client: fix dfs link mount against w2k8
      f6a69168
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 251a94f1
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix vmemmap altmap boundary check which could cause memory hotunplug
         failure
      
       - Create a dummy stackframe to fix ftrace stack unwind
      
       - Fix secondary thread bringup for Book3E ELFv2 kernels
      
       - Use early_ioremap/unmap() in via_calibrate_decr()
      
      Thanks to Aneesh Kumar K.V, Benjamin Gray, Christophe Leroy, David
      Hildenbrand, and Naveen N Rao.
      
      * tag 'powerpc-6.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
        powerpc/64e: Fix secondary thread bringup for ELFv2 kernels
        powerpc/ftrace: Create a dummy stackframe to fix stack unwind
        powerpc/mm/altmap: Fix altmap boundary check
      251a94f1
    • Linus Torvalds's avatar
      Merge tag 'parisc-for-6.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 947c2a83
      Linus Torvalds authored
      Pull parisc architecture fixes from Helge Deller:
      
       - early fixmap preallocation to fix boot failures on kernel >= 6.4
      
       - remove DMA leftover code in parport_gsc
      
       - drop old comments and code style fixes
      
      * tag 'parisc-for-6.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: unaligned: Add required spaces after ','
        parport: gsc: remove DMA leftover code
        parisc: pci-dma: remove unused and dead EISA code and comment
        parisc/mm: preallocate fixmap page tables at init
      947c2a83
  6. Aug 05, 2023
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · c9d26d8d
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A few clk driver fixes for some SoC clk drivers:
      
         - Change a usleep() to udelay() to avoid scheduling while atomic in
           the Amlogic PLL code
      
         - Revert a patch to the Mediatek MT8183 driver that caused an
           out-of-bounds write
      
         - Return the right error value when devm_of_iomap() fails in
           imx93_clocks_probe()
      
         - Constrain the Kconfig for the fixed mmio clk so that it depends on
           HAS_IOMEM and can't be compiled on architectures such as s390"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
        clk: imx93: Propagate correct error in imx93_clocks_probe()
        clk: mediatek: mt8183: Add back SSPM related clocks
        clk: meson: change usleep_range() to udelay() for atomic context
      c9d26d8d
    • Linus Torvalds's avatar
      Merge tag 'hyperv-fixes-signed-20230804' of... · 024ff300
      Linus Torvalds authored
      Merge tag 'hyperv-fixes-signed-20230804' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv fixes from Wei Liu:
      
       - Fix a bug in a python script for Hyper-V (Ani Sinha)
      
       - Workaround a bug in Hyper-V when IBT is enabled (Michael Kelley)
      
       - Fix an issue parsing MP table when Linux runs in VTL2 (Saurabh
         Sengar)
      
       - Several cleanup patches (Nischala Yelchuri, Kameron Carr, YueHaibing,
         ZhiHu)
      
      * tag 'hyperv-fixes-signed-20230804' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        Drivers: hv: vmbus: Remove unused extern declaration vmbus_ontimer()
        x86/hyperv: add noop functions to x86_init mpparse functions
        vmbus_testing: fix wrong python syntax for integer value comparison
        x86/hyperv: fix a warning in mshyperv.h
        x86/hyperv: Disable IBT when hypercall page lacks ENDBR instruction
        x86/hyperv: Improve code for referencing hyperv_pcpu_input_arg
        Drivers: hv: Change hv_free_hyperv_page() to take void * argument
      024ff300
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · e661f98c
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A pair of fixes for build-related failures in the selftests
      
       - A fix for a sparse warning in acpi_os_ioremap()
      
       - A fix to restore the kernel PA offset in vmcoreinfo, to fix crash
         handling
      
      * tag 'riscv-for-linus-6.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        Documentation: kdump: Add va_kernel_pa_offset for RISCV64
        riscv: Export va_kernel_pa_offset in vmcoreinfo
        RISC-V: ACPI: Fix acpi_os_ioremap to return iomem address
        selftests: riscv: Fix compilation error with vstate_exec_nolibc.c
        selftests/riscv: fix potential build failure during the "emit_tests" step
      e661f98c