1. 18 Jul, 2024 26 commits
    • Linus Torvalds's avatar
      Merge tag 'sparc-for-6.11-tag1' of... · 7dd894c1
      Linus Torvalds authored
      Merge tag 'sparc-for-6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/alarsson/linux-sparc
      
      Pull sparc updates from Andreas Larsson:
      
       - Add MODULE_DESCRIPTION for a number of sbus drivers
      
       - Fix linking error for large sparc32 kernels
      
       - Fix incorrect functions signature and prototype warnings for sparc64
      
      * tag 'sparc-for-6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/alarsson/linux-sparc:
        sparc64: Fix prototype warnings in hibernate.c
        sparc64: Fix prototype warning for prom_get_mmu_ihandle
        sparc64: Fix incorrect function signature and add prototype for prom_cif_init
        sparc64: Fix prototype warnings for floppy_64.h
        sparc32: Fix truncated relocation errors when linking large kernels
        sbus: add missing MODULE_DESCRIPTION() macros
      7dd894c1
    • Linus Torvalds's avatar
      Merge tag 's390-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 1c7d0c3a
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Remove restrictions on PAI NNPA and crypto counters, enabling
         concurrent per-task and system-wide sampling and counting events
      
       - Switch to GENERIC_CPU_DEVICES by setting up the CPU present mask in
         the architecture code and letting the generic code handle CPU
         bring-up
      
       - Add support for the diag204 busy indication facility to prevent
         undesirable blocking during hypervisor logical CPU utilization
         queries. Implement results caching
      
       - Improve the handling of Store Data SCLP events by suppressing
         unnecessary warning, preventing buffer release in I/O during
         failures, and adding timeout handling for Store Data requests to
         address potential firmware issues
      
       - Provide optimized __arch_hweight*() implementations
      
       - Remove the unnecessary CPU KOBJ_CHANGE uevents generated during
         topology updates, as they are unused and also not present on other
         architectures
      
       - Cleanup atomic_ops, optimize __atomic_set() for small values and
         __atomic_cmpxchg_bool() for compilers supporting flag output
         constraint
      
       - Couple of cleanups for KVM:
           - Move and improve KVM struct definitions for DAT tables from
             gaccess.c to a new header
           - Pass the asce as parameter to sie64a()
      
       - Make the crdte() and cspg() page table handling wrappers return a
         boolean to indicate success, like the other existing "compare and
         swap" wrappers
      
       - Add documentation for HWCAP flags
      
       - Switch to obtaining total RAM pages from memblock instead of
         totalram_pages() during mm init, to ensure correct calculation of
         zero page size, when defer_init is enabled
      
       - Refactor lowcore access and switch to using the get_lowcore()
         function instead of the S390_lowcore macro
      
       - Cleanups for PG_arch_1 and folio handling in UV and hugetlb code
      
       - Add missing MODULE_DESCRIPTION() macros
      
       - Fix VM_FAULT_HWPOISON handling in do_exception()
      
      * tag 's390-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (54 commits)
        s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()
        s390/kvm: Move bitfields for dat tables
        s390/entry: Pass the asce as parameter to sie64a()
        s390/sthyi: Use cached data when diag is busy
        s390/sthyi: Move diag operations
        s390/hypfs_diag: Diag204 busy loop
        s390/diag: Add busy-indication-facility requirements
        s390/diag: Diag204 add busy return errno
        s390/diag: Return errno's from diag204
        s390/sclp: Diag204 busy indication facility detection
        s390/atomic_ops: Make use of flag output constraint
        s390/atomic_ops: Improve __atomic_set() for small values
        s390/atomic_ops: Use symbolic names
        s390/smp: Switch to GENERIC_CPU_DEVICES
        s390/hwcaps: Add documentation for HWCAP flags
        s390/pgtable: Make crdte() and cspg() return a value
        s390/topology: Remove CPU KOBJ_CHANGE uevents
        s390/sclp: Add timeout to Store Data requests
        s390/sclp: Prevent release of buffer in I/O
        s390/sclp: Suppress unnecessary Store Data warning
        ...
      1c7d0c3a
    • Linus Torvalds's avatar
      Merge tag 'x86-percpu-2024-07-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dde1a0e1
      Linus Torvalds authored
      Pull x86 percpu updates from Ingo Molnar:
      
       - Enable the named address spaces based percpu accessors optimization
         on all GCC versions that contain this feature, detected through a
         build-time testcase.
      
         This effectively enables the feature on GCC 6, GCC 7 and GCC 8
         versions.
      
       - Fix operand constraint modifier in __raw_cpu_write()
      
       - Reorganize the per-CPU headers for better readability
      
       - Misc cleanups and fixes
      
      * tag 'x86-percpu-2024-07-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/percpu: Enable named address spaces for all capable GCC versions
        x86/percpu: Clean up <asm/percpu.h> vertical alignment details
        x86/percpu: Clean up <asm/percpu.h> a bit
        x86/percpu: Move some percpu accessors around to reduce ifdeffery
        x86/percpu: Rename percpu_stable_op() to __raw_cpu_read_stable()
        x86/percpu: Fix operand constraint modifier in __raw_cpu_write()
        x86/percpu: Introduce the __raw_cpu_read_const() macro
        x86/percpu: Unify percpu read-write accessors
        x86/percpu: Move some percpu macros around for readability
        x86/percpu: Introduce the pcpu_binary_op() macro
      dde1a0e1
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 76d9b92e
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
       "The most prominent change this time is the kmem_buckets based
        hardening of kmalloc() allocations from Kees Cook.
      
        We have also extended the kmalloc() alignment guarantees for
        non-power-of-two sizes in a way that benefits rust.
      
        The rest are various cleanups and non-critical fixups.
      
         - Dedicated bucket allocator (Kees Cook)
      
           This series [1] enhances the probabilistic defense against heap
           spraying/grooming of CONFIG_RANDOM_KMALLOC_CACHES from last year.
      
           kmalloc() users that are known to be useful for exploits can get
           completely separate set of kmalloc caches that can't be shared with
           other users. The first converted users are alloc_msg() and
           memdup_user().
      
           The hardening is enabled by CONFIG_SLAB_BUCKETS.
      
         - Extended kmalloc() alignment guarantees (Vlastimil Babka)
      
           For years now we have guaranteed natural alignment for power-of-two
           allocations, but nothing was defined for other sizes (in practice,
           we have two such buckets, kmalloc-96 and kmalloc-192).
      
           To avoid unnecessary padding in the rust layer due to its alignment
           rules, extend the guarantee so that the alignment is at least the
           largest power-of-two divisor of the requested size.
      
           This fits what rust needs, is a superset of the existing
           power-of-two guarantee, and does not in practice change the layout
           (and thus does not add overhead due to padding) of the kmalloc-96
           and kmalloc-192 caches, unless slab debugging is enabled for them.
      
         - Cleanups and non-critical fixups (Chengming Zhou, Suren
           Baghdasaryan, Matthew Willcox, Alex Shi, and Vlastimil Babka)
      
           Various tweaks related to the new alloc profiling code, folio
           conversion, debugging and more leftovers after SLAB"
      
      Link: https://lore.kernel.org/all/20240701190152.it.631-kees@kernel.org/ [1]
      
      * tag 'slab-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/memcg: alignment memcg_data define condition
        mm, slab: move prepare_slab_obj_exts_hook under CONFIG_MEM_ALLOC_PROFILING
        mm, slab: move allocation tagging code in the alloc path into a hook
        mm/util: Use dedicated slab buckets for memdup_user()
        ipc, msg: Use dedicated slab buckets for alloc_msg()
        mm/slab: Introduce kmem_buckets_create() and family
        mm/slab: Introduce kvmalloc_buckets_node() that can take kmem_buckets argument
        mm/slab: Plumb kmem_buckets into __do_kmalloc_node()
        mm/slab: Introduce kmem_buckets typedef
        slab, rust: extend kmalloc() alignment guarantees to remove Rust padding
        slab: delete useless RED_INACTIVE and RED_ACTIVE
        slab: don't put freepointer outside of object if only orig_size
        slab: make check_object() more consistent
        mm: Reduce the number of slab->folio casts
        mm, slab: don't wrap internal functions with alloc_hooks()
      76d9b92e
    • Linus Torvalds's avatar
      Merge tag 'memblock-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · b2fc97c1
      Linus Torvalds authored
      Pull memblock updates from Mike Rapoport:
      
       - 'reserve_mem' command line parameter to allow creation of named
         memory reservation at boot time.
      
         The driving use-case is to improve the ability of pstore to retain
         ramoops data across reboots.
      
       - cleanups and small improvements in memblock and mm_init
      
       - new tests cases in memblock test suite
      
      * tag 'memblock-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock tests: fix implicit declaration of function 'numa_valid_node'
        memblock: Move late alloc warning down to phys alloc
        pstore/ramoops: Add ramoops.mem_name= command line option
        mm/memblock: Add "reserve_mem" to reserved named memory at boot up
        mm/mm_init.c: don't initialize page->lru again
        mm/mm_init.c: not always search next deferred_init_pfn from very beginning
        mm/mm_init.c: use deferred_init_mem_pfn_range_in_zone() to decide loop condition
        mm/mm_init.c: get the highest zone directly
        mm/mm_init.c: move nr_initialised reset down a bit
        mm/memblock: fix a typo in description of for_each_mem_region()
        mm/mm_init.c: use memblock_region_memory_base_pfn() to get startpfn
        mm/memblock: use PAGE_ALIGN_DOWN to get pgend in free_memmap
        mm/memblock: return true directly on finding overlap region
        memblock tests: add memblock_overlaps_region_checks
        mm/memblock: fix comment for memblock_isolate_range()
        memblock tests: add memblock_reserve_many_may_conflict_check()
        memblock tests: add memblock_reserve_all_locations_check()
        mm/memblock: remove empty dummy entry
      b2fc97c1
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.11-2024-07-16' of... · 68b59730
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.11-2024-07-16' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Namhyung Kim:
       "Build:
      
         - Build each directory as a library so that depedency check for the
           python extension module can be automatic
      
         - Use pkg-config to check libtraceevent and libtracefs
      
        perf sched:
      
         - Add --task-name and --fuzzy-name options for `perf sched map`
      
           It focuses on selected tasks only by removing unrelated tasks in
           the output. It matches the task comm with the given string and the
           --fuzzy-name option allows the partial matching:
      
             $ sudo perf sched record -a sleep 1
      
             $ sudo perf sched map --task-name kworker --fuzzy-name
                .   .   .   .   -  *A0  .   .    481065.315131 secs A0 => kworker/5:2-i91:438521
                .   .   .   .   -  *-   .   .    481065.315160 secs
               *B0  .   .   .   -   .   .   .    481065.316435 secs B0 => kworker/0:0-i91:437860
               *-   .   .   .   .   .   .   .    481065.316441 secs
                .   .   .   .   .  *A0  .   .    481065.318703 secs
                .   .   .   .   .  *-   .   .    481065.318717 secs
                .   .  *C0  .   .   .   .   .    481065.320544 secs C0 => kworker/u16:30-:430186
                .   .  *-   .   .   .   .   .    481065.320555 secs
                .   .  *D0  .   .   .   .   .    481065.328524 secs D0 => kworker/2:0-kdm:429654
               *B0  .   D0  .   -   .   .   .    481065.328527 secs
               *-   .   D0  .   -   .   .   .    481065.328535 secs
                .   .  *-   .   .   .   .   .    481065.328535 secs
      
         - Fix -r/--repeat option of perf sched replay
      
           The documentation said -1 will work as infinity but it didn't
           accept the value. Update the code and document to use 0 instead
      
         - Fix perf sched timehist to account the delay time for preempted
           tasks
      
        Perf event filtering:
      
         - perf top gained filtering support on regular events using BPF like
           perf record. Previously it was able to use it for tracepoints only
      
         - The BPF filter now supports filtering by UID/GID. This should be
           preferred than -u <UID> option as it's racy to scan /proc to check
           tasks for the user and fails to open an event for the task if it's
           already gone
      
             $ sudo perf top -e cycles --filter "uid == $(id -u)"
      
        perf report:
      
         - Skip dummy events in the group output by default. The --skip-empty
           option controls display of empty events without samples. But perf
           report can force display all events in a group
      
           In this case, auto-added a dummy event (for a system-wide record)
           ends up in the output. Now it can skip those empty events even in
           the group display mode
      
           To preserve the old behavior, run this:
      
             $ perf report --group --no-skip-empty
      
        perf stat:
      
         - Choose the most disaggregate option when multiple aggregation
           options are given. It used to pick the last option in the command
           line but it can be confusing and not consistent. Now it'll choose
           the smallest unit
      
           For example, it'd aggregate the result per-core when the user gave
           both --per-socket and --per-core options at the same time
      
        Internals:
      
         - Fix `perf bench` when some CPUs are offline
      
         - Fix handling of JIT symbol mappings to accept "/tmp/perf-${PID}.map
           patterns only so that it can not be confused by other /tmp/perf-*
           files
      
         - Many improvements and fixes for `perf test`
      
        Others:
      
         - Support some new instructions for Intel-PT
      
         - Fix syscall ID mapping in perf trace
      
         - Document AMD IBS PMU usages
      
         - Change `perf lock info` to show map and thread info by default
      
        Vendor JSON events:
      
         - Update Intel events and metrics
      
         - Add i.MX9[35] DDR metrics"
      
      * tag 'perf-tools-for-v6.11-2024-07-16' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (125 commits)
        perf trace: Fix iteration of syscall ids in syscalltbl->entries
        perf dso: Fix address sanitizer build
        perf mem: Warn if memory events are not supported on all CPUs
        perf arm-spe: Support multiple Arm SPE PMUs
        perf build x86: Fix SC2034 error in syscalltbl.sh
        perf record: Fix memset out-of-range error
        perf sched map: Add --fuzzy-name option for fuzzy matching in task names
        perf sched map: Add support for multiple task names using CSV
        perf sched map: Add task-name option to filter the output map
        perf build: Conditionally add feature check flags for libtrace{event,fs}
        perf install: Don't propagate subdir to Documentation submake
        perf vendor events arm64:: Add i.MX95 DDR Performance Monitor metrics
        perf vendor events arm64:: Add i.MX93 DDR Performance Monitor metrics
        perf dsos: When adding a dso into sorted dsos maintain the sort order
        perf comm str: Avoid sort during insert
        perf report: Calling available function for stats printing
        perf intel-pt: Fix exclude_guest setting
        perf intel-pt: Fix aux_watermark calculation for 64-bit size
        perf sched replay: Fix -r/--repeat command line option for infinity
        perf: pmus: Remove unneeded semicolon
        ...
      68b59730
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · f669aac3
      Linus Torvalds authored
      Pull tracing CREDITS file update from Steven Rostedt:
       "Update of MAINTAINERS and CREDITS file
      
         - Update Daniel Bristot de Oliveira's entry in MAINTAINERS with
           respect to his tracing code.
      
         - Add more credits to him in CREDITS file and move his entry to be
           alphabetical"
      
      * tag 'trace-v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: Update MAINTAINERS file
      f669aac3
    • Linus Torvalds's avatar
      Merge tag 'trace-tools-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 1777e471
      Linus Torvalds authored
      Pull tracing tools updates from Steven Rostedt:
       "Trivial updates for 6.11:
      
         - Use pretty formatting only on interactive tty in rtla/osnoise
      
         - Better reporting when histogram is empty in rtla/osnoise
      
         - Use the correct library name for "libtracefs" in feature detection"
      
      * tag 'trace-tools-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tools: build: use correct lib name for libtracefs feature detection
        rtla/osnoise: Better report when histogram is empty
        rtla/osnoise: Use pretty formatting only on interactive tty
      1777e471
    • Linus Torvalds's avatar
      Merge tag 'ftrace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 70045bfc
      Linus Torvalds authored
      Pull ftrace updates from Steven Rostedt:
       "Rewrite of function graph tracer to allow multiple users
      
        Up until now, the function graph tracer could only have a single user
        attached to it. If another user tried to attach to the function graph
        tracer while one was already attached, it would fail. Allowing
        function graph tracer to have more than one user has been asked for
        since 2009, but it required a rewrite to the logic to pull it off so
        it never happened. Until now!
      
        There's three systems that trace the return of a function. That is
        kretprobes, function graph tracer, and BPF. kretprobes and function
        graph tracing both do it similarly. The difference is that kretprobes
        uses a shadow stack per callback and function graph tracer creates a
        shadow stack for all tasks. The function graph tracer method makes it
        possible to trace the return of all functions. As kretprobes now needs
        that feature too, allowing it to use function graph tracer was needed.
        BPF also wants to trace the return of many probes and its method
        doesn't scale either. Having it use function graph tracer would
        improve that.
      
        By allowing function graph tracer to have multiple users allows both
        kretprobes and BPF to use function graph tracer in these cases. This
        will allow kretprobes code to be removed in the future as it's version
        will no longer be needed.
      
        Note, function graph tracer is only limited to 16 simultaneous users,
        due to shadow stack size and allocated slots"
      
      * tag 'ftrace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (49 commits)
        fgraph: Use str_plural() in test_graph_storage_single()
        function_graph: Add READ_ONCE() when accessing fgraph_array[]
        ftrace: Add missing kerneldoc parameters to unregister_ftrace_direct()
        function_graph: Everyone uses HAVE_FUNCTION_GRAPH_RET_ADDR_PTR, remove it
        function_graph: Fix up ftrace_graph_ret_addr()
        function_graph: Make fgraph_update_pid_func() a stub for !DYNAMIC_FTRACE
        function_graph: Rename BYTE_NUMBER to CHAR_NUMBER in selftests
        fgraph: Remove some unused functions
        ftrace: Hide one more entry in stack trace when ftrace_pid is enabled
        function_graph: Do not update pid func if CONFIG_DYNAMIC_FTRACE not enabled
        function_graph: Make fgraph_do_direct static key static
        ftrace: Fix prototypes for ftrace_startup/shutdown_subops()
        ftrace: Assign RCU list variable with rcu_assign_ptr()
        ftrace: Assign ftrace_list_end to ftrace_ops_list type cast to RCU
        ftrace: Declare function_trace_op in header to quiet sparse warning
        ftrace: Add comments to ftrace_hash_move() and friends
        ftrace: Convert "inc" parameter to bool in ftrace_hash_rec_update_modify()
        ftrace: Add comments to ftrace_hash_rec_disable/enable()
        ftrace: Remove "filter_hash" parameter from __ftrace_hash_rec_update()
        ftrace: Rename dup_hash() and comment it
        ...
      70045bfc
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 2fd4130e
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "Trivial updates for 6.11:
      
         - Set rtla/osnoise default threshold to 1us from 5us
      
           The 5us default was missing noise that people cared about. Changing
           it to 1us makes it work as expected.
      
         - Restructure how sched_switch prev_comm and next_comm was being saved
      
           The prev_comm was being saved along with the other next fields, and
           the next_comm was being saved along with the other prev fields.
           This is just a cosmetic change.
      
         - Have the allocation of pid_list use GFP_NOWAIT instead of GFP_KERNEL
      
           The allocation can happen in irq_work context, but luckily, the
           size was by default so large, it was never triggered. But in case
           it ever is, use the NOWAIT allocation in the interrupt context.
      
         - Fix some kernel doc errors"
      
      * tag 'trace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        trace/pid_list: Change gfp flags in pid_list_fill_irq()
        tracing/sched: sched_switch: place prev_comm and next_comm in right order
        rtla/osnoise: set the default threshold to 1us
        tracing: Fix trace_pid_list_free() kernel-doc
      2fd4130e
    • Linus Torvalds's avatar
      Merge tag 'bootconfig-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · db2451e7
      Linus Torvalds authored
      Pull bootconfig update from Masami Hiramatsu:
      
       - Remove duplicate included header file linux/bootconfig.h from
         lib/bootconfig.c. This is a cleanup, no behavior change.
      
      * tag 'bootconfig-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        bootconfig: Remove duplicate included header file linux/bootconfig.h
      db2451e7
    • Linus Torvalds's avatar
      Merge tag 'probes-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 91bd008d
      Linus Torvalds authored
      Pull probes updates from Masami Hiramatsu:
       "Uprobes:
      
         - x86/shstk: Make return uprobe work with shadow stack
      
         - Add uretprobe syscall which speeds up the uretprobe 10-30% faster.
           This syscall is automatically used from user-space trampolines
           which are generated by the uretprobe. If this syscall is used by
           normal user program, it will cause SIGILL. Note that this is
           currently only implemented on x86_64.
      
           (This also has two fixes for adjusting the syscall number to avoid
           conflict with new *attrat syscalls.)
      
         - uprobes/perf: fix user stack traces in the presence of pending
           uretprobe. This corrects the uretprobe's trampoline address in the
           stacktrace with correct return address
      
         - selftests/x86: Add a return uprobe with shadow stack test
      
         - selftests/bpf: Add uretprobe syscall related tests.
            - test case for register integrity check
            - test case with register changing case
            - test case for uretprobe syscall without uprobes (expected to fail)
            - test case for uretprobe with shadow stack
      
         - selftests/bpf: add test validating uprobe/uretprobe stack traces
      
         - MAINTAINERS: Add uprobes entry. This does not specify the tree but
           to clarify who maintains and reviews the uprobes
      
        Kprobes:
      
         - tracing/kprobes: Test case cleanups.
      
           Replace redundant WARN_ON_ONCE() + pr_warn() with WARN_ONCE() and
           remove unnecessary code from selftest
      
         - tracing/kprobes: Add symbol counting check when module loads.
      
           This checks the uniqueness of the probed symbol on modules. The
           same check has already done for kernel symbols
      
           (This also has a fix for build error with CONFIG_MODULES=n)
      
        Cleanup:
      
         - Add MODULE_DESCRIPTION() macros for fprobe and kprobe examples"
      
      * tag 'probes-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        MAINTAINERS: Add uprobes entry
        selftests/bpf: Change uretprobe syscall number in uprobe_syscall test
        uprobe: Change uretprobe syscall scope and number
        tracing/kprobes: Fix build error when find_module() is not available
        tracing/kprobes: Add symbol counting check when module loads
        selftests/bpf: add test validating uprobe/uretprobe stack traces
        perf,uprobes: fix user stack traces in the presence of pending uretprobes
        tracing/kprobe: Remove cleanup code unrelated to selftest
        tracing/kprobe: Integrate test warnings into WARN_ONCE
        selftests/bpf: Add uretprobe shadow stack test
        selftests/bpf: Add uretprobe syscall call from user space test
        selftests/bpf: Add uretprobe syscall test for regs changes
        selftests/bpf: Add uretprobe syscall test for regs integrity
        selftests/x86: Add return uprobe shadow stack test
        uprobe: Add uretprobe syscall to speed up return probe
        uprobe: Wire up uretprobe system call
        x86/shstk: Make return uprobe work with shadow stack
        samples: kprobes: add missing MODULE_DESCRIPTION() macros
        fprobe: add missing MODULE_DESCRIPTION() macro
      91bd008d
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · cb273eb7
      Linus Torvalds authored
      Pull fbdev updates from Helge Deller:
      
       - Detect VGA compatibility from VESA attributes (Thomas Zimmermann)
      
       - Make I2C terminology more inclusive in smscufx and viafb (Easwar
         Hariharan)
      
       - Add lots of missing MODULE_DESCRIPTION() macros (Jeff Johnson)
      
       - Logo code cleanups (Geert Uytterhoeven)
      
       - Minor fixes by Chen Ni, Kuninori Morimoto, Uwe Kleine-König and
         Christophe Jaillett
      
      * tag 'fbdev-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: (21 commits)
        fbdev: viafb: Make I2C terminology more inclusive
        fbdev: smscufx: Make I2C terminology more inclusive
        fbdev: omap2: Return clk_prepare_enable to transfer the error
        fbdev: mmp: Constify struct mmp_overlay_ops
        fbdev: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        video: agp: add remaining missing MODULE_DESCRIPTION() macros
        video: console: add missing MODULE_DESCRIPTION() macros
        fbdev: amifb: add missing MODULE_DESCRIPTION() macro
        fbdev: c2p_planar: add missing MODULE_DESCRIPTION() macro
        fbdev: vesafb: Detect VGA compatibility from screen info's VESA attributes
        fbdev: omapfb: use of_graph_get_remote_port()
        fbdev: omapdss: use for_each_endpoint_of_node()
        fbdev: offb: add missing MODULE_DESCRIPTION() macro
        fbdev: vfb: add missing MODULE_DESCRIPTION() macro
        fbdev: macmodes: add missing MODULE_DESCRIPTION() macro
        fbdev: goldfishfb: add missing MODULE_DESCRIPTION() macro
        fbdev: kyro: add missing MODULE_DESCRIPTION() macro
        fbdev: viafb: add missing MODULE_DESCRIPTION() macro
        fbdev: matroxfb: add missing MODULE_DESCRIPTION() macros
        video/logo: Remove linux_serial_image comments
        ...
      cb273eb7
    • Manivannan Sadhasivam's avatar
      PCI: Check for the existence of 'dev.of_node' before calling of_platform_populate() · 24777bac
      Manivannan Sadhasivam authored
      Commit 50b040ef ("PCI/pwrctl: only call of_platform_populate() if
      CONFIG_OF is enabled") added the CONFIG_OF guard for the
      of_platform_populate() API.  But it missed the fact that the CONFIG_OF
      platforms can also run on ACPI without devicetree (so dev.of_node will
      be NULL).  In those cases, of_platform_populate() will fail with below
      error messages as seen on the Ampere Altra box:
      
        pci 000c:00:01.0: failed to populate child OF nodes (-22)
        pci 000c:00:02.0: failed to populate child OF nodes (-22)
      
      Fix this by checking for the existence of 'dev.of_node' before calling
      the of_platform_populate() API.  This also warrants the removal of
      CONFIG_OF check, since dev_of_node() helper will return NULL if
      CONFIG_OF is not enabled.
      
      While at it, let's also use dev_of_node() to pass device OF node pointer
      to of_platform_populate().
      
      Fixes: 50b040ef ("PCI/pwrctl: only call of_platform_populate() if CONFIG_OF is enabled")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Closes: https://lore.kernel.org/linux-arm-msm/CAHk-=wjcO_9dkNf-bNda6bzykb5ZXWtAYA97p7oDsXPHmMRi6g@mail.gmail.comReviewed-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      Signed-off-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24777bac
    • Mark Rutland's avatar
      init/Kconfig: remove CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND · f2f6a8e8
      Mark Rutland authored
      Several versions of GCC mis-compile asm goto with outputs. We try to
      workaround this, but our workaround is demonstrably incomplete and
      liable to result in subtle bugs, especially on arm64 where get_user()
      has recently been moved over to using asm goto with outputs.
      
      From discussion(s) with Linus at:
      
        https://lore.kernel.org/linux-arm-kernel/Zpfv2tnlQ-gOLGac@J2N7QTR9R3.cambridge.arm.com/
        https://lore.kernel.org/linux-arm-kernel/ZpfxLrJAOF2YNqCk@J2N7QTR9R3.cambridge.arm.com/
      
      ... it sounds like the best thing to do for now is to remove the
      workaround and make CC_HAS_ASM_GOTO_OUTPUT depend on working compiler
      versions.
      
      The issue was originally reported to GCC by Sean Christopherson:
      
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
      
      ... and Jakub Jelinek fixed this for GCC 14, with the fix backported to
      13.3.0, 12.4.0, and 11.5.0.
      
      In the kernel, we tried to workaround broken compilers in commits:
      
        4356e9f8 ("work around gcc bugs with 'asm goto' with outputs")
        68fb3ca0 ("update workarounds for gcc "asm goto" issue")
      
      ... but the workaround of adding an empty asm("") after the asm volatile
      goto(...) demonstrably does not always avoid the problem, as can be seen
      in the following test case:
      
      | #define asm_goto_output(x...) \
      |         do { asm volatile goto(x); asm (""); } while (0)
      |
      | #define __good_or_bad(__val, __key)                                     \
      | do {                                                                    \
      |         __label__ __failed;                                             \
      |         unsigned long __tmp;                                            \
      |         asm_goto_output(                                                \
      |         "       cbnz    %[key], %l[__failed]\n"                         \
      |         "       mov     %[val], #0x900d\n"                              \
      |         : [val] "=r" (__tmp)                                            \
      |         : [key] "r" (__key)                                             \
      |         :                                                               \
      |         : __failed);                                                    \
      |         (__val) = __tmp;                                                \
      |         break;                                                          \
      | __failed:                                                               \
      |         (__val) = 0xbad;                                                \
      | } while (0)
      |
      | unsigned long get_val(unsigned long key);
      | unsigned long get_val(unsigned long key)
      | {
      |         unsigned long val = 0xbad;
      |
      |         __good_or_bad(val, key);
      |
      |         return val;
      | }
      
      GCC 13.2.0 (at -O2) compiles this to:
      
      | 	cbnz    x0, .Lfailed
      | 	mov     x0, #0x900d
      | .Lfailed:
      | 	ret
      
      GCC 14.1.0 (at -O2) compiles this to:
      
      | 	cbnz    x0, .Lfailed
      | 	mov     x0, #0x900d
      | 	ret
      | .Lfailed:
      | 	mov     x0, #0xbad
      | 	ret
      
      Note that GCC 13.2.0 erroneously omits the assignment to 'val' in the
      error path (even though this does not depend on an output of the asm
      goto). GCC 14.1.0 correctly retains the assignment.
      
      This problem can be seen within the kernel with the following test case:
      
      | #include <linux/uaccess.h>
      | #include <linux/types.h>
      |
      | noinline unsigned long test_unsafe_get_user(unsigned long __user *ptr);
      | noinline unsigned long test_unsafe_get_user(unsigned long __user *ptr)
      | {
      |         unsigned long val;
      |
      |         unsafe_get_user(val, ptr, Efault);
      |         return val;
      |
      | Efault:
      |         val = 0x900d;
      |         return val;
      | }
      
      GCC 13.2.0 (arm64 defconfig) compiles this to:
      
      |         and     x0, x0, #0xff7fffffffffffff
      |         ldtr    x0, [x0]
      | .Lextable_fixup:
      |         ret
      
      GCC 13.2.0 (x86_64 defconfig + MITIGATION_RETPOLINE=n) compiles this to:
      
      |         endbr64
      |         mov    (%rdi),%rax
      | .Lextable_fixup:
      |         ret
      
      ... omitting the assignment to 'val' in the error path, and leaving
      garbage in the result register returned by the function (which happens
      to contain the faulting address in the generated code).
      
      GCC 14.1.0 (arm64 defconfig) compiles this to:
      
      |         and     x0, x0, #0xff7fffffffffffff
      |         ldtr    x0, [x0]
      |         ret
      | .Lextable_fixup:
      |         mov     x0, #0x900d                     // #36877
      |         ret
      
      GCC 14.1.0 (x86_64 defconfig + MITIGATION_RETPOLINE=n) compiles this to:
      
      |         endbr64
      |         mov    (%rdi),%rax
      |         ret
      | .Lextable_fixup:
      |         mov    $0x900d,%eax
      |         ret
      
      ... retaining the expected assignment to 'val' in the error path.
      
      We don't have a complete and reasonable workaround. While placing empty
      asm("") blocks after each goto label *might* be sufficient, we don't
      know for certain, this is tedious and error-prone, and there doesn't
      seem to be a neat way to wrap this up (which is especially painful for
      cases with multiple goto labels).
      
      Avoid this issue by disabling CONFIG_CC_HAS_ASM_GOTO_OUTPUT for
      known-broken compiler versions and removing the workaround (along with
      the CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND config option).
      
      For the moment I've left the default implementation of asm_goto_output()
      unchanged. This should now be redundant since any compiler with the fix
      for the clobbering issue whould also have a fix for the (earlier)
      volatile issue, but it's far less churny to leave it around, which makes
      it easier to backport this patch if necessary.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Alex Coplan <alex.coplan@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Jakub Jelinek <jakub@gcc.gnu.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sean Christopherson <seanjc@google.com>
      Cc: Szabolcs Nagy <szabolcs.nagy@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f2f6a8e8
    • Masahiro Yamada's avatar
      kbuild: fix rebuild of generic syscall headers · 49208b67
      Masahiro Yamada authored
      Commit fbb5c060 ("kbuild: add syscall table generation to
      scripts/Makefile.asm-headers") started to generate syscall headers
      for architectures using generic syscalls.
      
      However, these headers are always rebuilt using GNU Make 4.4.1 or newer.
      
      When using GNU Make 4.4 or older, these headers are not rebuilt when the
      command to generate them is changed, despite the use of the if_changed
      macro.
      
      scripts/Makefile.asm-headers now uses FORCE, but it is not marked as
      .PHONY. To handle the command line change correctly, .*.cmd files must
      be included.
      
      Fixes: fbb5c060 ("kbuild: add syscall table generation to scripts/Makefile.asm-headers")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Closes: https://lore.kernel.org/lkml/CAHk-=wibB7SvXnUftBgAt+4-3vEKRpvEgBeDEH=i=j2GvDitoA@mail.gmail.com/Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Tested-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      49208b67
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2024-07-18' of https://gitlab.freedesktop.org/drm/kernel · b3ce7a30
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "There's a lot of stuff in here, amd, i915 and xe have new platform
        work, lots of core rework around EDID handling, some new COMPILE_TEST
        options, maintainer changes and a lots of other stuff. Summary:
      
        core:
         - deprecate DRM data and return 0 date
         - connector: Create a set of helpers to help with HDMI support
         - Remove driver owner assignments
         - Allow more drivers to compile with COMPILE_TEST
         - Conversions to drm_edid
         - Sprinkle MODULE_DESCRIPTIONS everywhere they are missing
         - Remove drm_mm_replace_node
         - print: Add a drm prefix to warn level messages too, remove
                  ___drm_dbg, consolidate prefix handling
         - New monochrome TV mode variant
      
        ttm:
         - improve number of page faults on some platforms
         - fix test builds under PREEMPT_RT
         - more test coverage
      
        ci:
         - Require a more recent version of mesa
         - improve farm setup and test generation
      
        dma-buf:
         - warn if reserving 0 fence slots
         - internal API heap enhancements
      
        fbdev:
         - Create memory manager optimized fbdev emulation
      
        panic:
         - Allow to select fonts
         - improve drm_fb_dma_get_scanout_buffer
         - Allow to dump kmsg to the screen
      
        bridge:
         - Remove redundant checks on bridge->encoder
         - Remove drm_bridge_chain_mode_fixup
         - bridge-connector: Plumb in the new HDMI helper
         - analogix_dp: Various improvements, handle AUX transfers timeout
         - samsung-dsim: Fix timings calculation
         - tc358767: Plenty of small fixes, fix no connector attach, fix
                     clocks
         - sii902x: state validation improvements
      
        panels:
         - Switch panels from register table initialization to proper code
         - Now that the panel code tracks the panel state, remove every ad-hoc
           implementation in the panel drivers
         - More cleanup of prepare / enable state tracking in drivers
         - edp: Drop legacy panel compatibles
         - simple-bridge: Switch to devm_drm_bridge_add
         - New panels: Lincoln Tech Sol LCD185-101CT, Microtips Technology
                       13-101HIEBCAF0-C, Microtips Technology MF-103HIEB0GA0,
                       BOE nv110wum-l60, IVO t109nw41, WL-355608-A8, PrimeView
                       PM070WL4, Lincoln Technologies LCD197, Ortustech
                       COM35H3P70ULC, AUO G104STN01, K&d kd101ne3-40ti
      
        amdgpu:
         - DCN 4.0.x support
         - GC 12.0 support
         - GMC 12.0 support
         - SDMA 7.0 support
         - MES12 support
         - MMHUB 4.1 support
         - GFX12 modifier and DCC support
         - lots of IP fixes/updates
      
        amdkfd:
         - Contiguous VRAM allocations
         - GC 12.0 support
         - SDMA 7.0 support
         - SR-IOV fixes
         - KFD GFX ALU exceptions
      
        i915:
         - Battlemage Xe2 HPD display enablement
         - Panel Replay enabling
         - DP AUX-less ALPM/LOBF
         - Enable link training failure fallback for DP MST links
         - CMRR (Content Match Refresh Rate) enabling
         - Increase ADL-S/ADL-P/DG2+ max TMDS bitrate to 6 Gbps
         - Enable eDP AUX based HDR backlight
         - Support replaying GPU hangs with captured context image
         - Automate CCS Mode setting during engine resets
         - lots of refactoring
         - Support replaying GPU hangs with captured context image
         - Increase FLR timeout from 3s to 9s
         - Enable w/a 16021333562 for DG2, MTL and ARL [guc]
      
        xe:
         - update MAINATINERS
         - New uapi adding OA functionality to Xe
         - expose l3 bank mask
         - fix display detect on ADL-N
         - runtime PM Fixes
         - Fix silent backmerge issues
         - More prep for SR-IOV
         - HWmon additions
         - per client usage info
         - Rework GPU page fault handling
         - Drop EXEC_QUEUE_FLAG_BANNED
         - Add BMG PCI IDs
         - Scheduler fixes and improvements
         - Rename xe_exec_queue::compute to xe_exec_queue::lr
         - Use ttm_uncached for BO with NEEDS_UC flag
         - Rename xe perf layer as xe observation layer
         - lots of refactoring
      
        radeon:
         - Backlight workaround for iMac
         - Silence UBSAN flex array warnings
      
        msm:
         - Validate registers XML description against schema in CI
         - core/dpu: SM7150 support
         - mdp5: Add support for MSM8937
         - gpu: Add param for userspace to know if raytracing is supported
         - gpu: X185 support (aka gpu in X1 laptop chips)
         - gpu: a505 support
      
        ivpu:
         - hardware scheduler support
         - profiling support
         - improvements to the platform support layer
         - firmware handling improvements
         - clocks/power mgmt improvements
         - scheduler/logging improvements
      
        habanalabs:
         - Gradual sleep in polling memory macro
         - Reduce Gaudi2 MSI-X interrupt count to 128
         - Add Gaudi2-D revision support
         - Add timestamp to CPLD info
         - Gaudi2: Assume hard-reset by firmware upon MC SEI severe error
         - Align Gaudi2 interrupt names
         - Check for errors after preboot is ready
         - Change habanalabs maintainer and git repo path
      
        mgag200:
         - refactoring and improvements
         - Add BMC output
         - enable polling
      
        nouveau:
         - add registry command line
      
        v3d:
         - perf counters improvements
      
        zynqmp:
         - irq and debugfs improvements
      
        atmel-hlcdc:
         - Support XLCDC in sam9x7
      
        mipi-dbi:
         - Remove mipi_dbi_machine_little_endian
         - make SPI bits per word configurable
         - support RGB888
         - allow pixel formats to be specified in the DT
      
        sun4i:
         - Rework the blender setup for DE2
      
        panfrost:
         - Enable MT8188 support
      
        vc4:
         - Monochrome TV support
      
        exynos:
         - fix fallback mode regression
         - fix memory leak
         - Use drm_edid_duplicate() instead of kmemdup()
      
        etnaviv:
         - fix i.MX8MP NPU clock gating
         - workaround FE register cdc issues on some cores
         - fix DMA sync handling for cached buffers
         - fix job timeout handling
         - keep TS enabled on MMUv2 cores for improved performance
      
        mediatek:
         - Convert to platform remove callback returning void-
         - Drop chain_mode_fixup call in mode_valid()
         - Fixes the errors of MediaTek display driver found by IGT
         - Add display support for the MT8365-EVK board
         - Fix bit depth overwritten for mtk_ovl_set bit_depth()
         - Fix possible_crtcs calculation
         - Fix spurious kfree()
      
        ast:
         - refactor mode setting code
      
        stm:
         - Add LVDS support
         - DSI PHY updates"
      
      * tag 'drm-next-2024-07-18' of https://gitlab.freedesktop.org/drm/kernel: (2501 commits)
        drm/amdgpu/mes12: add missing opcode string
        drm/amdgpu/mes11: update opcode strings
        Revert "drm/amd/display: Reset freesync config before update new state"
        drm/omap: Restrict compile testing to PAGE_SIZE less than 64KB
        drm/xe: Drop trace_xe_hw_fence_free
        drm/xe/uapi: Rename xe perf layer as xe observation layer
        drm/amdgpu: remove exp hw support check for gfx12
        drm/amdgpu: timely save bad pages to eeprom after gpu ras reset is completed
        drm/amdgpu: flush all cached ras bad pages to eeprom
        drm/amdgpu: select compute ME engines dynamically
        drm/amd/display: Allow display DCC for DCN401
        drm/amdgpu: select compute ME engines dynamically
        drm/amdgpu/job: Replace DRM_INFO/ERROR logging
        drm/amdgpu: select compute ME engines dynamically
        drm/amd/pm: Ignore initial value in smu response register
        drm/amdgpu: Initialize VF partition mode
        drm/amd/amdgpu: fix SDMA IRQ client ID <-> req mapping
        MAINTAINERS: fix Xinhui's name
        MAINTAINERS: update powerplay and swsmu
        drm/qxl: Pin buffer objects for internal mappings
        ...
      b3ce7a30
    • Linus Torvalds's avatar
      Merge tag 'media/v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · b1bc554e
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - New sensor drivers: gc05a2, gc08a3 and imx283
      
       - New serializer/deserializer drivers: max96714 and max96717
      
       - New JPEG encoder driver: e5010
      
       - Support for Raspberry Pi PiSP Backend (BE) ISP driver
      
       - Old documentation for av7110 driver removed, as a new version was
         added as Documentation/userspace-api/media/dvb/legacy*.rst
      
       - atompisp: Linux firmwares are now available, so drop firmware-related
         task from TODO and update firmware logic
      
       - The imx258 driver has gained several improvements
      
       - wave5 driver has gained support for HEVC decoding
      
       - em28xx gained support for MyGica UTV3
      
       - av7110 budget-patch driver removed
      
       - Lots of other cleanups, improvements and fixes
      
      * tag 'media/v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (301 commits)
        media: raspberrypi: Switch to remove_new
        media: uapi: pisp_be_config: Add extra config fields
        media: uapi: pisp_be_config: Re-sort pisp_be_tiles_config
        media: uapi: pisp_common: Capitalize all macros
        media: uapi: pisp_common: Add 32 bpp format test
        media: uapi: pisp_be_config: Drop BIT() from uAPI
        media: stm32: dcmipp: correct error handling in dcmipp_create_subdevs
        media: atomisp: Fix spelling mistakes in sh_css_sp.c
        media: atomisp: Fix spelling mistake in ia_css_debug.c
        media: atomisp: Fix spelling mistake in hmm_bo.c
        media: atomisp: Fix spelling mistake in ia_css_eed1_8.host.c
        media: atomisp: Fix spelling mistake in sh_css_internal.h
        media: atomisp: Fix spelling mistake "pipline" -> "pipeline"
        media: atomisp: Remove unused GPIO related defines and APIs
        media: atomisp: Replace COMPILATION_ERROR_IF() by static_assert()
        media: atomisp: Clean up unused macros from math_support.h
        media: atomisp: csi2-bridge: Add DMI quirk for OV5693 on Xiaomi Mipad2
        media: atomisp: Update TODO
        media: atomisp: Prefix firmware paths with "intel/ipu/"
        media: atomisp: Remove firmware_name module parameter
        ...
      b1bc554e
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 0ffb8a4c
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "DT Bindings:
      
         - Convert and add a bunch of IBM FSI related bindings
      
         - Add a new schema listing legacy compatibles which will (probably)
           never be documented. This will silence various checks warning about
           them.
      
         - Add bindings for Sierra Wireless mangOH Green SPI IoT interface,
           new Arm 2024 Cortex and Neoverse CPUs, QCom sc8180x PDC, QCom SDX75
           GPI DMA, imx8mp/imx8qxp fsl,irqsteer, and Renesas RZ/G2UL CRU and
           CSI-2 blocks
      
         - Convert Spreadtrum sprd-timer, FSL cpm_qe, FSL fsl,ls-scfg-msi, FSL
           q(b)man-*, FSL qoriq-mc, and img,pdc-wdt bindings to DT schema
      
         - Drop obsolete stericsson,abx500.txt
      
        DT core:
      
         - Update dtc to upstream version v1.7.0-93-g1df7b047fe43
      
         - Add support to run DT validation on DTs with applied overlays
      
         - Add helper for creating boolean properties in dynamic nodes and use
           that for dynamic PCI nodes
      
         - Clean-up early parsing of '#{address,size}-cells'"
      
      * tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (39 commits)
        dt-bindings: timer: sprd-timer: convert to YAML
        dt-bindings: incomplete-devices: document devices without bindings
        dt-bindings: trivial-devices: document the Sierra Wireless mangOH Green SPI IoT interface
        scripts/dtc: Update to upstream version v1.7.0-93-g1df7b047fe43
        dt-bindings: soc: fsl: Add fsl,ls1028a-reset for reset syscon node
        dt-bindings: soc: fsl: cpm_qe: convert to yaml format
        dt-bindings: i2c: i2c-fsi: Convert to json-schema
        dt-bindings: fsi: Document the FSI Hub Controller
        dt-bindings: fsi: Document the AST2700 FSI controller
        dt-bindings: fsi: ast2600-fsi-master: Convert to json-schema
        dt-bindings: fsi: ibm,i2cr-fsi-master: Reference common FSI controller
        dt-bindings: fsi: Document the FSI controller common properties
        dt-bindings: fsi: Document the IBM SBEFIFO engine
        dt-bindings: fsi: p9-occ: Convert to json-schema
        dt-bindings: fsi: Document the IBM SCOM engine
        dt-bindings: fsi: fsi2spi: Document SPI controller child nodes
        dt-bindings: interrupt-controller: convert fsl,ls-scfg-msi to yaml
        dt-bindings: soc: fsl: Convert q(b)man-* to yaml format
        dt-bindings: misc: fsl,qoriq-mc: convert to yaml format
        dt-bindings: drop stale Anson Huang from maintainers
        ...
      0ffb8a4c
    • Linus Torvalds's avatar
      Merge tag 'for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen1984/linux · 5b9ac6c2
      Linus Torvalds authored
      Pull hardware timestamp update from Dipen Patel:
      
       - Add module description in hte test to silence modpost warnings
      
      * tag 'for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen1984/linux:
        hte: tegra-194: add missing MODULE_DESCRIPTION() macro
      5b9ac6c2
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · fea17683
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
       "Core Frameworks:
         - New trigger for Input Events
         - New led_mc_set_brightness() call to adapt colour/brightness for
           mutli-colour LEDs
         - New lled_mc_trigger_event() call to call the above based on given
           trigger conditions
         - New led_get_color_name() call, a wrapper around the existing
           led_colors[] array
         - A new flag to avoid automatic renaming of LED devices
      
        New Drivers:
         - Silergy SY7802 Flash LED Controller
         - Texas Instruments LP5569 LED Controller
         - ChromeOS EC LED Controller
      
        New Device Support:
         - KTD202{6,7} support for Kinetic KTD2026/7 LEDs
      
        Fix-ups:
         - Replace ACPI/DT firmware helpers with agnostic variants
         - Make use of resource managed devm_* API calls
         - Device Tree binding adaptions/conversions/creation
         - Constify/staticise applicable data structures
         - Trivial; spelling, whitespace, coding-style adaptions
         - Drop i2c_device_id::driver_data where the value is unused
         - Utilise centrally provided helpers and macros to aid simplicity and
           avoid duplication
         - Use generic platform device properties instead of OF/ACPI specific
           ones
         - Consolidate/de-duplicate various functionality
         - Remove superfluous/duplicated/unused sections
         - Make use of the new *_scoped() guard APIs
         - Improve/simplify error handling
      
        Bug Fixes:
         - Flush pending brightness changes before activating the trigger
         - Repair incorrect device naming preventing matches
         - Prevent memory leaks by correctly free resources during error
           handling routines
         - Repair locking issue causing circular dependency splats and
           lock-ups
         - Unregister sysfs entries before deactivating triggers to prevent
           use-after issues
         - Supply a bunch of MODULE_DESCRIPTIONs to silence modpost warnings
         - Use correct return codes expected by the callers
         - Omit set_brightness() error message for a LEDs that support only HW
           triggers"
      
      * tag 'leds-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (65 commits)
        leds: leds-lp5569: Enable chip after chip configuration
        leds: leds-lp5569: Better handle enabling clock internal setting
        leds: leds-lp5569: Fix typo in driver name
        leds: flash: leds-qcom-flash: Test the correct variable in init
        leds: leds-lp55xx: Convert mutex lock/unlock to guard API
        leds: leds-lp5523: Convert to sysfs_emit API
        leds: leds-lp5569: Convert to sysfs_emit API
        Revert "leds: led-core: Fix refcount leak in of_led_get()"
        leds: leds-lp5569: Add support for Texas Instruments LP5569
        leds: leds-lp55xx: Drop deprecated defines
        leds: leds-lp55xx: Support ENGINE program up to 128 bytes
        leds: leds-lp55xx: Generalize sysfs master_fader
        leds: leds-lp55xx: Generalize sysfs engine_leds
        leds: leds-lp55xx: Generalize sysfs engine_load and engine_mode
        leds: leds-lp55xx: Generalize stop_engine function
        leds: leds-lp55xx: Generalize turn_off_channels function
        leds: leds-lp55xx: Generalize set_led_current function
        leds: leds-lp55xx: Generalize multicolor_brightness function
        leds: leds-lp55xx: Generalize led_brightness function
        leds: leds-lp55xx: Generalize firmware_loaded function
        ...
      fea17683
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · e0d97b04
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Drivers:
         - Texas Instruments LM3509 Backlight Driver
      
        Fix-ups:
         - Device Tree binding adaptions/conversions/creation
         - Drop i2c_device_id::driver_data where the value is unused
         - Make use of the new *_scoped() guard APIs
         - Decouple from fbdev by providing Backlight with its own
           BACKLIGHT_POWER_* constrains
      
        Bug Fixes:
         - Correctly assess return values (NULL vs IS_ERR())
         - Supply a bunch of MODULE_DESCRIPTIONs to silence modpost warnings"
      
      * tag 'backlight-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (23 commits)
        backlight: sky81452-backlight: Use backlight power constants
        backlight: rave-sp-backlight: Use backlight power constants
        backlight: pwm-backlight: Use backlight power constants
        backlight: pcf50633-backlight: Use backlight power constants
        backlight: pandora-backlight: Use backlight power constants
        backlight: mp3309c: Use backlight power constants
        backlight: lm3533-backlight: Use backlight power constants
        backlight: led-backlight: Use backlight power constants
        backlight: ktd253-backlight: Use backlight power constants
        backlight: kb3886-bl: Use backlight power constants
        backlight: journada_bl: Use backlight power constants
        backlight: ipaq-micro-backlight: Use backlight power constants
        backlight: gpio-backlight: Use backlight power constants
        backlight: corgi-lcd: Use backlight power constants
        backlight: ams369fb06: Use backlight power constants
        backlight: aat2870-backlight: Use blacklight power constants
        backlight: Add BACKLIGHT_POWER_ constants for power states
        backlight: lm3509_bl: Fix early returns in for_each_child_of_node()
        backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        backlight: Add missing MODULE_DESCRIPTION() macros
        ...
      e0d97b04
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 1200af3a
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - ROHM BD96801 Power Management IC
         - Cirrus Logic CS40L50 Haptic Driver with Waveform Memory
         - Marvell 88PM886 Power Management IC
      
        New Device Support:
         - Keyboard Backlight to ChromeOS Embedded Controller
         - LEDs to ChromeOS Embedded Controller
         - Charge Control to ChromeOS Embedded Controller
         - HW Monitoring Service to ChromeOS Embedded Controller
         - AUXADCs to MediaTek MT635{7,8,9} Power Management ICs
      
        New Functionality:
         - Allow Syscon consumers to supply their own Regmaps on registration
      
        Fix-ups:
         - Constify/staticise applicable data structures
         - Remove superfluous/duplicated/unused sections
         - Device Tree binding adaptions/conversions/creation
         - Trivial; spelling, whitespace, coding-style adaptions
         - Utilise centrally provided helpers and macros to aid
           simplicity/duplication
         - Drop i2c_device_id::driver_data where the value is unused
         - Replace ACPI/DT firmware helpers with agnostic variants
         - Move over to GPIOD (descriptor-based) APIs
         - Annotate a bunch of __counted_by() cases
         - Straighten out some includes
      
        Bug Fixes:
         - Ensure potentially asserted recent lines are deasserted during
           initialisation
         - Avoid "<module>.ko is added to multiple modules" warnings
         - Supply a bunch of MODULE_DESCRIPTIONs to silence modpost warnings
         - Fix Wvoid-pointer-to-enum-cast warnings"
      
      * tag 'mfd-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (87 commits)
        mfd: timberdale: Attach device properties to TSC2007 board info
        mfd: tmio: Move header to platform_data
        mfd: tmio: Sanitize comments
        mfd: tmio: Update include files
        mmc: tmio/sdhi: Fix includes
        mfd: tmio: Remove obsolete io accessors
        mfd: tmio: Remove obsolete platform_data
        watchdog: bd96801_wdt: Add missing include for FIELD_*()
        dt-bindings: mfd: syscon: Add APM poweroff mailbox
        dt-bindings: mfd: syscon: Split and enforce documenting MFD children
        dt-bindings: mfd: rk817: Merge support for RK809
        dt-bindings: mfd: rk817: Fixup clocks and reference dai-common
        dt-bindings: mfd: syscon: Add TI's opp table compatible
        mfd: omap-usb-tll: Use struct_size to allocate tll
        dt-bindings: mfd: Explain lack of child dependency in simple-mfd
        dt-bindings: mfd: Dual licensing for st,stpmic1 bindings
        mfd: omap-usb-tll: Annotate struct usbtll_omap with __counted_by
        mfd: tps6594-core: Remove unneeded semicolon in tps6594_check_crc_mode()
        mfd: lm3533: Move to new GPIO descriptor-based APIs
        mfd: tps65912: Use devm helper functions to simplify probe
        ...
      1200af3a
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2024071601' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 6e504d2c
      Linus Torvalds authored
      Pull HID updates from Benjamin Tissoires:
      
       - rewrite of the HID-BPF internal implementation to use bpf struct_ops
         instead of a tracing endpoint (Benjamin Tissoires)
      
       - add two new HID-BPF hooks to be able to intercept userspace calls
         targeting a HID device and filtering them (Benjamin Tissoires)
      
       - add support for various new devices through HID-BPF filters (Benjamin
         Tissoires)
      
       - add support for the magic keyboard backlight (Orlando Chamberlain)
      
       - add the missing MODULE_DESCRIPTION() macros in HID drivers (Jeff
         Johnson)
      
       - use of kvzalloc in case memory gets too fragmented (Hailong Liu)
      
       - retrieve the device firmware node in the child HID device (Danny
         Kaehn)
      
       - some hid-uclogic improvements (José Expósito)
      
       - some more typos, trivial fixes, kernel doctext and unused functions
         cleanups
      
      * tag 'for-linus-2024071601' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (60 commits)
        HID: hid-steam: Fix typo in goto label
        HID: mcp2221: Remove unnecessary semicolon
        HID: Fix spelling mistakes "Kensigton" -> "Kensington"
        HID: add more missing MODULE_DESCRIPTION() macros
        HID: samples: fix the 2 struct_ops definitions
        HID: fix for amples in for-6.11/bpf
        HID: apple: Add support for magic keyboard backlight on T2 Macs
        HID: bpf: Thrustmaster TCA Yoke Boeing joystick fix
        HID: bpf: Add Huion Dial 2 bpf fixup
        HID: bpf: Add support for the XP-PEN Deco Mini 4
        HID: bpf: move the BIT() macro to hid_bpf_helpers.h
        HID: bpf: add a driver for the Huion Inspiroy 2S (H641P)
        HID: bpf: Add a HID report composition helper macros
        HID: bpf: doc fixes for hid_hw_request() hooks
        HID: bpf: doc fixes for hid_hw_request() hooks
        HID: bpf: fix gcc warning and unify __u64 into u64
        selftests/hid: ensure CKI can compile our new tests on old kernels
        selftests/hid: add an infinite loop test for hid_bpf_try_input_report
        selftests/hid: add another test for injecting an event from an event hook
        HID: bpf: allow hid_device_event hooks to inject input reports on self
        ...
      6e504d2c
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.11-1' of https://github.com/cminyard/linux-ipmi · 221fd1e1
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Some cleanups for device changes coming, and some range checks on data
        coming from a host to a BMC"
      
      * tag 'for-linus-6.11-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        ipmi: ssif_bmc: prevent integer overflow on 32bit systems
      221fd1e1
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.11-1' of... · a5cb6b2b
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Ilpo Järvinen:
      
       - amd/pmf: Report system state changes using existing input events
      
       - asus-wmi: Zenbook 2023 camera LED disable support and fix TUF laptop
         keyboard RGB LED sysfs interface
      
       - dell-pc: Fan modes / platform profile support
      
       - hp-wmi: Fix platform profile switching on Omen/Victus laptops
      
       - intel/ISST: Use only TPMI interface when TPMI and legacy interfaces
         are available
      
       - intel/pmc: LTR restore support to pair with LTR ignore
      
       - intel/tpmi: Performance Limit Reasons (PLR) and APIC <-> Punit CPU
         numbering mapping support
      
       - WMI: driver override support and docs improvements
      
       - lenovo-yoga-c630: Support for EC (platform/arm64)
      
       - platform/arm64: Fix build with COMPILE_TEST (broke after addition of
         C630)
      
       - tools: Intel Speed Select Turbo Ratio Limit fix
      
       - Miscellaneous cleanups / refactoring / improvements
      
      * tag 'platform-drivers-x86-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (65 commits)
        platform/x86: asus-wmi: fix TUF laptop RGB variant
        platform/x86/intel/tpmi/plr: Fix output in plr_print_bits()
        Docs/admin-guide: Remove pmf leftover reference from the index
        platform/x86: ideapad-laptop: use cleanup.h
        platform/x86: hp-wmi: Fix implementation of the platform_profile_omen_get function
        platform: arm64: EC_LENOVO_YOGA_C630 should depend on ARCH_QCOM
        platform: arm64: EC_ACER_ASPIRE1 should depend on ARCH_QCOM
        platform/x86/amd/pmf: Remove update system state document
        platform/x86/amd/pmf: Use existing input event codes to update system states
        platform/x86: hp-wmi: Fix platform profile option switch bug on Omen and Victus laptops
        platform/x86:intel/pmc: Add support to undo ltr_ignore
        platform/x86:intel/pmc: Use the Elvis operator
        platform/x86:intel/pmc: Use DEFINE_SHOW_STORE_ATTRIBUTE macro
        platform/x86:intel/pmc: Remove unneeded min_t check
        platform/x86:intel/pmc: Add support to show ltr_ignore value
        platform/x86:intel/pmc: Move pmc assignment closer to first usage
        platform/x86:intel/pmc: Convert index variables to be unsigned
        platform/x86:intel/pmc: Simplify mutex usage with cleanup helpers
        platform/x86:intel/pmc: Use the return value of pmc_core_send_msg
        tools/power/x86/intel-speed-select: v1.20 release
        ...
      a5cb6b2b
  2. 17 Jul, 2024 14 commits
    • Dave Airlie's avatar
      Merge tag 'amd-drm-next-6.11-2024-07-12' of... · 478a5270
      Dave Airlie authored
      Merge tag 'amd-drm-next-6.11-2024-07-12' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
      
      amd-drm-next-6.11-2024-07-12:
      
      amdgpu:
      - RAS fixes
      - SMU fixes
      - GC 12 updates
      - SR-IOV fixes
      - IH 7 updates
      - DCC fixes
      - GC 11.5 fixes
      - DP MST fixes
      - GFX 9.4.4 fixes
      - SMU 14 updates
      - Documentation updates
      - MAINTAINERS updates
      - PSR SU fix
      - Misc small fixes
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240712171637.2581787-1-alexander.deucher@amd.com
      478a5270
    • Linus Torvalds's avatar
      Merge tag 'ata-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · e2f710f9
      Linus Torvalds authored
      Pull ata updates from Niklas Cassel:
      
       - ATA PASS-THROUGH sense data cleanups and fixes (Igor Pylypiv)
      
         Store the sense data for ATA PASS-THROUGH commands at the correct
         offset in the sense buffer when using fixed format sense data.
      
         Cleanup the logic related to generating sense data for PASS-THROUGH
         commands. Generating sense data for PASS-THROUGH commands would
         overwrite any eventual (real) sense data received from the device.
      
         Honor the D_SENSE bit when generating sense data for PASS-THROUGH
         commands. (The D_SENSE bit can be set by the user, and determines if
         the returned sense data should be in fixed format or descriptor
         format)
      
       - ata port allocation cleanups (me)
      
         Assign the ata port print_id at port allocation time, such that the
         ata_port_* print functions can be used earlier in the init call
         chain.
      
         Change the ata port port print_id to use ida_alloc(), such that
         print_ids will get reused on rmmod + modprobe, instead of being
         incremented indefinitely.
      
         Remove wrappers that only existed in order to export the internal
         libata functions which they wrapped, and instead export the libata
         functions directly.
      
       - Update SATA_MOBILE_LPM_POLICY Kconfig default to med_power_with_dipm
         (Mario Limonciello)
      
         Using this default was not always a good idea before, because it
         would break hot plug support. However, with LPM changes in recent
         kernels, a port marked as external will not enable LPM (in order to
         not break hot plug), so it is now safe to change the default value of
         this Kconfig.
      
         All major Linux distros have had SATA_MOBILE_LPM_POLICY set to
         med_power_with_dipm for quite a long time
      
       - Convert ahci-fsl-qoriq device tree binding to yaml format (Frank Li)
      
      * tag 'ata-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
        dt-bindings: ata: ahci-fsl-qoriq: add fsl,ls1046a-ahci and fsl,ls1012a-ahci
        ata: ahci: Add debug print for external port
        ata,scsi: Remove wrapper ata_sas_port_alloc()
        ata: libata-core: Reuse available ata_port print_ids
        ata: libata: Assign print_id at port allocation time
        ata: libata-core: Remove local_port_no struct member
        ata: libata-sata: Remove superfluous assignment in ata_sas_port_alloc()
        ata: libata-core: Remove support for decreasing the number of ports
        ata: libata: Remove unused function declaration for ata_scsi_detect()
        ata,scsi: Remove wrappers ata_sas_tport_{add,delete}()
        ata: libata-scsi: Check ATA_QCFLAG_RTF_FILLED before using result_tf
        ata: libata-core: Set ATA_QCFLAG_RTF_FILLED in fill_result_tf()
        ata: libata-scsi: Do not pass ATA device id to ata_to_sense_error()
        ata: libata-scsi: Remove redundant sense_buffer memsets
        ata: libata-scsi: Honor the D_SENSE bit for CK_COND=1 and no error
        ata: libata-scsi: Do not overwrite valid sense data when CK_COND=1
        ata: libata-scsi: Fix offsets for the fixed format sense data
        dt-bindings: ata: ahci-fsl-qoriq: convert to yaml format
        ata: Kconfig: Update SATA_MOBILE_LPM_POLICY default to med_power_with_dipm
      e2f710f9
    • Linus Torvalds's avatar
      Merge tag 'zonefs-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · 01f851a0
      Linus Torvalds authored
      Pull zonefs update from Damien Le Moal:
       "A single change to enable support for large folios (from Johannes)"
      
      * tag 'zonefs-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: enable support for large folios
      01f851a0
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 8b0f0bb2
      Linus Torvalds authored
      Pull udf, ext2, isofs fixes and cleanups from Jan Kara:
      
       - A few UDF cleanups and fixes for handling corrupted filesystems
      
       - ext2 fix for handling of corrupted filesystem
      
       - isofs module description
      
       - jbd2 module description
      
      * tag 'fs_for_v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: Verify bitmap and itable block numbers before using them
        udf: prevent integer overflow in udf_bitmap_free_blocks()
        udf: Avoid excessive partition lengths
        udf: Drop load_block_bitmap() wrapper
        udf: Avoid using corrupted block bitmap buffer
        udf: Fix bogus checksum computation in udf_rename()
        udf: Fix lock ordering in udf_evict_inode()
        udf: Drop pointless IS_IMMUTABLE and IS_APPEND check
        isofs: add missing MODULE_DESCRIPTION()
        jbd2: add missing MODULE_DESCRIPTION()
      8b0f0bb2
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · d6018321
      Linus Torvalds authored
      Pull fsnotify fix from Jan Kara:
       "Fix possible softlockups on directories with many dentries in fsnotify
        code"
      
      * tag 'fsnotify_for_v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: clear PARENT_WATCHED flags lazily
      d6018321
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.11-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · bf3aa9de
      Linus Torvalds authored
      Pull xfs updates from Chandan Babu:
       "Major changes in this release are limited to enabling FITRIM on
        realtime devices and Byte-based grant head log reservation tracking.
      
        The remaining changes are limited to fixes and cleanups included in
        this pull request.
      
        Core:
      
         - Enable FITRIM on the realtime device
      
         - Introduce byte-based grant head log reservation tracking instead of
           physical log location tracking.
      
           This allows grant head to track a full 64 bit bytes space and hence
           overcome the limit of 4GB indexing that has been present until now
      
        Fixes:
      
         - xfs_flush_unmap_range() and xfs_prepare_shift() should consider RT
           extents in the flush unmap range
      
         - Implement bounds check when traversing log operations during log
           replay
      
         - Prevent out of bounds access when traversing a directory data block
      
         - Prevent incorrect ENOSPC when concurrently performing file creation
           and file writes
      
         - Fix rtalloc rotoring when delalloc is in use
      
        Cleanups:
      
         - Clean up I/O path inode locking helpers and the page fault handler
      
         - xfs: hoist inode operations to libxfs in anticipation of the
           metadata inode directory feature, which maintains a directory tree
           of metadata inodes. This will be necessary for further enhancements
           to the realtime feature, subvolume support
      
         - Clean up some warts in the extent freeing log intent code
      
         - Clean up the refcount and rmap intent code before adding support
           for realtime devices
      
         - Provide the correct email address for sysfs ABI documentation"
      
      * tag 'xfs-6.11-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (80 commits)
        xfs: fix rtalloc rotoring when delalloc is in use
        xfs: get rid of xfs_ag_resv_rmapbt_alloc
        xfs: skip flushing log items during push
        xfs: grant heads track byte counts, not LSNs
        xfs: pass the full grant head to accounting functions
        xfs: track log space pinned by the AIL
        xfs: collapse xlog_state_set_callback in caller
        xfs: l_last_sync_lsn is really AIL state
        xfs: ensure log tail is always up to date
        xfs: background AIL push should target physical space
        xfs: AIL doesn't need manual pushing
        xfs: move and rename xfs_trans_committed_bulk
        xfs: fix the contact address for the sysfs ABI documentation
        xfs: Avoid races with cnt_btree lastrec updates
        xfs: move xfs_refcount_update_defer_add to xfs_refcount_item.c
        xfs: simplify usage of the rcur local variable in xfs_refcount_finish_one
        xfs: don't bother calling xfs_refcount_finish_one_cleanup in xfs_refcount_finish_one
        xfs: reuse xfs_refcount_update_cancel_item
        xfs: add a ci_entry helper
        xfs: remove xfs_trans_set_refcount_flags
        ...
      bf3aa9de
    • Linus Torvalds's avatar
      Merge tag 'exfat-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat · 0260b0a7
      Linus Torvalds authored
      Pull exfat updates from Namjae Jeon:
      
       - Fix deadlock issue reported by syzbot
      
       - Handle idmapped mounts
      
      * tag 'exfat-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
        exfat: fix potential deadlock on __exfat_get_dentry_set
        exfat: handle idmapped mounts
      0260b0a7
    • Linus Torvalds's avatar
      Merge tag 'for-6.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · a1b547f0
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "The highlights are new logic behind background block group reclaim,
        automatic removal of qgroup after removing a subvolume and new
        'rescue=' mount options.
      
        The rest is optimizations, cleanups and refactoring.
      
        User visible features:
      
         - dynamic block group reclaim:
            - tunable framework to avoid situations where eager data
              allocations prevent creating new metadata chunks due to lack of
              unallocated space
            - reuse sysfs knob bg_reclaim_threshold (otherwise used only in
              zoned mode) for a fixed value threshold
            - new on/off sysfs knob "dynamic_reclaim" calculating the value
              based on heuristics, aiming to keep spare working space for
              relocating chunks but not to needlessly relocate partially
              utilized block groups or reclaim newly allocated ones
            - stats are exported in sysfs per block group type, files
              "reclaim_*"
            - this may increase IO load at unexpected times but the corner
              case of no allocatable block groups is known to be worse
      
         - automatically remove qgroup of deleted subvolumes:
            - adjust qgroup removal conditions, make sure all related
              subvolume data are already removed, or return EBUSY, also take
              into account setting of sysfs drop_subtree_threshold
            - also works in squota mode
      
         - mount option updates: new modes of 'rescue=' that allow to mount
           images (read-only) that could have been partially converted by user
           space tools
            - ignoremetacsums  - invalid metadata checksums are ignored
            - ignoresuperflags - super block flags that track conversion in
                                 progress (like UUID or checksums)
      
        Core:
      
         - size of struct btrfs_inode is now below 1024 (on a release config),
           improved memory packing and other secondary effects
      
         - switch tracking of open inodes from rb-tree to xarray, minor
           performance improvement
      
         - reduce number of empty transaction commits when there are no dirty
           data/metadata
      
         - memory allocation optimizations (reduced numbers, reordering out of
           critical sections)
      
         - extent map structure optimizations and refactoring, more sanity
           checks
      
         - more subpage in zoned mode preparations or fixes
      
         - general snapshot code cleanups, improvements and documentation
      
         - tree-checker updates: more file extent ram_bytes fixes, continued
      
         - raid-stripe-tree update (not backward compatible):
            - remove extent encoding field from the structure, can be inferred
              from other information
            - requires btrfs-progs 6.9.1 or newer
      
         - cleanups and refactoring
            - error message updates
            - error handling improvements
            - return type and parameter cleanups and improvements"
      
      * tag 'for-6.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (152 commits)
        btrfs: fix extent map use-after-free when adding pages to compressed bio
        btrfs: fix bitmap leak when loading free space cache on duplicate entry
        btrfs: remove the BUG_ON() inside extent_range_clear_dirty_for_io()
        btrfs: move extent_range_clear_dirty_for_io() into inode.c
        btrfs: enhance compression error messages
        btrfs: fix data race when accessing the last_trans field of a root
        btrfs: rename the extra_gfp parameter of btrfs_alloc_page_array()
        btrfs: remove the extra_gfp parameter from btrfs_alloc_folio_array()
        btrfs: introduce new "rescue=ignoresuperflags" mount option
        btrfs: introduce new "rescue=ignoremetacsums" mount option
        btrfs: output the unrecognized super block flags as hex
        btrfs: remove unused Opt enums
        btrfs: tree-checker: add extra ram_bytes and disk_num_bytes check
        btrfs: fix the ram_bytes assignment for truncated ordered extents
        btrfs: make validate_extent_map() catch ram_bytes mismatch
        btrfs: ignore incorrect btrfs_file_extent_item::ram_bytes
        btrfs: cleanup the bytenr usage inside btrfs_extent_item_to_extent_map()
        btrfs: fix typo in error message in btrfs_validate_super()
        btrfs: move the direct IO code into its own file
        btrfs: pass a btrfs_inode to btrfs_set_prop()
        ...
      a1b547f0
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v6.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 6706415b
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
       "Fixes and cleanups:
      
         - Revise the glock reference counting model and LRU list handling to
           be more sensible
      
         - Several quota related fixes: clean up the quota code, add some
           missing locking, and work around the on-disk corruption that the
           reverted patch "gfs2: ignore negated quota changes" causes
      
         - Clean up the glock demote logic in glock_work_func()"
      
      * tag 'gfs2-v6.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: (29 commits)
        gfs2: Clean up glock demote logic
        gfs2: Revert "check for no eligible quota changes"
        gfs2: Be more careful with the quota sync generation
        gfs2: Get rid of some unnecessary quota locking
        gfs2: Add some missing quota locking
        gfs2: Fold qd_fish into gfs2_quota_sync
        gfs2: quota need_sync cleanup
        gfs2: Fix and clean up function do_qc
        gfs2: Revert "Add quota_change type"
        gfs2: Revert "ignore negated quota changes"
        gfs2: qd_check_sync cleanups
        gfs2: Revert "introduce qd_bh_get_or_undo"
        gfs2: Check quota consistency on mount
        gfs2: Minor gfs2_quota_init error path cleanup
        gfs2: Get rid of demote_ok checks
        Revert "GFS2: Don't add all glocks to the lru"
        gfs2: Revise glock reference counting model
        gfs2: Switch to a per-filesystem glock workqueue
        gfs2: Report when glocks cannot be freed for a long time
        gfs2: gfs2_glock_get cleanup
        ...
      6706415b
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · f097ef0e
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
      
       - New flag DLM_LSFL_SOFTIRQ_SAFE can be set by code using dlm to
         indicate callbacks can be run from softirq
      
       - Change md-cluster to set DLM_LSFL_SOFTIRQ_SAFE
      
       - Clean up for previous changes, e.g. unused code and parameters
      
       - Remove custom pre-allocation of rsb structs which is unnecessary with
         kmem caches
      
       - Change idr to xarray for lkb structs in use
      
       - Change idr to xarray for rsb structs being recovered
      
       - Change outdated naming related to internal rsb states
      
       - Fix some incorrect add/remove of rsb on scan list
      
       - Use rcu to free rsb structs
      
      * tag 'dlm-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: add rcu_barrier before destroy kmem cache
        dlm: remove DLM_LSFL_SOFTIRQ from exflags
        fs: dlm: remove unused struct 'dlm_processed_nodes'
        md-cluster: use DLM_LSFL_SOFTIRQ for dlm_new_lockspace()
        dlm: implement LSFL_SOFTIRQ_SAFE
        dlm: introduce DLM_LSFL_SOFTIRQ_SAFE
        dlm: use LSFL_FS to check for kernel lockspace
        dlm: use rcu to avoid an extra rsb struct lookup
        dlm: fix add_scan and del_scan usage
        dlm: change list and timer names
        dlm: move recover idr to xarray datastructure
        dlm: move lkb idr to xarray datastructure
        dlm: drop own rsb pre allocation mechanism
        dlm: remove ls_local_handle from struct dlm_ls
        dlm: remove unused parameter in dlm_midcomms_addr
        dlm: don't kref_init rsbs created for toss list
        dlm: remove scand leftovers
      f097ef0e
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 586f14a6
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "Updates for folio conversions for compressed inodes: While large folio
        support for compressed data could work now, it remains disabled since
        the stress test could hang due to page migration in a few hours after
        enabling it. I need more time to investigate further before enabling
        this feature.
      
        Additionally, clean up stream decompressors and tracepoints for
        simplicity.
      
        Summary:
      
         - More folio conversions for compressed inodes
      
         - Stream decompressor (LZMA/DEFLATE/ZSTD) cleanups
      
         - Minor tracepoint cleanup"
      
      * tag 'erofs-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: silence uninitialized variable warning in z_erofs_scan_folio()
        erofs: avoid refcounting short-lived pages
        erofs: get rid of z_erofs_map_blocks_iter_* tracepoints
        erofs: tidy up stream decompressors
        erofs: refine z_erofs_{init,exit}_subsystem()
        erofs: move each decompressor to its own source file
        erofs: tidy up `struct z_erofs_bvec`
        erofs: teach z_erofs_scan_folios() to handle multi-page folios
        erofs: convert z_erofs_read_fragment() to folios
        erofs: convert z_erofs_pcluster_readmore() to folios
      586f14a6
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 586a7a85
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
       "This is a light release containing optimizations, code clean-ups, and
        minor bug fixes.
      
        This development cycle focused on work outside of upstream kernel
        development:
      
         - Continuing to build upstream CI for NFSD based on kdevops
      
         - Continuing to focus on the quality of NFSD in LTS kernels
      
         - Participation in IETF nfsv4 WG discussions about NFSv4 ACLs,
           directory delegation, and NFSv4.2 COPY offload
      
        Notable features for v6.11 that do not come through the NFSD tree
        include NFS server-side support for the new pNFS NVMe layout type
        [RFC9561]. Functional testing for pNFS block layouts like this one has
        been introduced to our kdevops CI harness. Work on improving the
        resolution of file attribute time stamps in local filesystems is also
        ongoing tree-wide.
      
        As always I am grateful to NFSD contributors, reviewers, testers, and
        bug reporters who participated during this cycle"
      
      * tag 'nfsd-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        nfsd: nfsd_file_lease_notifier_call gets a file_lease as an argument
        gss_krb5: Fix the error handling path for crypto_sync_skcipher_setkey
        MAINTAINERS: Add a bugzilla link for NFSD
        nfsd: new netlink ops to get/set server pool_mode
        sunrpc: refactor pool_mode setting code
        nfsd: allow passing in array of thread counts via netlink
        nfsd: make nfsd_svc take an array of thread counts
        sunrpc: fix up the special handling of sv_nrpools == 1
        SUNRPC: Add a trace point in svc_xprt_deferred_close
        NFSD: Support write delegations in LAYOUTGET
        lockd: Use *-y instead of *-objs in Makefile
        NFSD: Fix nfsdcld warning
        svcrdma: Handle ADDR_CHANGE CM event properly
        svcrdma: Refactor the creation of listener CMA ID
        NFSD: remove unused structs 'nfsd3_voidargs'
        NFSD: harden svcxdr_dupstr() and svcxdr_tmpalloc() against integer overflows
      586a7a85
    • Linus Torvalds's avatar
      Merge tag 'affs-6.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 48f8bfd4
      Linus Torvalds authored
      Pull affs updates from David Sterba:
      
       - conversions of one-element arrays to flexible arrays
      
      * tag 'affs-6.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        affs: struct slink_front: Replace 1-element array with flexible array
        affs: struct affs_data_head: Replace 1-element array with flexible array
        affs: struct affs_head: Replace 1-element array with flexible array
      48f8bfd4
    • Steven Rostedt (Google)'s avatar
      tracing: Update MAINTAINERS file · 5f7c72df
      Steven Rostedt (Google) authored
      Gone but never forgotten.
      
      [ Also moved Daniel's name to be consistent with the alphabetical order ]
      
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Cc: Clark Williams <williams@redhat.com>
      Cc: "Luis Claudio R. Goncalves" <lclaudio@uudg.org>
      Cc: John Kacur <jkacur@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Link: https://lore.kernel.org/20240715144745.51d887a9@rorschach.local.homeReviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Reviewed-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
      5f7c72df