1. 21 Jan, 2024 3 commits
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 7b297a5c
      Linus Torvalds authored
      Pull powerpc fixes from Aneesh Kumar:
      
       - Increase default stack size to 32KB for Book3S
      
      Thanks to Michael Ellerman.
      
      * tag 'powerpc-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/64s: Increase default stack size to 32KB
      7b297a5c
    • Linus Torvalds's avatar
      Merge tag 'header_cleanup-2024-01-20' of https://evilpiepirate.org/git/bcachefs · 2368fcf3
      Linus Torvalds authored
      Pull header fix from Kent Overstreet:
       "Just one small fixup for the RT build"
      
      * tag 'header_cleanup-2024-01-20' of https://evilpiepirate.org/git/bcachefs:
        spinlock: Fix failing build for PREEMPT_RT
      2368fcf3
    • Linus Torvalds's avatar
      Merge tag 'v6.8-rc-part2-smb-client' of git://git.samba.org/sfrench/cifs-2.6 · 7a396820
      Linus Torvalds authored
      Pull smb client updates from Steve French:
       "Various smb client fixes, including multichannel and for SMB3.1.1
        POSIX extensions:
      
         - debugging improvement (display start time for stats)
      
         - two reparse point handling fixes
      
         - various multichannel improvements and fixes
      
         - SMB3.1.1 POSIX extensions open/create parsing fix
      
         - retry (reconnect) improvement including new retrans mount parm, and
           handling of two additional return codes that need to be retried on
      
         - two minor cleanup patches and another to remove duplicate query
           info code
      
         - two documentation cleanup, and one reviewer email correction"
      
      * tag 'v6.8-rc-part2-smb-client' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update iface_last_update on each query-and-update
        cifs: handle servers that still advertise multichannel after disabling
        cifs: new mount option called retrans
        cifs: reschedule periodic query for server interfaces
        smb: client: don't clobber ->i_rdev from cached reparse points
        smb: client: get rid of smb311_posix_query_path_info()
        smb: client: parse owner/group when creating reparse points
        smb: client: fix parsing of SMB3.1.1 POSIX create context
        cifs: update known bugs mentioned in kernel docs for cifs
        cifs: new nt status codes from MS-SMB2
        cifs: pick channel for tcon and tdis
        cifs: open_cached_dir should not rely on primary channel
        smb3: minor documentation updates
        Update MAINTAINERS email address
        cifs: minor comment cleanup
        smb3: show beginning time for per share stats
        cifs: remove redundant variable tcon_exist
      7a396820
  2. 20 Jan, 2024 9 commits
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 65163d16
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "New support:
         - Loongson LS2X APB DMA controller
         - sf-pdma: mpfs-pdma support
         - Qualcomm X1E80100 GPI dma controller support
      
        Updates:
         - Xilinx XDMA updates to support interleaved DMA transfers
         - TI PSIL threads for AM62P and J722S and cfg register regions
           description
         - axi-dmac Improving the cyclic DMA transfers
         - Tegra Support dma-channel-mask property
         - Remaining platform remove callback returning void conversions
      
       Driver fixes for:
         - Xilinx xdma driver operator precedence and initialization fix
         - Excess kernel-doc warning fix in imx-sdma xilinx xdma drivers
         - format-overflow warning fix for rz-dmac, sh usb dmac drivers
         - 'output may be truncated' fix for shdma, fsl-qdma and dw-edma
           drivers"
      
      * tag 'dmaengine-fix-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (58 commits)
        dmaengine: dw-edma: increase size of 'name' in debugfs code
        dmaengine: fsl-qdma: increase size of 'irq_name'
        dmaengine: shdma: increase size of 'dev_id'
        dmaengine: xilinx: xdma: Fix kernel-doc warnings
        dmaengine: usb-dmac: Avoid format-overflow warning
        dmaengine: sh: rz-dmac: Avoid format-overflow warning
        dmaengine: imx-sdma: fix Excess kernel-doc warnings
        dmaengine: xilinx: xdma: Fix initialization location of desc in xdma_channel_isr()
        dmaengine: xilinx: xdma: Fix operator precedence in xdma_prep_interleaved_dma()
        dmaengine: xilinx: xdma: statify xdma_prep_interleaved_dma
        dmaengine: xilinx: xdma: Workaround truncation compilation error
        dmaengine: pl330: issue_pending waits until WFP state
        dmaengine: xilinx: xdma: Implement interleaved DMA transfers
        dmaengine: xilinx: xdma: Prepare the introduction of interleaved DMA transfers
        dmaengine: xilinx: xdma: Add transfer error reporting
        dmaengine: xilinx: xdma: Add error checking in xdma_channel_isr()
        dmaengine: xilinx: xdma: Rework xdma_terminate_all()
        dmaengine: xilinx: xdma: Ease dma_pool alignment requirements
        dmaengine: xilinx: xdma: Add necessary macro definitions
        dmaengine: xilinx: xdma: Get rid of unused code
        ...
      65163d16
    • Linus Torvalds's avatar
      Merge tag 'coccinelle-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux · 80fc600f
      Linus Torvalds authored
      Pull coccinelle updates from Julia Lawall:
       "Updates to the device_attr_show semantic patch to reflect the new
        guidelines of the Linux kernel documentation.
      
        The problem was identified by Li Zhijian <lizhijian@fujitsu.com>, who
        proposed an initial fix"
      
      * tag 'coccinelle-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux:
        coccinelle: device_attr_show: simplify patch case
        coccinelle: device_attr_show: Adapt to the latest Documentation/filesystems/sysfs.rst
      80fc600f
    • Aurelien Jarno's avatar
      media: solo6x10: replace max(a, min(b, c)) by clamp(b, a, c) · 31e97d7c
      Aurelien Jarno authored
      This patch replaces max(a, min(b, c)) by clamp(b, a, c) in the solo6x10
      driver.  This improves the readability and more importantly, for the
      solo6x10-p2m.c file, this reduces on my system (x86-64, gcc 13):
      
       - the preprocessed size from 121 MiB to 4.5 MiB;
      
       - the build CPU time from 46.8 s to 1.6 s;
      
       - the build memory from 2786 MiB to 98MiB.
      
      In fine, this allows this relatively simple C file to be built on a
      32-bit system.
      Reported-by: default avatarJiri Slaby <jirislaby@gmail.com>
      Closes: https://lore.kernel.org/lkml/18c6df0d-45ed-450c-9eda-95160a2bbb8e@gmail.com/
      Cc:  <stable@vger.kernel.org> # v6.7+
      Suggested-by: default avatarDavid Laight <David.Laight@ACULAB.COM>
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      Reviewed-by: default avatarDavid Laight <David.Laight@ACULAB.COM>
      Reviewed-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      31e97d7c
    • Julia Lawall's avatar
      coccinelle: device_attr_show: simplify patch case · ff82e84e
      Julia Lawall authored
      Replacing the final expression argument by ... allows the format
      string to have multiple arguments.
      
      It also has the advantage of allowing the change to be recognized as
      a change in a single statement, thus avoiding adding unneeded braces.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
      ff82e84e
    • Linus Torvalds's avatar
      execve: open the executable file before doing anything else · 978ffcbf
      Linus Torvalds authored
      No point in allocating a new mm, counting arguments and environment
      variables etc if we're just going to return ENOENT.
      
      This patch does expose the fact that 'do_filp_open()' that execve() uses
      is still unnecessarily expensive in the failure case, because it
      allocates the 'struct file *' early, even if the path lookup (which is
      heavily optimized) fails.
      
      So that remains an unnecessary cost in the "no such executable" case,
      but it's a separate issue.  Regardless, I do not want to do _both_ a
      filename_lookup() and a later do_filp_open() like the origin patch by
      Josh Triplett did in [1].
      Reported-by: default avatarJosh Triplett <josh@joshtriplett.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Mateusz Guzik <mjguzik@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Link: https://lore.kernel.org/lkml/5c7333ea4bec2fad1b47a8fa2db7c31e4ffc4f14.1663334978.git.josh@joshtriplett.org/ [1]
      Link: https://lore.kernel.org/lkml/202209161637.9EDAF6B18@keescook/
      Link: https://lore.kernel.org/lkml/CAHk-=wgznerM-xs+x+krDfE7eVBiy_HOam35rbsFMMOwvYuEKQ@mail.gmail.com/
      Link: https://lore.kernel.org/lkml/CAHk-=whf9qLO8ipps4QhmS0BkM8mtWJhvnuDSdtw5gFjhzvKNA@mail.gmail.com/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      978ffcbf
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.8-mw4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · e5075d8e
      Linus Torvalds authored
      Pull more RISC-V updates from Palmer Dabbelt:
      
       - Support for tuning for systems with fast misaligned accesses.
      
       - Support for SBI-based suspend.
      
       - Support for the new SBI debug console extension.
      
       - The T-Head CMOs now use PA-based flushes.
      
       - Support for enabling the V extension in kernel code.
      
       - Optimized IP checksum routines.
      
       - Various ftrace improvements.
      
       - Support for archrandom, which depends on the Zkr extension.
      
       - The build is no longer broken under NET=n, KUNIT=y for ports that
         don't define their own ipv6 checksum.
      
      * tag 'riscv-for-linus-6.8-mw4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (56 commits)
        lib: checksum: Fix build with CONFIG_NET=n
        riscv: lib: Check if output in asm goto supported
        riscv: Fix build error on rv32 + XIP
        riscv: optimize ELF relocation function in riscv
        RISC-V: Implement archrandom when Zkr is available
        riscv: Optimize hweight API with Zbb extension
        riscv: add dependency among Image(.gz), loader(.bin), and vmlinuz.efi
        samples: ftrace: Add RISC-V support for SAMPLE_FTRACE_DIRECT[_MULTI]
        riscv: ftrace: Add DYNAMIC_FTRACE_WITH_DIRECT_CALLS support
        riscv: ftrace: Make function graph use ftrace directly
        riscv: select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
        lib/Kconfig.debug: Update AS_HAS_NON_CONST_LEB128 comment and name
        riscv: Restrict DWARF5 when building with LLVM to known working versions
        riscv: Hoist linker relaxation disabling logic into Kconfig
        kunit: Add tests for csum_ipv6_magic and ip_fast_csum
        riscv: Add checksum library
        riscv: Add checksum header
        riscv: Add static key for misaligned accesses
        asm-generic: Improve csum_fold
        RISC-V: selftests: cbo: Ensure asm operands match constraints
        ...
      e5075d8e
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · c25b24fa
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Final round of fixes that came in too late to send in the first
        request.
      
        It's nine bug fixes and one version update (because of a bug fix) and
        one set of PCI ID additions. There's one bug fix in the core which is
        really a one liner (except that an additional sdev pointer was added
        for convenience) and the rest are in drivers"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: target: core: Add TMF to tmr_list handling
        scsi: core: Kick the requeue list after inserting when flushing
        scsi: fnic: unlock on error path in fnic_queuecommand()
        scsi: fcoe: Fix unsigned comparison with zero in store_ctlr_mode()
        scsi: mpi3mr: Fix mpi3mr_fw.c kernel-doc warnings
        scsi: smartpqi: Bump driver version to 2.1.26-030
        scsi: smartpqi: Fix logical volume rescan race condition
        scsi: smartpqi: Add new controller PCI IDs
        scsi: ufs: qcom: Remove unnecessary goto statement from ufs_qcom_config_esi()
        scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
        scsi: ufs: core: Simplify power management during async scan
      c25b24fa
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · 12551488
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
       "Since the large patch series to convert arch/sh to device tree support
        has not been finalized yet due to various maintainers still asking for
        changes to the series, this ended up being rather small consisting of
        just two fixes.
      
        The first patch by Geert Uytterhoeven addresses a build failure in the
        EcoVec platform code. And the second patch by Masahiro Yamada removes
        an unnecessary $(foreach ...) found in a Makefile of the vsyscall
        code.
      
         - Rename missed backlight field from fbdev to dev
      
         - Remove unnecessary $(foreach ...)"
      
      * tag 'sh-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        sh: vsyscall: Remove unnecessary $(foreach ...)
        sh: ecovec24: Rename missed backlight field from fbdev to dev
      12551488
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.8-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · b1737ad4
      Linus Torvalds authored
      Pull fbdev fix from Helge Deller:
       "There were various reports from people without any graphics output on
        the screen and it turns out one commit triggers the problem.
      
         - Revert 'firmware/sysfb: Clear screen_info state after consuming it'"
      
      * tag 'fbdev-for-6.8-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        Revert "firmware/sysfb: Clear screen_info state after consuming it"
      b1737ad4
  3. 19 Jan, 2024 28 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.8-1-2024-01-09' of... · 9d64bf43
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.8-1-2024-01-09' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
       "Add Namhyung Kim as tools/perf/ co-maintainer, we're taking turns
        processing patches, switching roles from perf-tools to perf-tools-next
        at each Linux release.
      
        Data profiling:
      
         - Associate samples that identify loads and stores with data
           structures. This uses events available on Intel, AMD and others and
           DWARF info:
      
             # To get memory access samples in kernel for 1 second (on Intel)
             $ perf mem record -a -K --ldlat=4 -- sleep 1
      
             # Similar for the AMD (but it requires 6.3+ kernel for BPF filters)
             $ perf mem record -a --filter 'mem_op == load || mem_op == store, ip > 0x8000000000000000' -- sleep 1
      
           Then, amongst several modes of post processing, one can do things like:
      
             $ perf report -s type,typeoff --hierarchy --group --stdio
             ...
             #
             # Samples: 10K of events 'cpu/mem-loads,ldlat=4/P, cpu/mem-stores/P, dummy:u'
             # Event count (approx.): 602758064
             #
             #                    Overhead  Data Type / Data Type Offset
             # ...........................  ............................
             #
                 26.09%   3.28%   0.00%     long unsigned int
                    26.09%   3.28%   0.00%     long unsigned int +0 (no field)
                 18.48%   0.73%   0.00%     struct page
                    10.83%   0.02%   0.00%     struct page +8 (lru.next)
                     3.90%   0.28%   0.00%     struct page +0 (flags)
                     3.45%   0.06%   0.00%     struct page +24 (mapping)
                     0.25%   0.28%   0.00%     struct page +48 (_mapcount.counter)
                     0.02%   0.06%   0.00%     struct page +32 (index)
                     0.02%   0.00%   0.00%     struct page +52 (_refcount.counter)
                     0.02%   0.01%   0.00%     struct page +56 (memcg_data)
                     0.00%   0.01%   0.00%     struct page +16 (lru.prev)
                 15.37%  17.54%   0.00%     (stack operation)
                    15.37%  17.54%   0.00%     (stack operation) +0 (no field)
                 11.71%  50.27%   0.00%     (unknown)
                    11.71%  50.27%   0.00%     (unknown) +0 (no field)
      
             $ perf annotate --data-type
             ...
             Annotate type: 'struct cfs_rq' in [kernel.kallsyms] (13 samples):
             ============================================================================
                 samples     offset       size  field
                      13          0        640  struct cfs_rq         {
                       2          0         16      struct load_weight       load {
                       2          0          8          unsigned long        weight;
                       0          8          4          u32  inv_weight;
                                                    };
                       0         16          8      unsigned long    runnable_weight;
                       0         24          4      unsigned int     nr_running;
                       1         28          4      unsigned int     h_nr_running;
             ...
      
             $ perf annotate --data-type=page --group
             Annotate type: 'struct page' in [kernel.kallsyms] (480 samples):
              event[0] = cpu/mem-loads,ldlat=4/P
              event[1] = cpu/mem-stores/P
              event[2] = dummy:u
             ===================================================================================
                      samples  offset  size  field
             447  33        0       0    64  struct page     {
             108   8        0       0     8	 long unsigned int  flags;
             319  13        0       8    40	 union       {
             319  13        0       8    40          struct          {
             236   2        0       8    16              union       {
             236   2        0       8    16                  struct list_head       lru {
             236   1        0       8     8                      struct list_head*  next;
               0   1        0      16     8                      struct list_head*  prev;
                                                             };
             236   2        0       8    16                  struct          {
             236   1        0       8     8                      void*      __filler;
               0   1        0      16     4                      unsigned int       mlock_count;
                                                             };
             236   2        0       8    16                  struct list_head       buddy_list {
             236   1        0       8     8                      struct list_head*  next;
               0   1        0      16     8                      struct list_head*  prev;
                                                             };
             236   2        0       8    16                  struct list_head       pcp_list {
             236   1        0       8     8                      struct list_head*  next;
               0   1        0      16     8                      struct list_head*  prev;
                                                             };
                                                         };
              82   4        0      24     8              struct address_space*      mapping;
               1   7        0      32     8              union       {
               1   7        0      32     8                  long unsigned int      index;
               1   7        0      32     8                  long unsigned int      share;
                                                         };
               0   0        0      40     8              long unsigned int  private;
                                                                       };
      
           This uses the existing annotate code, calling objdump to do the
           disassembly, with improvements to avoid having this take too long,
           but longer term a switch to a disassembler library, possibly
           reusing code in the kernel will be pursued.
      
           This is the initial implementation, please use it and report
           impressions and bugs. Make sure the kernel-debuginfo packages match
           the running kernel. The 'perf report' phase for non short perf.data
           files may take a while.
      
           There is a great article about it on LWN:
      
             https://lwn.net/Articles/955709/ - "Data-type profiling for perf"
      
           One last test I did while writing this text, on a AMD Ryzen 5950X,
           using a distro kernel, while doing a simple 'find /' on an
           otherwise idle system resulted in:
      
           # uname -r
           6.6.9-100.fc38.x86_64
           # perf -vv | grep BPF_
                            bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
                  bpf_skeletons: [ on  ]  # HAVE_BPF_SKEL
           # rpm -qa | grep kernel-debuginfo
           kernel-debuginfo-common-x86_64-6.6.9-100.fc38.x86_64
           kernel-debuginfo-6.6.9-100.fc38.x86_64
           #
           # perf mem record -a --filter 'mem_op == load || mem_op == store, ip > 0x8000000000000000'
           ^C[ perf record: Woken up 1 times to write data ]
           [ perf record: Captured and wrote 2.199 MB perf.data (2913 samples) ]
           #
           # ls -la perf.data
           -rw-------. 1 root root 2346486 Jan  9 18:36 perf.data
           # perf evlist
           ibs_op//
           dummy:u
           # perf evlist -v
           ibs_op//: type: 11, size: 136, config: 0, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|CPU|PERIOD|IDENTIFIER|DATA_SRC|WEIGHT, read_format: ID, disabled: 1, inherit: 1, freq: 1, sample_id_all: 1
           dummy:u: type: 1 (PERF_TYPE_SOFTWARE), size: 136, config: 0x9 (PERF_COUNT_SW_DUMMY), { sample_period, sample_freq }: 1, sample_type: IP|TID|TIME|ADDR|CPU|IDENTIFIER|DATA_SRC|WEIGHT, read_format: ID, inherit: 1, exclude_kernel: 1, exclude_hv: 1, mmap: 1, comm: 1, task: 1, mmap_data: 1, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, ksymbol: 1, bpf_event: 1
           #
           # perf report -s type,typeoff --hierarchy --group --stdio
           # Total Lost Samples: 0
           #
           # Samples: 2K of events 'ibs_op//, dummy:u'
           # Event count (approx.): 1904553038
           #
           #            Overhead  Data Type / Data Type Offset
           # ...................  ............................
           #
               73.70%   0.00%     (unknown)
                  73.70%   0.00%     (unknown) +0 (no field)
                3.01%   0.00%     long unsigned int
                   3.00%   0.00%     long unsigned int +0 (no field)
                   0.01%   0.00%     long unsigned int +2 (no field)
                2.73%   0.00%     struct task_struct
                   1.71%   0.00%     struct task_struct +52 (on_cpu)
                   0.38%   0.00%     struct task_struct +2104 (rcu_read_unlock_special.b.blocked)
                   0.23%   0.00%     struct task_struct +2100 (rcu_read_lock_nesting)
                   0.14%   0.00%     struct task_struct +2384 ()
                   0.06%   0.00%     struct task_struct +3096 (signal)
                   0.05%   0.00%     struct task_struct +3616 (cgroups)
                   0.05%   0.00%     struct task_struct +2344 (active_mm)
                   0.02%   0.00%     struct task_struct +46 (flags)
                   0.02%   0.00%     struct task_struct +2096 (migration_disabled)
                   0.01%   0.00%     struct task_struct +24 (__state)
                   0.01%   0.00%     struct task_struct +3956 (mm_cid_active)
                   0.01%   0.00%     struct task_struct +1048 (cpus_ptr)
                   0.01%   0.00%     struct task_struct +184 (se.group_node.next)
                   0.01%   0.00%     struct task_struct +20 (thread_info.cpu)
                   0.00%   0.00%     struct task_struct +104 (on_rq)
                   0.00%   0.00%     struct task_struct +2456 (pid)
                1.36%   0.00%     struct module
                   0.59%   0.00%     struct module +952 (kallsyms)
                   0.42%   0.00%     struct module +0 (state)
                   0.23%   0.00%     struct module +8 (list.next)
                   0.12%   0.00%     struct module +216 (syms)
                0.95%   0.00%     struct inode
                   0.41%   0.00%     struct inode +40 (i_sb)
                   0.22%   0.00%     struct inode +0 (i_mode)
                   0.06%   0.00%     struct inode +76 (i_rdev)
                   0.06%   0.00%     struct inode +56 (i_security)
           <SNIP>
      
        perf top/report:
      
         - Don't ignore job control, allowing control+Z + bg to work.
      
         - Add s390 raw data interpretation for PAI (Processor Activity
           Instrumentation) counters.
      
        perf archive:
      
         - Add new option '--all' to pack perf.data with DSOs.
      
         - Add new option '--unpack' to expand tarballs.
      
        Initialization speedups:
      
         - Lazily initialize zstd streams to save memory when not using it.
      
         - Lazily allocate/size mmap event copy.
      
         - Lazy load kernel symbols in 'perf record'.
      
         - Be lazier in allocating lost samples buffer in 'perf record'.
      
         - Don't synthesize BPF events when disabled via the command line
           (perf record --no-bpf-event).
      
        Assorted improvements:
      
         - Show note on AMD systems that the :p, :pp, :ppp and :P are all the
           same, as IBS (Instruction Based Sampling) is used and it is
           inherentely precise, not having levels of precision like in Intel
           systems.
      
         - When 'cycles' isn't available, fall back to the "task-clock" event
           when not system wide, not to 'cpu-clock'.
      
         - Add --debug-file option to redirect debug output, e.g.:
      
             $ perf --debug-file /tmp/perf.log record -v true
      
         - Shrink 'struct map' to under one cacheline by avoiding function
           pointers for selecting if addresses are identity or DSO relative,
           and using just a byte for some boolean struct members.
      
         - Resolve the arch specific strerrno just once to use in
           perf_env__arch_strerrno().
      
         - Reduce memory for recording PERF_RECORD_LOST_SAMPLES event.
      
        Assorted fixes:
      
         - Fix the default 'perf top' usage on Intel hybrid systems, now it
           starts with a browser showing the number of samples for Efficiency
           (cpu_atom/cycles/P) and Performance (cpu_core/cycles/P). This
           behaviour is similar on ARM64, with its respective set of
           big.LITTLE processors.
      
         - Fix segfault on build_mem_topology() error path.
      
         - Fix 'perf mem' error on hybrid related to availability of mem event
           in a PMU.
      
         - Fix missing reference count gets (map, maps) in the db-export code.
      
         - Avoid recursively taking env->bpf_progs.lock in the 'perf_env'
           code.
      
         - Use the newly introduced maps__for_each_map() to add missing
           locking around iteration of 'struct map' entries.
      
         - Parse NOTE segments until the build id is found, don't stop on the
           first one, ELF files may have several such NOTE segments.
      
         - Remove 'egrep' usage, its deprecated, use 'grep -E' instead.
      
         - Warn first about missing libelf, not libbpf, that depends on
           libelf.
      
         - Use alternative to 'find ... -printf' as this isn't supported in
           busybox.
      
         - Address python 3.6 DeprecationWarning for string scapes.
      
         - Fix memory leak in uniq() in libsubcmd.
      
         - Fix man page formatting for 'perf lock'
      
         - Fix some spelling mistakes.
      
        perf tests:
      
         - Fail shell tests that needs some symbol in perf itself if it is
           stripped. These tests check if a symbol is resolved, if some hot
           function is indeed detected by profiling, etc.
      
         - The 'perf test sigtrap' test is currently failing on PREEMPT_RT,
           skip it if sleeping spinlocks are detected (using BTF) and point to
           the mailing list discussion about it. This test is also being
           skipped on several architectures (powerpc, s390x, arm and aarch64)
           due to other pending issues with intruction breakpoints.
      
         - Adjust test case perf record offcpu profiling tests for s390.
      
         - Fix 'Setup struct perf_event_attr' fails on s390 on z/VM guest,
           addressing issues caused by the fallback from cycles to task-clock
           done in this release.
      
         - Fix mask for VG register in the user-regs test.
      
         - Use shellcheck on 'perf test' shell scripts automatically to make
           sure changes don't introduce things it flags as problematic.
      
         - Add option to change objdump binary and allow it to be set via
           'perf config'.
      
         - Add basic 'perf script', 'perf list --json" and 'perf diff' tests.
      
         - Basic branch counter support.
      
         - Make DSO tests a suite rather than individual.
      
         - Remove atomics from test_loop to avoid test failures.
      
         - Fix call chain match on powerpc for the record+probe_libc_inet_pton
           test.
      
         - Improve Intel hybrid tests.
      
        Vendor event files (JSON):
      
        powerpc:
      
         - Update datasource event name to fix duplicate events on IBM's
           Power10.
      
         - Add PVN for HX-C2000 CPU with Power8 Architecture.
      
        Intel:
      
         - Alderlake/rocketlake metric fixes.
      
         - Update emeraldrapids events to v1.02.
      
         - Update icelakex events to v1.23.
      
         - Update sapphirerapids events to v1.17.
      
         - Add skx, clx, icx and spr upi bandwidth metric.
      
        AMD:
      
         - Add Zen 4 memory controller events.
      
        RISC-V:
      
         - Add StarFive Dubhe-80 and Dubhe-90 JSON files.
             https://www.starfivetech.com/en/site/cpu-u
      
         - Add T-HEAD C9xx JSON file.
             https://github.com/riscv-software-src/opensbi/blob/master/docs/platform/thead-c9xx.md
      
        ARM64:
      
         - Remove UTF-8 characters from cmn.json, that were causing build
           failure in some distros.
      
         - Add core PMU events and metrics for Ampere One X.
      
         - Rename Ampere One's BPU_FLUSH_MEM_FAULT to GPC_FLUSH_MEM_FAULT
      
        libperf:
      
         - Rename several perf_cpu_map constructor names to clarify what they
           really do.
      
         - Ditto for some other methods, coping with some issues in their
           semantics, like perf_cpu_map__empty() ->
           perf_cpu_map__has_any_cpu_or_is_empty().
      
         - Document perf_cpu_map__nr()'s behavior
      
        perf stat:
      
         - Exit if parse groups fails.
      
         - Combine the -A/--no-aggr and --no-merge options.
      
         - Fix help message for --metric-no-threshold option.
      
        Hardware tracing:
      
        ARM64 CoreSight:
      
         - Bump minimum OpenCSD version to ensure a bugfix is present.
      
         - Add 'T' itrace option for timestamp trace
      
         - Set start vm addr of exectable file to 0 and don't ignore first
           sample on the arm-cs-trace-disasm.py 'perf script'"
      
      * tag 'perf-tools-for-v6.8-1-2024-01-09' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (179 commits)
        MAINTAINERS: Add Namhyung as tools/perf/ co-maintainer
        perf test: test case 'Setup struct perf_event_attr' fails on s390 on z/vm
        perf db-export: Fix missing reference count get in call_path_from_sample()
        perf tests: Add perf script test
        libsubcmd: Fix memory leak in uniq()
        perf TUI: Don't ignore job control
        perf vendor events intel: Update sapphirerapids events to v1.17
        perf vendor events intel: Update icelakex events to v1.23
        perf vendor events intel: Update emeraldrapids events to v1.02
        perf vendor events intel: Alderlake/rocketlake metric fixes
        perf x86 test: Add hybrid test for conflicting legacy/sysfs event
        perf x86 test: Update hybrid expectations
        perf vendor events amd: Add Zen 4 memory controller events
        perf stat: Fix hard coded LL miss units
        perf record: Reduce memory for recording PERF_RECORD_LOST_SAMPLES event
        perf env: Avoid recursively taking env->bpf_progs.lock
        perf annotate: Add --insn-stat option for debugging
        perf annotate: Add --type-stat option for debugging
        perf annotate: Support event group display
        perf annotate: Add --data-type option
        ...
      9d64bf43
    • Linus Torvalds's avatar
      Merge tag 'strlcpy-removal-v6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 57f22c8d
      Linus Torvalds authored
      Pull strlcpy removal from Kees Cook:
       "As promised, this is 'part 2' of the hardening tree, late in -rc1 now
        that all the other trees with strlcpy() removals have landed. One new
        user appeared (in bcachefs) but was a trivial refactor. The kernel is
        now free of the strlcpy() API!
      
         - Remove of the final (very recent) user of strlcpy() (in bcachefs)
      
         - Remove the strlcpy() API. Long live strscpy()"
      
      * tag 'strlcpy-removal-v6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        string: Remove strlcpy()
        bcachefs: Replace strlcpy() with strscpy()
      57f22c8d
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 18b5cb6c
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "I think the main one is fixing the dynamic SCS patching when full LTO
        is enabled (clang was silently getting this horribly wrong), but it's
        all good stuff.
      
        Rob just pointed out that the fix to the workaround for erratum
        #2966298 might not be necessary, but in the worst case it's harmless
        and since the official description leaves a little to be desired here,
        I've left it in.
      
        Summary:
      
         - Fix shadow call stack patching with LTO=full
      
         - Fix voluntary preemption of the FPSIMD registers from assembly code
      
         - Fix workaround for A520 CPU erratum #2966298 and extend to A510
      
         - Fix SME issues that resulted in corruption of the register state
      
         - Minor fixes (missing includes, formatting)"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix silcon-errata.rst formatting
        arm64/sme: Always exit sme_alloc() early with existing storage
        arm64/fpsimd: Remove spurious check for SVE support
        arm64/ptrace: Don't flush ZA/ZT storage when writing ZA via ptrace
        arm64: entry: simplify kernel_exit logic
        arm64: entry: fix ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
        arm64: errata: Add Cortex-A510 speculative unprivileged load workaround
        arm64: Rename ARM64_WORKAROUND_2966298
        arm64: fpsimd: Bring cond_yield asm macro in line with new rules
        arm64: scs: Work around full LTO issue with dynamic SCS
        arm64: irq: include <linux/cpumask.h>
      18b5cb6c
    • Linus Torvalds's avatar
      Merge tag 'loongarch-6.8' of... · 24fdd518
      Linus Torvalds authored
      Merge tag 'loongarch-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch updates from Huacai Chen:
      
       - Raise minimum clang version to 18.0.0
      
       - Enable initial Rust support for LoongArch
      
       - Add built-in dtb support for LoongArch
      
       - Use generic interface to support crashkernel=X,[high,low]
      
       - Some bug fixes and other small changes
      
       - Update the default config file.
      
      * tag 'loongarch-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: (22 commits)
        MAINTAINERS: Add BPF JIT for LOONGARCH entry
        LoongArch: Update Loongson-3 default config file
        LoongArch: BPF: Prevent out-of-bounds memory access
        LoongArch: BPF: Support 64-bit pointers to kfuncs
        LoongArch: Fix definition of ftrace_regs_set_instruction_pointer()
        LoongArch: Use generic interface to support crashkernel=X,[high,low]
        LoongArch: Fix and simplify fcsr initialization on execve()
        LoongArch: Let cores_io_master cover the largest NR_CPUS
        LoongArch: Change SHMLBA from SZ_64K to PAGE_SIZE
        LoongArch: Add a missing call to efi_esrt_init()
        LoongArch: Parsing CPU-related information from DTS
        LoongArch: dts: DeviceTree for Loongson-2K2000
        LoongArch: dts: DeviceTree for Loongson-2K1000
        LoongArch: dts: DeviceTree for Loongson-2K0500
        LoongArch: Allow device trees be built into the kernel
        dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for interrupt-names
        dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
        dt-bindings: loongarch: Add Loongson SoC boards compatibles
        dt-bindings: loongarch: Add CPU bindings for LoongArch
        LoongArch: Enable initial Rust support
        ...
      24fdd518
    • Helge Deller's avatar
      Revert "firmware/sysfb: Clear screen_info state after consuming it" · 2bebc3cd
      Helge Deller authored
      This reverts commit df67699c.
      
      Jens Axboe reported a regression that his machine is failing to show a
      console, or in fact anything, on current -git. There's no output and no
      console after:
      
      Loading Linux 6.7.0+ ...
      Loading initial ramdisk ...
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Jens Axboe <axboe@kernel.dk>
      2bebc3cd
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 9bc44c51
      Linus Torvalds authored
      Pull devicetree header detangling from Rob Herring:
       "Remove the circular including of of_device.h and of_platform.h along
        with all of their implicit includes.
      
        This is the culmination of several kernel cycles worth of fixing
        implicit DT includes throughout the tree"
      
      * tag 'devicetree-for-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of: Stop circularly including of_device.h and of_platform.h
        clk: qcom: gcc-x1e80100: Replace of_device.h with explicit includes
        thermal: loongson2: Replace of_device.h with explicit includes
        net: can: Use device_get_match_data()
        sparc: Use device_get_match_data()
      9bc44c51
    • Li Zhijian's avatar
      coccinelle: device_attr_show: Adapt to the latest Documentation/filesystems/sysfs.rst · 68ea60a7
      Li Zhijian authored
      Adapt description, warning message and MODE=patch according to the latest
      Documentation/filesystems/sysfs.rst:
      > show() should only use sysfs_emit() or sysfs_emit_at() when formatting
      > the value to be returned to user space.
      
      After this patch:
      When MODE=report,
       $ make coccicheck COCCI=scripts/coccinelle/api/device_attr_show.cocci M=drivers/hid/hid-picolcd_core.c MODE=report
       <...snip...>
       drivers/hid/hid-picolcd_core.c:304:8-16: WARNING: please use sysfs_emit or sysfs_emit_at
       drivers/hid/hid-picolcd_core.c:259:9-17: WARNING: please use sysfs_emit or sysfs_emit_at
      
      When MODE=patch,
       $ make coccicheck COCCI=scripts/coccinelle/api/device_attr_show.cocci M=drivers/hid/hid-picolcd_core.c MODE=patch
       <...snip...>
       diff -u -p a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c
       --- a/drivers/hid/hid-picolcd_core.c
       +++ b/drivers/hid/hid-picolcd_core.c
       @@ -255,10 +255,12 @@ static ssize_t picolcd_operation_mode_sh
        {
               struct picolcd_data *data = dev_get_drvdata(dev);
      
       -       if (data->status & PICOLCD_BOOTLOADER)
       -               return snprintf(buf, PAGE_SIZE, "[bootloader] lcd\n");
       -       else
       -               return snprintf(buf, PAGE_SIZE, "bootloader [lcd]\n");
       +       if (data->status & PICOLCD_BOOTLOADER) {
       +               return sysfs_emit(buf, "[bootloader] lcd\n");
       +       }
       +       else {
       +               return sysfs_emit(buf, "bootloader [lcd]\n");
       +       }
        }
      
        static ssize_t picolcd_operation_mode_store(struct device *dev,
       @@ -301,7 +303,7 @@ static ssize_t picolcd_operation_mode_de
        {
               struct picolcd_data *data = dev_get_drvdata(dev);
      
       -       return snprintf(buf, PAGE_SIZE, "hello world\n");
       +       return sysfs_emit(buf, "hello world\n");
        }
      
        static ssize_t picolcd_operation_mode_delay_store(struct device *dev,
      
      CC: Julia Lawall <Julia.Lawall@inria.fr>
      CC: Nicolas Palix <nicolas.palix@imag.fr>
      CC: cocci@inria.fr
      Signed-off-by: default avatarLi Zhijian <lizhijian@fujitsu.com>
      68ea60a7
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.8-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a638bfbf
      Linus Torvalds authored
      Pull spi fix from Mark Brown:
       "One simple fix for the device unbind path in the Coldfire driver.
      
        A conversion to use a combined get/enable helper missed removing a
        disable"
      
      * tag 'spi-fix-v6.8-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: coldfire-qspi: Remove an erroneous clk_disable_unprepare() from the remove function
      a638bfbf
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a1fe5b6d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes:
      
         - Lots of ASoC SOF fixes and related reworks
      
         - ASoC TAS codec fixes including DT updates
      
         - A few HD-audio quirks and regression fixes
      
         - Minor fixes for aloop, oxygen and scarlett2 mixer"
      
      * tag 'sound-fix-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (23 commits)
        ALSA: hda/realtek: Enable headset mic on Lenovo M70 Gen5
        ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on HP ZBook
        ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx
        ASoC: SOF: ipc4-loader: remove the CPC check warnings
        ASoC: SOF: ipc4-pcm: remove log message for LLP
        ALSA: hda: generic: Remove obsolete call to ledtrig_audio_get
        ALSA: scarlett2: Fix yet more -Wformat-truncation warnings
        ALSA: hda: Properly setup HDMI stream
        ASoC: audio-graph-card2: fix index check on graph_parse_node_multi_nm()
        ASoC: SOF: icp3-dtrace: Revert "Fix wrong kfree() usage"
        ALSA: oxygen: Fix right channel of capture volume mixer
        ALSA: aloop: Introduce a function to get if access is interleaved mode
        ASoC: mediatek: sof-common: Add NULL check for normal_link string
        ASoC: mediatek: mt8195: Remove afe-dai component and rework codec link
        ASoC: mediatek: mt8192: Check existence of dai_name before dereferencing
        ASoC: Intel: bxt_rt298: Fix kernel ops due to COMP_DUMMY change
        ASoC: Intel: bxt_da7219_max98357a: Fix kernel ops due to COMP_DUMMY change
        ASoC: codecs: rtq9128: Fix TDM enable and DAI format control flow
        ASoC: codecs: rtq9128: Fix PM_RUNTIME usage
        ASoC: tas2781: Add tas2563 into driver
        ...
      a1fe5b6d
    • Kees Cook's avatar
      string: Remove strlcpy() · d2627006
      Kees Cook authored
      With all the users of strlcpy() removed[1] from the kernel, remove the
      API, self-tests, and other references. Leave mentions in Documentation
      (about its deprecation), and in checkpatch.pl (to help migrate host-only
      tools/ usage). Long live strscpy().
      
      Link: https://github.com/KSPP/linux/issues/89 [1]
      Cc: Azeem Shaikh <azeemshaikh38@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Whitcroft <apw@canonical.com>
      Cc: Joe Perches <joe@perches.com>
      Cc: Dwaipayan Ray <dwaipayanray1@gmail.com>
      Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
      Cc: linux-hardening@vger.kernel.org
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      d2627006
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2024-01-19' of git://anongit.freedesktop.org/drm/drm · e08b5758
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "This is mostly amdgpu and xe fixes, with an amdkfd and nouveau fix
        thrown in.
      
        The amdgpu ones are just the usual couple of weeks of fixes. The xe
        ones are bunch of cleanups for the new xe driver, the fix you put in
        on the merge commit and the kconfig fix that was hiding the problem
        from me.
      
        amdgpu:
         - DSC fixes
         - DC resource pool fixes
         - OTG fix
         - DML2 fixes
         - Aux fix
         - GFX10 RLC firmware handling fix
         - Revert a broken workaround for SMU 13.0.2
         - DC writeback fix
         - Enable gfxoff when ROCm apps are active on gfx11 with the proper FW
           version
      
        amdkfd:
         - Fix dma-buf exports using GEM handles
      
        nouveau:
         - fix a unneeded WARN_ON triggering
      
        xe:
         - Fix for definition of wakeref_t
         - Fix for an error code aliasing
         - Fix for VM_UNBIND_ALL in the case there are no bound VMAs
         - Fixes for a number of __iomem address space mismatches reported by
           sparse
         - Fixes for the assignment of exec_queue priority
         - A Fix for skip_guc_pc not taking effect
         - Workaround for a build problem on GCC 11
         - A couple of fixes for error paths
         - Fix a Flat CCS compression metadata copy issue
         - Fix a misplace array bounds checking
         - Don't have display support depend on EXPERT (as discussed on IRC)"
      
      * tag 'drm-next-2024-01-19' of git://anongit.freedesktop.org/drm/drm: (71 commits)
        nouveau/vmm: don't set addr on the fail path to avoid warning
        drm/amdgpu: Enable GFXOFF for Compute on GFX11
        drm/amd/display: Drop 'acrtc' and add 'new_crtc_state' NULL check for writeback requests.
        drm/amdgpu: revert "Adjust removal control flow for smu v13_0_2"
        drm/amdkfd: init drm_client with funcs hook
        drm/amd/display: Fix a switch statement in populate_dml_output_cfg_from_stream_state()
        drm/amdgpu: Fix the null pointer when load rlc firmware
        drm/amd/display: Align the returned error code with legacy DP
        drm/amd/display: Fix DML2 watermark calculation
        drm/amd/display: Clear OPTC mem select on disable
        drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A
        drm/amd/display: Add logging resource checks
        drm/amd/display: Init link enc resources in dc_state only if res_pool presents
        drm/amd/display: Fix late derefrence 'dsc' check in 'link_set_dsc_pps_packet()'
        drm/amd/display: Avoid enum conversion warning
        drm/amd/pm: Fix smuv13.0.6 current clock reporting
        drm/amd/pm: Add error log for smu v13.0.6 reset
        drm/amdkfd: Fix 'node' NULL check in 'svm_range_get_range_boundaries()'
        drm/amdgpu: drop exp hw support check for GC 9.4.3
        drm/amdgpu: move debug options init prior to amdgpu device init
        ...
      e08b5758
    • Linus Torvalds's avatar
      Merge tag 'for-v6.8-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · ab1e2d0f
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "New features:
         - bq24190: Add support for BQ24296 charger
      
        Cleanups:
         - all reset drivers: Stop using module_platform_driver_probe()
         - gpio-restart: use devm_register_sys_off_handler
         - pwr-mlxbf: support graceful reboot
         - cw2015: correct time_to_empty units
         - qcom-battmgr: Fix driver initialization sequence
         - bq27xxx: Start/Stop delayed work in suspend/resume
         - minor cleanups and fixes"
      
      * tag 'for-v6.8-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (33 commits)
        power: supply: bq24190_charger: Fix "initializer element is not constant" error
        power: supply: bq24190_charger: Add support for BQ24296
        dt-bindings: power: supply: bq24190: Add BQ24296 compatible
        dt-bindings: power: reset: xilinx: Rename node names in examples
        power: supply: qcom_battmgr: Register the power supplies after PDR is up
        dt-bindings: power: reset: qcom-pon: fix inconsistent example
        power: supply: Fix null pointer dereference in smb2_probe
        power: reset: at91: Drop '__init' from at91_wakeup_status()
        power: supply: Use multiple MODULE_AUTHOR statements
        power: supply: Fix indentation and some other warnings
        power: reset: gpio-restart: Use devm_register_sys_off_handler()
        power: supply: bq256xx: fix some problem in bq256xx_hw_init
        power: supply: cw2015: correct time_to_empty units in sysfs
        power: reset: at91-sama5d2_shdwc: Convert to platform remove callback returning void
        power: reset: at91-reset: Convert to platform remove callback returning void
        power: reset: tps65086-restart: Convert to platform remove callback returning void
        power: reset: syscon-poweroff: Convert to platform remove callback returning void
        power: reset: rmobile-reset: Convert to platform remove callback returning void
        power: reset: restart-poweroff: Convert to platform remove callback returning void
        power: reset: regulator-poweroff: Convert to platform remove callback returning void
        ...
      ab1e2d0f
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2024-01-18' of... · 237c31cb
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2024-01-18' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull AppArmor updates from John Johansen:
       "This adds a single feature, switch the hash used to check policy from
        sha1 to sha256
      
        There are fixes for two memory leaks, and refcount bug and a potential
        crash when a profile name is empty. Along with a couple minor code
        cleanups.
      
        Summary:
      
        Features
         - switch policy hash from sha1 to sha256
      
        Bug Fixes
         - Fix refcount leak in task_kill
         - Fix leak of pdb objects and trans_table
         - avoid crash when parse profie name is empty
      
        Cleanups
         - add static to stack_msg and nulldfa
         - more kernel-doc cleanups"
      
      * tag 'apparmor-pr-2024-01-18' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor:
        apparmor: Fix memory leak in unpack_profile()
        apparmor: avoid crash when parsed profile name is empty
        apparmor: fix possible memory leak in unpack_trans_table
        apparmor: free the allocated pdb objects
        apparmor: Fix ref count leak in task_kill
        apparmor: cleanup network hook comments
        apparmor: add missing params to aa_may_ptrace kernel-doc comments
        apparmor: declare nulldfa as static
        apparmor: declare stack_msg as static
        apparmor: switch SECURITY_APPARMOR_HASH from sha1 to sha256
      237c31cb
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-6.8-rc1' of https://github.com/ceph/ceph-client · 556e2d17
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "Assorted CephFS fixes and cleanups with nothing standing out"
      
      * tag 'ceph-for-6.8-rc1' of https://github.com/ceph/ceph-client:
        ceph: get rid of passing callbacks in __dentry_leases_walk()
        ceph: d_obtain_{alias,root}(ERR_PTR(...)) will do the right thing
        ceph: fix invalid pointer access if get_quota_realm return ERR_PTR
        ceph: remove duplicated code in ceph_netfs_issue_read()
        ceph: send oldest_client_tid when renewing caps
        ceph: rename create_session_open_msg() to create_session_full_msg()
        ceph: select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
        ceph: fix deadlock or deadcode of misusing dget()
        ceph: try to allocate a smaller extent map for sparse read
        libceph: remove MAX_EXTENTS check for sparse reads
        ceph: reinitialize mds feature bit even when session in open
        ceph: skip reconnecting if MDS is not ready
      556e2d17
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.8-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · ec2d264a
      Linus Torvalds authored
      Pull xfs fix from Chandan Babu:
      
       - Fix per-inode space accounting bug
      
      * tag 'xfs-6.8-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: fix backwards logic in xfs_bmap_alloc_account
      ec2d264a
    • Linus Torvalds's avatar
      Merge tag '6.8-rc-smb-server-fixes-part2' of git://git.samba.org/ksmbd · 8cb1bb17
      Linus Torvalds authored
      Pull more smb server updates from Steve French:
      
       - Fix for incorrect oplock break on directories when leases disabled
      
       - UAF fix for race between create and destroy of tcp connection
      
       - Important session setup SPNEGO fix
      
       - Update ksmbd feature status summary
      
      * tag '6.8-rc-smb-server-fixes-part2' of git://git.samba.org/ksmbd:
        ksmbd: only v2 leases handle the directory
        ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
        ksmbd: validate mech token in session setup
        ksmbd: update feature status in documentation
      8cb1bb17
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.8.netfs' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs · 16df6e07
      Linus Torvalds authored
      Pull netfs updates from Christian Brauner:
       "This extends the netfs helper library that network filesystems can use
        to replace their own implementations. Both afs and 9p are ported. cifs
        is ready as well but the patches are way bigger and will be routed
        separately once this is merged. That will remove lots of code as well.
      
        The overal goal is to get high-level I/O and knowledge of the page
        cache and ouf of the filesystem drivers. This includes knowledge about
        the existence of pages and folios
      
        The pull request converts afs and 9p. This removes about 800 lines of
        code from afs and 300 from 9p. For 9p it is now possible to do writes
        in larger than a page chunks. Additionally, multipage folio support
        can be turned on for 9p. Separate patches exist for cifs removing
        another 2000+ lines. I've included detailed information in the
        individual pulls I took.
      
        Summary:
      
         - Add NFS-style (and Ceph-style) locking around DIO vs buffered I/O
           calls to prevent these from happening at the same time.
      
         - Support for direct and unbuffered I/O.
      
         - Support for write-through caching in the page cache.
      
         - O_*SYNC and RWF_*SYNC writes use write-through rather than writing
           to the page cache and then flushing afterwards.
      
         - Support for write-streaming.
      
         - Support for write grouping.
      
         - Skip reads for which the server could only return zeros or EOF.
      
         - The fscache module is now part of the netfs library and the
           corresponding maintainer entry is updated.
      
         - Some helpers from the fscache subsystem are renamed to mark them as
           belonging to the netfs library.
      
         - Follow-up fixes for the netfs library.
      
         - Follow-up fixes for the 9p conversion"
      
      * tag 'vfs-6.8.netfs' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs: (50 commits)
        netfs: Fix wrong #ifdef hiding wait
        cachefiles: Fix signed/unsigned mixup
        netfs: Fix the loop that unmarks folios after writing to the cache
        netfs: Fix interaction between write-streaming and cachefiles culling
        netfs: Count DIO writes
        netfs: Mark netfs_unbuffered_write_iter_locked() static
        netfs: Fix proc/fs/fscache symlink to point to "netfs" not "../netfs"
        netfs: Rearrange netfs_io_subrequest to put request pointer first
        9p: Use length of data written to the server in preference to error
        9p: Do a couple of cleanups
        9p: Fix initialisation of netfs_inode for 9p
        cachefiles: Fix __cachefiles_prepare_write()
        9p: Use netfslib read/write_iter
        afs: Use the netfs write helpers
        netfs: Export the netfs_sreq tracepoint
        netfs: Optimise away reads above the point at which there can be no data
        netfs: Implement a write-through caching option
        netfs: Provide a launder_folio implementation
        netfs: Provide a writepages implementation
        netfs, cachefiles: Pass upper bound length to allow expansion
        ...
      16df6e07
    • Shyam Prasad N's avatar
      cifs: update iface_last_update on each query-and-update · 78e727e5
      Shyam Prasad N authored
      iface_last_update was an unused field when it was introduced.
      Later, when we had periodic update of server interface list,
      this field was used regularly to decide when to update next.
      
      However, with the new logic of updating the interfaces, it
      becomes crucial that this field be updated whenever
      parse_server_interfaces runs successfully.
      
      This change updates this field when either the server does
      not support query of interfaces; so that we do not query
      the interfaces repeatedly. It also updates the field when
      the function reaches the end.
      
      Fixes: aa45dadd ("cifs: change iface_list from array to sorted linked list")
      Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      78e727e5
    • Shyam Prasad N's avatar
      cifs: handle servers that still advertise multichannel after disabling · f591062b
      Shyam Prasad N authored
      Some servers like Azure SMB servers always advertise multichannel
      capability in server capabilities list. Such servers return error
      STATUS_NOT_IMPLEMENTED for ioctl calls to query server interfaces,
      and expect clients to consider that as a sign that they do not support
      multichannel.
      
      We already handled this at mount time. Soon after the tree connect,
      we query server interfaces. And when server returned STATUS_NOT_IMPLEMENTED,
      we kept interface list as empty. When cifs_try_adding_channels gets
      called, it would not find any interfaces, so will not add channels.
      
      For the case where an active multichannel mount exists, and multichannel
      is disabled by such a server, this change will now allow the client
      to disable secondary channels on the mount. It will check the return
      status of query server interfaces call soon after a tree reconnect.
      If the return status is EOPNOTSUPP, then instead of the check to add
      more channels, we'll disable the secondary channels instead.
      
      For better code reuse, this change also moves the common code for
      disabling multichannel to a helper function.
      Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      f591062b
    • Shyam Prasad N's avatar
      cifs: new mount option called retrans · ce09f8d8
      Shyam Prasad N authored
      We have several places in the code where we treat the
      error -EAGAIN very differently. Some code retry for
      arbitrary number of times.
      
      Introducing this new mount option named "retrans", so
      that all these handlers of -EAGAIN can retry a fixed
      number of times. This applies only to soft mounts.
      Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      ce09f8d8
    • Shyam Prasad N's avatar
      cifs: reschedule periodic query for server interfaces · 49fe25ce
      Shyam Prasad N authored
      Today, we schedule periodic query for server interfaces
      once every 10 minutes once a tree connection has been
      established. Recent change to handle disabling of
      multichannel disabled this delayed work.
      
      This change reenables it following a reconnect, and
      the server advertises multichannel.
      Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      49fe25ce
    • Paulo Alcantara's avatar
      smb: client: don't clobber ->i_rdev from cached reparse points · 66c9314b
      Paulo Alcantara authored
      Don't clobber ->i_rdev from valid reparse inodes over readdir(2) as it
      can't be provided by query dir responses.
      Signed-off-by: default avatarPaulo Alcantara <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      66c9314b
    • Paulo Alcantara's avatar
      smb: client: get rid of smb311_posix_query_path_info() · f83709b9
      Paulo Alcantara authored
      Merge smb311_posix_query_path_info into ->query_path_info() to get rid
      of duplicate code.
      Signed-off-by: default avatarPaulo Alcantara <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      f83709b9
    • Paulo Alcantara's avatar
      smb: client: parse owner/group when creating reparse points · 858e7487
      Paulo Alcantara authored
      Parse owner/group when creating special files and symlinks under
      SMB3.1.1 POSIX mounts.
      
      Move the parsing of owner/group to smb2_compound_op() so we don't have
      to duplicate it in both smb2_get_reparse_inode() and
      smb311_posix_query_path_info().
      Signed-off-by: default avatarPaulo Alcantara <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      858e7487
    • Paulo Alcantara's avatar
      smb: client: fix parsing of SMB3.1.1 POSIX create context · 76025cc2
      Paulo Alcantara authored
      The data offset for the SMB3.1.1 POSIX create context will always be
      8-byte aligned so having the check 'noff + nlen >= doff' in
      smb2_parse_contexts() is wrong as it will lead to -EINVAL because noff
      + nlen == doff.
      
      Fix the sanity check to correctly handle aligned create context data.
      
      Fixes: af1689a9 ("smb: client: fix potential OOBs in smb2_parse_contexts()")
      Signed-off-by: default avatarPaulo Alcantara <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      76025cc2
    • Steve French's avatar
      cifs: update known bugs mentioned in kernel docs for cifs · cfb7a133
      Steve French authored
      Remove bugs that have been addressed and add link to xfstest results
      wiki.
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      cfb7a133
    • Palmer Dabbelt's avatar
      lib: checksum: Fix build with CONFIG_NET=n · f24a7010
      Palmer Dabbelt authored
      The generic ipv6 checksums are only defined with CONFIG_NET=y, so gate
      the test as well.
      
      Fixes: 6f4c45cb ("kunit: Add tests for csum_ipv6_magic and ip_fast_csum")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Closes: https://lore.kernel.org/oe-kbuild-all/202401192143.jLdjbIy3-lkp@intel.com/
      Closes: https://lore.kernel.org/oe-kbuild-all/202401192357.WU4nPRdN-lkp@intel.com/Reviewed-By: default avatarCharlie Jenkins <charlie@rivosinc.com>
      Link: https://lore.kernel.org/r/20240119145600.3093-2-palmer@rivosinc.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      f24a7010
    • Rob Herring's avatar
      of: Stop circularly including of_device.h and of_platform.h · ef175b29
      Rob Herring authored
      The DT of_device.h and of_platform.h headers date back to the separate
      of_platform_bus_type before it was merged into the regular platform bus.
      As part of that merge prepping Arm DT support 13 years ago, they
      "temporarily" include each other. The headers also include
      platform_device.h and of.h. The result was lots of drivers relied on
      these implicit includes.
      
      Now the entire tree has been fixed over the last couple of cycles to
      explicitly include the necessary headers instead of relying on
      of_device.h and/or of_platform.h implicit includes, so the implicit and
      circular includes can finally be removed.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      ef175b29