1. 20 Jan, 2024 8 commits
  2. 19 Jan, 2024 32 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
    • 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
    • Stephen Rothwell's avatar
      clk: qcom: gcc-x1e80100: Replace of_device.h with explicit includes · 527eb67e
      Stephen Rothwell authored
      The DT of_device.h and of_platform.h date back to the separate
      of_platform_bus_type before it as merged into the regular platform bus.
      As part of that merge prepping Arm DT support 13 years ago, they
      "temporarily" include each other. They also include platform_device.h
      and of.h.
      
      of_device.h isn't needed, but mod_devicetable.h and platform_device.h
      were implicitly included.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Reviewed-by: default avatarSibi Sankar <quic_sibis@quicinc.com>
      Link: https://lore.kernel.org/r/20231211160510.0aef871b@canb.auug.org.au
      [robh: Redo commit msg]
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      527eb67e
    • Rob Herring's avatar
      thermal: loongson2: Replace of_device.h with explicit includes · ed7dafcc
      Rob Herring authored
      The DT of_device.h and of_platform.h date back to the separate
      of_platform_bus_type before it as merged into the regular platform bus.
      As part of that merge prepping Arm DT support 13 years ago, they
      "temporarily" include each other. They also include platform_device.h
      and of.h.
      
      of_device.h isn't needed, but mod_devicetable.h and property.h were
      implicitly included.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      ed7dafcc
    • Rob Herring's avatar
      net: can: Use device_get_match_data() · 5e6c3454
      Rob Herring authored
      Use preferred device_get_match_data() instead of of_match_device() to
      get the driver match data. With this, adjust the includes to explicitly
      include the correct headers.
      
      Error checking for matching and match data was not necessary as matching
      is always successful if we're already in probe and the match tables always
      have data pointers.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      5e6c3454
    • Rob Herring's avatar
      sparc: Use device_get_match_data() · 61c2ef4b
      Rob Herring authored
      Use preferred device_get_match_data() instead of of_match_device() to
      get the driver match data. With this, adjust the includes to explicitly
      include the correct headers.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      61c2ef4b
    • Masahiro Yamada's avatar
      99fe83ab
    • Geert Uytterhoeven's avatar
      sh: ecovec24: Rename missed backlight field from fbdev to dev · d87123aa
      Geert Uytterhoeven authored
      One instance of gpio_backlight_platform_data.fbdev was renamed, but the
      second instance was forgotten, causing a build failure:
      
          arch/sh/boards/mach-ecovec24/setup.c: In function ‘arch_setup’:
          arch/sh/boards/mach-ecovec24/setup.c:1223:37: error: ‘struct gpio_backlight_platform_data’ has no member named ‘fbdev’; did you mean ‘dev’?
           1223 |                 gpio_backlight_data.fbdev = NULL;
      	  |                                     ^~~~~
      	  |                                     dev
      
      Fix this by updating the second instance.
      
      Fixes: ed369def ("backlight/gpio_backlight: Rename field 'fbdev' to 'dev'")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Closes: https://lore.kernel.org/oe-kbuild-all/202309231601.Uu6qcRnU-lkp@intel.com/Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Link: https://lore.kernel.org/r/20230925111022.3626362-1-geert+renesas@glider.beSigned-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      d87123aa
    • Dave Airlie's avatar
      Merge tag 'drm-xe-next-fixes-2024-01-16' of... · 009f0a64
      Dave Airlie authored
      Merge tag 'drm-xe-next-fixes-2024-01-16' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
      
      Driver Changes:
      - 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)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240116102204.106520-1-thomas.hellstrom@linux.intel.com
      009f0a64
    • Dave Airlie's avatar
      nouveau/vmm: don't set addr on the fail path to avoid warning · cacea813
      Dave Airlie authored
      nvif_vmm_put gets called if addr is set, but if the allocation
      fails we don't need to call put, otherwise we get a warning like
      
      [523232.435671] ------------[ cut here ]------------
      [523232.435674] WARNING: CPU: 8 PID: 1505697 at drivers/gpu/drm/nouveau/nvif/vmm.c:68 nvif_vmm_put+0x72/0x80 [nouveau]
      [523232.435795] Modules linked in: uinput rfcomm snd_seq_dummy snd_hrtimer nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables nfnetlink qrtr bnep sunrpc binfmt_misc intel_rapl_msr intel_rapl_common intel_uncore_frequency intel_uncore_frequency_common isst_if_common iwlmvm nfit libnvdimm vfat fat x86_pkg_temp_thermal intel_powerclamp mac80211 snd_soc_avs snd_soc_hda_codec coretemp snd_hda_ext_core snd_soc_core snd_hda_codec_realtek kvm_intel snd_hda_codec_hdmi snd_compress snd_hda_codec_generic ac97_bus snd_pcm_dmaengine snd_hda_intel libarc4 snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec kvm iwlwifi snd_hda_core btusb snd_hwdep btrtl snd_seq btintel irqbypass btbcm rapl snd_seq_device eeepc_wmi btmtk intel_cstate iTCO_wdt cfg80211 snd_pcm asus_wmi bluetooth intel_pmc_bxt iTCO_vendor_support snd_timer ledtrig_audio pktcdvd snd mei_me
      [523232.435828]  sparse_keymap intel_uncore i2c_i801 platform_profile wmi_bmof mei pcspkr ioatdma soundcore i2c_smbus rfkill idma64 dca joydev acpi_tad loop zram nouveau drm_ttm_helper ttm video drm_exec drm_gpuvm gpu_sched crct10dif_pclmul i2c_algo_bit nvme crc32_pclmul crc32c_intel drm_display_helper polyval_clmulni nvme_core polyval_generic e1000e mxm_wmi cec ghash_clmulni_intel r8169 sha512_ssse3 nvme_common wmi pinctrl_sunrisepoint uas usb_storage ip6_tables ip_tables fuse
      [523232.435849] CPU: 8 PID: 1505697 Comm: gnome-shell Tainted: G        W          6.6.0-rc7-nvk-uapi+ #12
      [523232.435851] Hardware name: System manufacturer System Product Name/ROG STRIX X299-E GAMING II, BIOS 1301 09/24/2021
      [523232.435852] RIP: 0010:nvif_vmm_put+0x72/0x80 [nouveau]
      [523232.435934] Code: 00 00 48 89 e2 be 02 00 00 00 48 c7 04 24 00 00 00 00 48 89 44 24 08 e8 fc bf ff ff 85
      c0 75 0a 48 c7 43 08 00 00 00 00 eb b3 <0f> 0b eb f2 e8 f5 c9 b2 e6 0f 1f 44 00 00 90 90 90 90 90 90 90 90
      [523232.435936] RSP: 0018:ffffc900077ffbd8 EFLAGS: 00010282
      [523232.435937] RAX: 00000000fffffffe RBX: ffffc900077ffc00 RCX: 0000000000000010
      [523232.435938] RDX: 0000000000000010 RSI: ffffc900077ffb38 RDI: ffffc900077ffbd8
      [523232.435940] RBP: ffff888e1c4f2140 R08: 0000000000000000 R09: 0000000000000000
      [523232.435940] R10: 0000000000000000 R11: 0000000000000000 R12: ffff888503811800
      [523232.435941] R13: ffffc900077ffca0 R14: ffff888e1c4f2140 R15: ffff88810317e1e0
      [523232.435942] FS:  00007f933a769640(0000) GS:ffff88905fa00000(0000) knlGS:0000000000000000
      [523232.435943] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [523232.435944] CR2: 00007f930bef7000 CR3: 00000005d0322001 CR4: 00000000003706e0
      [523232.435945] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [523232.435946] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [523232.435964] Call Trace:
      [523232.435965]  <TASK>
      [523232.435966]  ? nvif_vmm_put+0x72/0x80 [nouveau]
      [523232.436051]  ? __warn+0x81/0x130
      [523232.436055]  ? nvif_vmm_put+0x72/0x80 [nouveau]
      [523232.436138]  ? report_bug+0x171/0x1a0
      [523232.436142]  ? handle_bug+0x3c/0x80
      [523232.436144]  ? exc_invalid_op+0x17/0x70
      [523232.436145]  ? asm_exc_invalid_op+0x1a/0x20
      [523232.436149]  ? nvif_vmm_put+0x72/0x80 [nouveau]
      [523232.436230]  ? nvif_vmm_put+0x64/0x80 [nouveau]
      [523232.436342]  nouveau_vma_del+0x80/0xd0 [nouveau]
      [523232.436506]  nouveau_vma_new+0x1a0/0x210 [nouveau]
      [523232.436671]  nouveau_gem_object_open+0x1d0/0x1f0 [nouveau]
      [523232.436835]  drm_gem_handle_create_tail+0xd1/0x180
      [523232.436840]  drm_prime_fd_to_handle_ioctl+0x12e/0x200
      [523232.436844]  ? __pfx_drm_prime_fd_to_handle_ioctl+0x10/0x10
      [523232.436847]  drm_ioctl_kernel+0xd3/0x180
      [523232.436849]  drm_ioctl+0x26d/0x4b0
      [523232.436851]  ? __pfx_drm_prime_fd_to_handle_ioctl+0x10/0x10
      [523232.436855]  nouveau_drm_ioctl+0x5a/0xb0 [nouveau]
      [523232.437032]  __x64_sys_ioctl+0x94/0xd0
      [523232.437036]  do_syscall_64+0x5d/0x90
      [523232.437040]  ? syscall_exit_to_user_mode+0x2b/0x40
      [523232.437044]  ? do_syscall_64+0x6c/0x90
      [523232.437046]  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      Reported-by: default avatarFaith Ekstrand <faith.ekstrand@collabora.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240117213852.295565-1-airlied@gmail.com
      cacea813
    • Linus Torvalds's avatar
      Merge tag 'for-6.8/block-2024-01-18' of git://git.kernel.dk/linux · 9d1694dc
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request via Keith:
            - tcp, fc, and rdma target fixes (Maurizio, Daniel, Hannes,
              Christoph)
            - discard fixes and improvements (Christoph)
            - timeout debug improvements (Keith, Max)
            - various cleanups (Daniel, Max, Giuxen)
            - trace event string fixes (Arnd)
            - shadow doorbell setup on reset fix (William)
            - a write zeroes quirk for SK Hynix (Jim)
      
       - MD pull request via Song:
            - Sparse warning since v6.0 (Bart)
            - /proc/mdstat regression since v6.7 (Yu Kuai)
      
       - Use symbolic error value (Christian)
      
       - IO Priority documentation update (Christian)
      
       - Fix for accessing queue limits without having entered the queue
         (Christoph, me)
      
       - Fix for loop dio support (Christoph)
      
       - Move null_blk off deprecated ida interface (Christophe)
      
       - Ensure nbd initializes full msghdr (Eric)
      
       - Fix for a regression with the folio conversion, which is now easier
         to hit because of an unrelated change (Matthew)
      
       - Remove redundant check in virtio-blk (Li)
      
       - Fix for a potential hang in sbitmap (Ming)
      
       - Fix for partial zone appending (Damien)
      
       - Misc changes and fixes (Bart, me, Kemeng, Dmitry)
      
      * tag 'for-6.8/block-2024-01-18' of git://git.kernel.dk/linux: (45 commits)
        Documentation: block: ioprio: Update schedulers
        loop: fix the the direct I/O support check when used on top of block devices
        blk-mq: Remove the hctx 'run' debugfs attribute
        nbd: always initialize struct msghdr completely
        block: Fix iterating over an empty bio with bio_for_each_folio_all
        block: bio-integrity: fix kcalloc() arguments order
        virtio_blk: remove duplicate check if queue is broken in virtblk_done
        sbitmap: remove stale comment in sbq_calc_wake_batch
        block: Correct a documentation comment in blk-cgroup.c
        null_blk: Remove usage of the deprecated ida_simple_xx() API
        block: ensure we hold a queue reference when using queue limits
        blk-mq: rename blk_mq_can_use_cached_rq
        block: print symbolic error name instead of error code
        blk-mq: fix IO hang from sbitmap wakeup race
        nvmet-rdma: avoid circular locking dependency on install_queue()
        nvmet-tcp: avoid circular locking dependency on install_queue()
        nvme-pci: set doorbell config before unquiescing
        block: fix partial zone append completion handling in req_bio_endio()
        block/iocost: silence warning on 'last_period' potentially being unused
        md/raid1: Use blk_opf_t for read and write operations
        ...
      9d1694dc
    • Linus Torvalds's avatar
      Merge tag 'for-6.8/io_uring-2024-01-18' of git://git.kernel.dk/linux · e9a5a78d
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Nothing major in here, just a few fixes and cleanups that arrived
        after the initial merge window pull request got finalized, as well as
        a fix for a patch that got merged earlier"
      
      * tag 'for-6.8/io_uring-2024-01-18' of git://git.kernel.dk/linux:
        io_uring: combine cq_wait_nr checks
        io_uring: clean *local_work_add var naming
        io_uring: clean up local tw add-wait sync
        io_uring: adjust defer tw counting
        io_uring/register: guard compat syscall with CONFIG_COMPAT
        io_uring/rsrc: improve code generation for fixed file assignment
        io_uring/rw: cleanup io_rw_done()
      e9a5a78d
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.8-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 6f362500
      Linus Torvalds authored
      Pull erofs fixes from Gao Xiang:
      
       - Fix a "BUG: kernel NULL pointer dereference" issue due to
         inconsistent on-disk indices of compressed inodes against
         per-sb `available_compr_algs` generated by Syzkaller
      
       - Don't use certain unnecessary folio_*() helpers if the folio
         type (page cache) is known
      
      * tag 'erofs-for-6.8-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: Don't use certain unnecessary folio_*() functions
        erofs: fix inconsistent per-file compression format
      6f362500
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · b5f66ba2
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Make Kconfig parse the input .config more precisely
      
       - Support W=c and W=e options for Kconfig
      
       - Set Kconfig int/hex symbols to zero if the 'default' property is
         missing
      
       - Add .editorconfig
      
       - Add scripts/git.orderFile
      
       - Add a script to detect backward-incompatible changes in UAPI headers
      
       - Resolve the symlink passed to O= option properly
      
       - Use the user-supplied mtime for all files in the builtin initramfs,
         which provides better reproducible builds
      
       - Fix the direct execution of debian/rules for Debian package builds
      
       - Use build ID instead of the .gnu_debuglink section for the Debian dbg
         package
      
      * tag 'kbuild-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (53 commits)
        kbuild: deb-pkg: use debian/<package> for tmpdir
        kbuild: deb-pkg: move 'make headers' to build-arch
        kbuild: deb-pkg: do not search for 'scripts' directory under arch/
        kbuild: deb-pkg: use build ID instead of debug link for dbg package
        kbuild: deb-pkg: use more debhelper commands in builddeb
        kbuild: deb-pkg: remove unneeded '-f $srctree/Makefile' in debian/rules
        kbuild: deb-pkg: allow to run debian/rules from output directory
        kbuild: deb-pkg: set DEB_* variables if debian/rules is directly executed
        kbuild: deb-pkg: squash scripts/package/deb-build-option to debian/rules
        kbuild: deb-pkg: factor out common Make options in debian/rules
        kbuild: deb-pkg: hard-code Build-Depends
        kbuild: deb-pkg: split debian/copyright from the mkdebian script
        gen_init_cpio: Apply mtime supplied by user to all file types
        kbuild: resolve symlinks for O= properly
        docs: dev-tools: Add UAPI checker documentation
        check-uapi: Introduce check-uapi.sh
        scripts: Introduce a default git.orderFile
        kconfig: WERROR unmet symbol dependency
        Add .editorconfig file for basic formatting
        kconfig: Use KCONFIG_CONFIG instead of .config
        ...
      b5f66ba2
    • Linus Torvalds's avatar
      Merge tag 'kgdb-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux · 2a668d21
      Linus Torvalds authored
      Pull kgdb update from Daniel Thompson:
       "The entire changeset for kgdb this cycle is a single two-line change
        to remove some deadcode that, had it not been dead, would have called
        strncpy() in an unsafe manner.
      
        To be fair there were other modest clean ups were discussed this cycle
        but they are not finalized and will have to wait until next time"
      
      * tag 'kgdb-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
        kdb: Fix a potential buffer overflow in kdb_local()
      2a668d21