1. 22 Sep, 2024 7 commits
    • Christoph Lameter (Ampere)'s avatar
      seqcount: replace smp_rmb() in read_seqcount() with load acquire · d0dd066a
      Christoph Lameter (Ampere) authored
      Many architectures support load acquire which can replace a memory
      barrier and save some cycles.
      
      A typical sequence
      
      	do {
      		seq = read_seqcount_begin(&s);
      		<something>
      	} while (read_seqcount_retry(&s, seq);
      
      requires 13 cycles on an N1 Neoverse arm64 core (Ampere Altra, to be
      specific) for an empty loop.  Two read memory barriers are needed.  One
      for each of the seqcount_* functions.
      
      We can replace the first read barrier with a load acquire of the
      seqcount which saves us one barrier.
      
      On the Altra doing so reduces the cycle count from 13 to 8.
      
      According to ARM, this is a general improvement for the ARM64
      architecture and not specific to a certain processor.
      
      See
      
        https://developer.arm.com/documentation/102336/0100/Load-Acquire-and-Store-Release-instructions
      
       "Weaker ordering requirements that are imposed by Load-Acquire and
        Store-Release instructions allow for micro-architectural
        optimizations, which could reduce some of the performance impacts that
        are otherwise imposed by an explicit memory barrier.
      
        If the ordering requirement is satisfied using either a Load-Acquire
        or Store-Release, then it would be preferable to use these
        instructions instead of a DMB"
      
      [ NOTE! This is my original minimal patch that unconditionally switches
        over to using smp_load_acquire(), instead of the much more involved
        and subtle patch that Christoph Lameter wrote that made it
        conditional.
      
        But Christoph gets authorship credit because I had initially thought
        that we needed the more complex model, and Christoph ran with it it
        and did the work. Only after looking at code generation for all the
        relevant architectures, did I come to the conclusion that nobody
        actually really needs the old "smp_rmb()" model.
      
        Even architectures without load-acquire support generally do as well
        or better with smp_load_acquire().
      
        So credit to Christoph, but if this then causes issues on other
        architectures, put the blame solidly on me.
      
        Also note as part of the ruthless simplification, this gets rid of the
        overly subtle optimization where some code uses a non-barrier version
        of the sequence count (see the __read_seqcount_begin() users in
        fs/namei.c). They then play games with their own barriers and/or with
        nested sequence counts.
      
        Those optimizations are literally meaningless on x86, and questionable
        elsewhere. If somebody can show that they matter, we need to re-do
        them more cleanly than "use an internal helper".       - Linus ]
      Signed-off-by: default avatarChristoph Lameter (Ampere) <cl@gentwo.org>
      Link: https://lore.kernel.org/all/20240912-seq_optimize-v3-1-8ee25e04dffa@gentwo.org/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d0dd066a
    • Linus Torvalds's avatar
      Merge branch 'address-masking' · de5cb0dc
      Linus Torvalds authored
      Merge user access fast validation using address masking.
      
      This allows architectures to optionally use a data dependent address
      masking model instead of a conditional branch for validating user
      accesses.  That avoids the Spectre-v1 speculation barriers.
      
      Right now only x86-64 takes advantage of this, and not all architectures
      will be able to do it.  It requires a guard region between the user and
      kernel address spaces (so that you can't overflow from one to the
      other), and an easy way to generate a guaranteed-to-fault address for
      invalid user pointers.
      
      Also note that this currently assumes that there is no difference
      between user read and write accesses.  If extended to architectures like
      powerpc, we'll also need to separate out the user read-vs-write cases.
      
      * address-masking:
        x86: make the masked_user_access_begin() macro use its argument only once
        x86: do the user address masking outside the user access area
        x86: support user address masking instead of non-speculative conditional
      de5cb0dc
    • Linus Torvalds's avatar
      x86: make the masked_user_access_begin() macro use its argument only once · 533ab223
      Linus Torvalds authored
      This doesn't actually matter for any of the current users, but before
      merging it mainline, make sure we don't have any surprising semantics.
      
      We don't actually want to use an inline function here, because we want
      to allow - but not require - const pointer arguments, and return them as
      such.  But we already had a local auto-type variable, so let's just use
      it to avoid any possible double evaluation.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      533ab223
    • Linus Torvalds's avatar
      Merge tag 'trace-ring-buffer-v6.12' of... · af9c191a
      Linus Torvalds authored
      Merge tag 'trace-ring-buffer-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull ring-buffer updates from Steven Rostedt:
      
       - tracing/ring-buffer: persistent buffer across reboots
      
         This allows for the tracing instance ring buffer to stay persistent
         across reboots. The way this is done is by adding to the kernel
         command line:
      
           trace_instance=boot_map@0x285400000:12M
      
         This will reserve 12 megabytes at the address 0x285400000, and then
         map the tracing instance "boot_map" ring buffer to that memory. This
         will appear as a normal instance in the tracefs system:
      
           /sys/kernel/tracing/instances/boot_map
      
         A user could enable tracing in that instance, and on reboot or kernel
         crash, if the memory is not wiped by the firmware, it will recreate
         the trace in that instance. For example, if one was debugging a
         shutdown of a kernel reboot:
      
           # cd /sys/kernel/tracing
           # echo function > instances/boot_map/current_tracer
           # reboot
           [..]
           # cd /sys/kernel/tracing
           # tail instances/boot_map/trace
                 swapper/0-1       [000] d..1.   164.549800: restore_boot_irq_mode <-native_machine_shutdown
                 swapper/0-1       [000] d..1.   164.549801: native_restore_boot_irq_mode <-native_machine_shutdown
                 swapper/0-1       [000] d..1.   164.549802: disconnect_bsp_APIC <-native_machine_shutdown
                 swapper/0-1       [000] d..1.   164.549811: hpet_disable <-native_machine_shutdown
                 swapper/0-1       [000] d..1.   164.549812: iommu_shutdown_noop <-native_machine_restart
                 swapper/0-1       [000] d..1.   164.549813: native_machine_emergency_restart <-__do_sys_reboot
                 swapper/0-1       [000] d..1.   164.549813: tboot_shutdown <-native_machine_emergency_restart
                 swapper/0-1       [000] d..1.   164.549820: acpi_reboot <-native_machine_emergency_restart
                 swapper/0-1       [000] d..1.   164.549821: acpi_reset <-acpi_reboot
                 swapper/0-1       [000] d..1.   164.549822: acpi_os_write_port <-acpi_reboot
      
         On reboot, the buffer is examined to make sure it is valid. The
         validation check even steps through every event to make sure the meta
         data of the event is correct. If any test fails, it will simply reset
         the buffer, and the buffer will be empty on boot.
      
       - Allow the tracing persistent boot buffer to use the "reserve_mem"
         option
      
         Instead of having the admin find a physical address to store the
         persistent buffer, which can be very tedious if they have to
         administrate several different machines, allow them to use the
         "reserve_mem" option that will find a location for them. It is not as
         reliable because of KASLR, as the loading of the kernel in different
         locations can cause the memory allocated to be inconsistent. Booting
         with "nokaslr" can make reserve_mem more reliable.
      
       - Have function graph tracer handle offsets from a previous boot.
      
         The ring buffer output from a previous boot may have different
         addresses due to kaslr. Have the function graph tracer handle these
         by using the delta from the previous boot to the new boot address
         space.
      
       - Only reset the saved meta offset when the buffer is started or reset
      
         In the persistent memory meta data, it holds the previous address
         space information, so that it can calculate the delta to have
         function tracing work. But this gets updated after being read to hold
         the new address space. But if the buffer isn't used for that boot, on
         reboot, the delta is now calculated from the previous boot and not
         the boot that holds the data in the ring buffer. This causes the
         functions not to be shown. Do not save the address space information
         of the current kernel until it is being recorded.
      
       - Add a magic variable to test the valid meta data
      
         Add a magic variable in the meta data that can also be used for
         validation. The validator of the previous buffer doesn't need this
         magic data, but it can be used if the meta data is changed by a new
         kernel, which may have the same format that passes the validator but
         is used differently. This magic number can also be used as a
         "versioning" of the meta data.
      
       - Align user space mapped ring buffer sub buffers to improve TLB
         entries
      
         Linus mentioned that the mapped ring buffer sub buffers were
         misaligned between the meta page and the sub-buffers, so that if the
         sub-buffers were bigger than PAGE_SIZE, it wouldn't allow the TLB to
         use bigger entries.
      
       - Add new kernel command line "traceoff" to disable tracing on boot for
         instances
      
         If tracing is enabled for a boot instance, there needs a way to be
         able to disable it on boot so that new events do not get entered into
         the ring buffer and be mixed with events from a previous boot, as
         that can be confusing.
      
       - Allow trace_printk() to go to other instances
      
         Currently, trace_printk() can only go to the top level instance. When
         debugging with a persistent buffer, it is really useful to be able to
         add trace_printk() to go to that buffer, so that you have access to
         them after a crash.
      
       - Do not use "bin_printk()" for traces to a boot instance
      
         The bin_printk() saves only a pointer to the printk format in the
         ring buffer, as the reader of the buffer can still have access to it.
         But this is not the case if the buffer is from a previous boot. If
         the trace_printk() is going to a "persistent" buffer, it will use the
         slower version that writes the printk format into the buffer.
      
       - Add command line option to allow trace_printk() to go to an instance
      
         Allow the kernel command line to define which instance the
         trace_printk() goes to, instead of forcing the admin to set it for
         every boot via the tracefs options.
      
       - Start a document that explains how to use tracefs to debug the kernel
      
       - Add some more kernel selftests to test user mapped ring buffer
      
      * tag 'trace-ring-buffer-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (28 commits)
        selftests/ring-buffer: Handle meta-page bigger than the system
        selftests/ring-buffer: Verify the entire meta-page padding
        tracing/Documentation: Start a document on how to debug with tracing
        tracing: Add option to set an instance to be the trace_printk destination
        tracing: Have trace_printk not use binary prints if boot buffer
        tracing: Allow trace_printk() to go to other instance buffers
        tracing: Add "traceoff" flag to boot time tracing instances
        ring-buffer: Align meta-page to sub-buffers for improved TLB usage
        ring-buffer: Add magic and struct size to boot up meta data
        ring-buffer: Don't reset persistent ring-buffer meta saved addresses
        tracing/fgraph: Have fgraph handle previous boot function addresses
        tracing: Allow boot instances to use reserve_mem boot memory
        tracing: Fix ifdef of snapshots to not prevent last_boot_info file
        ring-buffer: Use vma_pages() helper function
        tracing: Fix NULL vs IS_ERR() check in enable_instances()
        tracing: Add last boot delta offset for stack traces
        tracing: Update function tracing output for previous boot buffer
        tracing: Handle old buffer mappings for event strings and functions
        tracing/ring-buffer: Add last_boot_info file to boot instance
        ring-buffer: Save text and data locations in mapped meta data
        ...
      af9c191a
    • Linus Torvalds's avatar
      Merge tag 'ktest-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · dd609b8a
      Linus Torvalds authored
      Pull ktest updates from Steven Rostedt:
      
       - Add notification of build warnings for all tests
      
         Currently, the build will only fail on warnings if the ktest config
         file states that it should fail or if the compile is done with
         '-Werror'. This has allowed warnings to sneak in if it doesn't fail.
      
         Add a notification at the end of the test that will state that
         warnings were found in the build so that the developer will be aware
         of it.
      
       - Fix the grub2 parser to not return the wrong kernel index
      
         ktest.pl can read the grub.cfg file to know what kernel to boot to
         via grub-reboot. This requires knowing the index that the kernel is
         referenced by in the grub.cfg file. Some distros have logic to
         determine the menuentry that can cause the ktest.pl to come up with
         the wrong index and boot the wrong kernel.
      
      * tag 'ktest-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest.pl: Avoid false positives with grub2 skip regex
        ktest.pl: Always warn on build warnings
      dd609b8a
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.12-1-2024-09-19' of... · 891e8abe
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.12-1-2024-09-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
      
       - Use BPF + BTF to collect and pretty print syscall and tracepoint
         arguments in 'perf trace', done as an GSoC activity
      
       - Data-type profiling improvements:
      
           - Cache debuginfo to speed up data type resolution
      
           - Add the 'typecln' sort order, to show which cacheline in a target
             is hot or cold. The following shows members in the cfs_rq's first
             cache line:
      
               $ perf report -s type,typecln,typeoff -H
               ...
               -    2.67%        struct cfs_rq
                  +    1.23%        struct cfs_rq: cache-line 2
                  +    0.57%        struct cfs_rq: cache-line 4
                  +    0.46%        struct cfs_rq: cache-line 6
                  -    0.41%        struct cfs_rq: cache-line 0
                          0.39%        struct cfs_rq +0x14 (h_nr_running)
                          0.02%        struct cfs_rq +0x38 (tasks_timeline.rb_leftmost)
      
           - When a typedef resolves to a unnamed struct, use the typedef name
      
           - When a struct has just one basic type field (int, etc), resolve
             the type sort order to the name of the struct, not the type of
             the field
      
           - Support type folding/unfolding in the data-type annotation TUI
      
           - Fix bitfields offsets and sizes
      
           - Initial support for PowerPC, using libcapstone and the usual
             objdump disassembly parsing routines
      
       - Add support for disassembling and addr2line using the LLVM libraries,
         speeding up those operations
      
       - Support --addr2line option in 'perf script' as with other tools
      
       - Intel branch counters (LBR event logging) support, only available in
         recent Intel processors, for instance, the new "brcntr" field can be
         asked from 'perf script' to print the information collected from this
         feature:
      
           $ perf script -F +brstackinsn,+brcntr
      
           # Branch counter abbr list:
           # branch-instructions:ppp = A
           # branch-misses = B
           # '-' No event occurs
           # '+' Event occurrences may be lost due to branch counter saturated
               tchain_edit  332203 3366329.405674:  53030 branch-instructions:ppp:    401781 f3+0x2c (home/sdp/test/tchain_edit)
                  f3+31:
               0000000000401774   insn: eb 04                  br_cntr: AA  # PRED 5 cycles [5]
               000000000040177a   insn: 81 7d fc 0f 27 00 00
               0000000000401781   insn: 7e e3                  br_cntr: A   # PRED 1 cycles [6] 2.00 IPC
               0000000000401766   insn: 8b 45 fc
               0000000000401769   insn: 83 e0 01
               000000000040176c   insn: 85 c0
               000000000040176e   insn: 74 06                  br_cntr: A   # PRED 1 cycles [7] 4.00 IPC
               0000000000401776   insn: 83 45 fc 01
               000000000040177a   insn: 81 7d fc 0f 27 00 00
               0000000000401781   insn: 7e e3                  br_cntr: A   # PRED 7 cycles [14] 0.43 IPC
      
       - Support Timed PEBS (Precise Event-Based Sampling), a recent hardware
         feature in Intel processors
      
       - Add 'perf ftrace profile' subcommand, using ftrace's function-graph
         tracer so that users can see the total, average, max execution time
         as well as the number of invocations easily, for instance:
      
           $ sudo perf ftrace profile -G __x64_sys_perf_event_open -- \
             perf stat -e cycles -C1 true 2> /dev/null | head
           # Total (us)  Avg (us)  Max (us)  Count  Function
                 65.611    65.611    65.611      1  __x64_sys_perf_event_open
                 30.527    30.527    30.527      1  anon_inode_getfile
                 30.260    30.260    30.260      1  __anon_inode_getfile
                 29.700    29.700    29.700      1  alloc_file_pseudo
                 17.578    17.578    17.578      1  d_alloc_pseudo
                 17.382    17.382    17.382      1  __d_alloc
                 16.738    16.738    16.738      1  kmem_cache_alloc_lru
                 15.686    15.686    15.686      1  perf_event_alloc
                 14.012     7.006    11.264      2  obj_cgroup_charge
      
       - 'perf sched timehist' improvements, including the addition of
         priority showing/filtering command line options
      
       - Varios improvements to the 'perf probe', including 'perf test'
         regression testings
      
       - Introduce the 'perf check', initially to check if some feature is
         in place, using it in 'perf test'
      
       - Various fixes for 32-bit systems
      
       - Address more leak sanitizer failures
      
       - Fix memory leaks (LBR, disasm lock ops, etc)
      
       - More reference counting fixes (branch_info, etc)
      
       - Constify 'struct perf_tool' parameters to improve code generation
         and reduce the chances of having its internals changed, which isn't
         expected
      
       - More constifications in various other places
      
       - Add more build tests, including for JEVENTS
      
       - Add more 'perf test' entries ('perf record LBR', pipe/inject,
         --setup-filter, 'perf ftrace', 'cgroup sampling', etc)
      
       - Inject build ids for all entries in a call chain in 'perf inject',
         not just for the main sample
      
       - Improve the BPF based sample filter, allowing root to setup filters
         in bpffs that then can be used by non-root users
      
       - Allow filtering by cgroups with the BPF based sample filter
      
       - Allow a more compact way for 'perf mem report' using the
         -T/--type-profile and also provide a --sort option similar to the one
         in 'perf report', 'perf top', to setup the sort order manually
      
       - Fix --group behavior in 'perf annotate' when leader has no samples,
         where it was not showing anything even when other events in the group
         had samples
      
       - Fix spinlock and rwlock accounting in 'perf lock contention'
      
       - Fix libsubcmd fixdep Makefile dependencies
      
       - Improve 'perf ftrace' error message when ftrace isn't available
      
       - Update various Intel JSON vendor event files
      
       - ARM64 CoreSight hardware tracing infrastructure improvements, mostly
         not visible to users
      
       - Update power10 JSON events
      
      * tag 'perf-tools-for-v6.12-1-2024-09-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (310 commits)
        perf trace: Mark the 'head' arg in the set_robust_list syscall as coming from user space
        perf trace: Mark the 'rseq' arg in the rseq syscall as coming from user space
        perf env: Find correct branch counter info on hybrid
        perf evlist: Print hint for group
        tools: Drop nonsensical -O6
        perf pmu: To info add event_type_desc
        perf evsel: Add accessor for tool_event
        perf pmus: Fake PMU clean up
        perf list: Avoid potential out of bounds memory read
        perf help: Fix a typo ("bellow")
        perf ftrace: Detect whether ftrace is enabled on system
        perf test shell probe_vfs_getname: Remove extraneous '=' from probe line number regex
        perf build: Require at least clang 16.0.6 to build BPF skeletons
        perf trace: If a syscall arg is marked as 'const', assume it is coming _from_ userspace
        perf parse-events: Remove duplicated include in parse-events.c
        perf callchain: Allow symbols to be optional when resolving a callchain
        perf inject: Lazy build-id mmap2 event insertion
        perf inject: Add new mmap2-buildid-all option
        perf inject: Fix build ID injection
        perf annotate-data: Add pr_debug_scope()
        ...
      891e8abe
    • Kan Liang's avatar
      perf: Fix topology_sibling_cpumask check warning on ARM · 673a5009
      Kan Liang authored
      The below warning is triggered when building with arm
      multi_v7_defconfig.
      
        kernel/events/core.c: In function 'perf_event_setup_cpumask':
        kernel/events/core.c:14012:13: warning: the comparison will always evaluate as 'true' for the address of 'thread_sibling' will never be NULL [-Waddress]
        14012 |         if (!topology_sibling_cpumask(cpu)) {
      
      The perf_event_init_cpu() may be invoked at the early boot stage, while
      the topology_*_cpumask hasn't been initialized yet.  The check is to
      specially handle the case, and initialize the perf_online_<domain>_masks
      on the boot CPU.
      
      X86 uses a per-cpu cpumask pointer, which could be NULL at the early
      boot stage.  However, ARM uses a global variable, which never be NULL.
      
      Use perf_online_mask as an indicator instead.  Only initialize the
      perf_online_<domain>_masks when perf_online_mask is empty.
      
      Fix a typo as well.
      
      Fixes: 4ba4f1af ("perf: Generic hotplug support for a PMU with a scope")
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Closes: https://lore.kernel.org/lkml/20240911153854.240bbc1f@canb.auug.org.au/Reported-by: default avatarSteven Price <steven.price@arm.com>
      Closes: https://lore.kernel.org/lkml/1835eb6d-3e05-47f3-9eae-507ce165c3bf@arm.com/Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Tested-by: default avatarSteven Price <steven.price@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      673a5009
  2. 21 Sep, 2024 8 commits
    • Linus Torvalds's avatar
      Merge tag 'sched_ext-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext · 88264981
      Linus Torvalds authored
      Pull sched_ext support from Tejun Heo:
       "This implements a new scheduler class called ‘ext_sched_class’, or
        sched_ext, which allows scheduling policies to be implemented as BPF
        programs.
      
        The goals of this are:
      
         - Ease of experimentation and exploration: Enabling rapid iteration
           of new scheduling policies.
      
         - Customization: Building application-specific schedulers which
           implement policies that are not applicable to general-purpose
           schedulers.
      
         - Rapid scheduler deployments: Non-disruptive swap outs of scheduling
           policies in production environments"
      
      See individual commits for more documentation, but also the cover letter
      for the latest series:
      
      Link: https://lore.kernel.org/all/20240618212056.2833381-1-tj@kernel.org/
      
      * tag 'sched_ext-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: (110 commits)
        sched: Move update_other_load_avgs() to kernel/sched/pelt.c
        sched_ext: Don't trigger ops.quiescent/runnable() on migrations
        sched_ext: Synchronize bypass state changes with rq lock
        scx_qmap: Implement highpri boosting
        sched_ext: Implement scx_bpf_dispatch[_vtime]_from_dsq()
        sched_ext: Compact struct bpf_iter_scx_dsq_kern
        sched_ext: Replace consume_local_task() with move_local_task_to_local_dsq()
        sched_ext: Move consume_local_task() upward
        sched_ext: Move sanity check and dsq_mod_nr() into task_unlink_from_dsq()
        sched_ext: Reorder args for consume_local/remote_task()
        sched_ext: Restructure dispatch_to_local_dsq()
        sched_ext: Fix processs_ddsp_deferred_locals() by unifying DTL_INVALID handling
        sched_ext: Make find_dsq_for_dispatch() handle SCX_DSQ_LOCAL_ON
        sched_ext: Refactor consume_remote_task()
        sched_ext: Rename scx_kfunc_set_sleepable to unlocked and relocate
        sched_ext: Add missing static to scx_dump_data
        sched_ext: Add missing static to scx_has_op[]
        sched_ext: Temporarily work around pick_task_scx() being called without balance_scx()
        sched_ext: Add a cgroup scheduler which uses flattened hierarchy
        sched_ext: Add cgroup support
        ...
      88264981
    • Linus Torvalds's avatar
      Merge tag 'bpf-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 440b6523
      Linus Torvalds authored
      Pull bpf updates from Alexei Starovoitov:
      
       - Introduce '__attribute__((bpf_fastcall))' for helpers and kfuncs with
         corresponding support in LLVM.
      
         It is similar to existing 'no_caller_saved_registers' attribute in
         GCC/LLVM with a provision for backward compatibility. It allows
         compilers generate more efficient BPF code assuming the verifier or
         JITs will inline or partially inline a helper/kfunc with such
         attribute. bpf_cast_to_kern_ctx, bpf_rdonly_cast,
         bpf_get_smp_processor_id are the first set of such helpers.
      
       - Harden and extend ELF build ID parsing logic.
      
         When called from sleepable context the relevants parts of ELF file
         will be read to find and fetch .note.gnu.build-id information. Also
         harden the logic to avoid TOCTOU, overflow, out-of-bounds problems.
      
       - Improvements and fixes for sched-ext:
          - Allow passing BPF iterators as kfunc arguments
          - Make the pointer returned from iter_next method trusted
          - Fix x86 JIT convergence issue due to growing/shrinking conditional
            jumps in variable length encoding
      
       - BPF_LSM related:
          - Introduce few VFS kfuncs and consolidate them in
            fs/bpf_fs_kfuncs.c
          - Enforce correct range of return values from certain LSM hooks
          - Disallow attaching to other LSM hooks
      
       - Prerequisite work for upcoming Qdisc in BPF:
          - Allow kptrs in program provided structs
          - Support for gen_epilogue in verifier_ops
      
       - Important fixes:
          - Fix uprobe multi pid filter check
          - Fix bpf_strtol and bpf_strtoul helpers
          - Track equal scalars history on per-instruction level
          - Fix tailcall hierarchy on x86 and arm64
          - Fix signed division overflow to prevent INT_MIN/-1 trap on x86
          - Fix get kernel stack in BPF progs attached to tracepoint:syscall
      
       - Selftests:
          - Add uprobe bench/stress tool
          - Generate file dependencies to drastically improve re-build time
          - Match JIT-ed and BPF asm with __xlated/__jited keywords
          - Convert older tests to test_progs framework
          - Add support for RISC-V
          - Few fixes when BPF programs are compiled with GCC-BPF backend
            (support for GCC-BPF in BPF CI is ongoing in parallel)
          - Add traffic monitor
          - Enable cross compile and musl libc
      
      * tag 'bpf-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (260 commits)
        btf: require pahole 1.21+ for DEBUG_INFO_BTF with default DWARF version
        btf: move pahole check in scripts/link-vmlinux.sh to lib/Kconfig.debug
        btf: remove redundant CONFIG_BPF test in scripts/link-vmlinux.sh
        bpf: Call the missed kfree() when there is no special field in btf
        bpf: Call the missed btf_record_free() when map creation fails
        selftests/bpf: Add a test case to write mtu result into .rodata
        selftests/bpf: Add a test case to write strtol result into .rodata
        selftests/bpf: Rename ARG_PTR_TO_LONG test description
        selftests/bpf: Fix ARG_PTR_TO_LONG {half-,}uninitialized test
        bpf: Zero former ARG_PTR_TO_{LONG,INT} args in case of error
        bpf: Improve check_raw_mode_ok test for MEM_UNINIT-tagged types
        bpf: Fix helper writes to read-only maps
        bpf: Remove truncation test in bpf_strtol and bpf_strtoul helpers
        bpf: Fix bpf_strtol and bpf_strtoul helpers for 32bit
        selftests/bpf: Add tests for sdiv/smod overflow cases
        bpf: Fix a sdiv overflow issue
        libbpf: Add bpf_object__token_fd accessor
        docs/bpf: Add missing BPF program types to docs
        docs/bpf: Add constant values for linkages
        bpf: Use fake pt_regs when doing bpf syscall tracepoint tracing
        ...
      440b6523
    • Linus Torvalds's avatar
      Merge tag 's390-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 1ec6d097
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Optimize ftrace and kprobes code patching and avoid stop machine for
         kprobes if sequential instruction fetching facility is available
      
       - Add hiperdispatch feature to dynamically adjust CPU capacity in
         vertical polarization to improve scheduling efficiency and overall
         performance. Also add infrastructure for handling warning track
         interrupts (WTI), allowing for graceful CPU preemption
      
       - Rework crypto code pkey module and split it into separate,
         independent modules for sysfs, PCKMO, CCA, and EP11, allowing modules
         to load only when the relevant hardware is available
      
       - Add hardware acceleration for HMAC modes and the full AES-XTS cipher,
         utilizing message-security assist extensions (MSA) 10 and 11. It
         introduces new shash implementations for HMAC-SHA224/256/384/512 and
         registers the hardware-accelerated AES-XTS cipher as the preferred
         option. Also add clear key token support
      
       - Add MSA 10 and 11 processor activity instrumentation counters to perf
         and update PAI Extension 1 NNPA counters
      
       - Cleanup cpu sampling facility code and rework debug/WARN_ON_ONCE
         statements
      
       - Add support for SHA3 performance enhancements introduced with MSA 12
      
       - Add support for the query authentication information feature of MSA
         13 and introduce the KDSA CPACF instruction. Provide query and query
         authentication information in sysfs, enabling tools like cpacfinfo to
         present this data in a human-readable form
      
       - Update kernel disassembler instructions
      
       - Always enable EXPOLINE_EXTERN if supported by the compiler to ensure
         kpatch compatibility
      
       - Add missing warning handling and relocated lowcore support to the
         early program check handler
      
       - Optimize ftrace_return_address() and avoid calling unwinder
      
       - Make modules use kernel ftrace trampolines
      
       - Strip relocs from the final vmlinux ELF file to make it roughly 2
         times smaller
      
       - Dump register contents and call trace for early crashes to the
         console
      
       - Generate ptdump address marker array dynamically
      
       - Fix rcu_sched stalls that might occur when adding or removing large
         amounts of pages at once to or from the CMM balloon
      
       - Fix deadlock caused by recursive lock of the AP bus scan mutex
      
       - Unify sync and async register save areas in entry code
      
       - Cleanup debug prints in crypto code
      
       - Various cleanup and sanitizing patches for the decompressor
      
       - Various small ftrace cleanups
      
      * tag 's390-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (84 commits)
        s390/crypto: Display Query and Query Authentication Information in sysfs
        s390/crypto: Add Support for Query Authentication Information
        s390/crypto: Rework RRE and RRF CPACF inline functions
        s390/crypto: Add KDSA CPACF Instruction
        s390/disassembler: Remove duplicate instruction format RSY_RDRU
        s390/boot: Move boot_printk() code to own file
        s390/boot: Use boot_printk() instead of sclp_early_printk()
        s390/boot: Rename decompressor_printk() to boot_printk()
        s390/boot: Compile all files with the same march flag
        s390: Use MARCH_HAS_*_FEATURES defines
        s390: Provide MARCH_HAS_*_FEATURES defines
        s390/facility: Disable compile time optimization for decompressor code
        s390/boot: Increase minimum architecture to z10
        s390/als: Remove obsolete comment
        s390/sha3: Fix SHA3 selftests failures
        s390/pkey: Add AES xts and HMAC clear key token support
        s390/cpacf: Add MSA 10 and 11 new PCKMO functions
        s390/mm: Add cond_resched() to cmm_alloc/free_pages()
        s390/pai_ext: Update PAI extension 1 counters
        s390/pai_crypto: Add support for MSA 10 and 11 pai counters
        ...
      1ec6d097
    • Linus Torvalds's avatar
      Merge tag 'mm-nonmm-stable-2024-09-21-07-52' of... · 7856a565
      Linus Torvalds authored
      Merge tag 'mm-nonmm-stable-2024-09-21-07-52' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull non-MM updates from Andrew Morton:
       "Many singleton patches - please see the various changelogs for
        details.
      
        Quite a lot of nilfs2 work this time around.
      
        Notable patch series in this pull request are:
      
         - "mul_u64_u64_div_u64: new implementation" by Nicolas Pitre, with
           assistance from Uwe Kleine-König. Reimplement mul_u64_u64_div_u64()
           to provide (much) more accurate results. The current implementation
           was causing Uwe some issues in the PWM drivers.
      
         - "xz: Updates to license, filters, and compression options" from
           Lasse Collin. Miscellaneous maintenance and kinor feature work to
           the xz decompressor.
      
         - "Fix some GDB command error and add some GDB commands" from
           Kuan-Ying Lee. Fixes and enhancements to the gdb scripts.
      
         - "treewide: add missing MODULE_DESCRIPTION() macros" from Jeff
           Johnson. Adds lots of MODULE_DESCRIPTIONs, thus fixing lots of
           warnings about this.
      
         - "nilfs2: add support for some common ioctls" from Ryusuke Konishi.
           Adds various commonly-available ioctls to nilfs2.
      
         - "This series fixes a number of formatting issues in kernel doc
           comments" from Ryusuke Konishi does that.
      
         - "nilfs2: prevent unexpected ENOENT propagation" from Ryusuke
           Konishi. Fix issues where -ENOENT was being unintentionally and
           inappropriately returned to userspace.
      
         - "nilfs2: assorted cleanups" from Huang Xiaojia.
      
         - "nilfs2: fix potential issues with empty b-tree nodes" from Ryusuke
           Konishi fixes some issues which can occur on corrupted nilfs2
           filesystems.
      
         - "scripts/decode_stacktrace.sh: improve error reporting and
           usability" from Luca Ceresoli does those things"
      
      * tag 'mm-nonmm-stable-2024-09-21-07-52' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (103 commits)
        list: test: increase coverage of list_test_list_replace*()
        list: test: fix tests for list_cut_position()
        proc: use __auto_type more
        treewide: correct the typo 'retun'
        ocfs2: cleanup return value and mlog in ocfs2_global_read_info()
        nilfs2: remove duplicate 'unlikely()' usage
        nilfs2: fix potential oob read in nilfs_btree_check_delete()
        nilfs2: determine empty node blocks as corrupted
        nilfs2: fix potential null-ptr-deref in nilfs_btree_insert()
        user_namespace: use kmemdup_array() instead of kmemdup() for multiple allocation
        tools/mm: rm thp_swap_allocator_test when make clean
        squashfs: fix percpu address space issues in decompressor_multi_percpu.c
        lib: glob.c: added null check for character class
        nilfs2: refactor nilfs_segctor_thread()
        nilfs2: use kthread_create and kthread_stop for the log writer thread
        nilfs2: remove sc_timer_task
        nilfs2: do not repair reserved inode bitmap in nilfs_new_inode()
        nilfs2: eliminate the shared counter and spinlock for i_generation
        nilfs2: separate inode type information from i_state field
        nilfs2: use the BITS_PER_LONG macro
        ...
      7856a565
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2024-09-20-02-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 617a814f
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
       "Along with the usual shower of singleton patches, notable patch series
        in this pull request are:
      
         - "Align kvrealloc() with krealloc()" from Danilo Krummrich. Adds
           consistency to the APIs and behaviour of these two core allocation
           functions. This also simplifies/enables Rustification.
      
         - "Some cleanups for shmem" from Baolin Wang. No functional changes -
           mode code reuse, better function naming, logic simplifications.
      
         - "mm: some small page fault cleanups" from Josef Bacik. No
           functional changes - code cleanups only.
      
         - "Various memory tiering fixes" from Zi Yan. A small fix and a
           little cleanup.
      
         - "mm/swap: remove boilerplate" from Yu Zhao. Code cleanups and
           simplifications and .text shrinkage.
      
         - "Kernel stack usage histogram" from Pasha Tatashin and Shakeel
           Butt. This is a feature, it adds new feilds to /proc/vmstat such as
      
             $ grep kstack /proc/vmstat
             kstack_1k 3
             kstack_2k 188
             kstack_4k 11391
             kstack_8k 243
             kstack_16k 0
      
           which tells us that 11391 processes used 4k of stack while none at
           all used 16k. Useful for some system tuning things, but
           partivularly useful for "the dynamic kernel stack project".
      
         - "kmemleak: support for percpu memory leak detect" from Pavel
           Tikhomirov. Teaches kmemleak to detect leaksage of percpu memory.
      
         - "mm: memcg: page counters optimizations" from Roman Gushchin. "3
           independent small optimizations of page counters".
      
         - "mm: split PTE/PMD PT table Kconfig cleanups+clarifications" from
           David Hildenbrand. Improves PTE/PMD splitlock detection, makes
           powerpc/8xx work correctly by design rather than by accident.
      
         - "mm: remove arch_make_page_accessible()" from David Hildenbrand.
           Some folio conversions which make arch_make_page_accessible()
           unneeded.
      
         - "mm, memcg: cg2 memory{.swap,}.peak write handlers" fro David
           Finkel. Cleans up and fixes our handling of the resetting of the
           cgroup/process peak-memory-use detector.
      
         - "Make core VMA operations internal and testable" from Lorenzo
           Stoakes. Rationalizaion and encapsulation of the VMA manipulation
           APIs. With a view to better enable testing of the VMA functions,
           even from a userspace-only harness.
      
         - "mm: zswap: fixes for global shrinker" from Takero Funaki. Fix
           issues in the zswap global shrinker, resulting in improved
           performance.
      
         - "mm: print the promo watermark in zoneinfo" from Kaiyang Zhao. Fill
           in some missing info in /proc/zoneinfo.
      
         - "mm: replace follow_page() by folio_walk" from David Hildenbrand.
           Code cleanups and rationalizations (conversion to folio_walk())
           resulting in the removal of follow_page().
      
         - "improving dynamic zswap shrinker protection scheme" from Nhat
           Pham. Some tuning to improve zswap's dynamic shrinker. Significant
           reductions in swapin and improvements in performance are shown.
      
         - "mm: Fix several issues with unaccepted memory" from Kirill
           Shutemov. Improvements to the new unaccepted memory feature,
      
         - "mm/mprotect: Fix dax puds" from Peter Xu. Implements mprotect on
           DAX PUDs. This was missing, although nobody seems to have notied
           yet.
      
         - "Introduce a store type enum for the Maple tree" from Sidhartha
           Kumar. Cleanups and modest performance improvements for the maple
           tree library code.
      
         - "memcg: further decouple v1 code from v2" from Shakeel Butt. Move
           more cgroup v1 remnants away from the v2 memcg code.
      
         - "memcg: initiate deprecation of v1 features" from Shakeel Butt.
           Adds various warnings telling users that memcg v1 features are
           deprecated.
      
         - "mm: swap: mTHP swap allocator base on swap cluster order" from
           Chris Li. Greatly improves the success rate of the mTHP swap
           allocation.
      
         - "mm: introduce numa_memblks" from Mike Rapoport. Moves various
           disparate per-arch implementations of numa_memblk code into generic
           code.
      
         - "mm: batch free swaps for zap_pte_range()" from Barry Song. Greatly
           improves the performance of munmap() of swap-filled ptes.
      
         - "support large folio swap-out and swap-in for shmem" from Baolin
           Wang. With this series we no longer split shmem large folios into
           simgle-page folios when swapping out shmem.
      
         - "mm/hugetlb: alloc/free gigantic folios" from Yu Zhao. Nice
           performance improvements and code reductions for gigantic folios.
      
         - "support shmem mTHP collapse" from Baolin Wang. Adds support for
           khugepaged's collapsing of shmem mTHP folios.
      
         - "mm: Optimize mseal checks" from Pedro Falcato. Fixes an mprotect()
           performance regression due to the addition of mseal().
      
         - "Increase the number of bits available in page_type" from Matthew
           Wilcox. Increases the number of bits available in page_type!
      
         - "Simplify the page flags a little" from Matthew Wilcox. Many legacy
           page flags are now folio flags, so the page-based flags and their
           accessors/mutators can be removed.
      
         - "mm: store zero pages to be swapped out in a bitmap" from Usama
           Arif. An optimization which permits us to avoid writing/reading
           zero-filled zswap pages to backing store.
      
         - "Avoid MAP_FIXED gap exposure" from Liam Howlett. Fixes a race
           window which occurs when a MAP_FIXED operqtion is occurring during
           an unrelated vma tree walk.
      
         - "mm: remove vma_merge()" from Lorenzo Stoakes. Major rotorooting of
           the vma_merge() functionality, making ot cleaner, more testable and
           better tested.
      
         - "misc fixups for DAMON {self,kunit} tests" from SeongJae Park.
           Minor fixups of DAMON selftests and kunit tests.
      
         - "mm: memory_hotplug: improve do_migrate_range()" from Kefeng Wang.
           Code cleanups and folio conversions.
      
         - "Shmem mTHP controls and stats improvements" from Ryan Roberts.
           Cleanups for shmem controls and stats.
      
         - "mm: count the number of anonymous THPs per size" from Barry Song.
           Expose additional anon THP stats to userspace for improved tuning.
      
         - "mm: finish isolate/putback_lru_page()" from Kefeng Wang: more
           folio conversions and removal of now-unused page-based APIs.
      
         - "replace per-quota region priorities histogram buffer with
           per-context one" from SeongJae Park. DAMON histogram
           rationalization.
      
         - "Docs/damon: update GitHub repo URLs and maintainer-profile" from
           SeongJae Park. DAMON documentation updates.
      
         - "mm/vdpa: correct misuse of non-direct-reclaim __GFP_NOFAIL and
           improve related doc and warn" from Jason Wang: fixes usage of page
           allocator __GFP_NOFAIL and GFP_ATOMIC flags.
      
         - "mm: split underused THPs" from Yu Zhao. Improve THP=always policy.
           This was overprovisioning THPs in sparsely accessed memory areas.
      
         - "zram: introduce custom comp backends API" frm Sergey Senozhatsky.
           Add support for zram run-time compression algorithm tuning.
      
         - "mm: Care about shadow stack guard gap when getting an unmapped
           area" from Mark Brown. Fix up the various arch_get_unmapped_area()
           implementations to better respect guard areas.
      
         - "Improve mem_cgroup_iter()" from Kinsey Ho. Improve the reliability
           of mem_cgroup_iter() and various code cleanups.
      
         - "mm: Support huge pfnmaps" from Peter Xu. Extends the usage of huge
           pfnmap support.
      
         - "resource: Fix region_intersects() vs add_memory_driver_managed()"
           from Huang Ying. Fix a bug in region_intersects() for systems with
           CXL memory.
      
         - "mm: hwpoison: two more poison recovery" from Kefeng Wang. Teaches
           a couple more code paths to correctly recover from the encountering
           of poisoned memry.
      
         - "mm: enable large folios swap-in support" from Barry Song. Support
           the swapin of mTHP memory into appropriately-sized folios, rather
           than into single-page folios"
      
      * tag 'mm-stable-2024-09-20-02-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (416 commits)
        zram: free secondary algorithms names
        uprobes: turn xol_area->pages[2] into xol_area->page
        uprobes: introduce the global struct vm_special_mapping xol_mapping
        Revert "uprobes: use vm_special_mapping close() functionality"
        mm: support large folios swap-in for sync io devices
        mm: add nr argument in mem_cgroup_swapin_uncharge_swap() helper to support large folios
        mm: fix swap_read_folio_zeromap() for large folios with partial zeromap
        mm/debug_vm_pgtable: Use pxdp_get() for accessing page table entries
        set_memory: add __must_check to generic stubs
        mm/vma: return the exact errno in vms_gather_munmap_vmas()
        memcg: cleanup with !CONFIG_MEMCG_V1
        mm/show_mem.c: report alloc tags in human readable units
        mm: support poison recovery from copy_present_page()
        mm: support poison recovery from do_cow_fault()
        resource, kunit: add test case for region_intersects()
        resource: make alloc_free_mem_region() works for iomem_resource
        mm: z3fold: deprecate CONFIG_Z3FOLD
        vfio/pci: implement huge_fault support
        mm/arm64: support large pfn mappings
        mm/x86: support large pfn mappings
        ...
      617a814f
    • Linus Torvalds's avatar
      Merge tag 'for-linux-6.12-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · 1868f9d0
      Linus Torvalds authored
      Pull orangefs update from Mike Marshall:
       "Constify struct kobj_type"
      
      * tag 'for-linux-6.12-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: Constify struct kobj_type
      1868f9d0
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 056f8c43
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Lots of cleanups and bug fixes this cycle, primarily in the block
        allocation, extent management, fast commit, and journalling"
      
      * tag 'ext4_for_linus-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (93 commits)
        ext4: convert EXT4_B2C(sbi->s_stripe) users to EXT4_NUM_B2C
        ext4: check stripe size compatibility on remount as well
        ext4: fix i_data_sem unlock order in ext4_ind_migrate()
        ext4: remove the special buffer dirty handling in do_journal_get_write_access
        ext4: fix a potential assertion failure due to improperly dirtied buffer
        ext4: hoist ext4_block_write_begin and replace the __block_write_begin
        ext4: persist the new uptodate buffers in ext4_journalled_zero_new_buffers
        ext4: dax: keep orphan list before truncate overflow allocated blocks
        ext4: fix error message when rejecting the default hash
        ext4: save unnecessary indentation in ext4_ext_create_new_leaf()
        ext4: make some fast commit functions reuse extents path
        ext4: refactor ext4_swap_extents() to reuse extents path
        ext4: get rid of ppath in convert_initialized_extent()
        ext4: get rid of ppath in ext4_ext_handle_unwritten_extents()
        ext4: get rid of ppath in ext4_ext_convert_to_initialized()
        ext4: get rid of ppath in ext4_convert_unwritten_extents_endio()
        ext4: get rid of ppath in ext4_split_convert_extents()
        ext4: get rid of ppath in ext4_split_extent()
        ext4: get rid of ppath in ext4_force_split_extent_at()
        ext4: get rid of ppath in ext4_split_extent_at()
        ...
      056f8c43
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.12.blocksize' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs · 171754c3
      Linus Torvalds authored
      Pull vfs blocksize updates from Christian Brauner:
       "This contains the vfs infrastructure as well as the xfs bits to enable
        support for block sizes (bs) larger than page sizes (ps) plus a few
        fixes to related infrastructure.
      
        There has been efforts over the last 16 years to enable enable Large
        Block Sizes (LBS), that is block sizes in filesystems where bs > page
        size. Through these efforts we have learned that one of the main
        blockers to supporting bs > ps in filesystems has been a way to
        allocate pages that are at least the filesystem block size on the page
        cache where bs > ps.
      
        Thanks to various previous efforts it is possible to support bs > ps
        in XFS with only a few changes in XFS itself. Most changes are to the
        page cache to support minimum order folio support for the target block
        size on the filesystem.
      
        A motivation for Large Block Sizes today is to support high-capacity
        (large amount of Terabytes) QLC SSDs where the internal Indirection
        Unit (IU) are typically greater than 4k to help reduce DRAM and so in
        turn cost and space. In practice this then allows different
        architectures to use a base page size of 4k while still enabling
        support for block sizes aligned to the larger IUs by relying on high
        order folios on the page cache when needed.
      
        It also allows to take advantage of the drive's support for atomics
        larger than 4k with buffered IO support in Linux. As described this
        year at LSFMM, supporting large atomics greater than 4k enables
        databases to remove the need to rely on their own journaling, so they
        can disable double buffered writes, which is a feature different cloud
        providers are already enabling through custom storage solutions"
      
      * tag 'vfs-6.12.blocksize' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs: (22 commits)
        Documentation: iomap: fix a typo
        iomap: remove the iomap_file_buffered_write_punch_delalloc return value
        iomap: pass the iomap to the punch callback
        iomap: pass flags to iomap_file_buffered_write_punch_delalloc
        iomap: improve shared block detection in iomap_unshare_iter
        iomap: handle a post-direct I/O invalidate race in iomap_write_delalloc_release
        docs:filesystems: fix spelling and grammar mistakes in iomap design page
        filemap: fix htmldoc warning for mapping_align_index()
        iomap: make zero range flush conditional on unwritten mappings
        iomap: fix handling of dirty folios over unwritten extents
        iomap: add a private argument for iomap_file_buffered_write
        iomap: remove set_memor_ro() on zero page
        xfs: enable block size larger than page size support
        xfs: make the calculation generic in xfs_sb_validate_fsb_count()
        xfs: expose block size in stat
        xfs: use kvmalloc for xattr buffers
        iomap: fix iomap_dio_zero() for fs bs > system page size
        filemap: cap PTE range to be created to allowed zero fill in folio_map_range()
        mm: split a folio in minimum folio order chunks
        readahead: allocate folios with mapping_min_order in readahead
        ...
      171754c3
  3. 20 Sep, 2024 1 commit
  4. 19 Sep, 2024 23 commits
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2024-09-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2004cef1
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - Implement the SCHED_DEADLINE server infrastructure - Daniel Bristot
         de Oliveira's last major contribution to the kernel:
      
           "SCHED_DEADLINE servers can help fixing starvation issues of low
            priority tasks (e.g., SCHED_OTHER) when higher priority tasks
            monopolize CPU cycles. Today we have RT Throttling; DEADLINE
            servers should be able to replace and improve that."
      
         (Daniel Bristot de Oliveira, Peter Zijlstra, Joel Fernandes, Youssef
         Esmat, Huang Shijie)
      
       - Preparatory changes for sched_ext integration:
           - Use set_next_task(.first) where required
           - Fix up set_next_task() implementations
           - Clean up DL server vs. core sched
           - Split up put_prev_task_balance()
           - Rework pick_next_task()
           - Combine the last put_prev_task() and the first set_next_task()
           - Rework dl_server
           - Add put_prev_task(.next)
      
         (Peter Zijlstra, with a fix by Tejun Heo)
      
       - Complete the EEVDF transition and refine EEVDF scheduling:
           - Implement delayed dequeue
           - Allow shorter slices to wakeup-preempt
           - Use sched_attr::sched_runtime to set request/slice suggestion
           - Document the new feature flags
           - Remove unused and duplicate-functionality fields
           - Simplify & unify pick_next_task_fair()
           - Misc debuggability enhancements
      
         (Peter Zijlstra, with fixes/cleanups by Dietmar Eggemann, Valentin
         Schneider and Chuyi Zhou)
      
       - Initialize the vruntime of a new task when it is first enqueued,
         resulting in significant decrease in latency of newly woken tasks
         (Zhang Qiao)
      
       - Introduce SM_IDLE and an idle re-entry fast-path in __schedule()
         (K Prateek Nayak, Peter Zijlstra)
      
       - Clean up and clarify the usage of Clean up usage of rt_task()
         (Qais Yousef)
      
       - Preempt SCHED_IDLE entities in strict cgroup hierarchies
         (Tianchen Ding)
      
       - Clarify the documentation of time units for deadline scheduler
         parameters (Christian Loehle)
      
       - Remove the HZ_BW chicken-bit feature flag introduced a year ago,
         the original change seems to be working fine (Phil Auld)
      
       - Misc fixes and cleanups (Chen Yu, Dan Carpenter, Huang Shijie,
         Peilin He, Qais Yousefm and Vincent Guittot)
      
      * tag 'sched-core-2024-09-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
        sched/cpufreq: Use NSEC_PER_MSEC for deadline task
        cpufreq/cppc: Use NSEC_PER_MSEC for deadline task
        sched/deadline: Clarify nanoseconds in uapi
        sched/deadline: Convert schedtool example to chrt
        sched/debug: Fix the runnable tasks output
        sched: Fix sched_delayed vs sched_core
        kernel/sched: Fix util_est accounting for DELAY_DEQUEUE
        kthread: Fix task state in kthread worker if being frozen
        sched/pelt: Use rq_clock_task() for hw_pressure
        sched/fair: Move effective_cpu_util() and effective_cpu_util() in fair.c
        sched/core: Introduce SM_IDLE and an idle re-entry fast-path in __schedule()
        sched: Add put_prev_task(.next)
        sched: Rework dl_server
        sched: Combine the last put_prev_task() and the first set_next_task()
        sched: Rework pick_next_task()
        sched: Split up put_prev_task_balance()
        sched: Clean up DL server vs core sched
        sched: Fixup set_next_task() implementations
        sched: Use set_next_task(.first) where required
        sched/fair: Properly deactivate sched_delayed task upon class change
        ...
      2004cef1
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-6.12' of https://github.com/cschaufler/smack-next · 509d2cd1
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "Two patches: one is a simple indentation correction, the other
        corrects a potentially rcu unsafe pointer assignment"
      
      * tag 'Smack-for-6.12' of https://github.com/cschaufler/smack-next:
        smackfs: Use rcu_assign_pointer() to ensure safe assignment in smk_set_cipso
        security: smack: Fix indentation in smack_netfilter.c
      509d2cd1
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.11-final-but-missed-it' of... · 7f52bb9d
      Linus Torvalds authored
      Merge tag 'i2c-for-6.11-final-but-missed-it' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
      
      Pull i2c fixes from Wolfram Sang:
       "The Aspeed driver tracks the controller's state (stop, pending, start,
        etc.). Previously, when the stop command was sent, the state was not
        updated. The fix ensures the driver's state is aligned with the device
        status.
      
        The Intel SCH driver receives a new look, and among the cleanups,
        there is a fix where, due to an oversight, an if/else statement was
        missing the else, causing it to move forward instead of exiting the
        function in case of an error.
      
        The Qualcomm GENI I2C driver adds the IRQF_NO_AUTOEN flag to the IRQ
        setup to prevent unwanted interrupts during probe.
      
        The Xilinx XPS controller fixes TX FIFO handling to avoid missed NAKs.
        Another fix ensures the controller is reinitialized when the bus
        appears busy"
      
      * tag 'i2c-for-6.11-final-but-missed-it' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq()
        i2c: isch: Add missed 'else'
        i2c: xiic: Try re-initialization on bus busy timeout
        i2c: xiic: Wait for TX empty to avoid missed TX NAKs
        i2c: aspeed: Update the stop sw state when the bus recovery occurs
      7f52bb9d
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-09-19-00-31' of... · 839c4f59
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-09-19-00-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc hotfixes from Andrew Morton:
       "12 hotfixes, 11 of which are cc:stable.
      
        Four fixes for longstanding ocfs2 issues and the remainder address
        random MM things"
      
      * tag 'mm-hotfixes-stable-2024-09-19-00-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        mm/madvise: process_madvise() drop capability check if same mm
        mm/huge_memory: ensure huge_zero_folio won't have large_rmappable flag set
        mm/hugetlb.c: fix UAF of vma in hugetlb fault pathway
        mm: change vmf_anon_prepare() to __vmf_anon_prepare()
        resource: fix region_intersects() vs add_memory_driver_managed()
        zsmalloc: use unique zsmalloc caches names
        mm/damon/vaddr: protect vma traversal in __damon_va_thre_regions() with rcu read lock
        mm: vmscan.c: fix OOM on swap stress test
        ocfs2: cancel dqi_sync_work before freeing oinfo
        ocfs2: fix possible null-ptr-deref in ocfs2_set_buffer_uptodate
        ocfs2: remove unreasonable unlock in ocfs2_read_blocks
        ocfs2: fix null-ptr-deref when journal load failed.
      839c4f59
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · a1d1eb2f
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Updates to the usual drivers (ufs, smartpqi, NCR5380, mac_scsi, lpfc,
        mpi3mr).
      
        There are no user visible core changes and a whole series of minor
        updates and fixes. The largest core change is probably the
        simplification of the workqueue allocation path"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (86 commits)
        scsi: smartpqi: update driver version to 2.1.30-031
        scsi: smartpqi: fix volume size updates
        scsi: smartpqi: fix rare system hang during LUN reset
        scsi: smartpqi: add new controller PCI IDs
        scsi: smartpqi: add counter for parity write stream requests
        scsi: smartpqi: correct stream detection
        scsi: smartpqi: Add fw log to kdump
        scsi: bnx2fc: Remove some unused fields in struct bnx2fc_rport
        scsi: qla2xxx: Remove the unused 'del_list_entry' field in struct fc_port
        scsi: ufs: core: Remove ufshcd_urgent_bkops()
        scsi: core: Remove obsoleted declaration for scsi_driverbyte_string()
        scsi: bnx2i: Remove unused declarations
        scsi: core: Simplify an alloc_workqueue() invocation
        scsi: ufs: Simplify alloc*_workqueue() invocation
        scsi: stex: Simplify an alloc_ordered_workqueue() invocation
        scsi: scsi_transport_fc: Simplify alloc_workqueue() invocations
        scsi: snic: Simplify alloc_workqueue() invocations
        scsi: qedi: Simplify an alloc_workqueue() invocation
        scsi: qedf: Simplify alloc_workqueue() invocations
        scsi: myrs: Simplify an alloc_ordered_workqueue() invocation
        ...
      a1d1eb2f
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.12-2024-09-19' of git://git.infradead.org/users/hch/dma-mapping · 726e2d0c
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - support DMA zones for arm64 systems where memory starts at > 4GB
         (Baruch Siach, Catalin Marinas)
      
       - support direct calls into dma-iommu and thus obsolete dma_map_ops for
         many common configurations (Leon Romanovsky)
      
       - add DMA-API tracing (Sean Anderson)
      
       - remove the not very useful return value from various dma_set_* APIs
         (Christoph Hellwig)
      
       - misc cleanups and minor optimizations (Chen Y, Yosry Ahmed, Christoph
         Hellwig)
      
      * tag 'dma-mapping-6.12-2024-09-19' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: reflow dma_supported
        dma-mapping: reliably inform about DMA support for IOMMU
        dma-mapping: add tracing for dma-mapping API calls
        dma-mapping: use IOMMU DMA calls for common alloc/free page calls
        dma-direct: optimize page freeing when it is not addressable
        dma-mapping: clearly mark DMA ops as an architecture feature
        vdpa_sim: don't select DMA_OPS
        arm64: mm: keep low RAM dma zone
        dma-mapping: don't return errors from dma_set_max_seg_size
        dma-mapping: don't return errors from dma_set_seg_boundary
        dma-mapping: don't return errors from dma_set_min_align_mask
        scsi: check that busses support the DMA API before setting dma parameters
        arm64: mm: fix DMA zone when dma-ranges is missing
        dma-mapping: direct calls for dma-iommu
        dma-mapping: call ->unmap_page and ->unmap_sg unconditionally
        arm64: support DMA zone above 4GB
        dma-mapping: replace zone_dma_bits by zone_dma_limit
        dma-mapping: use bit masking to check VM_DMA_COHERENT
      726e2d0c
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2024-09-19' of https://gitlab.freedesktop.org/drm/kernel · de848da1
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "This adds a couple of patches outside the drm core, all should be
        acked appropriately, the string and pstore ones are the main ones that
        come to mind.
      
        Otherwise it's the usual drivers, xe is getting enabled by default on
        some new hardware, we've changed the device number handling to allow
        more devices, and we added some optional rust code to create QR codes
        in the panic handler, an idea first suggested I think 10 years ago :-)
      
        string:
         - add mem_is_zero()
      
        core:
         - support more device numbers
         - use XArray for minor ids
         - add backlight constants
         - Split dma fence array creation into alloc and arm
      
        fbdev:
         - remove usage of old fbdev hooks
      
        kms:
         - Add might_fault() to drm_modeset_lock priming
         - Add dynamic per-crtc vblank configuration support
      
        dma-buf:
         - docs cleanup
      
        buddy:
         - Add start address support for trim function
      
        printk:
         - pass description to kmsg_dump
      
        scheduler:
         - Remove full_recover from drm_sched_start
      
        ttm:
         - Make LRU walk restartable after dropping locks
         - Allow direct reclaim to allocate local memory
      
        panic:
         - add display QR code (in rust)
      
        displayport:
         - mst: GUID improvements
      
        bridge:
         - Silence error message on -EPROBE_DEFER
         - analogix: Clean aup
         - bridge-connector: Fix double free
         - lt6505: Disable interrupt when powered off
         - tc358767: Make default DP port preemphasis configurable
         - lt9611uxc: require DRM_BRIDGE_ATTACH_NO_CONNECTOR
         - anx7625: simplify OF array handling
         - dw-hdmi: simplify clock handling
         - lontium-lt8912b: fix mode validation
         - nwl-dsi: fix mode vsync/hsync polarity
      
        xe:
         - Enable LunarLake and Battlemage support
         - Introducing Xe2 ccs modifiers for integrated and discrete graphics
         - rename xe perf to xe observation
         - use wb caching on DGFX for system memory
         - add fence timeouts
         - Lunar Lake graphics/media/display workarounds
         - Battlemage workarounds
         - Battlemage GSC support
         - GSC and HuC fw updates for LL/BM
         - use dma_fence_chain_free
         - refactor hw engine lookup and mmio access
         - enable priority mem read for Xe2
         - Add first GuC BMG fw
         - fix dma-resv lock
         - Fix DGFX display suspend/resume
         - Use xe_managed for kernel BOs
         - Use reserved copy engine for user binds on faulting devices
         - Allow mixing dma-fence jobs and long-running faulting jobs
         - fix media TLB invalidation
         - fix rpm in TTM swapout path
         - track resources and VF state by PF
      
        i915:
         - Type-C programming fix for MTL+
         - FBC cleanup
         - Calc vblank delay more accurately
         - On DP MST, Enable LT fallback for UHBR<->non-UHBR rates
         - Fix DP LTTPR detection
         - limit relocations to INT_MAX
         - fix long hangs in buddy allocator on DG2/A380
      
        amdgpu:
         - Per-queue reset support
         - SDMA devcoredump support
         - DCN 4.0.1 updates
         - GFX12/VCN4/JPEG4 updates
         - Convert vbios embedded EDID to drm_edid
         - GFX9.3/9.4 devcoredump support
         - process isolation framework for GFX 9.4.3/4
         - take IOMMU mappings into account for P2P DMA
      
        amdkfd:
         - CRIU fixes
         - HMM fix
         - Enable process isolation support for GFX 9.4.3/4
         - Allow users to target recommended SDMA engines
         - KFD support for targetting queues on recommended SDMA engines
      
        radeon:
         - remove .load and drm_dev_alloc
         - Fix vbios embedded EDID size handling
         - Convert vbios embedded EDID to drm_edid
         - Use GEM references instead of TTM
         - r100 cp init cleanup
         - Fix potential overflows in evergreen CS offset tracking
      
        msm:
         - DPU:
            - implement DP/PHY mapping on SC8180X
            - Enable writeback on SM8150, SC8180X, SM6125, SM6350
         - DP:
            - Enable widebus on all relevant chipsets
            - MSM8998 HDMI support
         - GPU:
            - A642L speedbin support
            - A615/A306/A621 support
            - A7xx devcoredump support
      
        ast:
         - astdp: Support AST2600 with VGA
         - Clean up HPD
         - Fix timeout loop for DP link training
         - reorganize output code by type (VGA, DP, etc)
         - convert to struct drm_edid
         - fix BMC handling for all outputs
      
        exynos:
         - drop stale MAINTAINERS pattern
         - constify struct
      
        loongson:
         - use GEM refcount over TTM
      
        mgag200:
         - Improve BMC handling
         - Support VBLANK intterupts
         - transparently support BMC outputs
      
        nouveau:
         - Refactor and clean up internals
         - Use GEM refcount over TTM's
      
        gm12u320:
         - convert to struct drm_edid
      
        gma500:
         - update i2c terms
      
        lcdif:
         - pixel clock fix
      
        host1x:
         - fix syncpoint IRQ during resume
         - use iommu_paging_domain_alloc()
      
        imx:
         - ipuv3: convert to struct drm_edid
      
        omapdrm:
         - improve error handling
         - use common helper for_each_endpoint_of_node()
      
        panel:
         - add support for BOE TV101WUM-LL2 plus DT bindings
         - novatek-nt35950: improve error handling
         - nv3051d: improve error handling
         - panel-edp:
            - add support for BOE NE140WUM-N6G
            - revert support for SDC ATNA45AF01
         - visionox-vtdr6130:
            - improve error handling
            - use devm_regulator_bulk_get_const()
         - boe-th101mb31ig002:
            - Support for starry-er88577 MIPI-DSI panel plus DT
            - Fix porch parameter
         - edp: Support AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE
           NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, CMN N116BCA-EA2,
           CMN N116BCP-EA2, CSW MNB601LS1-4
         - himax-hx8394: Support Microchip AC40T08A MIPI Display panel plus DT
         - ilitek-ili9806e: Support Densitron DMT028VGHMCMI-1D TFT plus DT
         - jd9365da:
            - Support Melfas lmfbx101117480 MIPI-DSI panel plus DT
            - Refactor for code sharing
         - panel-edp: fix name for HKC MB116AN01
         - jd9365da: fix "exit sleep" commands
         - jdi-fhd-r63452: simplify error handling with DSI multi-style
           helpers
         - mantix-mlaf057we51: simplify error handling with DSI multi-style
           helpers
         - simple:
            - support Innolux G070ACE-LH3 plus DT bindings
            - support On Tat Industrial Company KD50G21-40NT-A1 plus DT
              bindings
         - st7701:
            - decouple DSI and DRM code
            - add SPI support
            - support Anbernic RG28XX plus DT bindings
      
        mediatek:
         - support alpha blending
         - remove cl in struct cmdq_pkt
         - ovl adaptor fix
         - add power domain binding for mediatek DPI controller
      
        renesas:
         - rz-du: add support for RZ/G2UL plus DT bindings
      
        rockchip:
         - Improve DP sink-capability reporting
         - dw_hdmi: Support 4k@60Hz
         - vop:
            - Support RGB display on Rockchip RK3066
            - Support 4096px width
      
        sti:
         - convert to struct drm_edid
      
        stm:
         - Avoid UAF wih managed plane and CRTC helpers
         - Fix module owner
         - Fix error handling in probe
         - Depend on COMMON_CLK
         - ltdc:
            - Fix transparency after disabling plane
            - Remove unused interrupt
      
        tegra:
         - gr3d: improve PM domain handling
         - convert to struct drm_edid
         - Call drm_atomic_helper_shutdown()
      
        vc4:
         - fix PM during detect
         - replace DRM_ERROR() with drm_error()
         - v3d: simplify clock retrieval
      
        v3d:
         - Clean up perfmon
      
        virtio:
         - add DRM capset"
      
      * tag 'drm-next-2024-09-19' of https://gitlab.freedesktop.org/drm/kernel: (1326 commits)
        drm/xe: Fix missing conversion to xe_display_pm_runtime_resume
        drm/xe/xe2hpg: Add Wa_15016589081
        drm/xe: Don't keep stale pointer to bo->ggtt_node
        drm/xe: fix missing 'xe_vm_put'
        drm/xe: fix build warning with CONFIG_PM=n
        drm/xe: Suppress missing outer rpm protection warning
        drm/xe: prevent potential UAF in pf_provision_vf_ggtt()
        drm/amd/display: Add all planes on CRTC to state for overlay cursor
        drm/i915/bios: fix printk format width
        drm/i915/display: Fix BMG CCS modifiers
        drm/amdgpu: get rid of bogus includes of fdtable.h
        drm/amdkfd: CRIU fixes
        drm/amdgpu: fix a race in kfd_mem_export_dmabuf()
        drm: new helper: drm_gem_prime_handle_to_dmabuf()
        drm/amdgpu/atomfirmware: Silence UBSAN warning
        drm/amdgpu: Fix kdoc entry in 'amdgpu_vm_cpu_prepare'
        drm/amd/amdgpu: apply command submission parser for JPEG v1
        drm/amd/amdgpu: apply command submission parser for JPEG v2+
        drm/amd/pm: fix the pp_dpm_pcie issue on smu v14.0.2/3
        drm/amd/pm: update the features set on smu v14.0.2/3
        ...
      de848da1
    • Linus Torvalds's avatar
      Merge tag 'ata-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · 17600073
      Linus Torvalds authored
      Pull ata updates from Damien Le Moal:
      
       - Convert the qcom AHCI controller DT bindings to DT schema (from
         Rayyan)
      
       - Cleanup of libata core and drivers code handling controller and
         device quirks to rename "blacklist" to the more neutral "quirk" and
         to replace the rarely used "horkage" term with the more common
         "quirk" naming (me)
      
       - Add libata-core message to print the quirks applied to a controller
         or device (me)
      
       - Remove the not-so-useful function ata_noop_qc_prep() from libata core
         (me)
      
       - ahci_imx driver cleanup, improvements and DT bindings compatible
         strings update (Richard and Dan)
      
       - libahci_platform improvements (Zhang)
      
       - Remove obsolete functions declarations from libata header files (from
         Gaosheng)
      
       - Improve teh ahci_brcm driver using managed device resources funetions
         (Zhang)
      
       - Introduce new helper function to improve libata EH code readability
         (Niklas)
      
       - Enable module autoloading for the pata_ftide010, pata_ixp4xx and
         sata_gemini drivers (Liao)
      
       - Move SATA related functions and data declaraions from libata-core to
         libata-sata (me)
      
       - Rename the function handling the sense data for successful NCQ
         commands log to better reflect that function actions (me)
      
       - Reduce libata memory usage by moving port resources to struct
         ata_device and by optimizing the management of resources for CDL
         capable devices (me)
      
       - Improve libata-eh handling of failed ATA passthrough commands
         (Niklas)
      
      * tag 'ata-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux: (39 commits)
        ata: libata: Clear DID_TIME_OUT for ATA PT commands with sense data
        ata: libata: Fix W=1 compilation warning
        ata: libata: Improve CDL resource management
        ata: libata: Introduce ata_dev_free_resources
        ata: libata: Move sector_buf from struct ata_port to struct ata_device
        ata: libata: Rename ata_eh_read_sense_success_ncq_log()
        ata: libata: Move sata_std_hardreset() definition to libata-sata.c
        ata: libata: Move sata_down_spd_limit() to libata-sata.c
        ata: libata: Improve __ata_qc_complete()
        ata: libata-scsi: Improve ata_scsi_handle_link_detach()
        ata: libata: Cleanup libata-transport
        ata: sata_gemini: Enable module autoloading
        ata: pata_ixp4xx: Enable module autoloading
        ata: pata_ftide010: Enable module autoloading
        ata: libata: Add helper ata_eh_decide_disposition()
        ata: ahci_brcm: Use devm_platform_ioremap_resource_byname() helper function
        ata: libata: Remove obsolete function declarations
        ata: ahci_imx: Fix error code in probe()
        ata: libahci_platform: Simplify code with for_each_child_of_node_scoped()
        ata: ahci_imx: Correct the email address
        ...
      17600073
    • Linus Torvalds's avatar
      Merge tag 'hid-for-linus-2024091602' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · a65b3c3e
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - New HID over SPI driver for Goodix devices that don't follow
         Microsoft's HID-over-SPI specification, so a separate driver is
         needed. Currently supported device is GT7986U touchscreen (Charles
         Wang)
      
       - support for new hardware features in Wacom driver (high-res wheel
         scrolling, touchstrings with relative motions, support for two
         touchrings) (Jason Gerecke)
      
       - support for customized vendor firmware loading in intel-ish driver
         (Zhang Lixu)
      
       - fix for theoretical race condition in i2c-hid (Dmitry Torokhov)
      
       - support for HIDIOCREVOKE -- evdev's EVIOCREVOKE equivalent in hidraw
         (Peter Hutterer)
      
       - initial hidraw selftest implementation (Benjamin Tissoires)
      
       - constification of device-specific report descriptors (Thomas
         Weißschuh)
      
       - other small assorted fixes and device ID / quirk additions
      
      * tag 'hid-for-linus-2024091602' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (54 commits)
        hid: cp2112: Use irq_get_trigger_type() helper
        HID: i2c-hid: ensure various commands do not interfere with each other
        HID: multitouch: Add support for Thinkpad X12 Gen 2 Kbd Portfolio
        HID: wacom: Do not warn about dropped packets for first packet
        HID: wacom: Support sequence numbers smaller than 16-bit
        HID: lg: constify fixed up report descriptor
        HID: uclogic: constify fixed up report descriptor
        HID: waltop: constify fixed up report descriptor
        HID: sony: constify fixed up report descriptor
        HID: pxrc: constify fixed up report descriptor
        HID: steelseries: constify fixed up report descriptor
        HID: viewsonic: constify fixed up report descriptor
        HID: vrc2: constify fixed up report descriptor
        HID: xiaomi: constify fixed up report descriptor
        HID: maltron: constify fixed up report descriptor
        HID: keytouch: constify fixed up report descriptor
        HID: holtek-kbd: constify fixed up report descriptor
        HID: dr: constify fixed up report descriptor
        HID: bigbenff: constify fixed up report descriptor
        HID: picoLCD: Use backlight power constants
        ...
      a65b3c3e
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · d5e65d1f
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "Just updates and fixes, no major changes"
      
      * tag 'tpmdd-next-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm: export tpm2_sessions_init() to fix ibmvtpm building
        tpm: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        selftests: tpm2: test_smoke: Run only when TPM2 is avaialable.
        MAINTAINERS: Add selftest files to TPM section
        tpm: Clean up TPM space after command failure
      d5e65d1f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.12-1' of https://github.com/cminyard/linux-ipmi · 18aa0ddd
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Some minor fixes and cleanups for IPMI. Nothing big.
      
        Handle a bogus BMC a little better, fix autoload on some systems,
        remove some deprecated interfaces from the docs"
      
      * tag 'for-linus-6.12-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: docs: don't advertise deprecated sysfs entries
        ipmi:ssif: Improve detecting during probing
        ipmi: ipmi_ssif: fix module autoloading
      18aa0ddd
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.12-1' of... · 84bbfe6b
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform drivers updates from Hans de Goede:
      
       - asus-wmi: Add support for vivobook fan profiles
      
       - dell-laptop: Add knobs to change battery charge settings
      
       - lg-laptop: Add operation region support
      
       - intel-uncore-freq: Add support for efficiency latency control
      
       - intel/ifs: Add SBAF test support
      
       - intel/pmc: Ignore all LTRs during suspend
      
       - platform/surface: Support for arm64 based Surface devices
      
       - wmi: Pass event data directly to legacy notify handlers
      
       - x86/platform/geode: switch GPIO buttons and LEDs to software
         properties
      
       - bunch of small cleanups, fixes, hw-id additions, etc.
      
      * tag 'platform-drivers-x86-v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (65 commits)
        MAINTAINERS: adjust file entry in INTEL MID PLATFORM
        platform/x86: x86-android-tablets: Adjust Xiaomi Pad 2 bottom bezel touch buttons LED
        platform/mellanox: mlxbf-pmc: fix lockdep warning
        platform/x86/amd: pmf: Add quirk for TUF Gaming A14
        platform/x86: touchscreen_dmi: add nanote-next quirk
        platform/x86: asus-wmi: don't fail if platform_profile already registered
        platform/x86: asus-wmi: add debug print in more key places
        platform/x86: intel_scu_wdt: Move intel_scu_wdt.h to x86 subfolder
        platform/x86: intel_scu_ipc: Move intel_scu_ipc.h out of arch/x86/include/asm
        MAINTAINERS: Add Intel MID section
        platform/x86: panasonic-laptop: Add support for programmable buttons
        platform/olpc: Remove redundant null pointer checks in olpc_ec_setup_debugfs()
        platform/x86: intel/pmc: Ignore all LTRs during suspend
        platform/x86: wmi: Call both legacy and WMI driver notify handlers
        platform/x86: wmi: Merge get_event_data() with wmi_get_notify_data()
        platform/x86: wmi: Remove wmi_get_event_data()
        platform/x86: wmi: Pass event data directly to legacy notify handlers
        platform/x86: thinkpad_acpi: Fix uninitialized symbol 's' warning
        platform/x86: x86-android-tablets: Fix spelling in the comments
        platform/x86: ideapad-laptop: Make the scope_guard() clear of its scope
        ...
      84bbfe6b
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 2a17bb8c
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "DT Bindings:
      
         - Drop duplicate devices in trivial-devices.yaml
      
         - Add a common serial peripheral device schema and reference it in
           serial device schemas.
      
         - Convert nxp,lpc1850-wdt, zii,rave-wdt, ti,davinci-wdt,
           snps,archs-pct, fsl,bcsr, fsl,fpga-qixis-i2c, fsl,fpga-qixis,
           fsl,cpm-enet, fsl,cpm-mdio, fsl,ucc-hdlc, maxim,ds26522,
           aspeed,ast2400-cvic, aspeed,ast2400-vic, fsl,ftm-timer,
           ti,davinci-timer, fsl,rcpm, and qcom,ebi2 to DT schema
      
         - Add support for rockchip,rk3576-wdt, qcom,apss-wdt-sa8255p,
           fsl,imx8qm-irqsteer, qcom,pm6150-vib, qcom,sa8255p-pdc,
           isil,isl69260, ti,tps546d24, and lpc32xx DMA mux
      
         - Drop duplicate nvidia,tegra186-ccplex-cluster.yaml and
           mediatek,mt6795-sys-clock.yaml
      
         - Add arm,gic ESPI and EPPI interrupt type specifiers
      
         - Add another batch of legacy compatible strings which we have no
           intention of documenting
      
         - Add dmas/dma-names properties to FSL lcdif
      
         - Fix wakeup-source reference to m8921-keypad.yaml
      
         - Treewide fixes of typos in bindings
      
        DT Core:
      
         - Update dtc/libfdt to upstream version v1.7.0-95-gbcd02b523429
      
         - More conversions to scoped iterators and __free() initializer
      
         - Handle overflows in address resources on 32-bit systems
      
         - Extend extracting compatible strings in sources from function
           parameters
      
         - Use of_property_present() in DT unittest
      
         - Clean-up of_irq_to_resource() to use helpers
      
         - Support #msi-cells=<0> in of_msi_get_domain()
      
         - Improve the kerneldoc for of_property_match_string()
      
         - kselftest: Ignore nodes that have ancestors disabled"
      
      * tag 'devicetree-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (59 commits)
        dt-bindings: watchdog: Add rockchip,rk3576-wdt compatible
        dt-bindings: cpu: Drop duplicate nvidia,tegra186-ccplex-cluster.yaml
        dt-bindings: clock: mediatek: Drop duplicate mediatek,mt6795-sys-clock.yaml
        of/irq: Use helper to define resources
        of/irq: Make use of irq_get_trigger_type()
        dt-bindings: clk: vc5: Make SD/OE pin configuration properties not required
        drivers/of: Improve documentation for match_string
        of: property: Do some clean up with use of __free()
        dt-bindings: watchdog: qcom-wdt: document support on SA8255p
        dt-bindings: interrupt-controller: fsl,irqsteer: Document fsl,imx8qm-irqsteer
        dt-bindings: interrupt-controller: arm,gic: add ESPI and EPPI specifiers
        dt-bindings: dma: Add lpc32xx DMA mux binding
        dt-bindings: trivial-devices: Drop duplicate "maxim,max1237"
        dt-bindings: trivial-devices: Drop duplicate LM75 compatible devices
        dt-bindings: trivial-devices: Deprecate "ad,ad7414"
        dt-bindings: trivial-devices: Drop incorrect and duplicate at24 compatibles
        dt-bindings: wakeup-source: update reference to m8921-keypad.yaml
        dt-bindings: interrupt-controller: qcom-pdc: document support for SA8255p
        dt-bindings: Fix various typos
        of: address: Unify resource bounds overflow checking
        ...
      2a17bb8c
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 19a519ca
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - fix a boot problem as a Xen dom0 on some AMD systems
      
       - fix Xen PVH boot problems with KASAN enabled
      
       - fix for a build warning
      
       - fixes to swiotlb-xen
      
      * tag 'for-linus-6.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/swiotlb: fix allocated size
        xen/swiotlb: add alignment check for dma buffers
        xen/pci: Avoid -Wflex-array-member-not-at-end warning
        xen/xenbus: Convert to use ERR_CAST()
        xen, pvh: fix unbootable VMs by inlining memset() in xen_prepare_pvh()
        x86/cpu: fix unbootable VMs by inlining memcmp() in hypervisor_cpuid_base()
        xen, pvh: fix unbootable VMs (PVH + KASAN - AMD_MEM_ENCRYPT)
        xen: tolerate ACPI NVS memory overlapping with Xen allocated memory
        xen: allow mapping ACPI data using a different physical address
        xen: add capability to remap non-RAM pages to different PFNs
        xen: move max_pfn in xen_memory_setup() out of function scope
        xen: move checks for e820 conflicts further up
        xen: introduce generic helper checking for memory map conflicts
        xen: use correct end address of kernel for conflict checking
      19a519ca
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20240916' of... · 1d7bb2bf
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20240916' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull Hyper-V updates from Wei Liu:
      
       - Optimize boot time by concurrent execution of hv_synic_init()
         (Saurabh Sengar)
      
       - Use helpers to read control registers in hv_snp_boot_ap() (Yosry
         Ahmed)
      
       - Add memory allocation check in hv_fcopy_start (Zhu Jun)
      
      * tag 'hyperv-next-signed-20240916' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        tools/hv: Add memory allocation check in hv_fcopy_start
        x86/hyperv: use helpers to read control registers in hv_snp_boot_ap()
        Drivers: hv: vmbus: Optimize boot time by concurrent execution of hv_synic_init()
      1d7bb2bf
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 3a7101e9
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Reduce alignment constraints on STRICT_KERNEL_RWX and speed-up TLB
         misses on 8xx and 603
      
       - Replace kretprobe code with rethook and enable fprobe
      
       - Remove the "fast endian switch" syscall
      
       - Handle DLPAR device tree updates in kernel, allowing the deprecation
         of the binary /proc/powerpc/ofdt interface
      
      Thanks to Abhishek Dubey, Alex Shi, Benjamin Gray, Christophe Leroy,
      Gaosheng Cui, Gautam Menghani, Geert Uytterhoeven, Haren Myneni, Hari
      Bathini, Huang Xiaojia, Jinjie Ruan, Madhavan Srinivasan, Miguel Ojeda,
      Mina Almasry, Narayana Murty N, Naveen Rao, Rob Herring (Arm), Scott
      Cheloha, Segher Boessenkool, Stephen Rothwell, Thomas Zimmermann, Uwe
      Kleine-König, Vaibhav Jain, and Zhang Zekun.
      
      * tag 'powerpc-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (59 commits)
        powerpc/atomic: Use YZ constraints for DS-form instructions
        MAINTAINERS: powerpc: Add Maddy
        powerpc: Switch back to struct platform_driver::remove()
        powerpc/pseries/eeh: Fix pseries_eeh_err_inject
        selftests/powerpc: Allow building without static libc
        macintosh/via-pmu: register_pmu_pm_ops() can be __init
        powerpc: Stop using no_llseek
        powerpc/64s: Remove the "fast endian switch" syscall
        powerpc/mm/64s: Restrict THP to Radix or HPT w/64K pages
        powerpc/mm/64s: Move THP reqs into a separate symbol
        powerpc/64s: Make mmu_hash_ops __ro_after_init
        powerpc: Replace kretprobe code with rethook on powerpc
        powerpc: pseries: Constify struct kobj_type
        powerpc: powernv: Constify struct kobj_type
        powerpc: Constify struct kobj_type
        powerpc/pseries/dlpar: Add device tree nodes for DLPAR IO add
        powerpc/pseries/dlpar: Remove device tree node for DLPAR IO remove
        powerpc/pseries: Use correct data types from pseries_hp_errorlog struct
        powerpc/vdso: Inconditionally use CFUNC macro
        powerpc/32: Implement validation of emergency stack
        ...
      3a7101e9
    • Linus Torvalds's avatar
      Merge tag 'parisc-for-6.12-rc1' of... · 54450af6
      Linus Torvalds authored
      Merge tag 'parisc-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
      
      Pull parisc architecture updates from Helge Deller:
      
       - On parisc we now use the generic clockevent framework for timekeeping
      
       - Although there is no 64-bit glibc/userspace for parisc yet, for
         testing purposes one can run statically linked 64-bit binaries. This
         patchset contains two patches which fix 64-bit userspace which has
         been broken since kernel 4.19
      
       - Fix the userspace stack position and size when the ADDR_NO_RANDOMIZE
         personality is enabled
      
       - On other architectures mmap(MAP_GROWSDOWN | MAP_STACK) creates a
         downward-growing stack. On parisc mmap(MAP_STACK) is now sufficient
         to create an upward-growing stack
      
      * tag 'parisc-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Allow mmap(MAP_STACK) memory to automatically expand upwards
        parisc: Use PRIV_USER instead of hardcoded value
        parisc: Fix itlb miss handler for 64-bit programs
        parisc: Fix 64-bit userspace syscall path
        parisc: Fix stack start for ADDR_NO_RANDOMIZE personality
        parisc: Convert to generic clockevents
        parisc: pdc_stable: Constify struct kobj_type
      54450af6
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 932d2d1f
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
      
       - Remove some unnecesary hold/unhold rsb refcounting in cases where an
         existing refcount is known to exist
      
       - Remove some unnecessary checking for zero nodeids, which should never
         exist, and add some warning if they do
      
       - Make the slow freeing of structs in release_lockspace() async, run
         from a workqueue
      
       - Prior rcu freeing allows some further struct lookups to run without a
         lock
      
       - Use blocking kernel_connect on sockets to avoid EINPROGRESS
      
      * tag 'dlm-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: add missing -ENOMEM if alloc_workqueue() fails
        dlm: do synchronized socket connect call
        dlm: move lkb xarray lookup out of lock
        dlm: move dlm_search_rsb_tree() out of lock
        dlm: use RSB_HASHED to avoid lookup twice
        dlm: async freeing of lockspace resources
        dlm: drop kobject release callback handling
        dlm: warn about invalid nodeid comparsions
        dlm: never return invalid nodeid by dlm_our_nodeid()
        dlm: remove unnecessary refcounts
        dlm: cleanup memory allocation helpers
      932d2d1f
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.12-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 8751b21a
      Linus Torvalds authored
      Pull xfs updates from Chandan Babu:
       "New code:
      
         - Introduce new ioctls to exchange contents of two files.
      
           The first ioctl does the preparation work to exchange the contents
           of two files while the second ioctl performs the actual exchange if
           the target file has not been changed since a given sampling point.
      
        Fixes:
      
         - Fix bugs associated with calculating the maximum range of realtime
           extents to scan for free space.
      
         - Copy keys instead of records when resizing the incore BMBT root
           block.
      
         - Do not report FITRIMming more bytes than possibly exist in the
           filesystem.
      
         - Modify xfs_fs.h to prevent C++ compilation errors.
      
         - Do not over eagerly free post-EOF speculative preallocation.
      
         - Ensure st_blocks never goes to zero during COW writes
      
        Cleanups/refactors:
      
         - Use Xarray to hold per-AG data instead of a Radix tree.
      
         - Cleanups to:
            - realtime bitmap
            - inode allocator
            - quota
            - inode rooted btree code"
      
      * tag 'xfs-6.12-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (61 commits)
        xfs: ensure st_blocks never goes to zero during COW writes
        xfs: use xas_for_each_marked in xfs_reclaim_inodes_count
        xfs: convert perag lookup to xarray
        xfs: simplify tagged perag iteration
        xfs: move the tagged perag lookup helpers to xfs_icache.c
        xfs: use kfree_rcu_mightsleep to free the perag structures
        xfs: use LIST_HEAD() to simplify code
        xfs: Remove duplicate xfs_trans_priv.h header
        xfs: remove unnecessary check
        xfs: Use xfs set and clear mp state helpers
        xfs: reclaim speculative preallocations for append only files
        xfs: simplify extent lookup in xfs_can_free_eofblocks
        xfs: check XFS_EOFBLOCKS_RELEASED earlier in xfs_release_eofblocks
        xfs: only free posteof blocks on first close
        xfs: don't free post-EOF blocks on read close
        xfs: skip all of xfs_file_release when shut down
        xfs: don't bother returning errors from xfs_file_release
        xfs: refactor f_op->release handling
        xfs: remove the i_mode check in xfs_release
        xfs: standardize the btree maxrecs function parameters
        ...
      8751b21a
    • Linus Torvalds's avatar
      Merge tag 'v6.12-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 4e0373f1
      Linus Torvalds authored
      Pull smb client updates from Steve French:
      
       - cleanups (moving duplicated code, removing unused code etc)
      
       - fixes relating to "sfu" mount options (for better handling special
         file types)
      
       - SMB3.1.1 compression fixes/improvements
      
      * tag 'v6.12-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6: (24 commits)
        smb: client: fix compression heuristic functions
        cifs: Update SFU comments about fifos and sockets
        cifs: Add support for creating SFU symlinks
        smb: use LIST_HEAD() to simplify code
        cifs: Recognize SFU socket type
        cifs: Show debug message when SFU Fifo type was detected
        cifs: Put explicit zero byte into SFU block/char types
        cifs: Add support for reading SFU symlink location
        cifs: Fix recognizing SFU symlinks
        smb: client: compress: fix an "illegal accesses" issue
        smb: client: compress: fix a potential issue of freeing an invalid pointer
        smb: client: compress: LZ77 code improvements cleanup
        smb: client: insert compression check/call on write requests
        smb3: mark compression as CONFIG_EXPERIMENTAL and fix missing compression operation
        cifs: Remove obsoleted declaration for cifs_dir_open
        smb: client: Use min() macro
        cifs: convert to use ERR_CAST()
        smb: add comment to STATUS_MCA_OCCURED
        smb: move SMB2 Status code to common header file
        smb: move some duplicate definitions to common/smbacl.h
        ...
      4e0373f1
    • Linus Torvalds's avatar
      Merge tag '6.12-rc-ksmbd-server-fixes-part1' of git://git.samba.org/ksmbd · 39898f09
      Linus Torvalds authored
      Pull smb server updates from Steve French:
       "Four ksmbd server fixes, three for stable:
      
         - Fix an issue where the directory can't be deleted if the share is
           on a file system that does not provide dot and dotdot entries
      
         - Fix file creation failure if the parent name of pathname is case
           sensitive
      
         - Fix write failure with FILE_APPEND_DATA flags
      
         - Add reference count to connection struct to protect UAF of oplocks
           on multichannel"
      
      * tag '6.12-rc-ksmbd-server-fixes-part1' of git://git.samba.org/ksmbd:
        ksmbd: handle caseless file creation
        ksmbd: make __dir_empty() compatible with POSIX
        ksmbd: add refcnt to ksmbd_conn struct
        ksmbd: allow write with FILE_APPEND_DATA
      39898f09
    • Linus Torvalds's avatar
      Merge tag 'jfs-6.12' of github.com:kleikamp/linux-shaggy · cc380444
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "A few fixes for jfs"
      
      * tag 'jfs-6.12' of github.com:kleikamp/linux-shaggy:
        jfs: Fix uninit-value access of new_ea in ea_buffer
        jfs: check if leafidx greater than num leaves per dmap tree
        jfs: Fix uaf in dbFreeBits
        jfs: fix out-of-bounds in dbNextAG() and diAlloc()
        jfs: UBSAN: shift-out-of-bounds in dbFindBits
      cc380444
    • Linus Torvalds's avatar
      Merge tag 'ovl-update-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs · 45d986d1
      Linus Torvalds authored
      Pull overlayfs updates from Amir Goldstein:
      
       - Increase robustness of overlayfs to crashes in the case of underlying
         filesystems that to not guarantee metadata ordering to persistent
         storage (problem was reported with ubifs).
      
       - Deny mount inside container with features that require root
         privileges to work properly, instead of failing operations later.
      
       - Some clarifications to overlayfs documentation.
      
      * tag 'ovl-update-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs:
        ovl: fail if trusted xattrs are needed but caller lacks permission
        overlayfs.rst: update metacopy section in overlayfs documentation
        ovl: fsync after metadata copy-up
        ovl: don't set the superblock's errseq_t manually
      45d986d1
  5. 18 Sep, 2024 1 commit